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

