===== Типові скрипти ===== Приклади використання JavaScript у завданнях. Їх необхідно вставляти в блок **"Скрипт Завдання"** (у налаштуваннях конкретного рівня). ==== Приховати Коди ==== $('#out_codes').hide(); ==== Приховати бонуси ==== $('#out_bonuses').hide(); ==== Приховати глобальні (наскрізні) бонуси ==== $('#out_global_bonuses').hide(); ==== Замість оригінального тексту результату введення кодів показувати свої повідомлення ==== $('#answer_result_right_out').text('Ніби вірно'); $('#answer_result_repeat_out').text('Вже було'); $('#answer_result_wrong_out').text('Щось не так'); ==== На місці таймера автопереходу відображати час, проведений на завданні ==== show_time_on_task(); *Примітка: Працює тільки якщо в завданні немає автопереходу.* ==== Замінити слово 'Автоперехід' на іншу назву ==== $('span#out_end_time').each(function(){$(this).html($(this).html().replace('Автопереход', 'Час до закриття зони'));}); ==== Замінити слово 'Підказка' на іншу назву ==== $('span.hint_name').each(function(){$(this).html($(this).html().replace('Подсказка', 'Можливий час до закриття зони'));}); ==== Замінити текст на кнопці 'Купити підказку' ==== $('div#out_hints').each(function(){$(this).html($(this).html().replaceAll('Взять подсказку', 'Купити завдання'));}); ==== Реалізація "Олімпійки" (сітка плей-офф) ==== - У текст завдання впишіть спеціальний маркер: **''[olymp]''** (він автоматично заміниться на таблицю під час гри). - У скрипт завдання впишіть: **''olymp('8.2')'';** * Замість `'8.2'` можна використовувати `'4.2'`, `'16.2'`, `'32.2'`, `'64.2'`, `'128.2'`, `'256.2'`, `'9.3'`, `'27.3'`, `'81.3'`, `'16.4'`, `'64.4'` (де перше число — кількість початкових кодів олімпійки, а друге — кількість об'єднуваних комірок на наступних етапах). * Якщо ви хочете залишити відображення номерів у кодах, використовуйте: **''olymp_with_numbers('8.2')'';** - Щоб відображати замість правильно введеного слова якесь інше кастомне значення: * Створіть бонус із тим самим кодом. * У полі **"Текст після вирішення"** бонусу в режимі вихідного коду (Source) вставте скрипт: * Де ''n'' — номер поля олімпійки, а ''html'' — текст або HTML-код, який буде показаний у відповідній комірці (наприклад: ''olymp_value(3, 'Храмина')''). [[https://qeng.org/game.php?jump_to&gid=3493&task_id=42715|Приклад олімпійки]] | [[https://qeng.org/game.php?jump_to&gid=3493&task_id=49134|Приклад олімпійки зі стартовими комірками]] ==== Відображення зібраних штурмових балів у завданні ==== Вставте в текст завдання: Всього балів: !bonus! ==== Кастомний обробник введення відповіді ==== Ви можете перехоплювати та змінювати введений гравцями відповідь на клієнті перед її відправкою на сервер. Наприклад, автоматично дописати префікс ''p_'': window.submitAnswerCallback = function(answer) { return 'p_' + answer; } *Якщо функція поверне порожній рядок, відправку відповіді на сервер буде заблоковано.* [[https://qeng.org/game.php?jump_to&gid=3493&task_id=52080|Приклад перехоплювача у грі]] ===== Скрипти в бонусах та підказках ===== Ці сценарії повинні вставлятися в полі тексту рішення бонусів/підказок у режимі **"Джерело"** (Source): ==== Автоматичне введення коду при відкритті підказки/бонусу ==== ==== Складені коди в бонусах/штрафних підказках ==== Якщо код складається з частин, розкиданих по різних підказках чи бонусах: * **''номер_складеного_коду''** — порядковий номер складеного коду, якщо їх у грі кілька (якщо він один — ставте ''0''). * **'''частинакоду'** — рядок/частина коду (обов'язково в лапках). * **''число_складених_частин''** — загальна кількість складених частин, які потрібно зібрати. **Важливо:** Обов'язково додайте на рівень підсумковий зібраний код як звичайний код, інакше у гравців сторінка весь час перезавантажуватиметься в циклі, намагаючись відправити неіснуючий код. ===== Системні події: Виклик скрипта при оновленні завдання ===== Якщо вам потрібно автоматично запускати певний JavaScript щоразу, коли завдання перезавантажується (оновлюється) на клієнті, пропишіть у **"Загальний HTML заголовок гри"**: ===== Автоматичний редирект у штурмових іграх (Не показувати закриті завдання) ===== Щоб при попаданні на вже закрите (пройденне) штурмове завдання гравця одразу перенаправляло на головну сторінку гри з картою/списком рівнів, пропишіть у **"Загальний HTML заголовок гри"**: