Шаблоны (Темплейты)
Шаблоны — это динамические выражения, которые вычисляются на сервере до отправки страницы игрокам. В браузере во время игры отображается только результат вычисления для конкретной команды. Сам код шаблона игрокам не виден (его нет в исходном коде страницы).
Классические применения шаблонов:
- Индивидуальные задания для команды (разделение потоков).
Шаблоны можно прописывать в обычном режиме редактора или в режиме исходного кода (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%
%}
%}