bag-shopping物品栏

概述

All Out 提供了一个玩家物品栏 API,允许你创建物品、给予玩家物品,以及让玩家在你的游戏中整理、使用和丢弃物品。

有三个核心概念:

  • 物品定义 (Item_Definition): 什么是物品 (名称/图标/是否可堆叠 + 你自己的字段)

  • 物品实例 (Item_Instance): 世界中/物品栏内的一个实际堆栈

  • 物品栏 (Inventory): 一个包含插槽并存放物品实例的容器

每个玩家都有一个内置物品栏,位于 player.default_inventory.

持久化

如果你希望玩家物品栏在游戏会话之间自动保存,请在编辑器的 Edit -> Game Settings 部分启用“自动保存玩家物品栏”选项框

物品栏 API 参考

快速开始(注册 + 给予物品)

在以下位置注册物品定义一次 ao_before_scene_load,然后创建实例并将它们移入玩家的物品栏。

自定义物品栏

你可以创建不与玩家绑定的物品栏,用于例如:

  • 箱子 / 存储容器

  • 鱼/怪物队伍

要访问物品:

掉落物品

如果你希望玩家将物品丢到世界中(并允许其他玩家拾取),使用掉落物品系统:

生成一个掉落物品

丢弃动画 + 对齐到导航网格

处理从快捷栏界面拖放

如果你使用 Items.draw_hotbar,玩家可以从界面将物品拖出以将其丢弃。 Dropped_Item.handle_dropped_item 会将其从物品栏移除并生成一个掉落物品实体。

circle-info

掉落物品会随着时间自动消失(有一个警告条)。在物品上按住交互按钮可重置其消失计时器。

circle-info

你可以使用以下方法使掉落物品具有排他性(仅对某个玩家可见/可拾取): dropped->set_exclusive(player).

最后更新于