===== Типові скрипти =====
Приклади використання 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 заголовок гри"**: