Каждое задание (уровень) в игре имеет набор параметров, определяющих логику его прохождения, автопереходы, выдачу подсказок и начисление бонусов.
Для прохождения уровня игроки должны ввести один или несколько кодов.
Вы можете настроить любое количество подсказок для каждого задания.
Иногда подсказку хочется выдать сразу, но не показывать её содержимое, пока игрок сам не попросит. Для этого текст подсказки заворачивается в раскрывающийся блок прямо в режиме «Источник»:
<details><summary>Нажмите, чтобы увидеть подсказку</summary> <p>Текст подсказки</p> </details>
Тот же эффект кнопкой, которая исчезает после нажатия:
<button class="btn btn-default" onclick="this.style.display='none'; this.parentNode.nextElementSibling.style.display='block';">Показать подсказку</button> <div style="display:none"><p>Текст подсказки</p></div>
Учтите, что спрятанный так текст всё равно лежит в исходном коде страницы — это удобство, а не защита. Если содержимое не должно быть доступно до срока, используйте обычный таймер подсказки или шаблоны.
Для защиты от простого перебора (брутфорса) ответов вы можете задать лимит попыток.
Игрок видит это так: над полем — сколько осталось ждать, под полем — сколько попыток и за какое время ему положено.
Блок с таймером блокировки можно переоформить или дополнить своим элементом — см. Элементы страницы уровня.
В поле «Автопереход» задаётся время, по истечении которого уровень закроется сам, даже если команда его не прошла. Обычно там стоит длительность в секундах — она отсчитывается от момента, когда команда зашла на уровень, поэтому у каждой команды автопереход наступает в своё время.
Иногда нужно, чтобы уровень закрылся у всех одновременно в конкретный момент — например, на многодневной игре, где задание нового дня начинается в назначенный час. Для этого в то же поле вписывается unix-время нужного момента (большое число вместо длительности). Такой автопереход не зависит от того, когда команда попала на уровень.
Отличить его легко по поведению в тестировании: при рестарте уровня время до автоперехода не сбрасывается, а тестовая перемотка времени уровня его не приближает.
Обычно уровень закрывается, как только вбиты все коды, — и недобранные бонусы при этом пропадают. Опция «Закрыть задание: Разумно» меняет это поведение: если коды вбиты, но на уровне остались незакрытые бонусы, задание не закрывается само. Вместо этого появляется кнопка «Завершить задание».
Пока команда её не нажала, игроки могут спокойно добивать бонусы. Удобно на уровнях, где бонусы дороже времени и обидно терять их из-за того, что кто-то вбил последний код раньше времени.
При плохом мобильном интернете на локации включение оффлайн-проверки позволяет игрокам видеть статус ввода без ожидания ответа от сервера.
Внимание (Безопасность): Так как хэши кодов при оффлайн-проверке хранятся на клиенте, теоретически игроки могут запустить локальный перебор (брутфорс), чтобы подобрать код. Особенно если коды короткие или известна их маска (например, слово + цифра).
Чтобы защититься от подбора, добавьте штрафной бонус с ложными кодами (кодами-ловушками).
батон432.батон178 (и штрафом за его ввод).%hide%. Команда не будет знать о существовании ловушки, но автоматический брутфорс наткнется на нее и команда получит штраф.Оффлайн-проверка по умолчанию отключена. Рекомендуется включать ее только на тех уровнях, где заведомо ожидаются проблемы со связью.