Skip to content

Trading ru RU

JustArchi edited this page Nov 23, 2019 · 41 revisions

Обмены

ASF включает в себя поддержку не-интерактивных (офлайн) обменов Steam. Как получение (принятие/отклонение) так и отправка обменов работают не требуя дополнительной настройки, однако, естественно, требуют аккаунт Steam без ограничений (такой, на котором потрачено больше чем 5$ в эквиваленте). Модуль обменов недоступен для ограниченных аккаунтов.


Логика

ASF всегда принимает все обмены, независимо от предметов в них, присланные от пользователя с правами Master (или выше). Это позволяет не только легко забрать карты, которые нафармил бот, но также удобно манипулировать любыми предметами Steam, хранящимися на этом боте.

ASF будет отказыватся от обменов, независимо от содержимого, которые присланы от пользователей(кроме Master) обмены с которыми запрещены в модуле обменов. Список пользователей, с которыми запрещены обмены, хранится в базе данных BotName.db, а управлять вы им можете с помощью команд bl, bladd и blrm. Это может использоваться как альтернатив блокировке в Steam - используйте с осторожностью.

ASF будет принимать все loot-подобные обмены присланные от других ботов, за исключением случая когда в параметре TradingPreferences указано значение DontAcceptBotTrades. Вкратце, параметр TradingPreferences со значением по умолчанию None приведёт к тому, что ASF будет автоматически принимать обмены от пользователей с правами Master (описано выше) а также все безвозмездные обмены от других ботов, задействованых в этом процессе ASF. Если вы хотите отключить принятие безвозмездных обменов от других ботов, для этого служит значение DontAcceptBotTrades в параметре TradingPreferences.

Если вы добавите значение AcceptDonations в параметр TradingPreferences, ASF также будет принимать любые безвозмездные обмены - обмены, в которых бот не отдаёт никаких предметов. Это влияет только на обмены с не-ботами, поскольку боты на обмены с ботами влияет значение DontAcceptBotTrades. AcceptDonations позволяет вам легко принимать пожертвования от других людей, а также от ботов не задействованных в данном процессе ASF.

Приятно отметить, что AcceptDonations не требует наличия 2ФА ASF, поскольку если мы не отдаём предметов - подтверждение на мобильном не требуется.

Вы можете настроить другие возможности обменов в ASF изменяя параметр TradingPreferences. Одна из важных функций доступных в TradingPreferences - это значение SteamTradeMatcher, которое активирует встроенную логику принятия обменов, помогающих собирать карточки для создания значков, она особенно полезна в сочетании с публикацией своего профиля на сайте SteamTradeMatcher, но будет работать и без этого. Эта функция подробно описана ниже.


SteamTradeMatcher

Если включено значение SteamTradeMatcher, ASF будет использовать довольно сложный алгоритм для проверки, удовлетворяет ли обмен правилам STM и является ли для нас как минимум нейтральным. Логика работы следующая:

  • Отказ от обмена если мы отдаём что-то, что не указано в параметре MatchableTypes.
  • Отказ от обмена если мы не получаем как минимум столько же предметов из определённой игры и определённого типа.
  • Отказ от обмена если у нас запрашивают предмет летней/зимней распродажи, и при этом у пользователя действует удержание обменов.
  • Отказ от обмена если удержание обмена превышает указанное в параметре глобальной конфигурации MaxTradeHoldDuration.
  • Отказ от обмена если не установлено значение MatchEverything и обмен для нас хуже, чем нейтральный.
  • Принятие обмена если мы не отказались от него на одном из этапов выше.

Приятно отметить, что ASF также поддерживает переплату - логика будет нормально работать если мы получаем в обмене что-то дополнительно, если все другие условия соблюдены.

Первые 4 условия отказа должны быть очевидны для всех. Последнее условие включает собственно логику проверки дубликатов, которая проверяет наш текущий инвентарь и решает, каков статус этого обмена.

  • Обмен хороший если наш прогресс к завершению значка увеличивается. A A (было) <-> A B (стало)
  • Обмен нейтральный если наш прогресс к завершению значка не меняется. A B (было) <-> A C (стало)
  • Обмен плохой если наш прогресс к завершению значка уменьшается. A C (было) <-> A A (стало)

STM работает только с хорошими обменами, а значит пользователь, пользующийся STM для обмена дубликатов всегда будет предлагать нам только хорошие обмены. Однако, ASF имеет либеральную настройку, и принимает также нейтральные обмены, поскольку в этом случае мы ничего не теряем, поэтому нет реальных причин отклонять их. Это особенно полезно для ваших друзей, поскольку они смогут меняться на ваши лишние карточки вообще не используя STM, если вы при этом не теряете прогресс к завершению значка.

По умолчанию ASF будет отклонять плохие сделки - практически всегда это то, чего хочет пользователь. Однако, при желании вы можете включить значение MatchEverything в параметр TradingPreferences чтобы ASF принимал все обмены дубликатов, включая плохие. Это может быть полезным только если вы хотите сделать из своего аккаунта бота по обмену карт 1:1, и вы должны понимать, что в этом случае ASF не поможет вашему прогрессу к завершению значков, и сделает возможным потерю уже собранного набора карт на N дубликатов одной и той же карты. Если вы не хотите намеренно создать бота который никогда не соберёт набор карт, вам не стоит включать эту опцию.

