传奇服务端188引擎攻击和被攻击触发范文详解

[复制链接]
查看790 | 回复0 | 2019-3-10 01:12:36 | 显示全部楼层 |阅读模式
功能:攻击触发          ;M2 -> 选项 -> 功能设置 -> 全局功能 里的勾选开启 攻击/受攻击触发
调用:
QFunction-0 文件
说明:所有触发只有攻击到目标(也就是造成实际的效果,最简单的就是掉血了)才会触发
几个常量
<$CURRRTARGETNAME>      当前攻击(被攻击)目标名称
<$CURRRTARGETMAXHP>    当前攻击(被攻击)目标的最大血量
<$CURRRTARGETHP>           当前攻击(被攻击)目标受攻击时剩余的血量
<$CURRRUSEMAGICID>         攻击(被攻击)目标使用的魔法ID
<$CURRRTARGETDELHP>    当前被攻击目标被目标正常属性攻击掉的血量
<$CURHUMANHPTARGETPOWER> 当前被攻击目标被切割掉的血量
<$CURHUMANHPTARGETPOWEREX> 当前攻击(被攻击)目标减少的总血量

注意: F11中可以设置快捷键释放并对在释放的第一时间能对目标造成伤害的主动攻击技能,都属于魔法攻击触发范畴。
           比如战士的刺杀、半月、烈火、逐日、开天斩、野蛮冲撞,都是主动攻击类型的技能,那就都属于魔法攻击;
备注: 道士的施毒术释放的第一时间不能对目标造成伤害所以不能触发魔法攻击;
            法师的抗拒火环不能对目标造成伤害,所以也不能触发魔法攻击;

--------------------------------------------------------------------------------------------------------------------
188引擎人物英雄逻辑的重要说明:  
       188引擎新增更新内容的英雄触发逻辑是:谁执行这个脚本谁就是主体!
       所需用到的变量都为第一人称,也就是用人物的变量!
       以前的逻辑为了leg和blue引擎的版本脚本转换方便暂时不动,保持原样!
--------------------------------------------------------------------------------------------------------------------
当前涉及到的命令为下面几个,以后的逻辑都是这个逻辑:
--------------------------------------------------------------------------------------------------------------------
英雄穿戴触发:
[@HeroTakeOnX]
[@HeroTakeOffX]
--------------------------------------------------------------------------------------------------------------------
英雄攻击触发:
[@HeroMagicAttack]         ;(魔法攻击触发)
[@HeroMagicStruck]        ;(被魔法攻击触发)
[@HeroAttack]         ;(攻击触发)
[@HeroStruck]        ;(被攻击触发)
--------------------------------------------------------------------------------------------------------------------
攻击触发触发qf脚本段,需要在M2--全局功能--启用攻击和被攻击触发:
;主动攻击触发
[@Attack]                           //(物理攻击触发)
[@MagicAttack]                 //(魔法攻击触发)
[@HeroAttack]                   //(英雄物理攻击触发)
[@HeroMagicAttack]         //(英雄魔法攻击触发)


;被攻击触发
[@Struck]                           //(被物理攻击触发)
[@MagicStruck]                 //(被魔法攻击触发)
[@HeroStruck]                   //(英雄被物理攻击触发)
[@HeroMagicStruck]          //(英雄被魔法攻击触发)



切割脚本范例:
[@Attack]  
#if
CHECKCURRTARGETRACE = 99
#act
M.HumanHP - 10 1
MOV N$怪剩余血量  <$CURRRTARGETHP>
DEC N$怪剩余血量 <$CURHUMANHPTARGETPOWEREX>
SENDMSG  7 当前攻击对象:<$CURRRTARGETNAME>,<$STR(N$怪剩余血量)>/<$CURRRTARGETMAXHP>.本次掉血<$CURHUMANHPTARGETPOWEREX>=<$CURHUMANHPTARGETPOWER>+<$CURRRTARGETDELHP> 255 5
break

1.jpg
;-----------------------------------------------------------------------------------------------------------------------
人物攻击触发:

;主动攻击触发
[@Attack]                         ; (物理攻击触发)
#if
#act
MOV S$当前攻击对象 <$CURRRTARGETNAME>
;攻击收回目标背包的回城和随机传送石
;--------------------------------------------------------
#if
CHECKCURRTARGETRACE = 0
checkitemw 圣战项链 1
#act
<$STR(S$当前攻击对象)>.take 盟重传送石 99
<$STR(S$当前攻击对象)>.take 随机传送石 99
Sendmsg 0 <$USERNAME>带着圣战项链一刀把<$STR(S$当前攻击对象)>身上所有的传送石全部击碎!!哪里逃??? 0 250 3
break
;----------------------------------------------------------------------------------------------
[@攻击(被攻击)目标检测]
#IF
CHECKCURRTARGETRACE = 0
#SAY
当前攻击目标是人物
BREAK

#IF
CHECKSTRINGLIST ..\QuestDiary\人形怪名称.txt <$CURRRTARGETNAME>  
; 注意:人形怪程序默认为英雄,检测的时候用1,这个后面再改框架,大家可以先在检测英雄之前写上这段检测攻击目标是否在人形怪列表中来区分人形怪和英雄
#SAY
当前攻击目标是人形怪
BREAK

#IF
CHECKCURRTARGETRACE = 1
#SAY
当前攻击目标是英雄
BREAK


#IF
CHECKCURRTARGETRACE = 99                 
#SAY
当前攻击目标是怪
BREAK
;----------------------------------------------------------------------------------------------


英雄攻击脚本范例:

[@HeroAttack]
;复制上面人物的就可以直接用
#if
#act
MOV S$当前攻击对象 <$CURRRTARGETNAME>

;攻击收回目标背包的回城和随机传送石
;--------------------------------------------------------
#if
CHECKCURRTARGETRACE = 0
checkitemw 圣战项链 1
#act
<$STR(S$当前攻击对象)>.take 盟重传送石 99
<$STR(S$当前攻击对象)>.take 随机传送石 99
Sendmsg 0 <$USERNAME>带着圣战项链一刀把<$STR(S$当前攻击对象)>身上所有的传送石全部击碎!!哪里逃??? 0 250 3
break

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则