联动
Conversation 模块 Capability、按键与跨模块联动
联动
Capability 注册
InteractionState
| 方法 | 说明 |
|---|---|
isInteracting(Player) | 返回玩家是否正在与 Conversation 模块交互(对话中、选择器已打开或电影序列播放中) |
其他模块可通过此能力判断玩家是否处于对话 / 电影序列中,从而决定是否打断或排队等待。
按键路由
选择器交互使用宿主 config.yml 的 keybinds 节注册的按键:
| 按键 | 行为 |
|---|---|
AXS_INTERACT | 选择器有候选时打开对话(优先级高于拾取) |
AXS_NAVIGATE_PREV | 选择器中向上导航 |
AXS_NAVIGATE_NEXT | 选择器中向下导航 |
对话 UI 本身不接收全局按键,回复选择通过 UI 内点击或键盘 1-9 完成。
Chemdah 联动
- 模块向 Chemdah 注册 ArcartX 对话主题,替代 Chemdah 默认主题渲染对话 UI
- Chemdah 对话重载时自动重置运行状态并重新注册主题
- 玩家点击选择器确认 NPC 后由 Chemdah 打开对话
对话触发条件由 Chemdah 配置,NPC 对话定义中的
trigger节指定 Adyeshach NPC。条件配置详见 条件系统。
Adyeshach 联动
- 扫描附近 Adyeshach NPC 作为选择器候选
npc-appearances配置在玩家看见 NPC 时自动应用模型与动画(启动时对未加载的 NPC 自动重试)
电影序列动作依赖
| 动作类型 | 依赖 | 缺失时行为 |
|---|---|---|
npc_animation / npc_model | Adyeshach | 动作静默跳过 |
subtitle | Announcer 模块 | 动作自动跳过 |
ui_packet | ArcartX 客户端 | 动作自动跳过 |
arcartx_sound | ArcartX 客户端 | 动作自动跳过 |
| 其余动作 | 无 | 始终可用 |
数据存储与跨服
本模块无数据库表,不涉及跨服同步。对话状态仅存在于内存,玩家退出时自动清理。