一、 触发脚本类型与文件定位
触发脚本是传奇服务端响应特定事件(如攻击、死亡、捡物)的核心逻辑。所有触发脚本均位于 MirServer\Mir200\Envir\Market_Def\ 目录下的文本文件中,由引擎在事件发生时自动调用。
• QFunction-0.txt:全局功能脚本,处理全服玩家的公共事件,是使用频率最高的触发文件。
• QManage.txt:登录脚本,玩家登录游戏时自动执行,用于初始化变量、发放奖励、检测状态。
• MapQuest.txt:地图触发脚本,玩家进入或离开特定地图坐标时触发。
• RobotManage.txt:机器人脚本,由系统定时自动执行,用于全服活动、清理数据。
二、 核心触发标签与编写规范
触发标签是引擎识别事件的钩子,必须严格按照格式编写在对应脚本文件中。
1. 全局功能触发(QFunction-0.txt)
• [@Attack]:攻击触发。当玩家攻击怪物或其他玩家时触发。用于编写连击、吸血、特效等技能。
• [@GetItem]:拾取物品触发。玩家捡起地面物品时触发。用于检测拾取特定物品、自动使用、记录日志。
• [@KillMon]:杀死怪物触发。玩家成功击杀怪物时触发。用于鞭尸、额外爆率、任务计数。
• [@PlayDie]:死亡触发。玩家死亡时触发。用于掉落惩罚、复活提示、记录PK值。
2. 登录触发(QManage.txt)
• [@Login]:角色登录触发。玩家进入游戏时执行,必须放在文件最顶部。用于检测首充、设置变量、发放每日奖励。
3. 地图触发(MapQuest.txt)
• 格式:地图编号 坐标X 坐标Y 范围 触发标识。当玩家进入指定坐标范围时,跳转到 QFunction-0.txt 中对应的 [@触发标识] 段执行。
4. 机器人触发(RobotManage.txt)
• 由 AutoRunRobot.txt 中的定时任务调用。格式为 [@定时任务名],用于执行全服广播、清理数据、开启活动。
三、 攻击触发脚本实战([@Attack])
以下示例实现攻击时概率触发“吸血”和“绿毒”效果。
[@Attack]
#IF
; 检测攻击目标为怪物(避免PK时误触发)
CHECKCURRTARGETRACE = 0
; 5%概率触发
RANDOM 5
#ACT
; 对目标施放绿毒(持续掉血效果)
<&PLAYCAST> 绿毒
; 自身回复10%最大生命值
CHANGEHP + <$MAXHP(0)> / 10
SENDMSG 6 攻击触发吸血效果,回复10%生命值!
四、 拾取触发脚本实战([@GetItem])
以下示例实现拾取“金币”时自动转为元宝,拾取“裁决之杖”时全服公告。
[@GetItem]
; 检测拾取物品名称
#IF
EQUAL <$CURITEMNAME> 金币
#ACT
; 删除金币
TAKE 金币 1
; 增加1元宝
GAMEGOLD + 1
SENDMSG 6 金币已自动转换为1元宝。
#IF
EQUAL <$CURITEMNAME> 裁决之杖
#ACT
; 全服红色公告
SENDMSG 0 【全服公告】玩家[<$USERNAME>]捡到了神器[裁决之杖]!
五、 登录触发脚本实战([@Login])
以下示例实现玩家登录时检测首充、发放每日奖励。
[@Login]
; 检测是否首次登录(通过变量记录)
#IF
CHECK [100] 0
#ACT
SET [100] 1
SENDMSG 6 欢迎首次登陆,赠送新人礼包!
GIVE 新人礼包 1
; 检测每日奖励(通过日期变量)
#IF
EQUAL <$DATETIME> <$HUMAN(101)>
#ACT
SENDMSG 6 今日已领取过每日奖励。
#ELSEACT
SET [101] <$DATETIME>
GAMEGOLD + 1000
SENDMSG 6 每日奖励1000元宝已发放!
六、 地图坐标触发配置
在 MapQuest.txt 中设置进入沙巴克皇宫(3,330,330)范围时触发。
; 地图编号 坐标X 坐标Y 范围 触发标识
3 330 330 5 @EnterCastle
在 QFunction-0.txt 中编写触发后的效果。
[@EnterCastle]
#ACT
SENDMSG 6 你已进入沙巴克皇宫区域,注意安全!
七、 脚本调试与常见错误
1. 格式错误:每个触发段必须以 [@标签名] 开始,命令必须顶格写,不留空格。
2. 变量冲突:避免在不同脚本中使用相同的个人变量(如 [100]),建议建立变量规划文档。
3. 触发不执行:检查脚本是否放在正确的文件中,触发标签名是否拼写错误,并重启M2服务器。
4. 效率问题:[@Attack] 这类高频触发脚本内避免编写复杂运算或全服广播,以免导致服务器卡顿。
掌握以上触发标签的用法,即可实现从自动任务到复杂技能的全部游戏逻辑。编写后务必在测试服充分验证,确保触发条件准确、执行效率可控。

