bag-shoppingInventory

Обзор

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. Без этого система инвентаря будет работать в фоне, но игрок её не увидит!

circle-info

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 удаляет его из инвентаря и создаёт сущность выброшенного предмета.

circle-info

Выброшенные предметы автоматически исчезают со временем (с предупреждающей полосой). Если удерживать кнопку взаимодействия над предметом, таймер его исчезновения сбрасывается.

circle-info

Вы можете сделать выброшенный предмет эксклюзивным (видимым/подбираемым только одним игроком) с помощью dropped->set_exclusive(player).

Последнее обновление