深入解析传奇引擎功能:宝宝攻击与死亡触发功能详解

来源: 作者: 点击:

传奇引擎功能解析:宝宝攻击与死亡触发功能讲解
传奇引擎新增加了两项重要功能,宝宝攻击触发和死亡触发,这两个功能为游戏中的宝宝行为提供了更丰富的交互和更灵活的控制。以下是这两个功能的详细讲解。

宝宝触发命令常量新增
引入了两个新的命令常量:SlaveAttackDamage 和 SlaveStruckDamage,用于处理宝宝攻击和被攻击时的触发事件。
新增了 <$CurSlaveName> 和 <$CurSlaveTargetName> 常量,分别表示当前攻击的宝宝名称和目标名称。
修复了全体攻击模式下宝宝会灰名的问题。
增加了检测目标是否为宝宝的命令 CheckCurrTargetSlave。
宝宝攻击触发
通过新的脚本标签,可以获取本次触发的宝宝名称。
示例脚本:
[@SlaveMagicStruck]
#ACT
SENDMSG 6 你的宝宝被魔法攻击了
BREAK

[@SlaveMagicAttack]
#ACT
SENDMSG 6 你的宝宝魔法攻击了目标
BREAK
Copy
获取宝宝名称
增加了 <$CurSlaveName> 变量,用于在 [@SlaveAttack] 和 [@SlaveMagicAttack] 中获取当前攻击的宝宝名称。
示例脚本:
[@SlaveAttack]
#ACT
SendMsg 5 当前攻击宝宝名为<$CurSlaveName>
Copy
宝宝掉血前触发
在宝宝攻击或被攻击掉血前,可以触发相应的事件。
示例脚本:
[@SlaveAttackDamage]
#if
#act
Sendmsg 6 输出:<$CurSlaveName>攻击了[<$CurSlaveTargetName>],掉血值:<$DamageValue>
ChangeDamageValue 1 - 50
Sendmsg 6 调整后:<$CurSlaveName>攻击了[<$CurSlaveTargetName>],掉血值:<$DamageValue>
Copy
宝宝死亡触发
新增了 @OnSlaveDie qf字段,用于处理宝宝死亡事件。
示例脚本:
[@OnSlaveDie]
#ACT
#say 宝宝死亡了
Copy
可以通过 <$DIESLAVENAME> 获取死亡的宝宝名称,不包含数字。 

增加两个宝宝触发命令常量SlaveAttackDamage,SlaveStruckDamage,<$CurSlaveName> <$CurSlaveTargetName>,修复在全体攻击模式下毒自已的宝宝会灰名的问题,宝宝攻击/被攻击掉血前增加常量,宝宝名字:<$CurSlaveName>,目标名字,<$CurSlaveTargetName>增加检测目标是否为宝宝CheckCurrTargetSlave

宝宝攻击触发和魔法攻击触发中获取本次触发的宝宝名称 说明: 宝宝攻击触发

[@SlaveMagicStruck]
#ACT
SENDMSG 6 你的宝宝被魔法攻击了
BREAK

[@SlaveMagicAttack]
#ACT
SENDMSG 6 你的宝宝魔法攻击了目标
BREAK

[@SlaveStruck]
#ACT
SENDMSG 6 你的宝宝被物理攻击了
BREAK

[@SlaveAttack]
#ACT
SENDMSG 6 你的宝宝物理攻击目标
BREAK

-----------------------宝宝攻击触发和魔法攻击触发中获取本次触发的宝宝名称-------------------

增加变量<$CurSlaveName>,仅用于[@SlaveAttack]及[@SlaveMagicAttack]中

[@SlaveAttack]
#ACT
SendMsg 5 当前攻击宝宝名为<$CurSlaveName>

[@SlaveAttack]
#IF
EQUAL <$CurSlaveName> 蜈蚣
#ACT
SENDMSG 6 你的蜈蚣宝宝在攻击目标

#IF
EQUAL <$CurSlaveName> 骷髅
#ACT
SENDMSG 6 你的骷髅宝宝在攻击目标

显示完整宝宝名称不去数字的变量:<$CurSlaveFullName> 按需使用

宝宝掉血前触发
-----------------------宝宝攻击前\掉血前触发(含分身)-------------------
[@SlaveAttackDamage] ;;宝宝攻击掉血前触发
#if
#act
Sendmsg 6 输出:<$CurSlaveName>攻击了[<$CurSlaveTargetName>],掉血值:<$DamageValue>
ChangeDamageValue 1 - 50
Sendmsg 6 调整后:<$CurSlaveName>攻击了[<$CurSlaveTargetName>],掉血值:<$DamageValue>

[@SlaveStruckDamage] ;;宝宝被攻击掉血前触发
#if
#act
Sendmsg 6 输出:<$CurSlaveName>被[<$CurSlaveTargetName>]攻击了,掉血值:<$DamageValue>
ChangeDamageValue 1 - 50
Sendmsg 6 调整后:<$CurSlaveName>被[<$CurSlaveTargetName>]攻击了,掉血值:<$DamageValue>

[@GamePetStruckDamage]
#ACT
;****** 宠物
SENDMSG 6 宠物被攻击,掉血量为<$Pet.DamageValue>,抵御掉血量的50%
Pet.ChangeDamageValue 1 - 50

[@SlaveStruckDamage ]
#ACT
;****** 宝宝不像宠物或英雄,只有一个,可以用H.或Pet.直接访问到这个宠物;而宝宝可能存在多个,多级脚本中就不好处理,所以宝宝用人物的
;SENDMSG 6 宝宝被攻击,掉血量为<$DamageValue>,抵御掉血量的50%
ChangeDamageValue 1 - 50

[@SlaveAttackDamage ]
#ACT
;****** 宝宝不像宠物或英雄,只有一个,可以用H.或Pet.直接访问到这个宠物;而宝宝可能存在多个,多级脚本中就不好处理,所以宝宝用人物的
;SENDMSG 6 宝宝攻击目标,掉血量为<$DamageValue>,攻击加成10点血量
ChangeDamageValue 0 + 10

格式: 宝宝死亡触发qf字段:@OnSlaveDie

[@OnSlaveDie]
#ACT
#say 宝宝死亡了

死的宝宝名字,不去数字:<$DIESLAVENAME>