触发脚本是响应游戏内特定事件自动执行的代码段,主要分为物品触发、地图触发、怪物触发、登录触发、等级触发、攻击触发、穿戴触发与拾取触发。物品触发通过数据库设置StdMode与AniCount值关联脚本,当使用该物品时执行QFunction-0.txt中对应的[@UseItemX]段。X为物品数据库的Shape值,需唯一对应。
地图触发设置在MapEvent.txt中定义。格式为“地图编号 座标X 座标Y 范围 事件编号 触发条件”。事件编号对应QFunction-0.txt的[@MapEventX]标签。触发条件包括人物走入(0)、走出(1)、定时(2)等。示例:3 330 330 5 1 0 表示盟重土城中心坐标,半径5格内人物走入时触发事件1,执行[@MapEvent1]脚本。
怪物触发配置在MonGen.txt的爆率文件关联。怪物死亡后执行QFunction-0.txt的[@KillMonX]脚本,X为怪物数据库的Race值。脚本内可检测怪物名称、地图,执行全服公告、掉落额外物品等操作。攻击触发使用[@Attack]标签,检测攻击目标为怪物或人物,结合CHECKCURRTARGETRACE命令实现不同效果。
登录触发通过QManage.txt实现。玩家登录游戏时自动执行[@Login]段脚本,常用于初始化变量、发放每日奖励、检测封号状态。等级触发使用[@Upgrade]标签,配合CHECKLEVEL检测,当玩家升级时自动执行赠送属性点、解锁技能等操作。
穿戴触发分装备与取下两类。穿戴装备触发[@TakeOnX]标签,X为装备位置编号。取下装备触发[@TakeOffX]标签。脚本内通过CHECKITEMW检测穿戴物品属性,实现套装效果激活或失效。拾取触发使用[@PickUpItem]标签,检测拾取物品名称,自动绑定或触发任务。
条件检测命令决定触发是否执行。CHECKMAP检测当前地图,CHECKPOS检测坐标位置,CHECKITEM检测背包物品,CHECKVAR检测变量值。组合条件使用AND与OR连接,控制复杂触发逻辑。示例:#IF CHECKMAPNAME 盟重城 CHECKITEM 令牌 1 #ACT 表示在盟重城且拥有令牌才执行后续动作。
执行动作命令实现游戏功能。MAPMOVE进行地图传送,GIVE发放物品,TAKE扣除物品,CHANGEEXP调整经验值。全服公告使用SENDMSG 0 公告内容。个人提示使用SENDMSG 6 提示内容。执行人物属性调整通过CHANGELEVEL调整等级,CHANGEEXP调整经验,CHANGEABIL调整属性点。
变量管理在触发脚本中至关重要。个人变量P0-P99在本次登录期间有效,全局变量G0-G999全服永久存储。字符变量S0-S99存储字符串。设置变量使用MOV P0 100,检测变量使用CHECKVAR P0 = 100。通过变量记录触发次数,实现限时活动或每日次数限制。
实战案例:设置盟重城安全区定时活动。在MapEvent.txt添加行:3 335 335 10 101 2。在QFunction-0.txt创建[@MapEvent101]段落:#IF #ACT SENDMSG 0 安全区宝箱已刷新! GIVE 宝箱 1。配合机器人脚本设置每60分钟触发一次,实现全自动活动。
调试触发脚本需查看M2控制台报错信息。常见错误包括标签未定义、变量未初始化、坐标超出地图范围。使用SENDMSG 6调试输出变量值,确认触发条件是否满足。脚本修改后需重新加载相应功能模块,或重启M2服务器使改动生效。

