Определение
Контракт обмена (trade-up contract) — встроенная функция CS2, которая превращает десять предметов одного класса качества в один предмет следующего класса. Вы выбираете входы, игра показывает набор возможных исходов, а результат определяется случайно. Входные предметы расходуются безвозвратно.
В отличие от кейсов и апгрейдов, вероятности здесь вычисляются прямо из состава контракта. Поэтому контракт удобно описывать формулами. Сторонние сервисы и сообщества также используют термин для режимов, построенных на этой механике, но их правила и оценки предметов задаёт сервис, и их нужно проверять на его сайте.
Основные ограничения, которые полезно знать заранее:
- нужно ровно десять предметов;
- все входы одного класса качества;
- нельзя смешивать StatTrak и обычные предметы: либо десять StatTrak, либо десять обычных;
- сувенирные предметы в контракте использовать нельзя;
- результат относится к коллекциям входных предметов.
Особые случаи (верхние классы, ножи и перчатки) регулируются отдельными правилами клиента, их нужно проверять в самой игре.
Формулы
Шанс исхода. Пусть из коллекции c на входе n_c предметов, а в этой коллекции k_c возможных исходов следующего класса. Тогда каждый вход «голосует» за случайный исход своей коллекции, и вероятность конкретного скина s из коллекции c равна:
P(s) = n_c / (10 × k_c).
Вероятность получить какой-либо исход коллекции c: n_c / 10. Сумма по всем исходам равна 1.
Float результата. Для каждого входа считается нормализованный float n_i = (f_i − min_i) / (max_i − min_i). Затем:
f_вых = min_вых + среднее(n_i) × (max_вых − min_вых).
Подробнее о нормализации см. гайд про float.
Ожидаемая стоимость:
EV = k × Σ P(s) × v(s),
где v(s) — рыночная цена исхода с учётом его float, а k — доля после комиссии при продаже (для Steam Market около 0,87). Сравнивайте EV с суммарной стоимостью десяти входов. Так как цены исходов меняются, EV нужно пересчитывать перед каждым контрактом.
Расчёт на условном примере
Все числа условные.
Пусть вход состоит из семи предметов коллекции A и трёх предметов коллекции B. В коллекции A два возможных исхода, в B четыре.
- Для каждого исхода A: P = 7 / (10 × 2) = 0,35. Два исхода, итого 0,70.
- Для каждого исхода B: P = 3 / (10 × 4) = 0,075. Четыре исхода, итого 0,30.
- Проверка: 0,70 + 0,30 = 1,00.
Теперь стоимости. Пусть исходы A стоят 150 и 60, исходы B — 400, 90, 80 и 70.
- Вклад A: 0,35 × 150 + 0,35 × 60 = 52,5 + 21 = 73,5.
- Вклад B: 0,075 × (400 + 90 + 80 + 70) = 0,075 × 640 = 48.
- Σ P × v = 121,5.
- С учётом комиссии: 0,87 × 121,5 ≈ 105,7.
Если десять входов обошлись в 130, окупаемость R = 105,7 / 130 ≈ 0,81. В среднем контракт возвращает меньше, чем стоит. При этом один дорогой исход B с вероятностью 0,075 даёт 0,075 × 400 = 30 из 121,5, то есть около четверти ожидаемой стоимости. В большинстве попыток вы получите предмет дешевле суммы входов.
Пример с float. Среднее нормализованное значение десяти входов 0,12. Выходной скин имеет границы 0,00–0,50. Тогда f_вых = 0,12 × 0,50 = 0,06, то есть FN (диапазон 0–0,07). Если границы выходного скина 0,00–1,00, получится 0,12 и категория MW. Один и тот же вход при разных границах выхода даёт разные категории, и цена результата различается.
Как состав влияет на результат
- Распределение по коллекциям. Чем больше входов из одной коллекции, тем выше её доля, но тем уже набор исходов. Чем больше разных коллекций, тем шире разброс.
- Число исходов в коллекции k_c. Если исходов много, вероятность каждого мала. Если мало, вероятность выше, а стоимость определяется несколькими скинами.
- Float входов. Влияет только на float результата, а не на сам набор исходов. Низкие входные значения нужны, если результат должен получиться с низким float.
- Цена входов. Дешёвые входы могут иметь высокий float. Следите, чтобы экономия не лишила результат пользы.
- Комиссия. Если вы собираете контракт из купленных предметов, каждая покупка уже включает надбавку площадки.
Типичные ошибки
- Считать контракт «инвестицией». Это случайная механика с ожидаемой стоимостью ниже затрат в типичном случае.
- Считать вероятности «по коллекциям» без деления на число исходов k_c.
- Оценивать исходы по заявленным лотам, а не по сделкам.
- Игнорировать float: результат с неподходящим float стоит заметно меньше расчётного.
- Использовать сувенирные или смешанные по типу предметы без проверки правил.
- Не вычитать комиссию с итогового предмета.
- Повторять контракты, чтобы «отыграться»: каждый контракт независим.
- Применять к сервисам формулы клиента CS2 без проверки: правила и оценки предметов задаёт сервис, их нужно читать на его сайте.
Чек-лист
- Определите сумму, которую допустимо потерять, и не превышайте её.
- Убедитесь, что у вас десять предметов одного класса и одного типа (StatTrak или обычный).
- Посмотрите возможные исходы в клиенте и посчитайте P(s) по формуле.
- Возьмите цены исходов по фактическим сделкам для соответствующего float.
- Вычислите f_вых для каждого исхода, если float влияет на цену.
- Посчитайте EV с учётом комиссии и сравните с суммой входов.
- Прикиньте, как изменится результат, если цена главного исхода упадёт на четверть.
- Заранее определите число контрактов, после которого вы остановитесь.
Ответственный подход
Контракт обмена прозрачнее других режимов, потому что вероятности можно посчитать, но это не делает его выгодным. Цены исходов меняются, комиссии уменьшают итог, а результат остаётся случайным. Участвуйте только если вам 18 лет и больше, на сумму, которую не жалко потерять, и не рассчитывайте на заработок.
Что почитать дальше
- Как считать ожидаемую стоимость: формула EV, на которой построен расчёт контракта.
- Апгрейд скинов: режим, где шанс задаётся соотношением цен.
- Раздел скинов: справочные страницы скинов верхних классов.