传奇攻击触发脚本教程 常量变量调用完整版
本文详解传奇攻击触发脚本用法,讲解当前对象常量、C前缀变量调用规则,提供魔法攻击、物理攻击完整可复用脚本,区分怪物名称完整版与精简版变量,适合传奇私服脚本开发者学习使用。…
在传奇私服脚本开发中,攻击触发是人物交互、怪物判定、伤害提示、PK数据展示的核心模块。多数新手开发者常混淆当前对象常量、自定义字符串变量的调用规则,导致魔法攻击、物理攻击触发脚本报错、数据读取异常。本文详解传奇通用攻击触发机制,规范常量与变量调用格式,提供可直接复用的完整脚本代码。
一、核心基础:常量与变量调用规则
攻击触发、被攻击触发、死亡触发、角色出售信息触发等场景中,当前对象的常量和变量有固定调用区分,是脚本无报错运行的前提。
1.1 私人常量调用规则
当前对象所有私人常量,调用时需在参数前增加前缀C.,用于读取目标角色固定属性数据,常用核心常量如下:
角色生命值:<$C.HP>|角色PK值:<$C.PKPOINT>|角色金币:<$C.GOLDCOUNT>|角色元宝:<$C.GAMEGOLD>
1.2 私人变量调用规则
当前对象私人变量与自身变量核心区别为前缀标识,区分规则如下:
目标对象变量(当前对象):<$CSTR(S1)>、<$CSTR(A1)>、<$CSTR(T1)>、<$CSTR(U1)>(前缀带C)
自身角色变量:<$STR(S1)>、<$STR(N98)>、<$STR(N99)>(无C前缀,直接读取本地变量)
二、攻击触发核心说明
本文所有触发脚本仅在攻击目标为怪物/人物时生效,部分辅助类魔法不会触发该机制,典型代表为魔法盾,制作脚本时需规避该场景误区。
三、魔法攻击触发完整脚本
包含被魔法攻击、魔法攻击目标两大模块,可区分人物目标与怪物目标,精准展示攻击者信息、魔法ID及角色属性。
3.1 被魔法攻击触发 [@MagicStruck]
;被人物魔法攻击触发
#IF
CHECKCURRTARGETRACE = 0
#ACT
SENDMSG 6 你被人物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253
SENDMSG 6 你被人物【<$C.USERNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>。对方HP=<$C.HP>对方PK值=<$C.PKPOINT>对方元宝=<$C.GAMEGOLD> 255 253
BREAK
;被怪物魔法攻击触发
#IF
#ACT
SENDMSG 6 你被怪物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253
BREAK
3.2 主动魔法攻击触发 [@MagicAttack]
;魔法攻击人物目标
#IF
CHECKCURRTARGETRACE = 0
#ACT
SENDMSG 6 你攻击了人物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>。魔法攻击鼠标指向坐标【<$STR(N98)>:<$STR(N99)>】 255 249
SENDMSG 6 你攻击了人物【<$C.USERNAME>】。使用魔法ID=<$CURRRUSEMAGICID>。对方HP=<$C.HP>对方PK值=<$C.PKPOINT>对方元宝=<$C.GAMEGOLD> 255 249
BREAK
;魔法攻击怪物目标
#IF
#ACT
SENDMSG 6 你攻击了怪物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID> 255 249
BREAK
四、物理攻击触发完整脚本
物理攻击无魔法ID关联,分为被物理攻击、主动物理攻击两大模块,支持变量跨对象传递演示。
4.1 被物理攻击触发 [@Struck]
;被人物物理攻击
#IF
CHECKCURRTARGETRACE = 0
#ACT
SENDMSG 6 你被人物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253
BREAK
;被怪物物理攻击
#IF
#ACT
SENDMSG 6 你被怪物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID> 255 253
BREAK
4.2 主动物理攻击触发 [@Attack]
;物理攻击人物目标(含CSTR变量传递演示)
#IF
CHECKCURRTARGETRACE = 0
#ACT
MOV N1 <$CSTR(N1)>
SENDMSG 6 把对方的N1变量值传递给我的N1变量里,使用“CSTR”代表当前对象的变量比自身“STR”多前缀C
SENDMSG 6 你攻击了人物【<$C.USERNAME>】。使用魔法ID=<$CURRRUSEMAGICID> 255 249
BREAK
;物理攻击怪物目标
#IF
#ACT
SENDMSG 6 你攻击了怪物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID> 255 249
BREAK
五、怪物名称变量区分(完整版/精简版)
传奇主流引擎通用两种怪物名称读取变量,开发者可根据展示需求选用,解决怪物名称带数字后缀的显示问题:
1、完整名称变量:<$CURRRTARGETFULLNAME> (保留怪物名称后缀数字,显示原始全名)
2、精简名称变量:<$CURRRTARGETNAME> (自动剔除名称后缀数字,仅显示核心名称)
六、脚本使用注意事项
1、目标种族判定指令CHECKCURRTARGETRACE = 0专用于区分人物目标,删除该判定后脚本将对所有目标生效;
2、常量C.前缀仅针对当前对象生效,自身属性读取无需添加该前缀;
3、辅助buff类魔法(魔法盾、隐身术等)不触发任何攻击触发段,无需额外屏蔽判定。


