$npx -y skills add HOBOBO/AbilityKit --skill rulesskill.* 事件(例如 skill.cast.complete) - SkillCastRequest:常见 payload,包含 CasterActorId/TargetActorId/...| 1 | # Skill(技能)规则 |
| 2 | |
| 3 | ## 1) 核心对象 |
| 4 | |
| 5 | - **SkillExecutor / SkillPipelineRunner**:技能管线执行 |
| 6 | - **MobaSkillTriggering**:派发 `skill.*` 事件(例如 `skill.cast.complete`) |
| 7 | - **SkillCastRequest**:常见 payload,包含 `CasterActorId`/`TargetActorId`/... |
| 8 | |
| 9 | ## 2) 被动技能(Passive Skills) |
| 10 | |
| 11 | - **MobaPassiveSkillTriggerRegisterSystem**:按 `SkillLoadoutComponent.PassiveSkillRuntime.TriggerIds` 注册/反注册监听 |
| 12 | - **默认自过滤**:对“可判定来源 actorId 的事件”,外部事件只执行 `AllowExternal=true` 的 trigger entry |
| 13 | |
| 14 | ## 3) 事件来源约定(用于 AllowExternal 过滤) |
| 15 | |
| 16 | 触发器若要支持“自身/外部”判定,事件必须在 `evt.Payload/evt.Args` 提供来源 actorId。 |
| 17 | |
| 18 | 当前被动系统识别来源的 key: |
| 19 | |
| 20 | - `MobaSkillTriggering.Args.CasterActorId`(`"caster.actorId"`) |
| 21 | - `EffectSourceKeys.SourceActorId`(`"effect.sourceActorId"`) |
| 22 | - 或 payload 为 `SkillCastRequest`(优先读取 `CasterActorId`) |
| 23 | |
| 24 | ## 4) AllowExternal 语义 |
| 25 | |
| 26 | - `AllowExternal=false`(默认):外部来源事件不会执行该 trigger |
| 27 | - `AllowExternal=true`:允许处理外部来源事件(内部再通过条件判断关系/阵营等) |