Движок QEng підтримує систему віртуального інвентарю команд або одиночних гравців. Це дозволяє реалізовувати квести з пошуком та використанням предметів (ключів, інструментів, валюти).
В інтерфейсі ігрового вікна інвентар відображається як список предметів із зображеннями, коротким описом та кнопкою дії.
Кожен предмет являє собою унікальний текстовий ідентифікатор (ключ), який можна додавати, видаляти або “активувати” (використовувати).
<div id="inventory_container">Завантаження інвентарю...</div>
showInventoryItems('inventory_container');
Додавання предметів прив'язане до вирішення бонусів (або наскрізних бонусів).
<script>
addInventoryItem('hammer123');
</script>
Після того як команда введе правильну відповідь для цього бонусу, предмет із ключем hammer123 з'явиться в їхньому інвентарі.
Для коректного відображення предмета hammer123 завантажте на cdn гри два файли картинок із точними назвами:
item_hammer123.jpg — прев'ю предмета, що показується в списку інвентарю.item_hammer123_big.jpg — детальне зображення, що показується при кліку по значку ока (детальний перегляд).За замовчуванням картинки предметів беруться з папки cdn поточної гри. При копіюванні гри файли на cdn не копіюються, тому в копії картинки предметів зникнуть.
Щоб цього не сталося, прив'яжіть інвентар до гри, в яку залиті картинки. Виклик достатньо зробити один раз на всю гру — у полі “Загальний HTML заголовок” у налаштуваннях гри (в режимі “Джерело”):
<script> setInventoryGameId(1234); </script>
де 1234 — id гри з картинками (номер папки на cdn).
Загальний HTML заголовок копіюється разом із грою, тому копія продовжить брати картинки з вихідної гри. Якщо картинки залиті в нову гру — змініть id у цьому виклику.
Той самий id можна задати точково, лише для одного рівня, другим параметром:
showInventoryItems('inventory_container', 1234);
Щоб забрати предмет у команди (наприклад, при віддачі персонажу або використанні для відкриття дверей):
<script>
removeInventoryItem('hammer123');
</script>
Важливо: Якщо предмет був доданий за допомогою наскрізного бонусу, то видалити його звичайним бонусом не можна. Його потрібно видаляти також через наскрізний бонус із вищим порядковим номером.
При кліку гравцем по кнопці “Використовувати” у предмета в інвентарі, движок автоматично намагається ввести код, який збігається з ідентифікатором предмета.
* Наприклад, при використанні предмета hammer123 в поле введення відповідей автоматично відправиться код hammer123.
Робочий приклад рівня з інвентарем та кодом можна подивитися в демо-грі для авторів: Приклад у грі.