В зависимости от выбранных значений в параметре TradingPreferences, то, что ASF отказал в обмене не означает что вы не сможете принять её самостоятельно. Если вы оставили значение параметру BotBehaviour значение по умолчанию, которое не включает в себя RejectInvalidTrades, ASF будет просто игнорировать эти обмены - разрешая вам самому решать, заинтересованы вы в них или нет. То же самое касается и обменов с предметами, не соответствующими MatchableTypes, и прочих случаев - модуль обменов призван помочь автоматизировать обмены по алгоритму STM, а не решать за вас, какой обмен хороший а какой нет. Единственное исключение из этого правила - это пользователи, с которыми запрещены обмены командой bladd - предложения обменов от таких пользователей немедленно отклоняются независимо от настроек BotBehaviour.

Настоятельно рекомендуем использовать 2ФА ASF если вы решите использовать этот функционал, поскольку он не раскрывает полностью свой потенциал если вам приходится вручную подтверждать каждый обмен. SteamTradeMatcher будет работать даже без возможности подтверждать обмены, но это может создать очередь на подтверждение если вы не принимаете их своевременно.


MatchActively

Настройка MatchActively - это расширенная версия режима SteamTradeMatcher, который в дополнение к пассивному сопоставлению, предлагаемому этим режимом, также включает в себя активное сопоставление, при котором бот будет отправлять предложения обмена другим людям.

Чтобы использовать данный режим, вам необходимо соответствовать ряду требований. Во-первых, вам нужно включить режим SteamTradeMatcher (так как данный режим - его расширенная версия), и убедиться, что у вас отключен режим MatchEverything (так как боты для обмена никогда не сопоставляют карты активно). Также, вы должны удовлетворять требованиям на включение в наш Каталог ASF STM, которые в этом случае слегка облегчены. Как минимум должны иметь включенный параметр Statistics, аккаунт без ограничений, активную 2ФА ASF и по крайней мере один допустимый тип в MatchableTypes, например такой как коллекционные карточки.

Если вы подходите под все требования выше, ASF будет периодически соединяться с нашим публичным каталогом ASF STM, чтобы активно обменивать карточки с помощью ботов, которые сейчас доступны.

  • Каждый сеанс сопоставления и обмена состоит из "раундов", максимум до 10 за сеанс.
  • Каждый раунд ASF будет проверять наш инвентарь и инвентарь выбранных ботов, которые находятся в списке, чтобы найти предметы MatchableTypes которые можно сопоставить. Если совпадение найдено, ASF отправит и подтвердит предложение обмена автоматически.
  • Каждый набор (сочетание appID, типа предмета и его редкости) может быть сопоставлен в одном раунде только один раз. Это реализовано чтобы минимизировать ситуацию "Предметы более недоступны" и избежать необходимости ждать реакции каждого бота, прежде чем отправить все обмены. Именно по этой причине сеанс сопоставления состоит из раундов, а не из одного непрерывного процесса.
  • ASF не будет отправлять более 255 предметов в одном предложении обмена, и не будет отправлять более 5 предложений обмена одному пользователю в одном раунде. Это связано с ограничениями Steam, а также с нашей собственной балансировкой нагрузки.
  • Раунд сопоставления заканчивается, когда мы обрабатываем суммарно 40 ботов, если он не прерван ранее из-за того что больше нет наборов для сопоставления или из-за того что достигнут предел безрезультатных попыток найти соответствие.
  • Если последний раунд сопоставления закончился с хотя бы одним отправленным предложением обмена, следующий раунд начинается в течении 5 минут с момента последнего (чтобы добавить небольшую задержку и позволить всем ботам отреагировать на наши обмены), иначе сеанс сопоставления заканчивается и повторяется через 8 часов.

Работа этого модуля должна быть полностью прозрачной. Сопоставление начинается примерно через 1 час с момента запуска ASF, и будет повторяться каждые 8часов (при необходимости). Функция MatchActively предназначена для длительного циклического использования с целью завершения наборов карточек, с целью избежать повышенной нагрузки, которая могла бы наблюдаться если бы этот функционал был доступен как команда. Целевые пользователи данного модуля это основные аккаунты и дополнительные аккаунты-"склады", однако его можно использовать для любого бота, у которого не включен режим MatchEverything.

ASF делает все возможное чтобы сократить количество запросов и иную нагрузку, возникающие из-за использования этого функционала, в тоже время максимально увеличивая эффективность сопоставления. Точный алгоритм выбора ботов для сопоставления относится к деталям реализации ASF, но в данный момент ASF будет предпочитать ботов с большим разнообразием игр, из которых получены предметы, отдавая предпочтение ботам с опцией Any.

MatchActively учитывает ботов, обмен с которыми вы запретили при помощи команды bladd и не будет пытаться сопоставлять наборы с их помощью. Это можно использовать чтобы указать ASF ботов, с которыми никогда не следует сопоставлять наборов, даже если они имеют потенциальные дубликаты которые можно использовать.

Clone this wiki locally