联动
CombatEffect EventBus 事件、Chronos 集成、属性插件与跨模块联动
联动
CombatEffect 模块通过 EventBus 与其他模块联动,并可触发特效供其他模块调用。模块为纯事件驱动型,不涉及数据库持久化与跨服同步。
EventBus 事件
CombatEffect 模块发布 3 个事件主题,供其他模块(如 BattlePass、EventPacket)订阅:
| 事件主题 | 触发时机 | payload 字段 | 说明 |
|---|---|---|---|
axs.combateffect.kill_entity | 玩家击杀非玩家活体实体 | entityType、entityName | 击杀怪物/动物等 |
axs.combateffect.player_death | 玩家击杀其他玩家 | entityType、entityName、victim | PVP 击杀 |
axs.combateffect.damage_dealt | 玩家对活体实体造成伤害 | attacker、targetType、targetName、damage | 含 TACZ 枪械伤害 |
payload 字段说明
kill_entity / player_death
| 字段 | 说明 |
|---|---|
entityType | 目标实体类型名(如 ZOMBIE、PLAYER) |
entityName | 目标实体名称 |
victim | 仅 player_death 主题包含,死亡玩家名称 |
damage_dealt
| 字段 | 说明 |
|---|---|
attacker | 攻击者玩家名 |
targetType | 目标实体类型名 |
targetName | 目标实体名称 |
damage | 最终伤害值 |
headshot | 仅 TACZ 枪械伤害包含,是否爆头(true / false) |
source | 仅 TACZ 枪械伤害包含,固定为 tacz |
TACZ 枪械伤害与原版伤害发布到同一主题,payload 结构一致,下游消费者无需区分伤害来源。事件主题支持末尾
.*通配符订阅,如axs.combateffect.*匹配全部事件。
Chronos 集成
CombatEffect 与 ArcartX Chronos 插件深度集成。Chronos 未安装时相关功能自动降级,不影响模块正常加载。
| 功能 | Chronos 用途 | 降级行为 |
|---|---|---|
| 连击追踪 | 按状态组累加连击 | 回退到原版伤害事件统计 |
| 死亡缓冲 | 缓冲期间强制玩家进入指定 Chronos 状态 | 不进入 Chronos 状态,仅应用 Shader/相机 |
| 状态触发器 | 状态进入/离开触发特效 | 触发器不启用 |
| 控制器触发器 | 控制器切换触发特效 | 触发器不启用 |
属性插件集成
伤害飘字子系统支持多种属性插件作为伤害来源,按优先级自动检测与回退:
| 优先级 | 来源 | 配置值 |
|---|---|---|
| 1 | MythicLib / MMOItems | mythiclib |
| 2 | CraneAttribute | craneattribute |
| 3 | AttributePlus | attributeplus |
| 4 | Symphony | symphony |
| 5 | Bukkit 原版 | bukkit |
治疗飘字支持原版治疗与 MythicMobs 技能治疗(需 MythicMobs 插件)。
跨服同步
CombatEffect 模块不涉及跨服数据同步。所有战斗特效均为单服实时事件,不跨服传播。
模块集成示例
BattlePass 任务订阅
BattlePass 模块可订阅 CombatEffect 发布的 EventBus 事件主题,追踪玩家击杀与伤害行为:
EventPacket 规则订阅
EventPacket 模块可订阅伤害事件,根据伤害值触发自定义规则:
通过 Capability 主动触发
其他模块可通过 CombatEffectTriggerable Capability 主动触发战斗特效(按包 ID 触发或直接发包),详见 包定义 - 手动触发。