Skip to content

Инвентарь

TrueCat17 edited this page May 8, 2021 · 5 revisions

Инвентарь

Положить объект в инвентарь можно нажатием "кнопки действия" рядом с объектом (взять, событие 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'

Далее ->
<- Назад

Основы
Если вы новичок, то будет достаточно прочитать лишь это, пока ваш энтузиазм не исчерпан.
Остальное можно будет прочесть по мере надобности.

  1. Быстрый старт!
  2. Основы команд и блоков.
  3. Простейшие примеры.
  4. Изображения.
  5. Музыка и звуки.

Документация по RPG-части находится здесь.


Более сложные вещи
Через некоторое время вам, возможно, потребуются более продвинутые возможности.

  1. Функции для изображений (im-функции).
  2. Эффекты.
  3. Времена суток.
  4. ATL (анимации и трансформации).
  5. Ввод с клавиатуры.
  6. Введение в ScreenLang (GUI, интерфейс).
  7. Конфигурирование игры.

Дополнительно


Перед самым началом
Советы для новичков и не только.


Оффтоп.

Clone this wiki locally