{{indexmenu_n>20}} ====== Шаблони (Темплейти) ====== Шаблони — це динамічні вирази, які обчислюються на сервері до відправлення гравцям, а під час гри гравцям буде показано лише результат виразу саме для їхньої команди. Код шаблону НЕ видно навіть у вихідному коді сторінки, в коді буде лише результат обчислення. Класичні застосування шаблонів: * [[ua:authors_main:task_editor:advanced:edit_templates#за_id_команди|Індивідуальні завдання для команди]] (розділення потоків). * [[ua:authors_main:task_editor:advanced:edit_templates#темплейти_з_використанням_відповідей_у_завданні|Бонуси, контент яких залежить від того, яким саме кодом було закрито попередній бонус]]. Шаблони можна прописувати у звичайному режимі редактора або в режимі вихідного коду (Source) в текст завдань, підказок та бонусів. Шаблони можуть бути вкладеними. ===== Google Таблиця для генерації шаблонів ===== Для полегшення написання синтаксису шаблонів ви можете скопіювати собі та використовувати спеціальну таблицю: [[https://docs.google.com/spreadsheets/d/1viqP3CBjYgq_vPYH-Z2USIC1DYrXzQG8_eV2bDw-4JQ/edit?usp=sharing|Google Таблиця генерації шаблонів QEng]]. ====== Різні види шаблонів ====== ===== Модифікація завдання для команди ===== ==== За ID лінійки (проходження) ==== {% match line }:{ {%= 688 /* коментар: назва лінійки */}:{ Текст для лінійки з ID 688 %} {%= 643 }:{ Текст для лінійки з ID 643 %} {%= 653,655 }:{ Текст для лінійки з ID 653 або 655 %} {%= ?}:{ Текст для будь-якої іншої лінійки %} %} ==== За ID команди ==== {% match team }:{ {%= 688 /* коментар: назва команди */}:{ Текст для команди з ID 688 %} {%= 643 }:{ Текст для команди з ID 643 %} {%= 653,655 }:{ Текст для команди з ID 653 або 655 %} {%= ?}:{ Текст для будь-якої іншої команди %} %} [[https://qeng.org/game.php?jump_to&gid=3493&task_id=54272|Приклад у грі]] ===== Прив'язка події в завданні до реального часу ====== Корисно для видачі віртуальних кодів/підказок у строго визначений час. Для переведення дати у мітку часу використовуйте [[https://converter.by/unixtime|Конвертер Unix Time]]. {% unix_time 1639999296/* дата в unix time */, Відкриється, Залишилося }:{ Цей текст буде показано після настання вказаного часу. %} [[https://qeng.org/game.php?jump_to&gid=3493&task_id=54338|Приклад у грі]] ===== Шаблони на основі введених відповідей ===== ==== Перевірка останньої (поточної) відповіді на перший код ==== *(Замініть `code_1` на потрібний номер коду, наприклад, `code_5` для п'ятого коду)* {% match code_1 }:{ {%= abc}:{ У перший код введено відповідь "abc". %} {%= bac, cba}:{ У перший код введено відповідь "bac" або "cba". %} {%= !no_answer!}:{ У перший код ще не вводили правильну відповідь. %} {%= ?}:{ Введено якийсь інший синонім/відповідь у перший код. %} %} ==== Перевірка найпершої введеної відповіді на другий код ==== {% match code_first_2 }:{ {%= abc}:{ Першою в цей код було введено відповідь "abc". %} {%= !no_answer!}:{ Код ще не введено. %} {%= ?}:{ Було введено іншу відповідь. %} %} ==== Перевірка бонусів та наскрізних бонусів ==== Аналогічно кодам, ви можете перевіряти відповіді для бонусів: * **''bonus_1''** / **''bonus_first_1''** — остання або перша введена відповідь у перший бонус поточного рівня. * **''gbonus_1''** / **''gbonus_first_1''** — остання або перша введена відповідь у перший наскрізний (глобальний) бонус гри. Наскрізні бонуси можна перевіряти навіть на тих рівнях, де вони не виведені на екран. [[https://qeng.org/game.php?jump_to&gid=3493&task_id=54273|Приклад у грі]] ===== Перевірка автора введення (хто саме ввів код) ===== До параметрів перевірки відповідей можна додати приставку ''who_'', щоб дізнатися, хто з гравців команди ввів код. Можливі значення: * **''me''** — код введений поточним залогіненим користувачем. * **''other''** — код введений іншим учасником команди. * **''!no_answer!''** — відповідь ще не введена. *(Анонімні гравці без реєстрації вважаються одним користувачем).* {% match who_code_1 }:{ {%= me}:{ Перший код ввів особисто я. %} {%= other}:{ Перший код ввів мій напарник по команді. %} {%= !no_answer!}:{ Код ще ніхто не ввів. %} %} ===== Перевірка команди, що ввела код (для міжкомандних дуелей) ===== Приставка ''who_team_'' дозволяє перевірити, яка команда ввела код на загальному/наскрізному завданні. Можливі значення: * **''me''** — код ввела моя команда. * **''other''** — код ввела команда суперників. * **''!no_answer!''** — код ще не введений. {% match who_team_code_1 }:{ {%= me}:{ Цей код першими закрили ми! %} {%= other}:{ На жаль, суперники встигли ввести цей код раніше за нас. %} %} ===== Шаблони, що залежать від мови інтерфейсу гравця ===== {% match lang }:{ {%= ru}:{ Вибрано російську мову інтерфейсу. %} {%= uk }:{ Вибрано українську мову інтерфейсу (uk). %} {%= en }:{ Вибрано англійську мову інтерфейсу. %} {%= ?}:{ Якась інша мова. %} %} ===== Перевірка статусу оплати товару (Пейвол) ===== Якщо у вашій грі використовуються платні рівні або платні підказки, ви можете перевірити статус покупки: * **''product_KEY''** — де замість KEY вказується ключ продукту з налаштувань. Можливі значення: * **''yes''** — товар успішно придбано командою. * **''pending''** — процес оплати розпочато, але транзакція ще обробляється. * **''no''** — товар не оплачено. {% match product_level_5 }:{ {%= yes}:{ Команда придбала доступ до 5 рівня. %} {%= pending}:{ Оплата обробляється. Будь ласка, зачекайте та оновіть сторінку. %} {%= no}:{ Доступ закритий. Вартість проходження — $1. Натисніть для оплати: %pay_button level_5% %} %}