Slotmachine — различия между версиями
Beletsky (обсуждение | вклад) м (→Общие параметры) |
Vgat (обсуждение | вклад) м (→Состояния) |
||
(не показано 15 промежуточных версий 1 участника) | |||
Строка 20: | Строка 20: | ||
** '''scale x''' - масштаб по оси х: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д. | ** '''scale x''' - масштаб по оси х: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д. | ||
** '''scale y''' - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д. | ** '''scale y''' - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д. | ||
+ | * '''файл уровня''' (''levelFile'') - Имя файла с уровнями | ||
* '''вычислять размер''' (''calcsize'') - Вычислять размер исходя из ширины и высоты объекта или использовать размер картинок" ''calcsize'': размер графики = 0, размер объекта = 1 | * '''вычислять размер''' (''calcsize'') - Вычислять размер исходя из ширины и высоты объекта или использовать размер картинок" ''calcsize'': размер графики = 0, размер объекта = 1 | ||
* '''сдвиг по y''' (''y_shift'') - Смещение иконок по y. | * '''сдвиг по y''' (''y_shift'') - Смещение иконок по y. | ||
Строка 27: | Строка 28: | ||
* '''эффект линии''' (''line_obj'') - Машина, обеспечивающая анимацию выигравших линий. Должна иметь состояния line_0 ... line_N (N от 4 до 24) | * '''эффект линии''' (''line_obj'') - Машина, обеспечивающая анимацию выигравших линий. Должна иметь состояния line_0 ... line_N (N от 4 до 24) | ||
[[Файл:Slot_2.PNG|200px|thumb|right|пример машины для анимации линий]] | [[Файл:Slot_2.PNG|200px|thumb|right|пример машины для анимации линий]] | ||
− | * '''ribbon''' (''ribbon_obj'') - Объект типа [[Ribbon]] для эффекта линии. | + | * '''ribbon''' (''ribbon_obj'') - Объект типа [[Ribbon]] для эффекта линии. В нем будут использоваться ресурсы, указанные в доп.параметре с эффектом линии. |
* '''смещение ribbon''' (''ribbon_y_shift'') - Смещение объекта ribbon вниз в % от высоты ячейки. Задается в единицах процентов от 1 до 100. | * '''смещение ribbon''' (''ribbon_y_shift'') - Смещение объекта ribbon вниз в % от высоты ячейки. Задается в единицах процентов от 1 до 100. | ||
* '''последовательные эффекты''' (''order_effects'') - 0 - эффект ячейки выбирается случайно, 1 - эффект ячейки выбирается последовательно (для первой выигравшей - первый по порядку, второй - второй и т.д), 2 - по номеру линии (каждой линии будет соответствовать ресурс для ribbon и ресурс для эффекта ячейки, взятый по порядку из добавляемых свойств. Т.е если комбинация выпала на линии 14, то для неё будут использованы ресурсы, указанные в 14том по порядку добавляемом свойстве). | * '''последовательные эффекты''' (''order_effects'') - 0 - эффект ячейки выбирается случайно, 1 - эффект ячейки выбирается последовательно (для первой выигравшей - первый по порядку, второй - второй и т.д), 2 - по номеру линии (каждой линии будет соответствовать ресурс для ribbon и ресурс для эффекта ячейки, взятый по порядку из добавляемых свойств. Т.е если комбинация выпала на линии 14, то для неё будут использованы ресурсы, указанные в 14том по порядку добавляемом свойстве). | ||
* '''линии или пути''' (''linespath'') - Использовать для вычисления выигрыша линии или пути. | * '''линии или пути''' (''linespath'') - Использовать для вычисления выигрыша линии или пути. | ||
* '''макс. число линий"''' (''max_lines'') - Если задано больше 0, то нельзя поставить более чем на столько линий. Не может превышать число реально заданных линий. При вызове add_bet ставка не сможет превысить это значение. | * '''макс. число линий"''' (''max_lines'') - Если задано больше 0, то нельзя поставить более чем на столько линий. Не может превышать число реально заданных линий. При вызове add_bet ставка не сможет превысить это значение. | ||
+ | * '''последовательные эффекты''' (''order_effects'') - 0 - эффект ячейки выбирается рандомно (описано ниже, исторический параметр, не используется), 1 - эффект ячейки выбирается последовательно (выиграли линии 4,12,25. Для 4 - первый эффект, 12 - второй добавленные и т.д), 2 - по номеру линии (выиграли линии 4,12,25. Для 4 - эффект 4 (порядковый номер в списке добавленных), для 12 - 12-й и т.д). Сделано для того, чтобы номер линии всегда был связан с определенным цветом. Иконка линии обычно окрашена в этот же цвет. | ||
* '''видимых строк''' (''max_rows'') - "высота" слота. Количество строк для отображения. Пр.: Если слот 5х3, то 3. | * '''видимых строк''' (''max_rows'') - "высота" слота. Количество строк для отображения. Пр.: Если слот 5х3, то 3. | ||
* '''подсчет бонусных иконок''' (''bonuscalc'') - 0 - на любом месте на поле, 1 - на активной линии (если играем на 9 линий, а иконки выпали на 11той - бонусная игра не будет запущена), 2 - на активной линии подряд (аналогично предыдущему, но без пропуска иконок по столбцам, т.е на линии и последовательно, как обычная иконка) | * '''подсчет бонусных иконок''' (''bonuscalc'') - 0 - на любом месте на поле, 1 - на активной линии (если играем на 9 линий, а иконки выпали на 11той - бонусная игра не будет запущена), 2 - на активной линии подряд (аналогично предыдущему, но без пропуска иконок по столбцам, т.е на линии и последовательно, как обычная иконка) | ||
− | * '''время подсветки всех линий''' (''allLinesTime'') - время, которое будут показываться ribbon для всех выигравших линий. После окончания этого времени будет вызван обработчик из добавляемого свойства. | + | * '''считать линии в обе стороны''' (''twowayscalc'') - 0-нет, 1-да (обычно линии считаются с самой левой иконки в сторону правой. Есть случаи, когда отдельная иконка или все линии считаются как слева-направо так и справа-налево. В таком случае обязательно (и это учтено в объекте), что награда за 5 выпавших иконок НЕ УДВАИВАЕТСЯ) |
+ | * '''время подсветки всех линий''' (''allLinesTime'') - время, которое будут показываться ribbon для всех выигравших линий. После окончания этого времени будет вызван обработчик из добавляемого свойства. Если значение 0 - сразу идем перебирать эффекты линий (запускается обработчик для начала этой процедуры, которая запускается и управляется НЕ ИЗ ОБЪЕКТА). | ||
* '''прятать иконки линий''' (''lineicohide'') - 0 - не прятать, 1 - по видимости (если линий меньше N, то по vis будут выключены все объекты иконок линий из добавляемого свойства, порядковый номер которых больше N), 2 - первый второй фрейм (если графика доб. объектов-иконок была фреймовой анимацией, то если N меньше максимального кол-ва линий - все объекты иконок линий из добавляемого свойства, порядковый номер которых больше N отобразят второй фрейм). Это сложно описано, я знаю. | * '''прятать иконки линий''' (''lineicohide'') - 0 - не прятать, 1 - по видимости (если линий меньше N, то по vis будут выключены все объекты иконок линий из добавляемого свойства, порядковый номер которых больше N), 2 - первый второй фрейм (если графика доб. объектов-иконок была фреймовой анимацией, то если N меньше максимального кол-ва линий - все объекты иконок линий из добавляемого свойства, порядковый номер которых больше N отобразят второй фрейм). Это сложно описано, я знаю. | ||
+ | * '''показывать все линии при добавлении''' (''alllineswhenadd'') - при изменении кол-ва активных линий (вызове состояний add_line dec_line) показывать или не показывать эффекты для ВСЕХ активных линий. Вызываются последовательно эффекты для каждой линии (выглядит как отрисовка абсолютно всех риббонов, учитывая настройку выше). | ||
* '''чит''' (''cheat'') - Желаемый результат. Будет выпадать всегда, пока это поле заполнено. По сути - это порядковый номер иконки в каждой рельсе. Имеет вид (1, 5, 6, 2, 4). Т.е на поле в позиции [1,1] будет иконка 1 (не id, а порядковый номер в r1[1]), [1,2]==r2[5] и так далее. | * '''чит''' (''cheat'') - Желаемый результат. Будет выпадать всегда, пока это поле заполнено. По сути - это порядковый номер иконки в каждой рельсе. Имеет вид (1, 5, 6, 2, 4). Т.е на поле в позиции [1,1] будет иконка 1 (не id, а порядковый номер в r1[1]), [1,2]==r2[5] и так далее. | ||
* '''число симуляций перед спином''' (''simNum'') - Перед спином будет проведено n симуляций и выбрана лучшая. | * '''число симуляций перед спином''' (''simNum'') - Перед спином будет проведено n симуляций и выбрана лучшая. | ||
Строка 41: | Строка 45: | ||
** '''economics''' (''economics'') - объект экономики, чтобы объект знал о всех параметрах игрока и его прохождении. | ** '''economics''' (''economics'') - объект экономики, чтобы объект знал о всех параметрах игрока и его прохождении. | ||
** '''использовать''' (''use'') - Автоматическое снятие и начисление монет и опыта. Нет - не снимаем ставки, не начисляе выигранное; да - снимаем и начисляем. | ** '''использовать''' (''use'') - Автоматическое снятие и начисление монет и опыта. Нет - не снимаем ставки, не начисляе выигранное; да - снимаем и начисляем. | ||
− | ** '''значения ставок''' (''betValues'') - УПОРЯДОЧЕННЫЙ (я не просто так выделил) массив значений ставки. Значения могут нелинейно расти и шаг может меняться от ставки к ставке. | + | ** '''значения ставок''' (''betValues'') - УПОРЯДОЧЕННЫЙ (я не просто так выделил) массив значений ставки. Значения могут нелинейно расти и шаг может меняться от ставки к ставке. РАЗМЕР этого массива должен точно совпадать с размером следующего. |
** '''уровни ставок''' (''betLevels'') - упорядоченный массив уровней к предыдущему. Обязательно должны совпадать по размеру. Каждому значению из betValues[i] соответствует betLevels[i]. Означает уровень, на котором станет доступной то или иное значение ставки. | ** '''уровни ставок''' (''betLevels'') - упорядоченный массив уровней к предыдущему. Обязательно должны совпадать по размеру. Каждому значению из betValues[i] соответствует betLevels[i]. Означает уровень, на котором станет доступной то или иное значение ставки. | ||
* '''счетчики''': | * '''счетчики''': | ||
Строка 48: | Строка 52: | ||
** '''итого''' (''cntTotalBet'') - отображает суммарную ставку (перемноженные значения из полей выше). Изменяется автоматически при вызове предыдущих состояний. | ** '''итого''' (''cntTotalBet'') - отображает суммарную ставку (перемноженные значения из полей выше). Изменяется автоматически при вызове предыдущих состояний. | ||
− | * '''копилка''': | + | * '''копилка''': при каждом начале спина - происходит снятие ресурса за спин в размере суммарной ставки и в отдельное укромное место (mboxOptions) помещается сумма, равная rand(min;max)*total_bet, если в укромном месте не накопилась сумма большая или равная значению из mboxValues при текущем уровне XP. |
** '''ключ в опциях''' (''mboxOptions'') - Ключ в опциях (КОРРЕКТНОСТЬ ЗНАЧЕНИЙ НА ПОЛЬЗОВАТЕЛЕ) | ** '''ключ в опциях''' (''mboxOptions'') - Ключ в опциях (КОРРЕКТНОСТЬ ЗНАЧЕНИЙ НА ПОЛЬЗОВАТЕЛЕ) | ||
** '''процент min''' (''mboxMin'') - процент min. | ** '''процент min''' (''mboxMin'') - процент min. | ||
Строка 59: | Строка 63: | ||
** '''ячеек для интриги''' (''numi'') - Сколько иконок одного типа должны выпасть (учитывая условия активации бонуса), чтобы запустился режим интриги. | ** '''ячеек для интриги''' (''numi'') - Сколько иконок одного типа должны выпасть (учитывая условия активации бонуса), чтобы запустился режим интриги. | ||
** '''эффект интриги''' (''intrigue_obj'') - Машина, обеспечивающая анимацию при режиме интриги. Будет склонирована в центр рельсы, должна иметь состояние beg. Объект будет скопирован для каждой рельсы, где будет запущен режим. Прячется или при вызове состояния '''hide_animation''' или в начале спина. | ** '''эффект интриги''' (''intrigue_obj'') - Машина, обеспечивающая анимацию при режиме интриги. Будет склонирована в центр рельсы, должна иметь состояние beg. Объект будет скопирован для каждой рельсы, где будет запущен режим. Прячется или при вызове состояния '''hide_animation''' или в начале спина. | ||
+ | |||
+ | *'''расширение wild по вертикали''' - срабатывает (при wildexp_t != -1), когда wild участвует в построении выигрышной цепочки. Расширяется на весь барабан (реализовано для высоты барабана == 3 иконка). После чего происходит еще одна итерация проверки выигрышей. | ||
+ | * '''задержка''' (''wildexp_t'') - | ||
+ | * '''эффект вниз на 2''' (''wildexp_down2'') - машина, которая клонируется для эффекта и помещается в ячейку, которая сработала. Может запускать фреймовую анимацию или видео. Видео должно расширяться вниз. | ||
+ | * '''эффект вверх и вниз''' (''wildexp_updown'') - Видео должно расширяться вниз и вверх на высоту одной иконки. | ||
+ | * '''эффект вверх на 2''' (''wildexp_up2'') - Видео должно расширяться вверх на высоту двух иконок. | ||
+ | |||
* '''рельсы''' - пять полей с номерами иконок. '''ВАЖНО:''' Появление в рельсе иконки с порядковым номером выше, чем максимальное кол-во иконок - вызовет падение viewer с ошибкой в log. | * '''рельсы''' - пять полей с номерами иконок. '''ВАЖНО:''' Появление в рельсе иконки с порядковым номером выше, чем максимальное кол-во иконок - вызовет падение viewer с ошибкой в log. | ||
** '''рельса N''' (''r1..r5'') - Рельса N - номера иконок (начиная с 0) через запятую. Пустая строка - игнорировать рельсу | ** '''рельса N''' (''r1..r5'') - Рельса N - номера иконок (начиная с 0) через запятую. Пустая строка - игнорировать рельсу | ||
Строка 64: | Строка 75: | ||
** '''time''' (''spin_t'') - Время вращения левого барабана. | ** '''time''' (''spin_t'') - Время вращения левого барабана. | ||
** '''time step''' (''spin_t_step'') - Время на которое каждый последующий барабан крутится дольше предыдущего. (''таким образом был реализован эффект последовательной остановки барабанов, как в механической версии данного автомата'') | ** '''time step''' (''spin_t_step'') - Время на которое каждый последующий барабан крутится дольше предыдущего. (''таким образом был реализован эффект последовательной остановки барабанов, как в механической версии данного автомата'') | ||
− | ** '''time delta''' - Случайная погрешность для времени вращения барабана. Нужна для исключения появления устойчивых наборов иконок. Составляет обычно 10% от времени вращения барабана. | + | ** '''time delta''' - Случайная погрешность для времени вращения барабана. Нужна для исключения появления устойчивых наборов иконок. Составляет обычно 10% от времени вращения барабана. Чем больше эта погрешность - тем большее влияние будет давать значение числа симуляций перед окончанием спина. Влияет на разброс места остановки барабана. Не должна давать разброс больше 1-2 иконок. |
** '''vel min''' (''min_vel'') - Минимальная скорость вращения (левый барабан) | ** '''vel min''' (''min_vel'') - Минимальная скорость вращения (левый барабан) | ||
** '''vel max''' (''max_vel'') - Максимальная скорость вращения (правый барабан). | ** '''vel max''' (''max_vel'') - Максимальная скорость вращения (правый барабан). | ||
* '''звуки''': | * '''звуки''': | ||
− | ** барабан вращается (''sndspin'') - барабан вращается. | + | ** барабан вращается (''sndspin'') - барабан вращается. |
+ | ** барабан вращается (''sndspin2'') - барабан вращается. | ||
+ | ** барабан вращается (''sndspin3'') - барабан вращается. | ||
+ | ** барабан вращается (''sndspin4'') - барабан вращается. | ||
+ | Как можно заметить - тут аж 4 звука вращения барабанов. Если указаны все или больше двух, то порядок воспроизведения такой: | ||
+ | Первый спин - первый звук. Второй спин - звук два и так далее зациклено. Если объект был проинициализирован или были бесплатные спины - очередь сбрасывается. Параметры 2-4 являются НЕОБЯЗАТЕЛЬНЫМИ. | ||
+ | ** барабан фриспины (''sndspinf'') - барабан вращается (звук вращения во время бесплатных спинов). | ||
** запуск барабанов (''sndstart'') - запуск барабанов. | ** запуск барабанов (''sndstart'') - запуск барабанов. | ||
− | ** остановка барабана (''sndstop'') - остановка барабана. | + | ** остановка барабана (''sndstop'') - остановка барабана. |
+ | ** остановка барабана (''sndstop2'') - остановка барабана 2. | ||
+ | ** остановка барабана (''sndstop3'') - остановка барабана 3. | ||
+ | ** остановка барабана (''sndstop4'') - остановка барабана 4. | ||
+ | ** остановка барабана (''sndstop5'') - остановка барабана 5. | ||
** выигрыш (''sndwin'') - выигрыш. | ** выигрыш (''sndwin'') - выигрыш. | ||
** проигрыш (''sndfail'') - проигрыш. | ** проигрыш (''sndfail'') - проигрыш. | ||
** особая комбинация (''sndspecial'') - особая комбинация. | ** особая комбинация (''sndspecial'') - особая комбинация. | ||
+ | |||
+ | *'''пять в ряд''' - особый случай,когда длина цепочки равняется числу барабанов. Пример: пять иконок на линии при размере слота 5 на 3. | ||
+ | ** '''объект для картинки''' (''line5_obji'') - Объект, ресурс которого будет заменен на ресурс иконки, которая участвовала в таком событии. Если таких иконок было несколько - выберется самая дорогая из них, учитывая таблицу выплат. | ||
+ | ** '''объект для состояния''' (''line5_objs'') - объект для состояния | ||
+ | ** '''состояние''' (''line5_st'') - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | *'''big win''' - если суммарный выигрыш и суммарная ставка относятся как значение из следующего поля и больше, но меньше чем у mega win, то вызовется этот обработчик. Пример big_value = 5 , mega_value = 25. Если win/total bet >= 5 и <=25, то big win. Если больше 25 - mega win. | ||
+ | ** '''значение''' (''big_value'') - значение отношения. | ||
+ | ** '''каунтер''' (''big_obji'') - счетчик, куда будет помещено значение выигрыша и он будет проанимирован. | ||
+ | ** '''объект для состояния''' (''big_objs'') - объект для состояния | ||
+ | ** '''состояние''' (''big_st'') - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | *'''mega win''' - если суммарный выигрыш и суммарная ставка относятся как значение из следующего поля и больше, то вызовется этот обработчик. | ||
+ | ** '''значение''' (''mega_value'') - значение отношения. | ||
+ | ** '''каунтер''' (''mega_obji'') - счетчик, куда будет помещено значение выигрыша и он будет проанимирован. | ||
+ | ** '''объект для состояния''' (''mega_obji'') - объект для состояния | ||
+ | ** '''состояние''' (''objid'') - Новое состояние для объекта из предыдущего поля. | ||
+ | |||
+ | *'''scatter без scatter''' - включение режима бесплатных спинов БЕЗ иконки типа scatter. | ||
+ | ** '''спинов подряд min''' (''spinspreemin'') - Мин. число спинов подряд для дополнительных скаттеров | ||
+ | ** '''спинов подряд max''' (''spinspreemax'') - Мaкс. число спинов подряд для дополнительных скаттеров | ||
+ | ** '''вероятность''' (''addscatterp'') - Вероятность того, что дадим фриспины | ||
+ | ** '''дать скаттеров min''' (''addscattermin'') - Мин. число скаттеров, которое дадим. | ||
+ | ** '''дать скаттеров max''' (''addscattermax'') - Максимальное число. | ||
+ | |||
+ | Как работает: | ||
+ | Игрок делает спины подряд, не считаем прерыванием цепочки включением дополнительных механик. | ||
+ | Если номер текущего спина в серии больше или равен spinspreemin - каждый спин с вероятностью addscatterp можно получить от addscattermin до addscattermax спинов (равновероятно). | ||
+ | Если номер спина превысил spinspreemax - включаем с вероятностью == 1. Т.е в любом случае. | ||
+ | |||
+ | *'''фри спины''' - | ||
+ | ** '''рельса 1-5''' (''r1s-r5s'') - дополнительные рельсы на бесплатные спины. Заменяют основные. | ||
+ | ** '''осталось спинов''' (''cntFreeSpins'') - сколько осталось спинов из начисленных за выпавшие иконки. Счетчик, который заполняется объектом и перисовывается в начале каждого спина. | ||
+ | ** '''выигрыш''' (''cntFreeSpinsWin'') - сумма всех заработанных монет за выпавшие бесплатные спины. | ||
+ | ** '''задержка перед след. спином выигр''' (''freeWinDelay'') - задержка перед началом следующего спина, если был выигрыш. | ||
+ | ** '''задержка перед след. спином проигр''' (''freeLooseDelay'') - задержка перед началом следующего спина, если был проигрыш. | ||
+ | |||
+ | *'''авто спины''' - | ||
+ | ** '''осталось спинов''' (''cntAutoSpins'') - сколько осталось спинов после запуска режима. Счетчик, который заполняется объектом и перерисовывается в начале каждого спина. | ||
+ | ** '''задержка перед след. спином выигр''' (''autoWinDelay'') - задержка перед началом следующего спина, если был выигрыш. | ||
+ | ** '''задержка перед след. спином проигр''' (''autoLooseDelay'') - задержка перед началом следующего спина, если был проигрыш. | ||
* '''иконка''' (''slotico'') - добавляемый параметр с настройками иконки: | * '''иконка''' (''slotico'') - добавляемый параметр с настройками иконки: | ||
** '''графика''' (''icores'') - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Можно использовать фреймовую анимацию, которая будет использовать все настройки редактора ресурсов. | ** '''графика''' (''icores'') - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Можно использовать фреймовую анимацию, которая будет использовать все настройки редактора ресурсов. | ||
− | ** '''тип''' (''icotype'') - Тип иконки. 0 - обычная, | + | ** '''тип''' (''icotype'') - Тип иконки. 0 - обычная, 2 - Bonus, 1 - Wild, 3 - Scatter, 4- бонусная иконка, начисляет деньги. 0 - обычная иконка. 2 - при выпадении N и больше иконок на барабанах (учитывая настройку выше) - вызывается обработчик. 1 - бонусная иконка, при попадании ее в линию - может заменить любую иконку и даёт возможность продолжить/начать/закончить игровую линию. 3 - механика схожа с бонусной иконкой, но вызывает уже бесплатные спины. 4 - иконка, при выпадении N иконок и более начисляется награда за каждую иконку в размере множитель*суммарная ставка. Множитель пересчитывается для каждой иконки отдельно. |
− | 0 - обычная иконка. | ||
** '''выигрыш''' (''icowin'') - Выигрыш по иконке. За 1, 2, 3 и т.д. иконку в линии. | ** '''выигрыш''' (''icowin'') - Выигрыш по иконке. За 1, 2, 3 и т.д. иконку в линии. | ||
** '''эффект ячейки''' (''icoeffect'') - Объект, который склонируем для выигрышной ячейки. Флаер или машина с состоянием beg без подобъектов | ** '''эффект ячейки''' (''icoeffect'') - Объект, который склонируем для выигрышной ячейки. Флаер или машина с состоянием beg без подобъектов | ||
** '''доп. эффект ячейки''' (''icoeffect2'') - Дополнительный объект удобно использовать для копирования различный flyer-анимаций выигрыша ячейки, при этом основной эффект чаще всего является объектом, которому заменяется графика из полей "эффект ячейки". | ** '''доп. эффект ячейки''' (''icoeffect2'') - Дополнительный объект удобно использовать для копирования различный flyer-анимаций выигрыша ячейки, при этом основной эффект чаще всего является объектом, которому заменяется графика из полей "эффект ячейки". | ||
''если эти поля не заполнены - используются эффекты по умолчанию'' | ''если эти поля не заполнены - используются эффекты по умолчанию'' | ||
+ | ** '''прятать основную картинку при эффекте''' (''icohide'') - прятать ли ресурс иконки при включении основного эффекта ячейки или дополнительного. | ||
+ | ** '''не рисовать следующих''' (''icoskip'') - если хотим отрисовать длинную иконку (высота больше одной иконки, к примеру - равна высоты всей рельсы), то указываем сколько иконок не рисовать после текущей (в рельсе это выглядит как 222), при этом точку пивота у графики следует разместить в верхней трети. | ||
+ | ** '''объект иконка''' (''icoobj'') - объект, в который поместим графику иконки из поля icores. Нужна для оформления таблицы выплат. | ||
+ | ** '''объект текст''' (''icotxt'') - объект, в который поместим значения выплат из поля icowin. Нужна для оформления таблицы выплат. | ||
+ | ** '''цвет 1''' (''icocolor1'') - цвет, который будем использовать в текстовом объекте. | ||
+ | ** '''цвет 2''' (''icocolor2'') - <цвет 1>5 - </цвет 1><цвет 2>icowin[5]|</цвет 2><цвет 1>4 - </цвет 1><цвет 2>icowin[4]|</цвет 2> и так далее. | ||
+ | ** '''превращаться в вайлд при соседях''' (''transwild'') - Для слота "Русалки". Превращаться в вайлд при соседях, у которых этот параметр так же равен единицы. Только при активных фриспинах. При срабатывании включаем эффект превращения. | ||
+ | ** '''эффект превращения''' (''transwildeffect'') - эффект превращения | ||
+ | ** '''направление''' (''dir'') - 0-слева направо, 1-справа налево, 2-обе. Эта настройка нужна для того, чтобы не у всех линий менять направление подсчета выигрыша, а только у конкретной иконки (к примеру у дорогой, которая очень редко встречается). | ||
+ | ** '''тип 4. кол-во''' (''type4val'') - только для типа 4. Сколько иконок типа должно появиться, чтобы сработал эффект, срабатывает если больше 0 хотя бы один элемент из массива. | ||
+ | ** '''тип 4. мин''' (''type4min'') - массив целых через запятую, означает нижний предел множителя. | ||
+ | ** '''тип 4. макс''' (''type4max'') - массив целых через запятую, означает верхний предел множителя. | ||
+ | ** '''тип 4. текст''' (''type4text'') - id объекта, счетчик. Сумма выигрыша помещается в значение счетчика, после чего он анимируется. | ||
+ | ** '''тип 4. dx''' (''type4dx'') - смещение счетчика относительно пивота иконки по x | ||
+ | ** '''тип 4. dy''' (''type4dy'') - смещение счетчика относительно пивота иконки по у | ||
+ | ** '''звук''' (''icosnd'') - звук иконки. Срабатывает после выигрыша иконки. | ||
+ | |||
+ | |||
<pre> | <pre> | ||
Пример: | Пример: | ||
Строка 117: | Строка 196: | ||
** '''add_bet''' - увеличить ставку (значение ставки берется из соответствующего поля. Максимальное и минимальное значения зависят от уровня опыта игрока) | ** '''add_bet''' - увеличить ставку (значение ставки берется из соответствующего поля. Максимальное и минимальное значения зависят от уровня опыта игрока) | ||
** '''dec_bet''' - уменьшить ставку | ** '''dec_bet''' - уменьшить ставку | ||
+ | ** '''max_bet''' - поставить максимальную ставку | ||
** '''start_free_spins''' - начать режим бесплатных спинов (если scatter_num > 0). | ** '''start_free_spins''' - начать режим бесплатных спинов (если scatter_num > 0). | ||
** '''pause_free_spins''' - приостановить режим бесплатных спинов. Скопирует значение из scatter_num в опции по ключу slot%id%.saved_scatter. При этом scatter_num обнуляется. | ** '''pause_free_spins''' - приостановить режим бесплатных спинов. Скопирует значение из scatter_num в опции по ключу slot%id%.saved_scatter. При этом scatter_num обнуляется. | ||
** '''resume_free_spins''' - продолжить бесплатные спины. Скопирует значение по ключу и вставит его в scatter_num. | ** '''resume_free_spins''' - продолжить бесплатные спины. Скопирует значение по ключу и вставит его в scatter_num. | ||
** '''autotest''' - для текущего lvlNum запустит автоматический спин с текущей ставкой и кол-вом линий N раз. N берется из param у объекта. | ** '''autotest''' - для текущего lvlNum запустит автоматический спин с текущей ставкой и кол-вом линий N раз. N берется из param у объекта. | ||
− | ** '''''' - | + | ** '''clear_spree''' - очищаем очередь спинов для scatter без scatter |
− | ** '''''' - | + | ** '''clear_stats''' - очищаем параметры для статистики. |
== Добавляемые параметры == | == Добавляемые параметры == | ||
Строка 136: | Строка 216: | ||
*'''объект'''- объект - состояние которого меняем. | *'''объект'''- объект - состояние которого меняем. | ||
*'''состояние'''- состояние - значение нового состояния | *'''состояние'''- состояние - значение нового состояния | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - были бонусные ячейки''' - bonus_num стал больше нуля, что означает, что выпали бонусные иконки. Запускается обработчик. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - есть свободные спины''' - scatter_num стал больше нуля, что означает, что выпали бонусные иконки. Запускается обработчик. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - конец фри спинов''' - scatter_num стал равен нулю. Не вызывается после паузы бесплатных спинов. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - недостаточно денег''' - при попытке начать спин: баланс игрока строго меньше суммарной ставки. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - переход из alllines в nextline''' - если время в параметре больше нуля, то по истечении этого времени вызовется этот обработчик. Если время равно нулю - вызовется без задержки. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - начало вращения''' - после успешного начала спина вызываем обработчик. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - начало автоспинов''' - после успешного начала автоспинов. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - досрочное окончание автоспинов''' - автоспины были оборваны игроком. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - окончание автоспинов''' - указанное кол-во автоспинов закончилось. | ||
+ | |||
+ | [[Файл:+.png]] '''изменить состояние объекта - копилка заполнилась''' - копилка заполнилась. | ||
+ | |||
+ | [[Файл:+.png]] '''замена графики''' - объекты и графика для них в зависимости от режимов (обычный, бесплатные спины, интрига). | ||
+ | *'''объект''' - id объекта | ||
+ | *'''нормальная''' - графика обычного спина | ||
+ | *'''фриспины''' - графика бесплатного спина | ||
+ | *'''рельса интриги''' - порядковый номер подложки рельсы, начиная с самого левого барабана. | ||
+ | *''интрига'''' - графика режима "интрига". | ||
+ | |||
+ | [[Файл:+.png]] '''фриспины за расклад''' - если на поле выпали иконки, где каждая "строка" слота совпадает с шаблоном - начисляем бесплатные спины. | ||
+ | *'''расклад для строки''' - массив целых через запятую, обозначающих первую строку. Длина массива == кол-во барабанов. | ||
+ | *'''число фриспинов''' - кол-во бесплатных спинов, которое начислим за выпадение такой комбинации | ||
+ | |||
+ | [[Файл:+.png]] '''''' - | ||
+ | |||
[[Файл:+.png]] '''иконка линии''' - При наличии объектов, которые каким-либо образом обозначают начало линии - указываем их через добавляемое свойство по порядку, начиная с нуля. Эффект линии в виде объекта ribbon будет рисоваться начиная (или заканчивая) этими объектами. | [[Файл:+.png]] '''иконка линии''' - При наличии объектов, которые каким-либо образом обозначают начало линии - указываем их через добавляемое свойство по порядку, начиная с нуля. Эффект линии в виде объекта ribbon будет рисоваться начиная (или заканчивая) этими объектами. | ||
Строка 145: | Строка 259: | ||
Графика в виде фреймовой анимации. Допустим у нас есть набор из 8-ми анимаций. | Графика в виде фреймовой анимации. Допустим у нас есть набор из 8-ми анимаций. | ||
− | Работает такая логика при выборе графики: | + | Работает такая логика при выборе графики (если стоит настройка СЛУЧАЙНО): |
1. При любом выигрыше графика эффекта ячейки для первой показываемой линии выбирается случайно из набора, но не повторяется с первой выбранной для предыдущего выигрышного спина. | 1. При любом выигрыше графика эффекта ячейки для первой показываемой линии выбирается случайно из набора, но не повторяется с первой выбранной для предыдущего выигрышного спина. | ||
Строка 165: | Строка 279: | ||
где 0..7 — номера анимаций. | где 0..7 — номера анимаций. | ||
</pre> | </pre> | ||
+ | |||
+ | ==Дополнительные настройки механик== | ||
+ | |||
+ | ===Scatter без scatter=== | ||
+ | |||
+ | Есть возможность начислять бесплатные спины без использования специальной иконки. | ||
+ | |||
+ | Для этого разработана такая методика: | ||
+ | После совершения подряд MIN спинов - после каждого последующего спина до MAX есть вероятность P начислить игроку N бесплатных спинов. | ||
+ | Если номер спина в последовательности спинов превысил MAX, то бесплатные спины начисляются с вероятностью P=1. | ||
+ | |||
+ | При этом указываем | ||
+ | |||
+ | <code> | ||
+ | spinspreemin="16" spinspreemax="66" addscatterp="0.03" addscattermin="7" addscattermax="9" | ||
+ | </code> | ||
+ | |||
+ | Это значит, что начиная с 16-го спина по 66-й включительно с вероятностью 3% будет начислено от 7 до 9ти бесплатных спинов (7,8 или 9 равновероятно). | ||
+ | |||
+ | При чем во время самих бесплатных спинов очередь продолжается, но так как 16>7, то выпасть дополнительные спины во время бесплатных не могут. | ||
+ | |||
+ | Перед выходом из слота ОБЯЗАТЕЛЬНО очищаем очередь путём вызова объекту состояния *clear_spree*. | ||
+ | |||
+ | Частота выпадения бесплатных спинов и регулировка отдачи с их помощью можно осуществить изменяя параметры addscatterp и spinspreemin/spinspreemax. | ||
+ | |||
+ | ===Линии или пути=== | ||
+ | |||
+ | Часто можно встретить вместо привычных линий так называемые "пути" или "ways". И их почему-то огромное кол-во, в сравнении с линиями. | ||
+ | 243 ways на слоте с тремя рядами и пятью барабанами. Это означает то, что мы играем сразу на все возможные линии, которых всего может быть 3^5=243. Таким же образом в слоте 4x5 всего 1024 пути. | ||
+ | |||
+ | При этом ставка на линию чаще всего преобразуется в абсолютно аналогичный "множитель", а кол-во линий (хоть и будет называться coins) - фиксированная величина. Т.е для самой математики подсчета суммарной ставки - ничего не поменялось. Выплата так же будет зависеть от "множителя". | ||
+ | |||
+ | При этом сам выигрыш можно считать как наличие иконки определенного типа последовательно на рельсах без пропусков. | ||
+ | |||
+ | Пример: иконка1 встретилась на 1-й, 2-й и 3-ей рельсе по одной на каждой. Иконка1 участвовала в построении выигрышной цепочки длинной 3 иконки. | ||
+ | |||
+ | У объекта в GData можно найти параметр linespath=0 или 1. Удобно ориентироваться по нему для изменений в UI, к примеру. | ||
+ | |||
+ | ===Превращение в wild при соседях=== | ||
+ | |||
+ | Механика, позволяющая наделить обычную иконку св-вами wild при особых условиях. | ||
+ | Условия: | ||
+ | Режим бесплатных спинов активен. | ||
+ | На соседних рельсах попали иконки, у которых параметр transwild=1. | ||
+ | [[Файл:mermaid_free_spins_wild.png|200px|thumb|left]] | ||
+ | При выполнении условий у иконок включается специальный эффект, который может являться машиной, которая запускает видео/фреймовую анимацию. | ||
+ | |||
+ | ===Тип иконки 4=== | ||
+ | |||
+ | Данный тип иконки нужен для начисления ресурса1 за выпадение N иконок на поле. | ||
+ | Т.е условия запуска механики такие же, как и для иконки scatter. | ||
+ | Но в данном случае начисляются не бесплатные спины, а ресурс. | ||
+ | |||
+ | А вот и пример: | ||
+ | |||
+ | <code> | ||
+ | <slotico icores="1080" icotype="4" icowin="0,0,0,0,0,0" type4val="3" type4min="0,0,0,1,5,10" type4max="0,0,0,3,15,20" type4text="2383" type4dx="-5" type4dy="45" icoobj="3566" icohide="1" icoeffect2="5409"/> | ||
+ | </code> | ||
+ | |||
+ | Обратите внимание, что массивы type4min и type4max - связаны. | ||
+ | |||
+ | Как это работает: | ||
+ | Выпало 3 иконки на поле. | ||
+ | Для них мы включаем эффект2, сами иконки прячем. | ||
+ | За каждую иконку начисляем от type4min[3] до type4max[3] суммарных ставок. | ||
+ | Суммарная ставка была 100 монет. Выпало три иконки. За первую мы начисляем 100, 200 или 300 монет. За вторую и за третью аналогично. | ||
+ | Поверх эффекта2 будет отрисован и проанимирован счетчик type4text, со значением равным выигрышу за каждую из иконок соответственно. | ||
+ | При этом счетчик будет смещен на type4dx и type4dy относительно центра иконки (которая совпадает с пересечением диагоналей ячейки). | ||
+ | |||
+ | ==Автотест== | ||
+ | |||
+ | Запускается автотест из viewer путём вызова состояния *autospin* объекту слота. | ||
+ | |||
+ | Дополнительные параметры param - кол-во спинов, которые будут сделаны и param2 - кол-во итераций. | ||
+ | |||
+ | После начала режима создается файл возле options.xml с результатами автотеста, который заполняется по ходу работы. | ||
+ | |||
+ | Файл имеет название id из файла уровней _ кол-во спинов из param _ name из файла уровней _ месяц _ день _ часы _ минуты | ||
+ | Если на момент запуска новой итерации время не изменилось - идет дозапись в текущий файл. | ||
+ | |||
+ | Внутри csv-файла видим таблицу | ||
+ | |||
+ | {| class="wikitable" style="text-align: center" | ||
+ | |spin | ||
+ | |slot id | ||
+ | |lines | ||
+ | |line bet | ||
+ | |res1before | ||
+ | |res1after | ||
+ | |win | ||
+ | |type | ||
+ | |pos1 | ||
+ | |pos2 | ||
+ | |pos3 | ||
+ | |pos4 | ||
+ | |pos5 | ||
+ | |bonus_num | ||
+ | |- | ||
+ | |номер спина | ||
+ | |id из файла уровней | ||
+ | |сколько линий | ||
+ | |какая ставка на линию | ||
+ | |баланс до спина | ||
+ | |баланс после спина | ||
+ | |выигрыш за спин | ||
+ | |тип спина r/f обычный/бесплатный | ||
+ | |позиция на рельсе1 | ||
+ | |позиция на рельсе2 | ||
+ | |позиция на рельсе3 | ||
+ | |позиция на рельсе4 | ||
+ | |позиция на рельсе5 | ||
+ | |множитель бонусный игры, если был | ||
+ | |} | ||
+ | |||
+ | По окончанию итерации будет выведена краткая статистика: | ||
+ | |||
+ | return = отдача | ||
+ | |||
+ | free spins = кол-во бесплатных спинов | ||
+ | |||
+ | win spins = количество победных спинов | ||
+ | |||
+ | bonus spins = кол-во бонусных игр | ||
+ | |||
+ | big win = кол-во big win | ||
+ | |||
+ | mega win = кол-во mega win | ||
+ | |||
+ | |||
+ | |||
[[Категория:Game mechanic]] | [[Категория:Game mechanic]] |
Текущая версия на 08:54, 23 января 2017
Slotmachine является объектом для реализации игр с механикой игровых автоматов. Slotmachine не просто управляет движением иконок на барабанах - он отвечает за анимацию выигранных линий и добавления новых линий для подсчета очков.
Общие параметры
(см. описание Object)
- тип - тип объекта
- имя - имя объекта
- синхронизация - синхронизация между лейаутами
- положение
- x - положение объекта по оси х
- y - положение объекта по оси y
- размер
- w - ширина объекта в пикслях
- h - высота объекта в пикселях
- модификаторы
- alpha - прозрачность объекта от 0 (прозрачен) до 1 (не прозрачен)
- angle - угол поворота в градусах. 0 - не повернут. Отсчитывается от оси х вниз. Вверх идут отрицательные углы.
- scale x - масштаб по оси х: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.
- scale y - масштаб по оси y: 1 - не изменен, 1.5 - увеличен в полтора раза, и т.д.
- файл уровня (levelFile) - Имя файла с уровнями
- вычислять размер (calcsize) - Вычислять размер исходя из ширины и высоты объекта или использовать размер картинок" calcsize: размер графики = 0, размер объекта = 1
- сдвиг по y (y_shift) - Смещение иконок по y.
- множитель скорости (speedm) - Множитель скорости для изменения направления вращения барабана.
- эффект ячейки (effect_obj) - Объект, который склонируем для выигрышной ячейки. Флаер или машина с состоянием beg без подобъектов
- доп. эффект ячейки (effect_obj2) - Объект, который склонируем для выигрышной ячейки. Флаер или машина с состоянием beg без подобъектов. Дополнительный объект удобно использовать для копирования различный flyer-анимаций выигрыша ячейки, при этом основной эффект чаще всего является объектом, которому заменяется графика из полей "эффект ячейки".
- эффект линии (line_obj) - Машина, обеспечивающая анимацию выигравших линий. Должна иметь состояния line_0 ... line_N (N от 4 до 24)
- ribbon (ribbon_obj) - Объект типа Ribbon для эффекта линии. В нем будут использоваться ресурсы, указанные в доп.параметре с эффектом линии.
- смещение ribbon (ribbon_y_shift) - Смещение объекта ribbon вниз в % от высоты ячейки. Задается в единицах процентов от 1 до 100.
- последовательные эффекты (order_effects) - 0 - эффект ячейки выбирается случайно, 1 - эффект ячейки выбирается последовательно (для первой выигравшей - первый по порядку, второй - второй и т.д), 2 - по номеру линии (каждой линии будет соответствовать ресурс для ribbon и ресурс для эффекта ячейки, взятый по порядку из добавляемых свойств. Т.е если комбинация выпала на линии 14, то для неё будут использованы ресурсы, указанные в 14том по порядку добавляемом свойстве).
- линии или пути (linespath) - Использовать для вычисления выигрыша линии или пути.
- макс. число линий" (max_lines) - Если задано больше 0, то нельзя поставить более чем на столько линий. Не может превышать число реально заданных линий. При вызове add_bet ставка не сможет превысить это значение.
- последовательные эффекты (order_effects) - 0 - эффект ячейки выбирается рандомно (описано ниже, исторический параметр, не используется), 1 - эффект ячейки выбирается последовательно (выиграли линии 4,12,25. Для 4 - первый эффект, 12 - второй добавленные и т.д), 2 - по номеру линии (выиграли линии 4,12,25. Для 4 - эффект 4 (порядковый номер в списке добавленных), для 12 - 12-й и т.д). Сделано для того, чтобы номер линии всегда был связан с определенным цветом. Иконка линии обычно окрашена в этот же цвет.
- видимых строк (max_rows) - "высота" слота. Количество строк для отображения. Пр.: Если слот 5х3, то 3.
- подсчет бонусных иконок (bonuscalc) - 0 - на любом месте на поле, 1 - на активной линии (если играем на 9 линий, а иконки выпали на 11той - бонусная игра не будет запущена), 2 - на активной линии подряд (аналогично предыдущему, но без пропуска иконок по столбцам, т.е на линии и последовательно, как обычная иконка)
- считать линии в обе стороны (twowayscalc) - 0-нет, 1-да (обычно линии считаются с самой левой иконки в сторону правой. Есть случаи, когда отдельная иконка или все линии считаются как слева-направо так и справа-налево. В таком случае обязательно (и это учтено в объекте), что награда за 5 выпавших иконок НЕ УДВАИВАЕТСЯ)
- время подсветки всех линий (allLinesTime) - время, которое будут показываться ribbon для всех выигравших линий. После окончания этого времени будет вызван обработчик из добавляемого свойства. Если значение 0 - сразу идем перебирать эффекты линий (запускается обработчик для начала этой процедуры, которая запускается и управляется НЕ ИЗ ОБЪЕКТА).
- прятать иконки линий (lineicohide) - 0 - не прятать, 1 - по видимости (если линий меньше N, то по vis будут выключены все объекты иконок линий из добавляемого свойства, порядковый номер которых больше N), 2 - первый второй фрейм (если графика доб. объектов-иконок была фреймовой анимацией, то если N меньше максимального кол-ва линий - все объекты иконок линий из добавляемого свойства, порядковый номер которых больше N отобразят второй фрейм). Это сложно описано, я знаю.
- показывать все линии при добавлении (alllineswhenadd) - при изменении кол-ва активных линий (вызове состояний add_line dec_line) показывать или не показывать эффекты для ВСЕХ активных линий. Вызываются последовательно эффекты для каждой линии (выглядит как отрисовка абсолютно всех риббонов, учитывая настройку выше).
- чит (cheat) - Желаемый результат. Будет выпадать всегда, пока это поле заполнено. По сути - это порядковый номер иконки в каждой рельсе. Имеет вид (1, 5, 6, 2, 4). Т.е на поле в позиции [1,1] будет иконка 1 (не id, а порядковый номер в r1[1]), [1,2]==r2[5] и так далее.
- число симуляций перед спином (simNum) - Перед спином будет проведено n симуляций и выбрана лучшая.
- ставки:
- economics (economics) - объект экономики, чтобы объект знал о всех параметрах игрока и его прохождении.
- использовать (use) - Автоматическое снятие и начисление монет и опыта. Нет - не снимаем ставки, не начисляе выигранное; да - снимаем и начисляем.
- значения ставок (betValues) - УПОРЯДОЧЕННЫЙ (я не просто так выделил) массив значений ставки. Значения могут нелинейно расти и шаг может меняться от ставки к ставке. РАЗМЕР этого массива должен точно совпадать с размером следующего.
- уровни ставок (betLevels) - упорядоченный массив уровней к предыдущему. Обязательно должны совпадать по размеру. Каждому значению из betValues[i] соответствует betLevels[i]. Означает уровень, на котором станет доступной то или иное значение ставки.
- счетчики:
- число линий (cntLinesNum) - изменяется при вызове add_line, remove_line и отображает текущее число активных линий.
- ставка на линию (cntLineBet) - изменяется при вызове add_bet, dec_bet и отображает текущую ставку.
- итого (cntTotalBet) - отображает суммарную ставку (перемноженные значения из полей выше). Изменяется автоматически при вызове предыдущих состояний.
- копилка: при каждом начале спина - происходит снятие ресурса за спин в размере суммарной ставки и в отдельное укромное место (mboxOptions) помещается сумма, равная rand(min;max)*total_bet, если в укромном месте не накопилась сумма большая или равная значению из mboxValues при текущем уровне XP.
- ключ в опциях (mboxOptions) - Ключ в опциях (КОРРЕКТНОСТЬ ЗНАЧЕНИЙ НА ПОЛЬЗОВАТЕЛЕ)
- процент min (mboxMin) - процент min.
- процент max (mboxMax) - процент max.
- значения предела (mboxValues) - Значения предела
- уровни предела (mboxLevels) - Уровни предела
- интрига:
- множитель интриги (speedi) - Множитель скорости для режима интриги.
- ячеек для интриги (numi) - Сколько иконок одного типа должны выпасть (учитывая условия активации бонуса), чтобы запустился режим интриги.
- эффект интриги (intrigue_obj) - Машина, обеспечивающая анимацию при режиме интриги. Будет склонирована в центр рельсы, должна иметь состояние beg. Объект будет скопирован для каждой рельсы, где будет запущен режим. Прячется или при вызове состояния hide_animation или в начале спина.
- расширение wild по вертикали - срабатывает (при wildexp_t != -1), когда wild участвует в построении выигрышной цепочки. Расширяется на весь барабан (реализовано для высоты барабана == 3 иконка). После чего происходит еще одна итерация проверки выигрышей.
- задержка (wildexp_t) -
- эффект вниз на 2 (wildexp_down2) - машина, которая клонируется для эффекта и помещается в ячейку, которая сработала. Может запускать фреймовую анимацию или видео. Видео должно расширяться вниз.
- эффект вверх и вниз (wildexp_updown) - Видео должно расширяться вниз и вверх на высоту одной иконки.
- эффект вверх на 2 (wildexp_up2) - Видео должно расширяться вверх на высоту двух иконок.
- рельсы - пять полей с номерами иконок. ВАЖНО: Появление в рельсе иконки с порядковым номером выше, чем максимальное кол-во иконок - вызовет падение viewer с ошибкой в log.
- рельса N (r1..r5) - Рельса N - номера иконок (начиная с 0) через запятую. Пустая строка - игнорировать рельсу
- параметры вращения:
- time (spin_t) - Время вращения левого барабана.
- time step (spin_t_step) - Время на которое каждый последующий барабан крутится дольше предыдущего. (таким образом был реализован эффект последовательной остановки барабанов, как в механической версии данного автомата)
- time delta - Случайная погрешность для времени вращения барабана. Нужна для исключения появления устойчивых наборов иконок. Составляет обычно 10% от времени вращения барабана. Чем больше эта погрешность - тем большее влияние будет давать значение числа симуляций перед окончанием спина. Влияет на разброс места остановки барабана. Не должна давать разброс больше 1-2 иконок.
- vel min (min_vel) - Минимальная скорость вращения (левый барабан)
- vel max (max_vel) - Максимальная скорость вращения (правый барабан).
- звуки:
- барабан вращается (sndspin) - барабан вращается.
- барабан вращается (sndspin2) - барабан вращается.
- барабан вращается (sndspin3) - барабан вращается.
- барабан вращается (sndspin4) - барабан вращается.
Как можно заметить - тут аж 4 звука вращения барабанов. Если указаны все или больше двух, то порядок воспроизведения такой: Первый спин - первый звук. Второй спин - звук два и так далее зациклено. Если объект был проинициализирован или были бесплатные спины - очередь сбрасывается. Параметры 2-4 являются НЕОБЯЗАТЕЛЬНЫМИ.
- барабан фриспины (sndspinf) - барабан вращается (звук вращения во время бесплатных спинов).
- запуск барабанов (sndstart) - запуск барабанов.
- остановка барабана (sndstop) - остановка барабана.
- остановка барабана (sndstop2) - остановка барабана 2.
- остановка барабана (sndstop3) - остановка барабана 3.
- остановка барабана (sndstop4) - остановка барабана 4.
- остановка барабана (sndstop5) - остановка барабана 5.
- выигрыш (sndwin) - выигрыш.
- проигрыш (sndfail) - проигрыш.
- особая комбинация (sndspecial) - особая комбинация.
- пять в ряд - особый случай,когда длина цепочки равняется числу барабанов. Пример: пять иконок на линии при размере слота 5 на 3.
- объект для картинки (line5_obji) - Объект, ресурс которого будет заменен на ресурс иконки, которая участвовала в таком событии. Если таких иконок было несколько - выберется самая дорогая из них, учитывая таблицу выплат.
- объект для состояния (line5_objs) - объект для состояния
- состояние (line5_st) - Новое состояние для объекта из предыдущего поля.
- big win - если суммарный выигрыш и суммарная ставка относятся как значение из следующего поля и больше, но меньше чем у mega win, то вызовется этот обработчик. Пример big_value = 5 , mega_value = 25. Если win/total bet >= 5 и <=25, то big win. Если больше 25 - mega win.
- значение (big_value) - значение отношения.
- каунтер (big_obji) - счетчик, куда будет помещено значение выигрыша и он будет проанимирован.
- объект для состояния (big_objs) - объект для состояния
- состояние (big_st) - Новое состояние для объекта из предыдущего поля.
- mega win - если суммарный выигрыш и суммарная ставка относятся как значение из следующего поля и больше, то вызовется этот обработчик.
- значение (mega_value) - значение отношения.
- каунтер (mega_obji) - счетчик, куда будет помещено значение выигрыша и он будет проанимирован.
- объект для состояния (mega_obji) - объект для состояния
- состояние (objid) - Новое состояние для объекта из предыдущего поля.
- scatter без scatter - включение режима бесплатных спинов БЕЗ иконки типа scatter.
- спинов подряд min (spinspreemin) - Мин. число спинов подряд для дополнительных скаттеров
- спинов подряд max (spinspreemax) - Мaкс. число спинов подряд для дополнительных скаттеров
- вероятность (addscatterp) - Вероятность того, что дадим фриспины
- дать скаттеров min (addscattermin) - Мин. число скаттеров, которое дадим.
- дать скаттеров max (addscattermax) - Максимальное число.
Как работает: Игрок делает спины подряд, не считаем прерыванием цепочки включением дополнительных механик. Если номер текущего спина в серии больше или равен spinspreemin - каждый спин с вероятностью addscatterp можно получить от addscattermin до addscattermax спинов (равновероятно). Если номер спина превысил spinspreemax - включаем с вероятностью == 1. Т.е в любом случае.
- фри спины -
- рельса 1-5 (r1s-r5s) - дополнительные рельсы на бесплатные спины. Заменяют основные.
- осталось спинов (cntFreeSpins) - сколько осталось спинов из начисленных за выпавшие иконки. Счетчик, который заполняется объектом и перисовывается в начале каждого спина.
- выигрыш (cntFreeSpinsWin) - сумма всех заработанных монет за выпавшие бесплатные спины.
- задержка перед след. спином выигр (freeWinDelay) - задержка перед началом следующего спина, если был выигрыш.
- задержка перед след. спином проигр (freeLooseDelay) - задержка перед началом следующего спина, если был проигрыш.
- авто спины -
- осталось спинов (cntAutoSpins) - сколько осталось спинов после запуска режима. Счетчик, который заполняется объектом и перерисовывается в начале каждого спина.
- задержка перед след. спином выигр (autoWinDelay) - задержка перед началом следующего спина, если был выигрыш.
- задержка перед след. спином проигр (autoLooseDelay) - задержка перед началом следующего спина, если был проигрыш.
- иконка (slotico) - добавляемый параметр с настройками иконки:
- графика (icores) - Графический ресурс для отображения объекта. Перетаскивается мышкой из редактора ресурсов (поле должно находится в состоянии редактирования). Можно использовать фреймовую анимацию, которая будет использовать все настройки редактора ресурсов.
- тип (icotype) - Тип иконки. 0 - обычная, 2 - Bonus, 1 - Wild, 3 - Scatter, 4- бонусная иконка, начисляет деньги. 0 - обычная иконка. 2 - при выпадении N и больше иконок на барабанах (учитывая настройку выше) - вызывается обработчик. 1 - бонусная иконка, при попадании ее в линию - может заменить любую иконку и даёт возможность продолжить/начать/закончить игровую линию. 3 - механика схожа с бонусной иконкой, но вызывает уже бесплатные спины. 4 - иконка, при выпадении N иконок и более начисляется награда за каждую иконку в размере множитель*суммарная ставка. Множитель пересчитывается для каждой иконки отдельно.
- выигрыш (icowin) - Выигрыш по иконке. За 1, 2, 3 и т.д. иконку в линии.
- эффект ячейки (icoeffect) - Объект, который склонируем для выигрышной ячейки. Флаер или машина с состоянием beg без подобъектов
- доп. эффект ячейки (icoeffect2) - Дополнительный объект удобно использовать для копирования различный flyer-анимаций выигрыша ячейки, при этом основной эффект чаще всего является объектом, которому заменяется графика из полей "эффект ячейки".
если эти поля не заполнены - используются эффекты по умолчанию
- прятать основную картинку при эффекте (icohide) - прятать ли ресурс иконки при включении основного эффекта ячейки или дополнительного.
- не рисовать следующих (icoskip) - если хотим отрисовать длинную иконку (высота больше одной иконки, к примеру - равна высоты всей рельсы), то указываем сколько иконок не рисовать после текущей (в рельсе это выглядит как 222), при этом точку пивота у графики следует разместить в верхней трети.
- объект иконка (icoobj) - объект, в который поместим графику иконки из поля icores. Нужна для оформления таблицы выплат.
- объект текст (icotxt) - объект, в который поместим значения выплат из поля icowin. Нужна для оформления таблицы выплат.
- цвет 1 (icocolor1) - цвет, который будем использовать в текстовом объекте.
- цвет 2 (icocolor2) - <цвет 1>5 - </цвет 1><цвет 2>icowin[5]|</цвет 2><цвет 1>4 - </цвет 1><цвет 2>icowin[4]|</цвет 2> и так далее.
- превращаться в вайлд при соседях (transwild) - Для слота "Русалки". Превращаться в вайлд при соседях, у которых этот параметр так же равен единицы. Только при активных фриспинах. При срабатывании включаем эффект превращения.
- эффект превращения (transwildeffect) - эффект превращения
- направление (dir) - 0-слева направо, 1-справа налево, 2-обе. Эта настройка нужна для того, чтобы не у всех линий менять направление подсчета выигрыша, а только у конкретной иконки (к примеру у дорогой, которая очень редко встречается).
- тип 4. кол-во (type4val) - только для типа 4. Сколько иконок типа должно появиться, чтобы сработал эффект, срабатывает если больше 0 хотя бы один элемент из массива.
- тип 4. мин (type4min) - массив целых через запятую, означает нижний предел множителя.
- тип 4. макс (type4max) - массив целых через запятую, означает верхний предел множителя.
- тип 4. текст (type4text) - id объекта, счетчик. Сумма выигрыша помещается в значение счетчика, после чего он анимируется.
- тип 4. dx (type4dx) - смещение счетчика относительно пивота иконки по x
- тип 4. dy (type4dy) - смещение счетчика относительно пивота иконки по у
- звук (icosnd) - звук иконки. Срабатывает после выигрыша иконки.
Пример: 0, 1, 0, 0 - за строку начисляется выигрыш (1), если подряд попадается одна такая иконка. 0, 0, 10, 0 - за строку начисляется выигрыш (10 очков), если подряд попадаются две таких иконки. 0, 0, 0, 5 - за строку начисляется выигрыш (5 очков), если подряд попадаются три таких иконки.
Важно! Иконки в линии считаются слева направо. На изображении линии 6 и 7 перепутаны.
Текущий выигрыш можно узнать считав параметр current_win у объекта. Количество линий, эффект для которых нужно показать отображает параметр lines_num. Считывается у объекта. Обновляется каждый раз при выполнении next_line_effect.
Состояния
- Основные:
- spin - запустить барабаны
- add_line - добавить еще одну линию как игровую. При этом автоматически запускается эффект линии и переводится в состояние, соответствующее номеру последней добавленной линии.
- remove_line - убирает одну линию. Одна линия для проверки - минимум, убрать её нельзя.
Оба состояния add_line и remove_line передаются с параметром кол-ва линий. par=param val=кол-во линий, аналогично dval у counter.
- clear - убрать все строки (кроме первой) для проверки выигрыша
- next_line_effect - вызывает эффект для следующей линии. Одновременно с этим вызывается эффект для ячейки.
- stop - остановить барабаны. Вызывается с параметром param от 0 до 4 для остановки конкретного барабана. Примечание: перевод объекта в состояния
add_line и clear во время вращения барабана - приводит к его остановке.
- stop_all - останавливает барабаны и пересчитывает награду (выпавшие линии), предназначено для остановки барабана по рычагу/кнопке .
- shuffle - новое начальное положение барабана (выбирается случайная иконка на всей рельсе и от неё отображаются иконки на всех рельсах).
- hide_animation - спрятать все эффекты линии и ячейки, которые были склонированы. Удобно использовать при досрочном закрытии мини-игры. Если вам нужно открывать что-то поверх активного слота ( во время показа анимации), вам нужно эти окна положить в отдельную сцену поверх сцены со слотом, т.к. анимация копируется в сцену со слот машиной.
- add_bet - увеличить ставку (значение ставки берется из соответствующего поля. Максимальное и минимальное значения зависят от уровня опыта игрока)
- dec_bet - уменьшить ставку
- max_bet - поставить максимальную ставку
- start_free_spins - начать режим бесплатных спинов (если scatter_num > 0).
- pause_free_spins - приостановить режим бесплатных спинов. Скопирует значение из scatter_num в опции по ключу slot%id%.saved_scatter. При этом scatter_num обнуляется.
- resume_free_spins - продолжить бесплатные спины. Скопирует значение по ключу и вставит его в scatter_num.
- autotest - для текущего lvlNum запустит автоматический спин с текущей ставкой и кол-вом линий N раз. N берется из param у объекта.
- clear_spree - очищаем очередь спинов для scatter без scatter
- clear_stats - очищаем параметры для статистики.
Добавляемые параметры
Меню выбора Добавляемые параметры к объектам активируется по правой кнопки мыши.
изменить состояние объекта - бросок завершен проигрыш - При current_win=0 по завершению вращения перевести слушателя в состояние.
- объект- объект - состояние которого меняем.
- состояние- состояние - значение нового состояния
изменить состояние объекта - бросок завершен выигрыш - При current_win!=0 по завершению вращения перевести слушателя в состояние.
- объект- объект - состояние которого меняем.
- состояние- состояние - значение нового состояния
изменить состояние объекта - были бонусные ячейки - bonus_num стал больше нуля, что означает, что выпали бонусные иконки. Запускается обработчик.
изменить состояние объекта - есть свободные спины - scatter_num стал больше нуля, что означает, что выпали бонусные иконки. Запускается обработчик.
изменить состояние объекта - конец фри спинов - scatter_num стал равен нулю. Не вызывается после паузы бесплатных спинов.
изменить состояние объекта - недостаточно денег - при попытке начать спин: баланс игрока строго меньше суммарной ставки.
изменить состояние объекта - переход из alllines в nextline - если время в параметре больше нуля, то по истечении этого времени вызовется этот обработчик. Если время равно нулю - вызовется без задержки.
изменить состояние объекта - начало вращения - после успешного начала спина вызываем обработчик.
изменить состояние объекта - начало автоспинов - после успешного начала автоспинов.
изменить состояние объекта - досрочное окончание автоспинов - автоспины были оборваны игроком.
изменить состояние объекта - окончание автоспинов - указанное кол-во автоспинов закончилось.
изменить состояние объекта - копилка заполнилась - копилка заполнилась.
замена графики - объекты и графика для них в зависимости от режимов (обычный, бесплатные спины, интрига).
- объект - id объекта
- нормальная - графика обычного спина
- фриспины - графика бесплатного спина
- рельса интриги - порядковый номер подложки рельсы, начиная с самого левого барабана.
- интрига'' - графика режима "интрига".
фриспины за расклад - если на поле выпали иконки, где каждая "строка" слота совпадает с шаблоном - начисляем бесплатные спины.
- расклад для строки - массив целых через запятую, обозначающих первую строку. Длина массива == кол-во барабанов.
- число фриспинов - кол-во бесплатных спинов, которое начислим за выпадение такой комбинации
иконка линии - При наличии объектов, которые каким-либо образом обозначают начало линии - указываем их через добавляемое свойство по порядку, начиная с нуля. Эффект линии в виде объекта ribbon будет рисоваться начиная (или заканчивая) этими объектами.
- объект- объект, у которого забираем положение.
эффект ячейки - При current_win!=0 по завершению вращения заменяет из набора ресурсов таких дополнительных свойств графику для клонируемого эффекта ячейки.
- клип- ресурс. Перетаскивается из базы ресурсов.
Графика в виде фреймовой анимации. Допустим у нас есть набор из 8-ми анимаций. Работает такая логика при выборе графики (если стоит настройка СЛУЧАЙНО): 1. При любом выигрыше графика эффекта ячейки для первой показываемой линии выбирается случайно из набора, но не повторяется с первой выбранной для предыдущего выигрышного спина. 2. Для всех последующих в этом спине выигранных линий — графика последовательно выбирается из набора (оставшейся графики) в произвольном порядке. 3. Если линий больше 8-ми — повторяем с первого пункта, выбирая первой графику отличную от 8-мой. Пример: 1й спин — выпало 12 линий. 0, 2, 4, 3, 5, 7, 1, 6 … (начинаем не с 6) 4, 0, 3, 1 2й спин — выпало 6 линий. (начинаем не с 0) 5, 6, 7, 1, 0, 3 где 0..7 — номера анимаций.
Дополнительные настройки механик
Scatter без scatter
Есть возможность начислять бесплатные спины без использования специальной иконки.
Для этого разработана такая методика: После совершения подряд MIN спинов - после каждого последующего спина до MAX есть вероятность P начислить игроку N бесплатных спинов. Если номер спина в последовательности спинов превысил MAX, то бесплатные спины начисляются с вероятностью P=1.
При этом указываем
spinspreemin="16" spinspreemax="66" addscatterp="0.03" addscattermin="7" addscattermax="9"
Это значит, что начиная с 16-го спина по 66-й включительно с вероятностью 3% будет начислено от 7 до 9ти бесплатных спинов (7,8 или 9 равновероятно).
При чем во время самих бесплатных спинов очередь продолжается, но так как 16>7, то выпасть дополнительные спины во время бесплатных не могут.
Перед выходом из слота ОБЯЗАТЕЛЬНО очищаем очередь путём вызова объекту состояния *clear_spree*.
Частота выпадения бесплатных спинов и регулировка отдачи с их помощью можно осуществить изменяя параметры addscatterp и spinspreemin/spinspreemax.
Линии или пути
Часто можно встретить вместо привычных линий так называемые "пути" или "ways". И их почему-то огромное кол-во, в сравнении с линиями. 243 ways на слоте с тремя рядами и пятью барабанами. Это означает то, что мы играем сразу на все возможные линии, которых всего может быть 3^5=243. Таким же образом в слоте 4x5 всего 1024 пути.
При этом ставка на линию чаще всего преобразуется в абсолютно аналогичный "множитель", а кол-во линий (хоть и будет называться coins) - фиксированная величина. Т.е для самой математики подсчета суммарной ставки - ничего не поменялось. Выплата так же будет зависеть от "множителя".
При этом сам выигрыш можно считать как наличие иконки определенного типа последовательно на рельсах без пропусков.
Пример: иконка1 встретилась на 1-й, 2-й и 3-ей рельсе по одной на каждой. Иконка1 участвовала в построении выигрышной цепочки длинной 3 иконки.
У объекта в GData можно найти параметр linespath=0 или 1. Удобно ориентироваться по нему для изменений в UI, к примеру.
Превращение в wild при соседях
Механика, позволяющая наделить обычную иконку св-вами wild при особых условиях. Условия: Режим бесплатных спинов активен. На соседних рельсах попали иконки, у которых параметр transwild=1.
При выполнении условий у иконок включается специальный эффект, который может являться машиной, которая запускает видео/фреймовую анимацию.
Тип иконки 4
Данный тип иконки нужен для начисления ресурса1 за выпадение N иконок на поле. Т.е условия запуска механики такие же, как и для иконки scatter. Но в данном случае начисляются не бесплатные спины, а ресурс.
А вот и пример:
<slotico icores="1080" icotype="4" icowin="0,0,0,0,0,0" type4val="3" type4min="0,0,0,1,5,10" type4max="0,0,0,3,15,20" type4text="2383" type4dx="-5" type4dy="45" icoobj="3566" icohide="1" icoeffect2="5409"/>
Обратите внимание, что массивы type4min и type4max - связаны.
Как это работает: Выпало 3 иконки на поле. Для них мы включаем эффект2, сами иконки прячем. За каждую иконку начисляем от type4min[3] до type4max[3] суммарных ставок. Суммарная ставка была 100 монет. Выпало три иконки. За первую мы начисляем 100, 200 или 300 монет. За вторую и за третью аналогично. Поверх эффекта2 будет отрисован и проанимирован счетчик type4text, со значением равным выигрышу за каждую из иконок соответственно. При этом счетчик будет смещен на type4dx и type4dy относительно центра иконки (которая совпадает с пересечением диагоналей ячейки).
Автотест
Запускается автотест из viewer путём вызова состояния *autospin* объекту слота.
Дополнительные параметры param - кол-во спинов, которые будут сделаны и param2 - кол-во итераций.
После начала режима создается файл возле options.xml с результатами автотеста, который заполняется по ходу работы.
Файл имеет название id из файла уровней _ кол-во спинов из param _ name из файла уровней _ месяц _ день _ часы _ минуты Если на момент запуска новой итерации время не изменилось - идет дозапись в текущий файл.
Внутри csv-файла видим таблицу
spin | slot id | lines | line bet | res1before | res1after | win | type | pos1 | pos2 | pos3 | pos4 | pos5 | bonus_num |
номер спина | id из файла уровней | сколько линий | какая ставка на линию | баланс до спина | баланс после спина | выигрыш за спин | тип спина r/f обычный/бесплатный | позиция на рельсе1 | позиция на рельсе2 | позиция на рельсе3 | позиция на рельсе4 | позиция на рельсе5 | множитель бонусный игры, если был |
По окончанию итерации будет выведена краткая статистика:
return = отдача
free spins = кол-во бесплатных спинов
win spins = количество победных спинов
bonus spins = кол-во бонусных игр
big win = кол-во big win
mega win = кол-во mega win