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

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

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

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

错误示例:
AutoRun NPC RunOnDay 0:00 1 @每日扣点 ← 多余的 “1” 和 “NPC”
正确写法:
AutoRun Robot RunOnDay 00:00 @每日扣点
AutoRun Robot RunOnDay 00:00 @凌晨提示

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

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

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

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

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

五、引擎版本不支持 RunOnDay
部分早期 GOM 引擎仅支持 RunOnTime(按小时触发),不支持 RunOnDay(精确到分钟)。
可临时改用:
AutoRun Robot RunOnTime 0 @凌晨提示
表示每天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,并确认文件位于正确目录。多数情况下,格式错误是导致脚本不运行的主因。