事件 API
Skills 事件位于 emaki.jiuwu.craft.skills.api.event,同步发布在技能玩家 owner thread。异步施法会先回到 owner thread,再发布 pre/post 事件。
| 事件 | 触发时机 | Cancellable | 可修改字段 | 取消/结果效果 | runtime 路径 |
|---|---|---|---|---|---|
SkillPreCastEvent | 条件、冷却、资源检查通过后,执行技能 effect 前 | 是 | 无 | 停止 effect、资源与冷却提交 | CastAttemptService 的 active/passive、cast 与 castByTrigger 路径 |
SkillPostCastEvent | effect 成功,资源与冷却已通过当前 session 提交后 | 否 | 无 | post 通知,不可回滚 | 成功的 CastAttemptService.finalizeAttempt;失败或 source lost 不发 |
SkillPreUpgradeEvent | 升级校验通过后、扣费和摇点前 | 是 | successRate | 停止扣费与升级 | SkillUpgradeService |
SkillUpgradeEvent | 升级尝试成功或失败结果已应用后 | 否 | 无 | post 通知 | SkillUpgradeService |
PlayerSkillSlotChangeEvent | equip、unequip、bind-trigger 写入前 | 是 | 无 | 阻止槽位变更 | PlayerSkillStateService 三条状态路径 |
SkillPostCastEvent 只包含 player、skillId、triggerId,且绝不 Cancellable。Script action/provider 是扩展执行点,不会凭注册本身触发事件;只有实际进入中央 cast/upgrade/slot service 的操作才覆盖这些事件。