Документация Accelera

Treasures (Сундуки с вероятностями)

Treasures (Сундуки с вероятностями)

Общее описание

Treasures (Сундуки) — это механизм лояльности, позволяющий пользователям получать случайные призы (rewards) согласно заданным вероятностям.

Основные возможности:

  • Администраторы создают различные сундуки
  • Наполняют их призами с настройкой вероятностей выпадения
  • Персонализируют сундуки для конкретных клиентов
  • Используют разные алгоритмы выдачи наград

Сценарий работы

  1. Создание сундука – Администратор создает сундук в системе лояльности
  2. Создание Item – Администратор создает item с type = Treasure и указывает treasure_id созданного сундука
  3. Наполнение призами – Сундук наполняется наградами (rewards)
  4. Настройка вероятностей – Каждому призу назначается вероятность выпадения
  5. Открытие сундука – Пользователь открывает сундук и получает случайный приз согласно выбранному алгоритму выдачи

Связь с Items

Сундуки связаны с сущностью Items:

  • Создается item специального типа Treasure
  • В поле treasure_id указывается ID созданного сундука
  • Пользователь получает item-сундук через механики лояльности
  • При открытии item-сундука срабатывает механика случайной выдачи награды

Структура сундука

ПолеТип данныхОписание
environment_idStringID окружения, к которому принадлежит сундук
idStringУникальный идентификатор сундука
titleStringНазвание сундука (отображаемое имя)
descriptionTextОписание сундука
typeStringТип сундука
algorithm_idStringИдентификатор алгоритма выдачи приза (определяет логику рандомизации)
statusStringСтатус сундука: active, not_active
creatorStringИнформация о создателе сундука (имя пользователя)

Работа с призами в сундуке

Каждый сундук содержит набор призов с назначенными вероятностями.

Наполнение сундука призами

Для наполнения сундука призами необходимо загрузить CSV-файл специального формата.

Формат имени файла:

{{treasure_id}}#Описание.csv

Где:

  • {{treasure_id}} - ID сундука (например, daily_chest)
  • Описание - произвольное текстовое описание

Пример: daily_chest#Награды_декабря.csv

Структура CSV-файла:

ПолеТипОписание
reward_idStringИдентификатор награды (reward)
fromIntegerНачало диапазона вероятности
toIntegerКонец диапазона вероятности
treasures_idStringИдентификатор сундука

Система вероятностей:

  • Диапазон вероятностей: от 1 до 100,000,000
  • Каждому призу назначается числовой диапазон
  • Чем шире диапазон - тем выше вероятность выпадения
  • При открытии сундука генерируется случайное число от 1 до 100,000,000
  • Выдается приз, в чей диапазон попало это число

Пример CSV-файла:

reward_id,from,to,treasures_id

bonus_100,1,50000000,daily_chest

bonus_500,50000001,85000000,daily_chest

bonus_1000,85000001,97000000,daily_chest

premium_item,97000001,100000000,daily_chest

Расчет вероятностей из примера:

ПризДиапазонРазмер диапазонаВероятность
bonus_1001 - 50,000,00050,000,00050%
bonus_50050,000,001 - 85,000,00035,000,00035%
bonus_100085,000,001 - 97,000,00012,000,00012%
premium_item97,000,001 - 100,000,0003,000,0003%

Важно: Диапазоны не должны пересекаться. Последнее значение to должно быть равно 100,000,000 для охвата всего диапазона вероятностей.

Преимущества системы диапазонов

  1. Высокая точность - можно задать вероятности с точностью до 0.000001%
  2. Гибкость - легко добавлять и удалять призы, перераспределяя диапазоны
  3. Прозрачность - сразу видно реальные вероятности каждого приза
  4. Масштабируемость - можно создавать сундуки с сотнями разных наград

Способы задания вероятностей:

  1. Равномерное распределение

    Приз A: 1 - 33,333,333 (33.33%)
    Приз B: 33,333,334 - 66,666,666 (33.33%)
    Приз C: 66,666,667 - 100,000,000 (33.34%)
  2. Градация по редкости

    Обычный: 1 - 70,000,000 (70%)
    Редкий: 70,000,001 - 95,000,000 (25%)
    Легендарный: 95,000,001 - 100,000,000 (5%)
  3. Микро-вероятности для эксклюзивных призов

    Стандартные призы: 1 - 99,900,000 (99.9%)
    Джекпот: 99,900,001 - 100,000,000 (0.1%)

Алгоритмы выдачи призов

Поле algorithm_id определяет логику выдачи наград:

АлгоритмОписаниеПрименение
Simple RandomПростой случайный выбор по заданным вероятностямСтандартная механика случайной выдачи
Guaranteed RareГарантирует выдачу редкого приза после N попытокЗащита от невезения, гарантия ценного приза
No DuplicatesИсключает повторную выдачу одного и того же призаКоллекционные механики, уникальные награды
TieredПризы разделены на уровни (тиры). Сначала определяется уровень, затем приз внутри негоМногоуровневые системы редкости (обычный → редкий → легендарный)

Пример использования Tiered алгоритма:

  1. Определяется уровень: Обычный (70%), Редкий (25%), Легендарный (5%)
  2. Внутри выбранного уровня определяется конкретный приз

Практическое применение

Примеры использования Treasures:

  1. Ежедневные награды – пользователь открывает сундук раз в день и получает случайный приз
  2. Награды за задания – при выполнении задания пользователь получает сундук вместо фиксированной награды
  3. Покупка сундуков – пользователи покупают сундуки за баллы/валюту
  4. Прогрессия редкости – с использованием Guaranteed Rare гарантируется получение редкого приза каждые N открытий
  5. Коллекции – с алгоритмом No Duplicates пользователи собирают полную коллекцию уникальных наград

На этой странице