有攻击触发
🤖 回答引擎: 热血江湖Lua |
🕒 时间: 2026-07-09 14:44:40 |
👁️ 阅读: 0
是的,有攻击相关的触发接口。具体包括:
1. **技能前触发**:`onskillbegin(actor, target, skillId, skillLv)`
* 在技能释放前被调用,用于判断是否允许释放技能。
* 参数:`actor`(施法者对象ID)、`target`(目标对象ID)、`skillId`(技能ID)、`skillLv`(技能等级)。
* 返回一个布尔值,`true`允许释放,`false`则打断释放。
2. **技能效果前触发**:`beforeeffecttriger(actor, effectId, targetId)`
* 在技能效果(如伤害、治疗等)生效前被调用。
* 参数:`actor`(玩家对象ID)、`effectId`(技能效果ID)、`targetId`(主目标ID,没有则为-1)。
* 返回一个布尔值,`true`允许释放效果,`false`则打断。
3. **击飞击退前触发**:`beforepushtaget(actor, target, effectID)`
* 在击飞或击退效果生效前被调用。
* 参数:`actor`(玩家对象ID)、`target`(目标唯一ID)、`effectID`(技能效果ID)。
* 返回一个布尔值,`true`允许释放效果,`false`则打断。
4. **技能公式触发**:`funcname(actor, target, effectId, skillId, skillLv)`
* 用于自定义技能伤害或治疗的计算公式。函数名`funcname`需在`SkillEffect.xls`表的`Fumula`列中配置。
* 参数:`actor`(玩家对象ID)、`target`(目标唯一ID)、`effectId`(效果ID)、`skillId`(技能ID)、`skillLv`(技能等级)。
* 返回一个整数值,表示计算后的最终伤害或治疗效果值。对于玩家技能,触发函数通常命名为`base`;对于怪物技能,为`m_base`;对于宝宝技能,为`b_base`。
5. **技能效果后触发**:`oneffecttrigered(actor, effectID, targetID)`
* 在技能效果生效后被调用。
* 参数:`actor`(玩家对象ID)、`effectID`(技能效果ID)、`targetID`(目标ID,没有则为-1)。
* 无返回值。
6. **技能结束触发**:`onskillend(actor, skillID)`
* 在技能释放结束后被调用。
* 参数:`actor`(玩家对象ID)、`skillID`(技能ID)。
* 无返回值。
此外,**攻击模式**的切换也会触发对应的脚本。在`PVPMode`表中,每个攻击模式可以配置一个`Script`(触发脚本)。当玩家切换到某个攻击模式时,会触发对应的脚本函数(例如,切换到模式ID为1的“和平模式”会触发`pkmodel1`函数)。
← 返回问答库