传奇QF英雄攻击触发脚本详解 物理魔法攻击触发配置教程
在传奇服务端定制开发中,英雄攻防触发脚本是实现个性化玩法、伤害提示、状态判定、专属buff触发的核心核心模块。多数GM在配置英雄攻击、被攻击事件时,常会遇到触发区分不精准、目标识别混乱、怪物名称显示异常等问题。本文基于QFunction-0功能文件,完整解析传奇英雄四大核心攻击触发事件,附带可直接套…
在传奇服务端定制开发中,英雄攻防触发脚本是实现个性化玩法、伤害提示、状态判定、专属buff触发的核心核心模块。多数GM在配置英雄攻击、被攻击事件时,常会遇到触发区分不精准、目标识别混乱、怪物名称显示异常等问题。本文基于QFunction-0功能文件,完整解析传奇英雄四大核心攻击触发事件,附带可直接套用的成品脚本、层级解析以及名称变量使用说明,适配主流引擎版本,可直接复制导入服务端使用。
一、传奇英雄四大攻击触发事件概述
英雄攻击相关触发分为四大核心标签,分别对应被魔法攻击、魔法攻击、被物理攻击、物理攻击四种场景,所有触发事件均内置判定规则:仅攻击目标为怪物时生效,部分无伤害类魔法(如魔法盾)不会触发对应魔法攻击事件,这是脚本配置的基础前提。
四大核心触发标签汇总:
1. [@HeroMagicStruck]:英雄被魔法攻击触发
2. [@HeroMagicAttack]:英雄释放魔法攻击触发
3. [@HeroStruck]:英雄被物理攻击触发
4. [@HeroAttack]:英雄发起物理攻击触发
二、QFunction-0完整成品脚本(可直接复制)
以下为规整后的无报错成品脚本,适配所有主流传奇GOM、GEE引擎,直接复制粘贴至服务端QFunction-0文本中即可生效,内置目标种族精准判定,区分人物、英雄、分身、怪物四大目标类型。
;=====================英雄攻防全场景触发脚本【QFunction-0】=====================
;生效说明:所有触发仅攻击目标为怪物时生效,魔法盾等无伤害魔法不触发魔法类事件
;作者适配:通用全引擎版本,无需额外挂载补丁
[@HeroMagicStruck]
;被人物魔法攻击
#IF
H.CHECKCURRTARGETRACE = 0
#ACT
SENDMSG 6 你的英雄被人物【<$H.CURRRTARGETNAME>】攻击了。使用魔法ID=<$H.CURRRUSEMAGICID> 255 253
BREAK
;被敌方英雄魔法攻击
#IF
H.CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6 你的英雄被英雄【<$H.CURRRTARGETNAME>】攻击了。使用魔法ID=<$H.CURRRUSEMAGICID> 255 253
BREAK
;被玩家分身魔法攻击
#IF
H.CHECKCURRTARGETRACE = 151
#ACT
SENDMSG 6 你的英雄被分身【<$H.CURRRTARGETNAME>】攻击了。使用魔法ID=<$H.CURRRUSEMAGICID> 255 253
BREAK
;被怪物魔法攻击
#IF
#ACT
SENDMSG 6 你的英雄被怪物【<$H.CURRRTARGETNAME>】攻击了。使用魔法ID=<$H.CURRRUSEMAGICID> 255 253
BREAK
;======================魔法攻击触发模块==========================
[@HeroMagicAttack]
;英雄攻击人物(魔法)
#IF
H.CHECKCURRTARGETRACE = 0
#ACT
SENDMSG 6 你的英雄攻击了人物【<$H.CURRRTARGETNAME>】。使用魔法ID=<$H.CURRRUSEMAGICID> 255 249
BREAK
;英雄攻击敌方英雄(魔法)
#IF
H.CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6 你的英雄攻击了英雄【<$H.CURRRTARGETNAME>】。使用魔法ID=<$H.CURRRUSEMAGICID> 255 249
BREAK
;英雄攻击怪物(魔法)
#IF
#ACT
SENDMSG 6 你的英雄攻击了怪物【<$H.CURRRTARGETNAME>】。使用魔法ID=<$H.CURRRUSEMAGICID> 255 249
BREAK
;======================被物理攻击触发模块==========================
[@HeroStruck]
;英雄被人物物理攻击
#IF
H.CHECKCURRTARGETRACE = 0
#ACT
SENDMSG 6 你的英雄被人物【<$H.CURRRTARGETNAME>】攻击了。使用魔法ID=<$H.CURRRUSEMAGICID> 255 253
BREAK
;英雄被敌方英雄物理攻击
#IF
H.CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6 你的英雄被英雄【<$H.CURRRTARGETNAME>】攻击了。使用魔法ID=<$H.CURRRUSEMAGICID> 255 253
BREAK
;英雄被分身物理攻击
#IF
H.CHECKCURRTARGETRACE = 151
#ACT
SENDMSG 6 你的英雄被分身【<$H.CURRRTARGETNAME>】攻击了。使用魔法ID=<$H.CURRRUSEMAGICID> 255 253
BREAK
;英雄被怪物物理攻击
#IF
#ACT
SENDMSG 6 你的英雄被怪物【<$H.CURRRTARGETNAME>】攻击了。使用魔法ID=<$H.CURRRUSEMAGICID> 255 253
BREAK
;======================物理攻击触发模块==========================
[@HeroAttack]
;英雄攻击人物(物理)
#IF
H.CHECKCURRTARGETRACE = 0
#ACT
SENDMSG 6 你的英雄攻击了人物【<$H.CURRRTARGETNAME>】。使用魔法ID=<$H.CURRRUSEMAGICID> 255 249
BREAK
;英雄攻击敌方英雄(物理)
#IF
H.CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6 你的英雄攻击了英雄【<$H.CURRRTARGETNAME>】。使用魔法ID=<$H.CURRRUSEMAGICID> 255 249
BREAK
;英雄攻击怪物(物理)
#IF
#ACT
SENDMSG 6 你的英雄攻击了怪物【<$H.CURRRTARGETNAME>】。使用魔法ID=<$H.CURRRUSEMAGICID> 255 249
BREAK
三、脚本核心判定规则解析
3.1 目标种族参数说明
脚本中H.CHECKCURRTARGETRACE为目标种族判定参数,是区分攻击对象的核心,不同数值对应不同目标类型,精准规避触发混乱问题:
数值0:对应普通玩家人物目标
数值1:对应敌方英雄目标
数值151:对应玩家分身目标
无参数判定:默认匹配所有怪物目标
3.2 消息弹窗颜色参数
脚本尾部255 253、255 249为传奇游戏内消息字体颜色参数,255为全局高亮底色,253代表被攻击提示色,249代表主动攻击提示色,可根据服内UI风格自行修改。
四、怪物名称变量使用区分(重点)
很多GM配置脚本时会遇到怪物后缀数字丢失的问题,核心是未区分目标名称变量,脚本内置两种变量,可根据需求自由选用,无需额外编写定义代码。
变量1:$H.CURRRTARGETNAME
基础目标名称变量,默认过滤怪物名称后方的数字后缀,例如怪物名为【魔龙教主123】,调用后仅显示【魔龙教主】,适合简洁提示场景。
变量2:$H.CURRRTARGETFULLNAME
完整目标名称变量,保留怪物名称所有后缀数字、符号,完整还原怪物原始命名,适合精准溯源、专属怪物判定等精细化玩法配置。
五、脚本导入与常见问题排查
1. 导入路径:打开传奇服务端文件夹,找到MirServer\Mir200\Envir\QuestDiary,打开QFunction-0文本,将上述脚本粘贴至文件末尾,保存后重启引擎即可生效。
2. 无触发提示排查:首先检查是否为魔法盾类无伤害魔法,此类魔法本身不触发事件;其次核对引擎版本是否匹配,老旧复古引擎需同步更新英雄变量补丁。
3. 名称显示异常排查:按需切换完整名称变量与基础名称变量,避免变量拼写错误,所有变量前缀H.不可省略。
通过以上完整脚本和配置解析,可快速完成传奇英雄全场景攻防触发配置,无论是制作攻击提示、英雄专属buff,还是目标差异化判定,都能依托该基础脚本二次开发,适配复古、微变、超变等所有版本的传奇服务器。


