SuperAPI AI 工具集

godot-quest-system

通用与其它

查看项目

更新于 10-15 22:09

技能介绍

用途:为 Godot 项目提供任务追踪系统的实现蓝图,涵盖任务定义、目标进度、奖励发放与分支任务链。

主要能力:以 Resource 定义任务(quest_resource.gd,含 StringName id、状态、目标与奖励);通过 AutoLoad 单例 QuestManager 管理接受、进度、完成与链式任务;提供击杀/收集/对话触发节点、任务 UI 追踪、分支任务数据、任务发布者对话钩子、持久化加载、限时挑战、隐藏目标、本地化描述、任务图管理、路径点辅助与冲突解决等配套脚本。

使用方式:遵循黄金路径 accept → event trigger → progress → complete → persist。接受任务用 QuestManager.accept_quest(quest),运行时修改需复制 Resource,并只连接一次 quest_completed;事件触发通过触发节点或事件总线,不在敌人脚本中硬编码;进度用 update_objective(quest_id: StringName, …),仅使用驻留 id;完成时管理器移除活动任务、发出 quest_completed,并通过背包/经济信号发放奖励;任务离开活动集合时断开完成 Callable 以防重复奖励;持久化保存活动/已完成 id 映射与计数,而非实时 Resource 图。

限制与禁忌:不要把活动任务只存在 Player 节点上;不要用未验证的普通字符串 id,应使用 StringName 或注册表(如 &"kill_slimes");不要忘记断开完成信号;不要在 _process 中轮询目标,应信号驱动;不要跳过任务状态的存档/读档;不要在敌人/物品脚本中硬编码任务逻辑;不要在 Quest Resource 内直接发放战利品,应发出信号由背包/经济系统发放;不要允许同一任务 id 存在重复活动实例。

注意事项:对含 null 元素的数组调用 objectives.all(...) 会崩溃,需在 is_complete() 中做空值检查;NavMesh 路径点仅在目标变化时更新 NavigationAgent3D.target_position;并发进度需用 Mutex 加延迟信号;前置条件通过 Inspector 中的 Resource 链接任务链。

适用场景:Godot 游戏中的任务系统、RPG 任务循环、对话与任务联动、任务奖励与经济/背包系统对接、任务存档与本地化。

其他:官方文档与相关技能按需查阅,避免预加载整个技能网络。具体 API 细节与深层模式见 references/quest-patterns-deep.md。