-
Notifications
You must be signed in to change notification settings - Fork 0
Инвентарь
Положить объект в инвентарь можно нажатием "кнопки действия" рядом с объектом (взять, событие take
).
Берётся ближайший объект, которые можно взять в инвентарь.
Эта операция приоритетнее "действия" в определённом месте локации
(см. События).
Объект в инвентаре можно:
- Использовать:
Генерируется событие
use
, "использованный" объект не удаляется из инвентаря (но его может удалить вызванная метка). - Удалить (вернуть в локацию или совсем удалить, в зависимости от параметра
remove_to_location
при регистрации): Генерируется событиеremove
.
Все события с объектами инвентаря (take
, use
и remove
)
хранят название объекта события в переменной rpg_event_object
.
$ set_inventory_size(30)
При уменьшении размера движок стремится переложить вещи из удаляемых ячеек в те, что не будут удалены.
Если это невозможно, то часть вещей будет разбросана вокруг игрока.
Функция add_to_inventory("obj_name", count)
добавляет в инвентарь count
объектов типа obj_name
и
возвращает кол-во объектов, которые нельзя поместить из-за ограничений по размеру инвентаря.
has_in_inventory("obj_name", count = 1)
Возвращает True
, если в инвентаре имеется count
объектов типа obj_name
, иначе - False
.
remove_from_inventory("obj_name", count)
Удаляет из инвентаря count
объектов типа obj_name
и
возвращает кол-во объектов, которые нельзя удалить из-за их отсутствия.
inventory_add_event("event", "obj_name")
Где:
-
event
- название события инвентаря (одна из строк среди"take"
,"use"
,"remove"
), -
obj_name
- название объекта, который связан с событием.
show_inventory()
Содержимое инвентаря хранится в списке inventory
.
Каждый элемент списка (ячейка) является массивом из 2 элементов: название объекта (строка) и их кол-во в этой ячейке.
Если данная ячейка пуста, то названием объектов, которые она содержит, будет пустая строка.
Пользовательский код может без проблем менять содержимое инвентаря вручную, если в этом возникнет необходимость.
Например, так можно заменить все монеты в 10
тугриков монетами в 20
(удвоив таким образом наличные):
for i in inventory:
if i[0] == 'coin-10':
i[0] = 'coin-20'
Основы
Если вы новичок, то будет достаточно прочитать лишь это, пока ваш энтузиазм не исчерпан.
Остальное можно будет прочесть по мере надобности.
Документация по RPG-части находится здесь.
Более сложные вещи
Через некоторое время вам, возможно, потребуются более продвинутые возможности.
- Функции для изображений (im-функции).
- Эффекты.
- Времена суток.
- ATL (анимации и трансформации).
- Ввод с клавиатуры.
- Введение в ScreenLang (GUI, интерфейс).
- Конфигурирование игры.
Дополнительно
- Некоторые полезные функции.
- Сигналы и таймауты.
- Технические подробности работы с изображениями.
- Технические подробности ВН-спрайтов.
- Система переводов.
- Воспроизведение видео.
- Скрин помощи.
- Прерываемые циклы.
- https.
- Система обновлений.
Перед самым началом
Советы для новичков и не только.
Оффтоп.