authors_main:task_editor:advanced:inventory

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
authors_main:task_editor:advanced:inventory [2026/06/15 22:31]
admin [Как отобразить инвентарь на уровне]
authors_main:task_editor:advanced:inventory [2026/08/19 21:53] (текущий)
Строка 7: Строка 7:
 В интерфейсе игрового окна инвентарь отображается как список предметов с изображениями,​ кратким описанием и кнопкой действия. В интерфейсе игрового окна инвентарь отображается как список предметов с изображениями,​ кратким описанием и кнопкой действия.
  
-{{ :​authors_main:​inventory.png?​800 |Пример отображения инвентаря на уровне}}+{{ :​authors_main:​inventory.png?​800 |Инвентарь на уровне:​ предметы приходят за решённые бонусы}} 
 + 
 +Клик по предмету выделяет его ​и открывает две кнопки: «глаз» показывает картинку крупно,​ галочка — использует предмет. 
 + 
 +{{ :​authors_main:​inventory_item.png?​800 |Выбранный предмет:​ «глаз» показывает картинку крупно,​ галочка — использует предмет}}
  
 Каждый предмет представляет собой уникальный текстовый идентификатор (ключ), который можно добавлять,​ удалять или "​активировать"​ (использовать). Каждый предмет представляет собой уникальный текстовый идентификатор (ключ), который можно добавлять,​ удалять или "​активировать"​ (использовать).
Строка 13: Строка 17:
 ===== Как отобразить инвентарь на уровне ===== ===== Как отобразить инвентарь на уровне =====
  
-  ​1. В тексте задания (в режиме **"​Источник"​**) вставьте HTML-блок,​ где должен отображаться список предметов:​ +  ​В тексте задания (в режиме **"​Источник"​**) вставьте HTML-блок,​ где должен отображаться список предметов:​
-  ​+
 <code HTML> <code HTML>
 <div id="​inventory_container">​Загрузка инвентаря...</​div>​ <div id="​inventory_container">​Загрузка инвентаря...</​div>​
 </​code>​ </​code>​
- +  - В скрипт задания (поле скрипта внизу уровня) добавьте JS-вызов:​
-  2. В скрипт задания (поле скрипта внизу уровня) добавьте JS-вызов:​ +
 <code JavaScript>​ <code JavaScript>​
 showInventoryItems('​inventory_container'​);​ showInventoryItems('​inventory_container'​);​
Строка 29: Строка 30:
 ==== Добавление предмета в инвентарь ==== ==== Добавление предмета в инвентарь ====
 Добавление предметов привязано к решению бонусов (или сквозных бонусов). Добавление предметов привязано к решению бонусов (или сквозных бонусов).
-  ​1. Создайте бонус на уровне (например,​ "​Найти молоток"​). +  ​Создайте бонус на уровне (например,​ "​Найти молоток"​). 
-  ​2. В поле **"​Текст после решения"​** бонуса в режиме **"​Источник"​** (Source) вставьте скрипт:​+  ​В поле **"​Текст после решения"​** бонуса в режиме **"​Источник"​** (Source) вставьте скрипт:​
 <code HTML> <code HTML>
 <​script>​ <​script>​
Строка 42: Строка 43:
   * **''​item_hammer123.jpg''​** — превью предмета,​ показываемое в списке инвентаря.   * **''​item_hammer123.jpg''​** — превью предмета,​ показываемое в списке инвентаря.
   * **''​item_hammer123_big.jpg''​** — детальное изображение,​ показываемое при клике по значку глаза (детальный просмотр).   * **''​item_hammer123_big.jpg''​** — детальное изображение,​ показываемое при клике по значку глаза (детальный просмотр).
 +
 +==== Картинки при копировании игры ====
 +По умолчанию картинки предметов берутся из папки cdn **текущей** игры. При копировании игры файлы на cdn не копируются,​ поэтому в копии картинки предметов пропадут.
 +
 +Чтобы этого не произошло,​ привяжите инвентарь к игре, в которую залиты картинки. Вызов достаточно сделать один раз на всю игру — в поле **"​Общий HTML заголовок"​** в настройках игры (в режиме **"​Источник"​**):​
 +<code HTML>
 +<​script>​
 +setInventoryGameId(1234);​
 +</​script>​
 +</​code>​
 +где ''​1234''​ — id игры с картинками (номер папки на cdn).
 +
 +Общий HTML заголовок копируется вместе с игрой, поэтому копия продолжит брать картинки из исходной игры. Если картинки залиты в новую игру — поменяйте id в этом вызове.
 +
 +Тот же id можно задать точечно,​ только для одного уровня,​ вторым параметром:​
 +<code JavaScript>​
 +showInventoryItems('​inventory_container',​ 1234);
 +</​code>​
  
 ==== Удаление предмета из инвентаря (Использование/​Потеря) ==== ==== Удаление предмета из инвентаря (Использование/​Потеря) ====
 Чтобы забрать предмет у команды (например,​ при отдаче персонажу или использовании для открытия двери):​ Чтобы забрать предмет у команды (например,​ при отдаче персонажу или использовании для открытия двери):​
-  ​1. Создайте бонус, активируемый при прохождении. +  ​Создайте бонус, активируемый при прохождении. 
-  ​2. В его **"​Текст после решения"​** в режиме **"​Источник"​** пропишите:​+  ​В его **"​Текст после решения"​** в режиме **"​Источник"​** пропишите:​
 <code HTML> <code HTML>
 <​script>​ <​script>​
Строка 53: Строка 72:
 </​code>​ </​code>​
  
-<note important> +> **Важно:​** Если предмет был добавлен с помощью **сквозного** бонуса,​ то удалить его обычным бонусом нельзя. Его нужно удалять также через сквозной бонус с более высоким порядковым номером.
-**Важно:​** Если предмет был добавлен с помощью **сквозного** бонуса,​ то удалить его обычным бонусом нельзя. Его нужно удалять также через сквозной бонус с более высоким порядковым номером. +
-</​note>​+
  
 ==== Кнопка "​Использовать"​ ==== ==== Кнопка "​Использовать"​ ====
 При клике игроком по кнопке **"​Использовать"​** у предмета в инвентаре,​ движок автоматически пытается вбить код, совпадающий с идентификатором предмета. При клике игроком по кнопке **"​Использовать"​** у предмета в инвентаре,​ движок автоматически пытается вбить код, совпадающий с идентификатором предмета.
 * Например,​ при использовании предмета ''​hammer123''​ в поле ввода ответов автоматически отправится код ''​hammer123''​. * Например,​ при использовании предмета ''​hammer123''​ в поле ввода ответов автоматически отправится код ''​hammer123''​.
 +
 +Вся цепочка целиком:​ бонус решён — предмет пришёл в инвентарь — «использовать» вбило его код за игрока.
 +
 +{{ :​authors_main:​inventory_use.gif |Предмет приходит за бонус, а «использовать» вбивает его код за игрока}}
  
 ===== Демонстрация ===== ===== Демонстрация =====
-Рабочий пример уровня с инвентарем и кодом можно посмотреть в [[https://​qeng.org/​game.php?​gid=3493&​tid=68367|Демо-игре ​для авторов]].+Рабочий пример уровня с инвентарем и кодом можно посмотреть в демо-игре для авторов: ​[[https://​qeng.org/​game.php?​jump_to&​gid=3493&​task_id=68367|Пример в игре]].
  
  • authors_main/task_editor/advanced/inventory.1781562686.txt.gz
  • Последние изменения: 2026/06/15 22:31
  • admin