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

Шаблони — це динамічні вирази, які обчислюються на сервері до відправлення гравцям, а під час гри гравцям буде показано лише результат виразу саме для їхньої команди. Код шаблону НЕ видно навіть у вихідному коді сторінки, в коді буде лише результат обчислення.

Класичні застосування шаблонів:

Шаблони можна прописувати у звичайному режимі редактора або в режимі вихідного коду (Source) в текст завдань, підказок та бонусів. Шаблони можуть бути вкладеними.

Для полегшення написання синтаксису шаблонів ви можете скопіювати собі та використовувати спеціальну таблицю: Google Таблиця генерації шаблонів QEng.

Різні види шаблонів

{% match line }:{ 
  {%= 688 /* коментар: назва лінійки */}:{
Текст для лінійки з ID 688
  %}
 
  {%= 643 }:{
Текст для лінійки з ID 643
  %}
  {%= 653,655 }:{
Текст для лінійки з ID 653 або 655
  %}
 
  {%= ?}:{ 
Текст для будь-якої іншої лінійки
  %}
%}
{% 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%
  %}
%}
  • ua/authors_main/task_editor/advanced/edit_templates.txt
  • Last modified: 2026/06/15 21:05
  • (external edit)