Inventory
Обзор
All Out предоставляет API инвентаря игрока, которое позволяет создавать предметы, выдавать их игрокам, а также позволяет игрокам размещать, использовать и выбрасывать предметы в вашей игре.
Есть три основных понятия:
Определения предметов (
Item_Definition): что такое предмет является (название/иконка/стекование + ваши собственные поля)Экземпляры предметов (
Item_Instance): фактический стек в мире/в инвентареИнвентари (
Inventory): контейнер слотов, который хранит экземпляры предметов
У каждого игрока есть встроенный инвентарь в player.default_inventory.
Сохранение
Если вы хотите, чтобы инвентари игроков автоматически сохранялись между игровыми сессиями, включите флажок "Auto Save Player Inventory" в разделе Edit -> Game Settings в редакторе

Справочник API инвентаря
Быстрый старт (зарегистрировать + выдать предмет)
Зарегистрируйте определения предметов один раз в ao_before_scene_load, затем создавайте экземпляры и перемещайте их в инвентарь игрока.
Отображение хотбара
Чтобы показать на экране стандартный UI хотбара инвентаря, вызовите Items.draw_hotbar внутри метода ao_late_update вашего Player. Без этого система инвентаря будет работать в фоне, но игрок её не увидит!
Items.draw_hotbar обрабатывает за вас весь UI хотбара + переключение сумки. Он возвращает Draw_Hotbar_Result с selected_item, selected_item_index, inventory_open, и dropped_item полями.
Проверка, есть ли у игрока уже предмет
Распространённый шаблон — выдавать предмет только если у игрока ещё нет такого предмета:
Вы также можете проверить, сколько места осталось для конкретного типа предмета, прежде чем создавать его:
Пользовательские инвентари
Вы можете создавать инвентари, не привязанные к игроку, например для:
Сундуков / контейнеров для хранения
Команд рыб/мобов
Чтобы получить доступ к предметам:
Выброшенные предметы
Если вы хотите, чтобы игроки выбрасывали предметы в мир (а другие игроки могли их подбирать), используйте систему выброшенных предметов:
Создание выброшенного предмета
Анимация выброса + привязка к navmesh
Обработка перетаскивания из UI хотбара
Если вы используете Items.draw_hotbar, игроки могут перетащить предмет из UI, чтобы выбросить его. Dropped_Item.handle_dropped_item удаляет его из инвентаря и создаёт сущность выброшенного предмета.
Выброшенные предметы автоматически исчезают со временем (с предупреждающей полосой). Если удерживать кнопку взаимодействия над предметом, таймер его исчезновения сбрасывается.
Вы можете сделать выброшенный предмет эксклюзивным (видимым/подбираемым только одним игроком) с помощью dropped->set_exclusive(player).
Последнее обновление