Перейти к содержимому

Слот-машина

Слот-машина с тремя барабанами и четырьмя уровнями исходов (мимо / вишни / колокольчики / джекпот). Ближе к настоящей слот-машине по UX, чем Рулетка - больше барабанов, больше визуала, более выраженное замедление. Те же кирпичики: frames + onAnimEnd + randActions.

  • Анимацию по нескольким слотам: каждый кадр обновляет 3 барабана сразу
  • Взвешенные таблицы призов (3/1/1/1 в списке randActions примерно равно 60/20/20/что-то)
  • Связку визуальной анимации (финальный кадр показывает три звезды) и реальной выдачи приза (она независима, в randActions)

В items каждого кадра три предмета - по одному на барабан. Все обновляются на одном переходе кадра, поэтому визуально все три барабана крутятся вместе, а не независимо.

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

Визуальные кадры показывают разные комбинации символов. Реальный приз решается в randActions внутри onAnimEnd, полностью независимо от символов на последнем кадре.

Это сделано намеренно. Если бы приз был привязан к визуальному исходу (например, “ты увидел три вишни - вот тебе вишнёвый приз”), пришлось бы контролировать, на каком символе остановится анимация. Это требует динамических кадров на каждый розыгрыш. Сильно сложнее.

Развязанный подход - это то, что и делают настоящие слот-машины. Визуал - театр. Математика - в розыгрыше приза.

  1. Положите бандл в plugins/AbstractMenus/menus/example/.
  2. /am reload.
  3. /eco give <вы> 500.
  4. Введите /ame_slots в игре. Смотрите на вращение. Читайте сообщение с призом.