Как распознаются события
В Shakes & Fidget два вида событий, и Mercy SF обращается с ними по-разному.
Серверные события это выходные модификаторы: событие на опыт, событие на золото, повышенный шанс эпической добычи. Они меняют то, чему обычные модули должны отдавать предпочтение, и видны в состоянии игры, пока идут.
Крупные временные события это отдельные куски игры со своими экранами, своей валютой и своим прогрессом: Мировой босс, Адский лифт и Легендарное подземелье. Они появляются на неделю или две, а потом исчезают.

Почему «идёт ли оно» это самая трудная часть
Очевидный способ решить, идёт ли Мировой босс, это поискать данные Мирового босса в состоянии игры. Это не работает и подводит самым дорогим из возможных способов: сервер продолжает присылать этот блок ещё долго после закрытия события.
До того как это учли, получался модуль, который весь день слал свои команды и на каждую получал отказ event not active. Одно предупреждение в минуту на аккаунт и экран событий, показывающий завершённое событие так, будто оно идёт.
Mercy SF использует два источника истины, в таком порядке.
- Собственное окно события там, где протокол его даёт. Адский лифт и Легендарное подземелье несут и отметку начала, и отметку конца, так что на них можно ответить точно.
- Вердикт самого сервера там, где окна нет. У Мирового босса окна в состоянии игры нет, поэтому единственный честный сигнал это сам отказ. Если сервер сказал, что событие не идёт, этому верят час, а затем проверяют снова на случай, если началось новое.
Этот час и есть вся сделка. Закрытое событие стоит одного запроса в час вместо одного в минуту, а к только что открывшемуся присоединяются в течение часа, а не мгновенно.
Что намеренно не делается
Игра шлёт блок eventstatus с числовым кодом типа. Его отметки времени разбираются и используются. Сам код не трактуется как соответствие конкретному событию, потому что одно наблюдённое значение это не таблица соответствий, а ошибка молча направила бы модуль не того события против не того окна.
Проба на разблокировку
Строгая опора на распознавание заводила свежие аккаунты в тупик на Мировом боссе, и стоит знать почему, потому что симптом выглядит как ошибка.
Сервер присылает блок Мирового босса только после того, как персонаж присоединился к событию. Значит, персонаж, который ни разу не присоединялся, блока не имеет, никогда не распознаётся и потому никогда не присоединяется. Аккаунт сидит так бесконечно, а посторонние запросы возвращаются с world boss join first.
Поэтому, как только персонаж переходит уровень разблокировки, Mercy SF пробует войти по таймеру даже тогда, когда ничего не распознано, и оставляет решение серверу. Отказ стоит одного запроса раз в несколько минут и больше ничего.
Приоритет событий
Три настройки решают, насколько сильно временные события вправе тревожить обычный ежедневный цикл.
| Настройка | По умолчанию | Что делает |
|---|---|---|
event_priority_mode | вкл | Пока событие идёт, его модули идут в цикле раньше обычных. |
event_ending_threshold_mins | 60 | Насколько близко к концу события считается «скоро закончится», после чего событию отдают более решительное предпочтение. |
event_auto_beer_during_event | выкл | Разрешить тратить пиво на жажду приключений во время события. По умолчанию выключено, потому что пиво это ограниченный дневной ресурс, и тратить его это предпочтение, а не настройка по умолчанию. |
Серверные события и ежедневный цикл
Обычные модули читают идущие серверные события и подстраиваются:
- событие на опыт двигает выбор заданий к заданиям на опыт, чтобы выходные с двойным опытом не ушли на серебро;
- событие на золото делает обратное;
- ежедневные награды, календарь, колесо и кости забираются независимо от того, что идёт, потому что взять их ничего не стоит.
Смотрите Задания, таверна и походы о том, как выбор заданий взвешивает событие против вашего постоянного предпочтения, и Ежедневные награды и календарь о цикле сбора.
Где описано каждое событие
- Мировой босс: катапульта, боеприпасы, слабые места и сундуки. То самое, где рядом с каждой кнопкой есть грибная, и структурная причина, по которой она никогда не нажимается.
- Адский лифт: подъём, ключ-карты и лавка лакомств, которая наверху остаётся единственным рычагом на боевую силу.
- Легендарное подземелье: комнаты, двери, благословения, проклятия и два грибных потолка на воскрешении.