Skip to content

动作 / 技能编辑器

所属:编辑器 GUI · 相关:动作系统 · 物品编辑器

动作编辑器(ActionRefsEditionGui)让你在 GUI 里给物品配触发器与处理器,无需手写 actions.triggers。从物品编辑器的 [动作/技能] 进入。


1. 界面结构

  • 触发器标签页(顶部 6 个槽):右键 / 左键 / 潜行右键 / 潜行左键 / 交互方块 / 丢弃等(可配,源 ActionTriggerCatalog)。每个标签显示该触发器下的处理器数量;左键切换当前触发器。
  • 处理器列表(7 个槽):每个处理器显示 #序号 处理器ID 载荷预览
    • 左键:上移 ↑
    • Shift + 左键:下移 ↓
    • 右键:删除
    • 中键 / Shift + 右键:编辑载荷
  • 冷却(槽 21):左键 +1s,右键 -1s,Shift + 左键 重置。写入该触发器 cooldownMs
  • 添加处理器(槽 19):打开处理器选择器。
  • 绑定技能(槽 20):打开技能绑定界面。
  • 保存(槽 49):写回物品。

🖼️ [图片占位] 动作编辑器界面,标注触发器标签、处理器列表、冷却、添加按钮 · 建议 assets/editor-actions.png


2. 添加处理器流程

[添加处理器]
→ 处理器选择器(ActionHandlerPickerGui)列出已注册处理器
→ 选一个处理器
   ├─ 若该处理器注册了 载荷 schema → 打开 载荷表单(PayloadSchemaFormGui)
   │     · 每个字段一个槽,显示字段名 / 类型 / 当前值 / 是否必填
   │     · 左键编辑字段(聊天输入)
   │     · STRING / INT / DOUBLE / BOOL 类型图标不同
   │     · [原始字符串] 按钮:跳过 schema 直接输入裸 payload
   │     · [确认] 校验(PayloadSchemaValidator)后写入
   └─ 若无 schema → 直接聊天输入不透明 payload 字符串

载荷 schema 是开发者为处理器声明的字段结构,详见 动作处理器开发 → payload schema


3. 绑定 QinhSkills 技能

[绑定技能]SkillBindingGui)是「让物品某触发器释放一个 QS 技能」的快捷入口:

  1. 选触发器标签(同上 6 个)。
  2. 技能列表:点击选一个 QinhSkills 技能。
  3. 手动输入按钮:聊天输入技能 ID。
  4. JSON 表单按钮:为 qinhskills:cast 填 skill + level 字段。
  5. 清除技能:移除该触发器的 qinhskills:cast
  6. 完整动作链接:跳到动作编辑器做多处理器编辑。

绑定后等价于在该触发器 refs 加一个:

yaml
- handler: qinhskills:cast
  payload: '{"skill":"技能ID","level":1}'

技能机制见 集成 → QinhSkills


4. 保存与热重载

点保存(槽 49)后,ActionRefsEditorService.saveBinding() 把动作表写进物品 YAML 的 actions 段,并触发动作表热重载(ActionTableRegistry.reload()),改动立即生效。


5. 与手写 YAML 的对应

GUI 里配的就是 动作系统 那套 actions.triggers

  • 触发器标签 ↔ actions.triggers.<名>
  • 处理器列表 ↔ refs: [{handler, payload}]
  • 冷却 ↔ cooldown

GUI 不支持配 conditions / consume / sequence 的所有细节时,可切回手写 YAML 补充(两者互通)。


下一步