{{indexmenu_n>30}} ====== Налаштування завдання ====== Кожне завдання (рівень) у грі має набір параметрів, що визначають логіку його проходження, автопереходи, видачу підказок та нарахування бонусів. ===== Основні параметри рівня ===== ==== Коди (Відповіді) ==== Для проходження рівня гравці повинні ввести один або кілька кодів. * **Регістр букв:** За замовчуванням порівняння кодів є регістронезалежним. * **Синоніми:** Для одного коду можна прописати кілька варіантів правильних відповідей (синонімів), розділяючи їх комами або прописавши окремими рядками. * **Види кодів:** Коди можуть бути основними (для закриття рівня) та бонусними (для отримання бонусних секунд чи балів). ==== Підказки ==== Ви можете налаштувати будь-яку кількість підказок для кожного завдання. * **Таймер:** Підказка видається автоматично через вказаний час (у секундах або хвилинах) після входу команди на рівень. * **Штрафні підказки:** Підказку можна зробити штрафною — у цьому випадку гравці можуть відкрити її раніше часу, але отримають штраф за часом (або балами). Іноді підказку хочеться видати одразу, але не показувати її вміст, поки гравець сам не попросить. Для цього текст підказки загортається в розкривний блок просто в режимі «Джерело»:
Натисніть, щоб побачити підказку

Текст підказки

Той самий ефект кнопкою, яка зникає після натискання:

Текст підказки

Врахуйте, що схований так текст усе одно лежить у вихідному коді сторінки — це зручність, а не захист. Якщо вміст не має бути доступним до строку, використовуйте звичайний таймер підказки або [[uk:authors_main:task_editor:advanced:edit_templates|шаблони]]. [[https://qeng.org/game.php?jump_to&gid=3493&task_id=79305|Приклад у грі]] ==== Звичайні та Наскрізні бонуси ==== * **Звичайні бонуси:** Прив'язані до конкретного завдання. * **Наскрізні бонуси:** Доступні одразу на кількох рівнях (наприклад, з 5 по 10 рівні). Якщо команда ввела відповідь на наскрізний бонус на рівні 5, на рівні 6 ввести її повторно для отримання балів буде не можна. Для бонусу на всю гру можна виставляти діапазон рівнів з 1 по 999. ==== Ліміти спроб введення ==== Для захисту від простого перебору (брутфорсу) відповідей ви можете задати ліміт спроб. * Ліміт можна встановити як загальний на рівень (наприклад, не більше 50 спроб введення за хвилину на всю команду), так і на конкретного гравця. * При перевищенні ліміту поле введення блокується для команди на певний інтервал часу. Блок із таймером блокування можна переоформити або доповнити своїм елементом — див. [[uk:authors_main:task_editor:advanced:page_elements#своє_оформлення_блокування_відповідей|Елементи сторінки рівня]]. [[https://qeng.org/game.php?jump_to&gid=3493&task_id=52079|Приклад у грі]] ==== Автоперехід ==== У полі **«Автоперехід»** задається час, після закінчення якого рівень закриється сам, навіть якщо команда його не пройшла. Зазвичай там стоїть тривалість у секундах — вона відлічується від моменту, коли команда зайшла на рівень, тому в кожної команди автоперехід настає у свій час. Іноді потрібно, щоб рівень закрився в усіх одночасно в конкретний момент — наприклад, на багатоденній грі, де завдання нового дня починається о призначеній годині. Для цього в те саме поле вписується **unix-час** потрібного моменту (велике число замість тривалості). Такий автоперехід не залежить від того, коли команда потрапила на рівень. Відрізнити його легко за поведінкою в тестуванні: при рестарті рівня час до автопереходу не скидається, а тестове перемотування часу рівня його не наближає. [[https://qeng.org/game.php?jump_to&gid=3493&task_id=53861|Приклад у грі]] ==== Закриття завдання: «Розумно» ==== Зазвичай рівень закривається, щойно вбито всі коди, — і недобрані бонуси при цьому зникають. Опція **«Закрити завдання: Розумно»** змінює цю поведінку: якщо коди вбито, але на рівні залишилися незакриті бонуси, завдання не закривається саме. Замість цього з'являється кнопка **«Завершити завдання»**. Поки команда її не натиснула, гравці можуть спокійно добивати бонуси. Зручно на рівнях, де бонуси дорожчі за час і прикро втрачати їх через те, що хтось вбив останній код раніше часу. [[https://qeng.org/game.php?jump_to&gid=3493&task_id=42721|Приклад у грі]] ===== Офлайн-перевірка відповідей ===== В умовах поганого мобільного інтернету на локації увімкнення офлайн-перевірки дозволяє гравцям бачити статус введення без очікування відповіді від сервера. ==== Як це працює: ==== - При вході на рівень хеш-коди відповідей завантажуються в браузер гравця. - При надсиланні відповіді, якщо інтернет відсутній, відповідь додається до локальної черги. - У цій черзі відповіді одразу розфарбовуються: **зелені** (правильні), **червоні** (неправильні), **білі** (невідомі/в процесі відправки). - Щойно з'єднання відновлюється, черга автоматично надсилається на сервер. > **Увага (Безпека):** Оскільки хеші кодів при офлайн-перевірці зберігаються на клієнті, теоретично гравці можуть запустити локальний перебір (брутфорс), щоб підібрати код. Особливо якщо коди короткі або відома їх маска (наприклад, слово + цифра). ==== Захист від перебору в офлайні: ==== Щоб захиститися від підбору, додайте штрафний бонус із помилковими кодами (кодами-пастками). * Наприклад, якщо правильний код: ''батон432''. * Додайте прихований бонус із кодом: ''батон178'' (і штрафом за його введення). * Щоб приховати бонус від гравців, напишіть в його описі спеціальний маркер: **''%hide%''**. Команда не знатиме про існування пастки, але автоматичний брутфорс натрапить на неї і команда отримає штраф. Офлайн-перевірка за замовчуванням вимкнена. Рекомендується вмикати її лише на тих рівнях, де заздалегідь очікуються проблеми зі зв'язком. [[https://qeng.org/game.php?jump_to&gid=3493&task_id=42720|Приклад у грі]]