{{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 }:{ Латышский %} {%= ?}:{ Какой-то другой язык %} %}