新勇闯天关是BLUE引擎下的一种多时段限时闯关活动。活动在每天固定时间开放,玩家进入后逐层推进,每层消灭20个天关精灵自动传入下一层,率先到达第八关的玩家可开启天关宝藏获得稀有奖励,其他完成通关的玩家获得经验奖励。整个系统涉及入口NPC脚本、等待室传送、逐层推进检测、全局变量控制、定时器管理和名单持久化六个模块。以下从完整脚本范例入手,逐段拆解编写方法。
##活动入口NPC完整脚本
在Market_Def目录下新建NPC脚本文件,写入以下内容:
```
[@main]
<COLOR=clYellow勇闯天关:>每天的<COLOR=clAqua11点、15点、22点50><开放,30分钟后关闭入口>
<COLOR=clLime活动规则:活动共分七关,消灭每层怪物达到20个自动传入下一关。>
<COLOR=clLime活动开始后第一个到达第八关的勇士可以开启天关宝藏。>
开启宝藏奖励范围:<COLOR=clFuchsia海量元宝,三大特戒,皓月、传奇衣服>
其它完成通关奖励:<COLOR=clFuchsia五亿经验+一亿内功经验>
<COLOR=252当前获得第一名的勇士:>〖<$STR(A34)>〗
<COLOR=252开启天关宝藏获得奖励:>〖<$STR(A67)>〗
<挑战天关/@tianguan1a>
<COLOR=clLtGray任务提示:每次活动只有一次挑战机会,请小心哦。>
```
[@main]段展示活动介绍界面。BLUE引擎的颜色代码使用COLOR=clYellow的格式,与GOM引擎的SCOLOR参数不同。clYellow为黄色,clAqua为淡蓝色,clLime为亮绿色,clFuchsia为紫红色,clLtGray为浅灰色。<$STR(A34)>和<$STR(A67)>分别读取全局A变量中存储的第一名玩家名称和宝藏开启记录。
##进入条件检测与等待室传送
[@tianguan1a]段是进入活动的核心判断逻辑:
```
[@tianguan1a]
#IF
equalG761
#ELSEACT
messagebox勇闯天关活动尚未开始!勇闯天关活动开启时间为:每天的11点、15点、22点50开放进入,30分钟后关闭入口!
BREAK
#IF
CHECKNAMELIST..\QuestDiary\数据整理\天关活动.txt
#ACT
messagebox〖提示〗勇闯天关活动每次开放只有一次挑战机会!请等待下次活动开始!
BREAK
#IF
equalG761
#ACT
SET[52]0
movm10
movm20
movm30
movm40
movm50
movm60
movm70
MAPMOVETIANGUAN1
ADDNAMELIST..\QuestDiary\数据整理\天关活动.txt
SetScTimer51
SENDMSG7〖提示〗:挑战活动开始!消灭每层地图内20个天关精灵将传送入下一关!
SENDMSG0玩家〖%s〗进入勇闯天关活动地图终极大奖花落谁家我们拭目以待!025530
BREAK
#ELSEACT
messagebox勇闯天关活动入口已关闭!
BREAK
```
第一段#IF检测全局变量G76的值是否为1。G76为1表示活动已开放,不等于1则弹出MESSAGEBOX提示活动未开始。第二段检测玩家名字是否在活动名单文件中,CHECKNAMELIST命令格式为“CHECKNAMELIST文件路径”,文件路径使用相对路径写法。如果在名单中,说明本次活动中该玩家已经进入过一次,弹出提示阻止重复进入。第三段执行进入操作:SET[52]0重置逻辑变量,movm10至movm70将七个个人变量归零,MAPMOVETIANGUAN1传送到天关第一层地图。ADDNAMELIST将玩家名字写入活动名单文件,防止重复挑战。SetScTimer51启动编号为5的秒级定时器,参数1表示1秒间隔触发。
SENDMSG7是BLUE引擎的客户端居中提示消息,SENDMSG0是全服广播消息。消息末尾的“025530”是BLUE引擎特有的前景色、背景色参数。
##等待室传送脚本
活动正式开启前,玩家可以在等待室等待。等待室脚本使用时间检测实现自动传送:
```
[@tianguan1abbb]
#IF
equalG761
HOUR1010
MIN5758
#ACT
give回城卷1
MAPMOVEhuodong
SENDMSG0玩家〖%s〗进入勇闯天关活动等待室活动即将开始终极大奖花落谁家我们拭目以待!
SENDMSG7〖天关活动提示〗:进入活动地图,此地图为安全模式,请等待挑战活动开始!
messagebox请在活动地图内稍等,挑战天关活动2分钟后开始!
BREAK
```
HOUR1010表示小时等于10,MIN5758表示分钟在57到58之间,两个条件同时满足才执行传送。BLUE引擎的HOUR和MIN命令参数格式为“HOUR起始值结束值”。到达指定时间后,玩家被传送到活动等待室地图huodong,并收到系统提示。
##逐层推进与怪物清空检测
天关共分七层,每层地图配置独立的怪物。在MapQuest.txt中为每层地图绑定死亡触发:
```
TIANGUAN1[001]0天关精灵*1:@天关一层通关
TIANGUAN2[002]0天关精灵*1:@天关二层通关
TIANGUAN3[003]0天关精灵*1:@天关三层通关
TIANGUAN4[004]0天关精灵*1:@天关四层通关
TIANGUAN5[005]0天关精灵*1:@天关五层通关
TIANGUAN6[006]0天关精灵*1:@天关六层通关
TIANGUAN7[007]0天关精灵*1:@天关七层通关
```
在QFunction-0.txt中添加各层的通关检测脚本,使用CheckMapSameMonCount命令检测指定地图上指定怪物的剩余数量:
```
[@天关一层通关]
#IF
CheckMapSameMonCountTIANGUAN1天关精灵>0
#ACT
BREAK
#IF
CheckMapSameMonCountTIANGUAN1天关精灵=0
#ACT
INCm11
MAPMOVETIANGUAN2
SENDMSG6恭喜通过第一层!你已进入天关第二层。
SENDMSG0玩家〖%s〗通过了勇闯天关第一层!
BREAK
```
CheckMapSameMonCount的格式为“CheckMapSameMonCount地图名称怪物名称控制符数量”。第一段检测判断怪物是否还有存活,有则直接BREAK结束。第二段判断怪物全部清空时,INCm11将第一层的通关计数加1,MAPMOVETIANGUAN2传送到第二层。
各层通关脚本结构一致,只需修改地图标识、怪物名称、个人变量编号和传送目标。最后一层通关脚本执行奖励发放:
```
[@天关七层通关]
#IF
CheckMapSameMonCountTIANGUAN7天关精灵>0
#ACT
BREAK
#IF
CheckMapSameMonCountTIANGUAN7天关精灵=0
#ACT
GIVE回城卷1
CHANGEEXP+500000000
CHANGEIPEXP+100000000
SENDMSG0玩家〖%s〗成功通关勇闯天关,获得五亿经验+一亿内功经验!
MAPMOVE3330330
BREAK
```
CHANGEEXP命令直接增加角色经验值,CHANGEIPEXP增加内功经验。BLUE引擎的CHANGEEXP命令参数格式为“CHANGEEXP+数量”,+号代表增加,-号代表减少。
##全局变量控制活动开关
天关活动的开启和关闭通过全局变量G76控制。G76的值为1时活动开放,为0时活动关闭。这个变量需要在QManage.txt的[@OnStart]段中初始化。BLUE引擎的QManage脚本支持[@OnInit]和[@OnStart]两个新的执行时机,[@OnStart]在游戏启动时运行一次,适合用于全局自定义变量声明。
```
[@OnStart]
#ACT
VARINTEGERGLOBALG76
SETVARGLOBALG760
BREAK
```
VARINTEGERGLOBALG76声明一个全局整数型变量。SETVARGLOBALG760将变量初始值设为0,表示活动默认关闭。BLUE引擎的全局变量不再保存在!setup.txt中,改为保存到QuestParams.ini文件,旧版脚本使用SAVEVAR写入setup.txt的方式在2024年10月之后的引擎版本中可能失效。
活动定时开启通过AutoRunRobot.txt配置定时任务实现:
```
#AutoRunNPCHOUR11@天关开启
#AutoRunNPCHOUR15@天关开启
#AutoRunNPCHOUR22@天关开启
```
在RobotManage.txt中添加对应的执行标签:
```
[@天关开启]
#IF
CHECKGLOBALVARG76=0
#ACT
SETVARGLOBALG761
SENDMSG0勇闯天关活动已开启!请前往天关使者处进入挑战!
SENDMSG0勇闯天关活动已开启!请前往天关使者处进入挑战!
BREAK
```
SETVARGLOBALG761将活动开关设为开放状态。CHECKGLOBALVAR检测当前变量值,防止重复开启。
##活动名单持久化处理
天关活动名单文件使用ADDNAMELIST和CHECKNAMELIST命令管理。名单文件路径为“..\QuestDiary\数据整理\天关活动.txt”,路径中的“数据整理”目录需要手动创建,确保引擎对该目录有读写权限。
活动结束时需要清空名单文件,让下一轮活动可以正常开始。在RobotManage.txt中添加清理标签:
```
[@天关关闭]
#IF
CHECKGLOBALVARG76=1
#ACT
SETVARGLOBALG760
CLEARNAMELIST..\QuestDiary\数据整理\天关活动.txt
SENDMSG0勇闯天关活动已结束,入口已关闭。
BREAK
```
CLEARNAMELIST命令清空指定名单文件中的所有名字。定时关闭通过AutoRunRobot.txt配置:
```
#AutoRunNPCMIN30@天关关闭
```
MIN30表示每30分钟触发一次关闭标签。由于活动只在特定时间开启,关闭标签需要配合时间检测使用,或者将关闭时间精确设置在活动开启后30分钟:
```
#AutoRunNPCHOUR11@天关关闭延时
```
在RobotManage.txt中添加延时关闭标签,通过SetScTimer设置30分钟倒计时后执行关闭。部分版本使用DelayCall命令实现延时跳转,但DelayCall在服务器重启后可能丢失,建议使用定时器方式。
##宝藏开启与奖励发放
活动开始后第一个到达第八关的玩家可以开启天关宝藏。第八关地图设置为宝藏房间,玩家进入后通过NPC开启宝藏。宝藏开启脚本记录第一名玩家名称和奖励内容:
```
[@开启宝藏]
#IF
CheckMapHumanCountTIANGUAN8=1
CHECKGLOBALVARA34=""
#ACT
SETVARGLOBALA34<$USERNAME>
GIVE皓月神剑1
GIVE传奇战甲1
GAMEGOLD+50000
SENDMSG0玩家〖%s〗率先到达第八关,成功开启天关宝藏!
SENDMSG0玩家〖%s〗获得海量元宝、皓月神剑和传奇战甲!
BREAK
```
CHECKGLOBALVARA34=""检测全局字符变量A34是否为空,确保只有第一个到达的玩家能开启宝藏。SETVARGLOBALA34<$USERNAME>将玩家名字写入全局变量。GIVE发放装备,GAMEGOLD增加元宝。A34变量名以A开头,属于BLUE引擎的全局字符型变量体系,可保存,服务器关闭后不会丢失。
##BLUE引擎适配要点
**颜色代码**。BLUE引擎使用COLOR=clYellow格式,与GOM引擎的SCOLOR=参数不同。clYellow为黄色,clAqua为淡蓝色,clLime为亮绿色,clFuchsia为紫红色,clLtGray为浅灰色。
**变量体系**。BLUE引擎的全局变量G0-G999为数字型可保存变量,A0-A99为字符型可保存变量,I0-I99为数字型不可保存变量(重启归零)。个人变量M0-M99为数字型,小退后归零。脚本中使用M1至M7记录七层的通关计数,使用G76记录活动开关,使用A34和A67记录第一名玩家和宝藏开启记录。
**定时器**。BLUE引擎使用SETSCIMER和KILLSCIMER控制定时器,与GOM引擎的SetOnTimer命令不同。SETSCIMER的参数为“定时器编号间隔秒数”,编号5对应QFunction.txt中的[@OnTimer5]标签。活动脚本中使用SetScTimer51启动秒级定时器,需要在QFunction.txt中编写对应的[@OnTimer5]处理逻辑。
**MAPMOVE命令**。BLUE引擎的MAPMOVE命令格式为“MAPMOVE地图标识X坐标Y坐标”,省略坐标参数时使用地图默认出生点。地图标识建议使用英文数字编号,避免中文编码解析异常。
**SENDMSG格式**。BLUE引擎的SENDMSG命令支持在末尾添加前景色和背景色参数,格式为“SENDMSG频道号消息内容前景色背景色”。频道0为全服公告,7为客户端居中提示,6为个人系统提示。
##部署验证步骤
脚本文件放入对应目录后,在M2控制台执行重新加载所有NPC和重载机器人脚本。用一个测试角色与NPC对话,依次验证以下环节:活动未开放时G76=0是否正确弹出MESSAGEBOX提示、活动开放后G76=1是否正确传送并写入名单文件、重复进入时CHECKNAMELIST是否正确拦截、击杀每层20只怪物后是否自动传送到下一层、最后一层通关后经验奖励是否正确发放、活动结束时名单文件是否被清空。
如果活动开放后玩家无法进入,检查G76变量在[@OnStart]段中是否正确声明并初始化,以及AutoRunRobot.txt中的定时任务是否在正确的时间点触发了[@天关开启]标签。如果逐层传送不生效,检查MapQuest.txt中的触发编号和QFunction-0.txt中的标签名是否一一对应,以及CheckMapSameMonCount命令中的地图名称与MonGen.txt中的地图标识是否一致。如果名单文件在活动结束后未被清空,检查CLEARNAMELIST命令的文件路径写法是否与ADDNAMELIST一致,路径不一致会导致清理无效。
##活动入口NPC完整脚本
在Market_Def目录下新建NPC脚本文件,写入以下内容:
```
[@main]
<COLOR=clYellow勇闯天关:>每天的<COLOR=clAqua11点、15点、22点50><开放,30分钟后关闭入口>
<COLOR=clLime活动规则:活动共分七关,消灭每层怪物达到20个自动传入下一关。>
<COLOR=clLime活动开始后第一个到达第八关的勇士可以开启天关宝藏。>
开启宝藏奖励范围:<COLOR=clFuchsia海量元宝,三大特戒,皓月、传奇衣服>
其它完成通关奖励:<COLOR=clFuchsia五亿经验+一亿内功经验>
<COLOR=252当前获得第一名的勇士:>〖<$STR(A34)>〗
<COLOR=252开启天关宝藏获得奖励:>〖<$STR(A67)>〗
<挑战天关/@tianguan1a>
<COLOR=clLtGray任务提示:每次活动只有一次挑战机会,请小心哦。>
```
[@main]段展示活动介绍界面。BLUE引擎的颜色代码使用COLOR=clYellow的格式,与GOM引擎的SCOLOR参数不同。clYellow为黄色,clAqua为淡蓝色,clLime为亮绿色,clFuchsia为紫红色,clLtGray为浅灰色。<$STR(A34)>和<$STR(A67)>分别读取全局A变量中存储的第一名玩家名称和宝藏开启记录。
##进入条件检测与等待室传送
[@tianguan1a]段是进入活动的核心判断逻辑:
```
[@tianguan1a]
#IF
equalG761
#ELSEACT
messagebox勇闯天关活动尚未开始!勇闯天关活动开启时间为:每天的11点、15点、22点50开放进入,30分钟后关闭入口!
BREAK
#IF
CHECKNAMELIST..\QuestDiary\数据整理\天关活动.txt
#ACT
messagebox〖提示〗勇闯天关活动每次开放只有一次挑战机会!请等待下次活动开始!
BREAK
#IF
equalG761
#ACT
SET[52]0
movm10
movm20
movm30
movm40
movm50
movm60
movm70
MAPMOVETIANGUAN1
ADDNAMELIST..\QuestDiary\数据整理\天关活动.txt
SetScTimer51
SENDMSG7〖提示〗:挑战活动开始!消灭每层地图内20个天关精灵将传送入下一关!
SENDMSG0玩家〖%s〗进入勇闯天关活动地图终极大奖花落谁家我们拭目以待!025530
BREAK
#ELSEACT
messagebox勇闯天关活动入口已关闭!
BREAK
```
第一段#IF检测全局变量G76的值是否为1。G76为1表示活动已开放,不等于1则弹出MESSAGEBOX提示活动未开始。第二段检测玩家名字是否在活动名单文件中,CHECKNAMELIST命令格式为“CHECKNAMELIST文件路径”,文件路径使用相对路径写法。如果在名单中,说明本次活动中该玩家已经进入过一次,弹出提示阻止重复进入。第三段执行进入操作:SET[52]0重置逻辑变量,movm10至movm70将七个个人变量归零,MAPMOVETIANGUAN1传送到天关第一层地图。ADDNAMELIST将玩家名字写入活动名单文件,防止重复挑战。SetScTimer51启动编号为5的秒级定时器,参数1表示1秒间隔触发。
SENDMSG7是BLUE引擎的客户端居中提示消息,SENDMSG0是全服广播消息。消息末尾的“025530”是BLUE引擎特有的前景色、背景色参数。
##等待室传送脚本
活动正式开启前,玩家可以在等待室等待。等待室脚本使用时间检测实现自动传送:
```
[@tianguan1abbb]
#IF
equalG761
HOUR1010
MIN5758
#ACT
give回城卷1
MAPMOVEhuodong
SENDMSG0玩家〖%s〗进入勇闯天关活动等待室活动即将开始终极大奖花落谁家我们拭目以待!
SENDMSG7〖天关活动提示〗:进入活动地图,此地图为安全模式,请等待挑战活动开始!
messagebox请在活动地图内稍等,挑战天关活动2分钟后开始!
BREAK
```
HOUR1010表示小时等于10,MIN5758表示分钟在57到58之间,两个条件同时满足才执行传送。BLUE引擎的HOUR和MIN命令参数格式为“HOUR起始值结束值”。到达指定时间后,玩家被传送到活动等待室地图huodong,并收到系统提示。
##逐层推进与怪物清空检测
天关共分七层,每层地图配置独立的怪物。在MapQuest.txt中为每层地图绑定死亡触发:
```
TIANGUAN1[001]0天关精灵*1:@天关一层通关
TIANGUAN2[002]0天关精灵*1:@天关二层通关
TIANGUAN3[003]0天关精灵*1:@天关三层通关
TIANGUAN4[004]0天关精灵*1:@天关四层通关
TIANGUAN5[005]0天关精灵*1:@天关五层通关
TIANGUAN6[006]0天关精灵*1:@天关六层通关
TIANGUAN7[007]0天关精灵*1:@天关七层通关
```
在QFunction-0.txt中添加各层的通关检测脚本,使用CheckMapSameMonCount命令检测指定地图上指定怪物的剩余数量:
```
[@天关一层通关]
#IF
CheckMapSameMonCountTIANGUAN1天关精灵>0
#ACT
BREAK
#IF
CheckMapSameMonCountTIANGUAN1天关精灵=0
#ACT
INCm11
MAPMOVETIANGUAN2
SENDMSG6恭喜通过第一层!你已进入天关第二层。
SENDMSG0玩家〖%s〗通过了勇闯天关第一层!
BREAK
```
CheckMapSameMonCount的格式为“CheckMapSameMonCount地图名称怪物名称控制符数量”。第一段检测判断怪物是否还有存活,有则直接BREAK结束。第二段判断怪物全部清空时,INCm11将第一层的通关计数加1,MAPMOVETIANGUAN2传送到第二层。
各层通关脚本结构一致,只需修改地图标识、怪物名称、个人变量编号和传送目标。最后一层通关脚本执行奖励发放:
```
[@天关七层通关]
#IF
CheckMapSameMonCountTIANGUAN7天关精灵>0
#ACT
BREAK
#IF
CheckMapSameMonCountTIANGUAN7天关精灵=0
#ACT
GIVE回城卷1
CHANGEEXP+500000000
CHANGEIPEXP+100000000
SENDMSG0玩家〖%s〗成功通关勇闯天关,获得五亿经验+一亿内功经验!
MAPMOVE3330330
BREAK
```
CHANGEEXP命令直接增加角色经验值,CHANGEIPEXP增加内功经验。BLUE引擎的CHANGEEXP命令参数格式为“CHANGEEXP+数量”,+号代表增加,-号代表减少。
##全局变量控制活动开关
天关活动的开启和关闭通过全局变量G76控制。G76的值为1时活动开放,为0时活动关闭。这个变量需要在QManage.txt的[@OnStart]段中初始化。BLUE引擎的QManage脚本支持[@OnInit]和[@OnStart]两个新的执行时机,[@OnStart]在游戏启动时运行一次,适合用于全局自定义变量声明。
```
[@OnStart]
#ACT
VARINTEGERGLOBALG76
SETVARGLOBALG760
BREAK
```
VARINTEGERGLOBALG76声明一个全局整数型变量。SETVARGLOBALG760将变量初始值设为0,表示活动默认关闭。BLUE引擎的全局变量不再保存在!setup.txt中,改为保存到QuestParams.ini文件,旧版脚本使用SAVEVAR写入setup.txt的方式在2024年10月之后的引擎版本中可能失效。
活动定时开启通过AutoRunRobot.txt配置定时任务实现:
```
#AutoRunNPCHOUR11@天关开启
#AutoRunNPCHOUR15@天关开启
#AutoRunNPCHOUR22@天关开启
```
在RobotManage.txt中添加对应的执行标签:
```
[@天关开启]
#IF
CHECKGLOBALVARG76=0
#ACT
SETVARGLOBALG761
SENDMSG0勇闯天关活动已开启!请前往天关使者处进入挑战!
SENDMSG0勇闯天关活动已开启!请前往天关使者处进入挑战!
BREAK
```
SETVARGLOBALG761将活动开关设为开放状态。CHECKGLOBALVAR检测当前变量值,防止重复开启。
##活动名单持久化处理
天关活动名单文件使用ADDNAMELIST和CHECKNAMELIST命令管理。名单文件路径为“..\QuestDiary\数据整理\天关活动.txt”,路径中的“数据整理”目录需要手动创建,确保引擎对该目录有读写权限。
活动结束时需要清空名单文件,让下一轮活动可以正常开始。在RobotManage.txt中添加清理标签:
```
[@天关关闭]
#IF
CHECKGLOBALVARG76=1
#ACT
SETVARGLOBALG760
CLEARNAMELIST..\QuestDiary\数据整理\天关活动.txt
SENDMSG0勇闯天关活动已结束,入口已关闭。
BREAK
```
CLEARNAMELIST命令清空指定名单文件中的所有名字。定时关闭通过AutoRunRobot.txt配置:
```
#AutoRunNPCMIN30@天关关闭
```
MIN30表示每30分钟触发一次关闭标签。由于活动只在特定时间开启,关闭标签需要配合时间检测使用,或者将关闭时间精确设置在活动开启后30分钟:
```
#AutoRunNPCHOUR11@天关关闭延时
```
在RobotManage.txt中添加延时关闭标签,通过SetScTimer设置30分钟倒计时后执行关闭。部分版本使用DelayCall命令实现延时跳转,但DelayCall在服务器重启后可能丢失,建议使用定时器方式。
##宝藏开启与奖励发放
活动开始后第一个到达第八关的玩家可以开启天关宝藏。第八关地图设置为宝藏房间,玩家进入后通过NPC开启宝藏。宝藏开启脚本记录第一名玩家名称和奖励内容:
```
[@开启宝藏]
#IF
CheckMapHumanCountTIANGUAN8=1
CHECKGLOBALVARA34=""
#ACT
SETVARGLOBALA34<$USERNAME>
GIVE皓月神剑1
GIVE传奇战甲1
GAMEGOLD+50000
SENDMSG0玩家〖%s〗率先到达第八关,成功开启天关宝藏!
SENDMSG0玩家〖%s〗获得海量元宝、皓月神剑和传奇战甲!
BREAK
```
CHECKGLOBALVARA34=""检测全局字符变量A34是否为空,确保只有第一个到达的玩家能开启宝藏。SETVARGLOBALA34<$USERNAME>将玩家名字写入全局变量。GIVE发放装备,GAMEGOLD增加元宝。A34变量名以A开头,属于BLUE引擎的全局字符型变量体系,可保存,服务器关闭后不会丢失。
##BLUE引擎适配要点
**颜色代码**。BLUE引擎使用COLOR=clYellow格式,与GOM引擎的SCOLOR=参数不同。clYellow为黄色,clAqua为淡蓝色,clLime为亮绿色,clFuchsia为紫红色,clLtGray为浅灰色。
**变量体系**。BLUE引擎的全局变量G0-G999为数字型可保存变量,A0-A99为字符型可保存变量,I0-I99为数字型不可保存变量(重启归零)。个人变量M0-M99为数字型,小退后归零。脚本中使用M1至M7记录七层的通关计数,使用G76记录活动开关,使用A34和A67记录第一名玩家和宝藏开启记录。
**定时器**。BLUE引擎使用SETSCIMER和KILLSCIMER控制定时器,与GOM引擎的SetOnTimer命令不同。SETSCIMER的参数为“定时器编号间隔秒数”,编号5对应QFunction.txt中的[@OnTimer5]标签。活动脚本中使用SetScTimer51启动秒级定时器,需要在QFunction.txt中编写对应的[@OnTimer5]处理逻辑。
**MAPMOVE命令**。BLUE引擎的MAPMOVE命令格式为“MAPMOVE地图标识X坐标Y坐标”,省略坐标参数时使用地图默认出生点。地图标识建议使用英文数字编号,避免中文编码解析异常。
**SENDMSG格式**。BLUE引擎的SENDMSG命令支持在末尾添加前景色和背景色参数,格式为“SENDMSG频道号消息内容前景色背景色”。频道0为全服公告,7为客户端居中提示,6为个人系统提示。
##部署验证步骤
脚本文件放入对应目录后,在M2控制台执行重新加载所有NPC和重载机器人脚本。用一个测试角色与NPC对话,依次验证以下环节:活动未开放时G76=0是否正确弹出MESSAGEBOX提示、活动开放后G76=1是否正确传送并写入名单文件、重复进入时CHECKNAMELIST是否正确拦截、击杀每层20只怪物后是否自动传送到下一层、最后一层通关后经验奖励是否正确发放、活动结束时名单文件是否被清空。
如果活动开放后玩家无法进入,检查G76变量在[@OnStart]段中是否正确声明并初始化,以及AutoRunRobot.txt中的定时任务是否在正确的时间点触发了[@天关开启]标签。如果逐层传送不生效,检查MapQuest.txt中的触发编号和QFunction-0.txt中的标签名是否一一对应,以及CheckMapSameMonCount命令中的地图名称与MonGen.txt中的地图标识是否一致。如果名单文件在活动结束后未被清空,检查CLEARNAMELIST命令的文件路径写法是否与ADDNAMELIST一致,路径不一致会导致清理无效。

