宝箱脚本存放于服务端Mir200\Envir\Market_Def目录下对应地图文件夹中。脚本文件命名格式为“宝箱名称-地图编号.txt”,例如“黄金宝箱-3.txt”表示盟重土城的宝箱NPC。MerChant.txt需添加对应NPC配置行,格式为“地图名/宝箱名称 地图编号 坐标X 坐标Y NPC名称 外观 方向 是否属于沙城 是否自动移动 间隔秒数”。
基础宝箱脚本结构包含主对话标签与功能标签。主标签[@MAIN]定义宝箱开启界面,使用#SAY显示对话内容,\符号实现换行。功能标签如[@开启宝箱]处理开启逻辑,内部由#IF条件检测块与#ACT执行块构成。#IF检测开启条件,#ACT执行物品发放与效果触发,#ELSEACT处理条件不满足时的提示。
条件检测命令决定宝箱能否开启。CHECKLEVEL检测玩家等级,CHECKITEM检测背包物品,CHECKGOLD检测金币数量,CHECKGAMEGOLD检测元宝数量。组合条件使用AND连接多个检测命令。示例:#IF CHECKLEVEL > 35 CHECKITEM 宝箱钥匙 1 CHECKGOLD > 10000 #ACT 表示需要等级35以上、拥有钥匙且金币超过1万。
物品发放命令实现宝箱奖励。GIVE命令直接给予物品,格式为GIVE 物品名称 数量。RANDOM命令实现随机奖励,配合GOTO跳转不同奖励段落。示例:RANDOM 5表示5分之1概率,根据随机结果跳转[@奖励1]至[@奖励5]标签。多重奖励使用多个GIVE命令连续发放,或通过#CALL调用外部奖励脚本文件。
变量控制实现高级宝箱功能。使用个人变量P记录开启次数,格式为MOV P1 0初始化,INC P1 1增加次数。检测开启次数:CHECKVAR P1 < 3表示限制每日3次。全局变量G控制全服宝箱活动状态,如MOV G101 1标记活动开启。时间变量H与M检测当前游戏内时间,实现限时宝箱。
随机宝箱脚本编写方法。在[@开启宝箱]段使用MOVR生成随机数,如MOVR P10 100生成0-99随机数存入P10。通过比较P10值跳转不同奖励段:SMALL P10 30跳转[@普通奖励],LARGE P10 29 SMALL P10 70跳转[@高级奖励],LARGE P10 69跳转[@稀有奖励]。各奖励段内配置对应物品发放。
条件宝箱需要特定物品或状态。检测任务标志:CHECK [屠龙任务] 1。检测穿戴装备:CHECKITEMW 戒指 麻痹戒指。检测行会归属:CHECKGUILDFLAG 沙巴克。满足条件后执行奖励,否则提示条件不足。条件宝箱常与游戏剧情、任务链结合,作为阶段奖励发放节点。
连锁宝箱实现多步骤开启流程。第一步骤检测基础条件,发放初级奖励并设置连锁标志SET [连锁步骤1] 1。第二步骤检测标志与新条件,发放中级奖励并设置下一步标志。示例脚本:[@步骤1] #IF CHECKLEVEL > 20 #ACT GIVE 初级装备 1 SET [连锁步骤1] 1 MESSAGEBOX 完成第一步。[@步骤2] #IF CHECK [连锁步骤1] 1 CHECKITEM 任务物品 1 #ACT GIVE 中级装备 1。
全服宝箱通过机器人脚本定时触发。在AutoRunRobot.txt配置触发时间,如#AutoRun NPC HOUR 2 @全服宝箱。在RobotManage.txt编写[@全服宝箱]段,使用GMEXECUTE命令为全服玩家发放奖励,或发布公告提示宝箱刷新坐标。全服宝箱常配合地图事件,在特定坐标刷新实体宝箱NPC。
宝箱特效与公告增强体验。发放奖励后使用SENDMSG发布公告,格式SENDMSG 0 玩家<%s>开启宝箱获得稀有装备!其中<%s>自动替换为玩家名称。播放特效使用MAPEFFECT命令,参数为特效编号与坐标。音效使用PLAYEFFECT命令。视觉与听觉反馈提升宝箱开启仪式感。
调试宝箱脚本查看M2控制台报错。常见错误包括物品名称拼写错误、标签未定义、变量超出范围。使用SENDMSG 6输出调试信息,显示变量当前值。脚本修改后重新加载NPC使改动生效。复杂宝箱建议分阶段测试,先验证条件检测,再测试奖励发放,最后添加特效与公告。

