Table of Contents

Шаблоны (Темплейты)

Шаблоны — это динамические выражения, которые вычисляются на сервере до отправки страницы игрокам. В браузере во время игры отображается только результат вычисления для конкретной команды. Сам код шаблона игрокам не виден (его нет в исходном коде страницы).

Классические применения шаблонов:

Шаблоны можно прописывать в обычном режиме редактора или в режиме исходного кода (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!}:{
Код ещё не вбит.
  %}
  {%= ?}:{
Был вбит другой ответ.
  %}
%}

Проверка бонусов и сквозных бонусов

Аналогично кодам, вы можете проверять ответы для бонусов:

Пример в игре

Проверка автора ввода (кто именно вбил код)

К параметрам проверки ответов можно добавить приставку who_, чтобы узнать, кто из игроков команды ввел код. Возможные значения:

*(Анонимные игроки без регистрации считаются одним пользователем).*

{% match who_code_1 }:{ 
  {%= me}:{
Первый код ввел лично я.
  %}
  {%= other}:{
Первый код ввел мой напарник по команде.
  %}
  {%= !no_answer!}:{
Код еще никто не ввел.
  %}
%}

Проверка команды, вбившей код (для межкомандных дуэлей)

Приставка who_team_ позволяет проверить, какая команда ввела код на общем/сквозном задании. Возможные значения:

{% match who_team_code_1 }:{ 
  {%= me}:{
Этот код первыми закрыли мы!
  %}
  {%= other}:{
Увы, соперники успели ввести этот код раньше нас.
  %}
%}

Шаблоны, зависящие от языка интерфейса игрока

{% match lang }:{ 
  {%= ru}:{
Выбран русский язык интерфейса.
  %}
  {%= uk }:{
Выбран украинский язык интерфейса (uk).
  %}
  {%= en }:{
Выбран английский язык интерфейса.
  %}
  {%= ?}:{ 
Какой-то другой язык.
  %}
%}

Проверка статуса оплаты товара (Пейволл)

Если в вашей игре используются платные уровни или платные подсказки, вы можете проверить статус покупки:

Возможные значения:

{% match product_level_5 }:{ 
  {%= yes}:{
Команда купила доступ к 5 уровню.
  %}
  {%= pending}:{
Оплата обрабатывается. Пожалуйста, подождите и обновите страницу.
  %}
  {%= no}:{
Доступ закрыт. Стоимость прохождения — $1. Нажмите для оплаты:
%pay_button level_5%
  %}
%}