{{indexmenu_n>20}}
====== Темплейты ======
Темплейты - это выражения, которые вычисляются на сервере до отправки игрокам, а во время игры игрокам будет показан только результат выражения для именно их команды и их положения в игре. Код темплейта НЕ виден даже в исходном коде страницы, в коде будет только результат вычисления темплейта.
Классические применения темплейтов - это [[edit_templates#По ID команды|индивидуальные задания для команды]] либо [[edit_templates#Темплейты с использованием ответов в задании|бонусы, текст которых зависит от того, каким кодом был закрыт бонус]].
Темплейты можно прописывать в обычном режиме редактора или в режиме исходника.
Сейчас темплейты можно прописывать в текст задания, текст подсказки, тексты бонусов. Темплейты могут быть вложенными.
===== Google документ для генерации темплейтов =====
[[https://docs.google.com/spreadsheets/d/1viqP3CBjYgq_vPYH-Z2USIC1DYrXzQG8_eV2bDw-4JQ/edit?usp=sharing|Google документ]].
Этот док можно скопировать к себе и использовать для лёгкого создания темплейтов в уровнях.
====== Различные виды темплейтов======
===== Модификация задания для команды =====
Можно часть текста задания показывать разным для разных команд.
==== По 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 - можно заменить 1 на номер нужного кода
{% match code_1 }:{
{%= abc}:{
В первый код вбит ответ abc
%}
{%= bac, cba}:{
В первый код вбит ответ bac или cba
%}
{%= !no_answer!}:{
В первый код ещё не вбит ответ
%}
{%= ?}:{
Какой-то другой ответ вбит в первый код
%}
%}
Проверка первого вбитого ответа в первый код
code_first_1 - можно заменить 1 на номер нужного кода
{% match code_first_1 }:{
{%= abc}:{
В первый код первым вбит ответ abc
%}
{%= bac, cba}:{
В первый код первым вбит ответ bac или cba
%}
{%= !no_answer!}:{
В первый код ещё не вбит ответ
%}
{%= ?}:{
Какой-то другой ответ вбит в первый код
%}
%}
Также можно использовать для проверки бонусов:
bonus_1 - последний (текущий) вбитый ответ в первый бонус. 1 можно заменить на нужный номер бонуса.
bonus_first_1 - первый вбитый ответ в первый бонус. 1 можно заменить на нужный номер бонуса.
Также можно использовать ответы сквозных бонусов. Сквозные бонусы можно использовать в темплейтах и в заданиях, где их не видно.
gbonus_1 - последний (текущий) вбитый ответ в первый сквозной бонус. 1 можно заменить на нужный номер сквозного бонуса.
gbonus_first_1 - первый вбитый ответ в первый сквозной бонус. 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!}:{
В первый код ещё не вбит ответ
%}
%}
===== Темплейты, зависящие от языка интерфейса =====
{% match lang }:{
{%= ru}:{
Русский
%}
{%= uk }:{
Украинский
%}
{%= en }:{
Английский
%}
{%= lv }:{
Латышский
%}
{%= ?}:{
Какой-то другой язык
%}
%}