传奇机器人脚本不运行的常见原因及排查方法

来源: 作者: 点击:
根据提供的配置,AutoRunRobot.txt与RobotManage.txt脚本未生效,问题通常出在文件路径、格式规范、引擎支持或触发机制上。以下逐项分析。

一、文件位置错误
GOM引擎要求自动运行脚本必须放在QuestDiaryRobotManage目录下,而非服务端根目录或Script下。
AutoRunRobot.txt应位于:MirServerMir200QuestDiaryRobotManageAutoRunRobot.txt
RobotManage.txt应位于:MirServerMir200QuestDiaryRobotManageRobotManage.txt
若路径不符,引擎无法加载。

二、AutoRunRobot.txt格式错误
正确语法为:
AutoRunRobotRunOnDay0:00@标签名
注意:
第二个字段必须是Robot(不是NPC);
时间格式为H:MM或HH:MM,但0:00应写为00:00;
标签名前必须有@,且不能包含空格。

错误示例:
AutoRunNPCRunOnDay0:001@每日扣点←多余的“1”和“NPC”
正确写法:
AutoRunRobotRunOnDay00:00@每日扣点
AutoRunRobotRunOnDay00:00@凌晨提示

三、RobotManage.txt标签定义不规范
标签必须以[@名称]开头,且前后不能有空行或注释干扰。
确保内容如下:
[@每日扣点]
if
CHECKVARHUMAN月卡天数>0
act
CALCVARHUMAN月卡天数-1
SAVEVARHUMAN月卡天数..QuestDiary数据文件月卡月卡天数.txt
SENDMSG5您当前游戏时间剩余【天】!

[@凌晨提示]
IF
ACT
SENDMSG1亲爱的玩家,现在已经是凌晨了
SENDMSG1游戏虽然好玩,也别忘了是不是该休息了

注意:
#IF与#ACT必须大写;
条件块即使为空也需保留#IF+#ACT结构;
不要使用中文括号或全角符号。

四、月卡变量读取路径问题
CHECKVARHUMAN月卡天数>0依赖角色登录时已加载该变量。若变量未在登录时通过LOADVAR加载,则始终为0。
应在QFunction-0.txt的@Login事件中加入:
[@Login]
LOADVARHUMAN月卡天数..QuestDiary数据文件月卡月卡天数.txt

否则机器人执行时无法获取真实数值。

五、引擎版本不支持RunOnDay
部分早期GOM引擎仅支持RunOnTime(按小时触发),不支持RunOnDay(精确到分钟)。
可临时改用:
AutoRunRobotRunOnTime0@凌晨提示
表示每天0点整触发(小时级精度)。

六、服务端未启用机器人功能
检查!Setup.txt中是否开启:
RobotManage=1
若为0,则所有机器人脚本被禁用。

七、时间触发机制限制
RunOnDay仅在服务端运行到指定时间点时触发一次。若服务端在00:00时未运行(如刚启动),则当天不会执行。
测试方法:
将时间改为当前时间+1分钟(如当前22:10,设为22:11),重启M2,观察是否触发。

八、日志验证
在!Setup.txt中开启:
LogRobotManage=1
重启后查看LogRobotManageLog下是否有执行记录。若无日志,说明脚本未被加载。

综上,优先修正AutoRunRobot.txt中的“NPC”为“Robot”,删除多余的“1”,统一时间格式为00:00,并确认文件位于正确目录。多数情况下,格式错误是导致脚本不运行的主因。
[顶部]