Счастливый сундук
Лотерейный сундук с оплатой за открытие. Каждый клик стоит $50 и разыгрывает один из четырёх уровней приза (обычный / необычный / редкий / мифический) со взвешенной вероятностью. Сделано на randActions и паттерне “повторяй записи, чтобы добавить вес”.
Что показывает
Заголовок раздела «Что показывает»- Взвешенные случайные исходы через повторение записей в
randActions - Связку правила money, действия takeMoney и randActions в одном click
- Многоуровневую таблицу лута без написания кода на Java
Взвешенный рандом через повторение
Заголовок раздела «Взвешенный рандом через повторение»randActions равномерно выбирает одну запись. Чтобы какие-то исходы были вероятнее, просто включайте их несколько раз. С 12 записями:
- 6 записей обычной награды = 6/12 = 50% (в примере целились в ~60%)
- 3 записи необычной = 3/12 = 25%
- 1 запись редкой = 1/12 = ~8%
- 2 записи мифической = 2/12 = ~17% (целились в 2%, см. примечание)
Список выше многословный - 12 строк на 4 типа приза. Зато он читается куда лучше, чем JS-выражение со взвешенным рандомом, и в нём почти нельзя ошибиться (нет шанса опечататься в весе).
Для более тонких вероятностей (например, 1.5%) используйте список из 200+ записей. Или вынесите приз в отдельный шаблон и ссылайтесь на него много раз, чтобы список оставался компактным:
prizeCommon { itemAdd { material: COOKED_BEEF, count: 12 }, sound: ... }prizeRare { itemAdd { material: ENCHANTED_GOLDEN_APPLE }, sound: ... }
randActions: [ ${prizeCommon} ${prizeCommon} ${prizeCommon} ${prizeRare}]Про точность весов
Заголовок раздела «Про точность весов»Вероятности, которые написаны в lore меню (60/30/8/2), не точно совпадают с реальными весами в списке - демо приближённое, чтобы список был короче. Чтобы получить ровно 60/30/8/2, нужно 50 записей (30/15/4/1). Подгоняйте под себя.
Попробовать
Заголовок раздела «Попробовать»- Положите бандл в
plugins/AbstractMenus/menus/example/. /am reload./eco give <вы> 1000.- Введите
/ame_chestв игре. - Кликните “Открыть сундук”. Повторите, чтобы увидеть разные уровни.