架设过程中遇到脚本错误先不要急着重装服务端。所有错误都会在日志里留下记录,按日志提示定位到具体文件和行数,对应修改即可。核心排查逻辑是:看日志找位置,检查脚本语法与路径,核对引擎命令兼容性。
先找到M2Server文件夹下的日志目录,打开ScriptError.txt或M2Server.log。日志会明确标注错误脚本的路径、行号以及具体错误描述。比如提示“Line15:命令错误”,就直接打开对应脚本文件定位到第15行。报错行号指向不存在的行(如报299行但文件只有170行),说明是嵌套引用炸了,问题在被调用的子脚本里。
脚本文件编码必须为ANSI或GBK,UTF-8带BOM会导致引擎读取乱码报错。用Notepad++打开脚本,查看右下角编码格式,不对就转码另存。注意不要用系统自带记事本编辑脚本,它会在文件末尾插入隐藏字符,换行符混乱也可能引发解析异常。
语法错误占脚本报错的六成以上。检查以下几处:标签[@xxx]是否独占一行,不能跟其他内容挤在一起。#IF、#ACT、#ELSEACT、#ENDIF必须成对出现,漏写#ENDIF是最常见的低级错误。命令拼写核对服务端Doc目录下的命令手册,比如SetOnTimer写成SetOnTimer1少个空格或参数不对都会报错。
路径错误表现为“找不到脚本文件”或“loadfail”。检查脚本中引用的文件路径是否真实存在,文件名大小写是否一致,部分引擎区分大小写。文件夹层级也要注意,该放MonKill文件夹的脚本放到了QuestDiary就会加载失败。路径中避免出现中文和特殊符号,服务端存放路径本身也要纯英文。
引擎命令不兼容是很多人忽略的问题。GOM引擎的脚本拿到GEE引擎上用,会出现“Unsupportedcommand”报错。比如GOM用“#Act”开头,GEE用“#ACTION”。核对当前服务端的引擎类型,对照引擎自带的管理命令列表检查脚本中使用的命令是否被支持。
变量报错分三种情况处理。变量未定义,在Variables.txt中按“变量名=初始值”格式补充定义。变量类型不匹配,检查是数字变量被当作文本用了,还是文本变量参与了数值计算。变量重复定义,在Variables.txt中搜索报错变量名,删除多余的重复定义语句,保留一处即可。
修改完脚本后不要直接重启M2。先关闭M2Server,删除Mir200目录下的ScriptCache.dat缓存文件(如果存在),再重新启动。这样引擎会重新加载脚本文件,避免缓存残留导致修改不生效。每次修改前备份原脚本,改坏了能快速回滚。
加载文件错误如“loadfail:打造配方\打造列表.txt”属于基础文件缺失。按错误提示的路径逐层查找,文件夹不存在就手动创建,文件缺失就从同版本服务端中复制补全。文件夹和文件名必须与错误提示完全一致,多一个字符少一个字符都不行。

