Шаблони (Темплейти)
Шаблони — це динамічні вирази, які обчислюються на сервері до відправлення гравцям, а під час гри гравцям буде показано лише результат виразу саме для їхньої команди. Код шаблону НЕ видно навіть у вихідному коді сторінки, в коді буде лише результат обчислення.
Класичні застосування шаблонів:
- Індивідуальні завдання для команди (розділення потоків).
Шаблони можна прописувати у звичайному режимі редактора або в режимі вихідного коду (Source) в текст завдань, підказок та бонусів. Шаблони можуть бути вкладеними.
Google Таблиця для генерації шаблонів
Для полегшення написання синтаксису шаблонів ви можете скопіювати собі та використовувати спеціальну таблицю: 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
%}
{%= ?}:{
Текст для будь-якої іншої команди
%}
%}
Прив'язка події в завданні до реального часу
Корисно для видачі віртуальних кодів/підказок у строго визначений час. Для переведення дати у мітку часу використовуйте Конвертер Unix Time.
{% unix_time 1639999296/* дата в unix time */, Відкриється, Залишилося }:{
Цей текст буде показано після настання вказаного часу.
%}
Шаблони на основі введених відповідей
Перевірка останньої (поточної) відповіді на перший код
*(Замініть `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— остання або перша введена відповідь у перший наскрізний (глобальний) бонус гри. Наскрізні бонуси можна перевіряти навіть на тих рівнях, де вони не виведені на екран.
Перевірка автора введення (хто саме ввів код)
До параметрів перевірки відповідей можна додати приставку 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%
%}
%}