Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия | |||
|
ua:authors_main:author_advanced:edit_templates [2023/04/15 20:42] admin |
— (текущий) | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | {{indexmenu_n>20}} | ||
| - | ====== Темплейты !UA! ====== | ||
| - | |||
| - | Темплейты - это выражения, которые вычисляются на сервере до отправки игрокам, а во время игры игрокам будет показан только результат выражения для именно их команды и их положения в игре. Код темплейта НЕ виден даже в исходном коде страницы, в коде будет только результат вычисления темплейта. | ||
| - | |||
| - | Классические применения темплейтов - это [[edit_templates#По ID команды|индивидуальные задания для команды]] либо [[edit_templates#Темплейты с использованием ответов в задании|бонусы, текст которых зависит от того, каким кодом был закрыт бонус]]. | ||
| - | |||
| - | Темплейты можно прописывать в обычном режиме редактора или в режиме исходника. | ||
| - | |||
| - | Сейчас темплейты можно прописывать в текст задания, текст подсказки, тексты бонусов. Темплейты могут быть вложенными. | ||
| - | |||
| - | ===== Google документ для генерации темплейтов ===== | ||
| - | |||
| - | [[https://docs.google.com/spreadsheets/d/1viqP3CBjYgq_vPYH-Z2USIC1DYrXzQG8_eV2bDw-4JQ/edit?usp=sharing|Google документ]]. | ||
| - | |||
| - | Этот док можно скопировать к себе и использовать для лёгкого создания темплейтов в уровнях. | ||
| - | ====== Различные виды темплейтов====== | ||
| - | ===== Модификация задания для команды ===== | ||
| - | |||
| - | Можно часть текста задания показывать разным для разных команд. | ||
| - | ==== По ID линейки ==== | ||
| - | <codedoc> | ||
| - | {% match line }:{ | ||
| - | {%= 688 /*можно добавить комментарий с названием линейки*/}:{ | ||
| - | Текст для линейки с id 688 | ||
| - | %} | ||
| - | |||
| - | {%= 643 }:{ | ||
| - | Текст для линейки с id 643 | ||
| - | %} | ||
| - | {%= 653,655 }:{ | ||
| - | Текст для линейки с id 653 или 655 | ||
| - | %} | ||
| - | |||
| - | {%= ?}:{ | ||
| - | Текст для любой другой линейки | ||
| - | %} | ||
| - | %} | ||
| - | </codedoc> | ||
| - | |||
| - | |||
| - | |||
| - | ==== По ID команды ==== | ||
| - | <code> | ||
| - | {% match team }:{ | ||
| - | {%= 688 /*можно добавить комментарий с названием команды*/}:{ | ||
| - | Текст для команды с id 688 | ||
| - | %} | ||
| - | |||
| - | {%= 643 }:{ | ||
| - | Текст для команды с id 643 | ||
| - | %} | ||
| - | {%= 653,655 }:{ | ||
| - | Текст для команды с id 653 или 655 | ||
| - | %} | ||
| - | |||
| - | {%= ?}:{ | ||
| - | Текст для любой другой команды | ||
| - | %} | ||
| - | %} | ||
| - | </code> | ||
| - | |||
| - | [[https://qeng.org/game.php?jump_to&gid=3493&task_id=54272|Пример в игре]] | ||
| - | |||
| - | ===== Привязка события в задании к реальному времени ===== | ||
| - | [[https://converter.by/unixtime|Перевод даты в unix time]] | ||
| - | <code> | ||
| - | {% unix_time 1639999296/*дата в unix time*/, Откроется, Осталось}:{ | ||
| - | Этот текст будет показан после наступления указанного времени | ||
| - | %} | ||
| - | </code> | ||
| - | [[https://qeng.org/game.php?jump_to&gid=3493&task_id=54338|Пример в игре]] | ||
| - | ===== Темплейты с использованием ответов в задании ===== | ||
| - | |||
| - | Проверка последнего (текущего) вбитого ответа в первый код | ||
| - | |||
| - | code_1 - можно заменить 1 на номер нужного кода | ||
| - | <code> | ||
| - | {% match code_1 }:{ | ||
| - | {%= abc}:{ | ||
| - | В первый код вбит ответ abc | ||
| - | %} | ||
| - | |||
| - | {%= bac, cba}:{ | ||
| - | В первый код вбит ответ bac или cba | ||
| - | %} | ||
| - | |||
| - | {%= !no_answer!}:{ | ||
| - | В первый код ещё не вбит ответ | ||
| - | %} | ||
| - | |||
| - | {%= ?}:{ | ||
| - | Какой-то другой ответ вбит в первый код | ||
| - | %} | ||
| - | %} | ||
| - | </code> | ||
| - | Проверка первого вбитого ответа в первый код | ||
| - | |||
| - | code_first_1 - можно заменить 1 на номер нужного кода | ||
| - | |||
| - | <code> | ||
| - | {% match code_first_1 }:{ | ||
| - | {%= abc}:{ | ||
| - | В первый код первым вбит ответ abc | ||
| - | %} | ||
| - | |||
| - | {%= bac, cba}:{ | ||
| - | В первый код первым вбит ответ bac или cba | ||
| - | %} | ||
| - | |||
| - | {%= !no_answer!}:{ | ||
| - | В первый код ещё не вбит ответ | ||
| - | %} | ||
| - | |||
| - | {%= ?}:{ | ||
| - | Какой-то другой ответ вбит в первый код | ||
| - | %} | ||
| - | %} | ||
| - | </code> | ||
| - | |||
| - | Также можно использовать для проверки бонусов: | ||
| - | |||
| - | 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!- если ответ еще не вбит | ||
| - | |||
| - | При этом анонимные игроки считаются за одного и того же. | ||
| - | |||
| - | Например | ||
| - | |||
| - | <code> | ||
| - | {% match who_code_1 }:{ | ||
| - | {%= me}:{ | ||
| - | В первый код вбил ответ я | ||
| - | %} | ||
| - | |||
| - | {%= other}:{ | ||
| - | В первый код вбил ответ кто-то другой | ||
| - | %} | ||
| - | |||
| - | {%= !no_answer!}:{ | ||
| - | В первый код ещё не вбит ответ | ||
| - | %} | ||
| - | |||
| - | %} | ||
| - | </code> | ||
| - | |||
| - | ===== Темплейты, зависящие от языка интерфейса ===== | ||
| - | |||
| - | <code> | ||
| - | {% match lang }:{ | ||
| - | {%= ru}:{ | ||
| - | Русский | ||
| - | %} | ||
| - | |||
| - | {%= uk }:{ | ||
| - | Украинский | ||
| - | %} | ||
| - | |||
| - | {%= en }:{ | ||
| - | Английский | ||
| - | %} | ||
| - | |||
| - | {%= lv }:{ | ||
| - | Латышский | ||
| - | %} | ||
| - | |||
| - | {%= ?}:{ | ||
| - | Какой-то другой язык | ||
| - | %} | ||
| - | %} | ||
| - | </code> | ||