All Out предоставляет API инвентаря игрока, который позволяет создавать предметы, давать их игрокам, а также игрокам располагать, использовать и выбрасывать предметы в вашей игре.
Существует три ключевых концепта:
Определения предметов (Определение_Предмета): что такое предмет является (название/иконка/стекование + ваши собственные поля)
Экземпляры предметов (Экземпляр_Предмета): фактический стек в мире/в инвентаре
Инвентари (Инвентарь): контейнер слотов, содержащий экземпляры предметов
У каждого игрока есть встроенный инвентарь в player.default_inventory.
Сохранение
Если вы хотите, чтобы инвентари игроков автоматически сохранялись между игровыми сессиями, включите опцию «Автосохранение инвентаря игрока» в разделе Редактировать -> Настройки игры в редакторе
Справочник по API инвентаря
Быстрый старт (регистрация + выдача предмета)
Зарегистрируйте определения предметов однажды в ao_before_scene_load, затем создайте экземпляры и переместите их в инвентарь игрока.
Пользовательские инвентари
Вы можете создавать инвентари, не привязанные к игроку, для таких вещей, как:
Сундуки / контейнеры хранения
Команды рыб/мобов
Чтобы получить доступ к предметам:
Выпавшие предметы
Если вы хотите, чтобы игроки выбрасывали предметы в мир (и позволяли другим игрокам подбирать их), используйте систему выпавших предметов:
Появление выпавшего предмета
Анимация броска + привязка к навмешу
Обработка перетаскивания из UI хотбара
Если вы используете Items.draw_hotbar, игроки могут перетащить предмет из интерфейса, чтобы выбросить его. Dropped_Item.handle_dropped_item удаляет его из инвентаря и создаёт сущность выпавшего предмета.
Выпавшие предметы автоматически исчезают со временем (с индикатором предупреждения). Удержание кнопки взаимодействия на предмете сбрасывает таймер исчезновения.
Вы можете сделать выпавший предмет эксклюзивным (видимым/подбираемым только одним игроком) с помощью dropped->set_exclusive(player).