M2Server报脚本错误时控制台红字或Mir200\Log\ScriptError.log里一定会带三样东西:出错文件路径、行号、错误类型(未知命令/标签不存在/参数不足/缺#endif/编码不可读)。照着这三样去Envir下对应文件改,比重装服务端有用。
一、先读红字提取关键信息
典型格式:
脚本错误:Market_Def\盟重老兵-0.txt第15行段错误格式不对
或
Scriptfile'QFunction-0.txt'line56:Unknowncommand'MOAB'
或
QuestDiary\QQ礼包.txtLine18标签[@领取]不存在
记下三件:哪个文件、第几行、什么错。M2菜单“查看→脚本错误日志”和Log目录下ScriptError.log/SystemLog.txt是兜底,弹窗一闪而过就去那里翻。
二、按错误类型对口修
1.未知命令(Unknowncommand)
命令拼错(GIVE写GIV、TAKE写TAK)、用了引擎不支持的新命令(GOM跑GEE脚本、HERO跑Blue脚本)。对照所用引擎命令手册改拼写;老引擎不认的ResetLoopCounter之类直接删行或换等效写法。
2.参数数量不对
GIVE裁决之杖少写数量、CHECKGAMEGOLD后漏比较符(写成CHECKGAMEGOLD100)。补参数、补符号,半角书写。
3.标签不存在/GOTO断链
GOTO@买药但全文无[@买药],或#CALL[..\QuestDiary\礼包.txt]@领取路径文件名对不上。补标签、改跳转目标、核对CALL路径反斜杠和文件夹名(Linux区分大小写)。
4.结构不闭合
IF没配#ACT/#ELSEACT、缺#ENDIF、[@段]没终止(BREAK/GOTO/CLOSE)。逐段补闭合,条件判断成对写。
5.中文标点/全角空格/隐藏字符
从网页复制的脚本常带中文逗号、全角括号、行尾全角空格、零宽符。Notepad++开“显示所有字符”,全角空格是宽点、Tab是箭头,全部替成半角空格;删行尾隐藏块。
6.编码错误(最高频隐形坑)
QFunction-0.txt、QManage.txt、Market_Def下NPC、QuestDiary任务脚本必须是ANSI(简体即GBK),UTF-8或UTF-8BOM会让引擎把BOM头当脚本内容,首行就报乱码或未知命令。记事本/Notepad++打开→另存为→编码选ANSI→换行符转Windows(CRLF)→覆盖保存。禁带BOM。
7.插件命令未加载
脚本调了PlugXXXX系列命令但Mir200\PlugList.txt里没挂对应dll,或dll被杀软删了。看M2启动日志“加载插件XXX成功”那几行,缺哪个补哪个,杀软加信任。
三、Market_Def与QuestDiary分目录对照
Envir\Market_Def\放NPC对话脚本(比奇老兵-0.txt、福利使者.txt),报错多因NPC坐标冲突、[@Main]段格式、GOTO断链。
Envir\QuestDiary\放任务/QFunction/QManage,QQ礼包.txt、登陆触发.txt报错多在变量未VAR声明、#CALL跨文件标签丢失、登录触发段写了离线才能用的命令。
MonItems爆率、MapQuest_def地图事件、MapInfo.txt地图号引用错也会间接让M2加载阶段报“脚本错误”,但红字会写明是MapEvent格式还是物品不存在。
四、改完怎么让生效
改完保存→M2菜单“控制→重新加载”选“重读QFunction脚本”/“重读NPC脚本”/“重载全部脚本”;或游戏内GM输@reloadnpc、@reloadqfunction。GOM/GEE有脚本缓存的删Mir200\Log\ScriptCache.dat再起M2。只存文件不重载等于没改。
五、日志不指行号的兜底查法
把可疑脚本后半段用;注释掉重启,正常则错在后半;再二分注释缩到具体段。或每段关键命令后插SENDMSG6执行到N步,触发后看最后一条消息停在哪。M2自带“脚本排查/漏洞检测”(GOMGEE在选项→脚本管理,HERO在脚本管理→漏洞检测)扫全目录,结果标文件行号。
六、新手最常踩的五个点
•用Win10记事本直接存,悄悄写进UTF-8BOM→全脚本转ANSI覆盖。
•从论坛贴吧复制代码,全角逗号括号混进去了→显示所有字符清一遍。
•把GEE端脚本塞进GOM端→命令集不对,按引擎重阉或改命令。
-改了QFunction不重载,以为没生效其实没刷→重载或重启M2。
•标签[@Main]行首多了空格→标签必须顶格独占一行。
脚本错误不靠重装服务端解决,红字给的文件+行号+类型三件套锁死,ANSI编码、半角符号、#IF/#ACT配对、GOTO标签存在这四条过完,90%的M2脚本报错消失。
一、先读红字提取关键信息
典型格式:
脚本错误:Market_Def\盟重老兵-0.txt第15行段错误格式不对
或
Scriptfile'QFunction-0.txt'line56:Unknowncommand'MOAB'
或
QuestDiary\QQ礼包.txtLine18标签[@领取]不存在
记下三件:哪个文件、第几行、什么错。M2菜单“查看→脚本错误日志”和Log目录下ScriptError.log/SystemLog.txt是兜底,弹窗一闪而过就去那里翻。
二、按错误类型对口修
1.未知命令(Unknowncommand)
命令拼错(GIVE写GIV、TAKE写TAK)、用了引擎不支持的新命令(GOM跑GEE脚本、HERO跑Blue脚本)。对照所用引擎命令手册改拼写;老引擎不认的ResetLoopCounter之类直接删行或换等效写法。
2.参数数量不对
GIVE裁决之杖少写数量、CHECKGAMEGOLD后漏比较符(写成CHECKGAMEGOLD100)。补参数、补符号,半角书写。
3.标签不存在/GOTO断链
GOTO@买药但全文无[@买药],或#CALL[..\QuestDiary\礼包.txt]@领取路径文件名对不上。补标签、改跳转目标、核对CALL路径反斜杠和文件夹名(Linux区分大小写)。
4.结构不闭合
IF没配#ACT/#ELSEACT、缺#ENDIF、[@段]没终止(BREAK/GOTO/CLOSE)。逐段补闭合,条件判断成对写。
5.中文标点/全角空格/隐藏字符
从网页复制的脚本常带中文逗号、全角括号、行尾全角空格、零宽符。Notepad++开“显示所有字符”,全角空格是宽点、Tab是箭头,全部替成半角空格;删行尾隐藏块。
6.编码错误(最高频隐形坑)
QFunction-0.txt、QManage.txt、Market_Def下NPC、QuestDiary任务脚本必须是ANSI(简体即GBK),UTF-8或UTF-8BOM会让引擎把BOM头当脚本内容,首行就报乱码或未知命令。记事本/Notepad++打开→另存为→编码选ANSI→换行符转Windows(CRLF)→覆盖保存。禁带BOM。
7.插件命令未加载
脚本调了PlugXXXX系列命令但Mir200\PlugList.txt里没挂对应dll,或dll被杀软删了。看M2启动日志“加载插件XXX成功”那几行,缺哪个补哪个,杀软加信任。
三、Market_Def与QuestDiary分目录对照
Envir\Market_Def\放NPC对话脚本(比奇老兵-0.txt、福利使者.txt),报错多因NPC坐标冲突、[@Main]段格式、GOTO断链。
Envir\QuestDiary\放任务/QFunction/QManage,QQ礼包.txt、登陆触发.txt报错多在变量未VAR声明、#CALL跨文件标签丢失、登录触发段写了离线才能用的命令。
MonItems爆率、MapQuest_def地图事件、MapInfo.txt地图号引用错也会间接让M2加载阶段报“脚本错误”,但红字会写明是MapEvent格式还是物品不存在。
四、改完怎么让生效
改完保存→M2菜单“控制→重新加载”选“重读QFunction脚本”/“重读NPC脚本”/“重载全部脚本”;或游戏内GM输@reloadnpc、@reloadqfunction。GOM/GEE有脚本缓存的删Mir200\Log\ScriptCache.dat再起M2。只存文件不重载等于没改。
五、日志不指行号的兜底查法
把可疑脚本后半段用;注释掉重启,正常则错在后半;再二分注释缩到具体段。或每段关键命令后插SENDMSG6执行到N步,触发后看最后一条消息停在哪。M2自带“脚本排查/漏洞检测”(GOMGEE在选项→脚本管理,HERO在脚本管理→漏洞检测)扫全目录,结果标文件行号。
六、新手最常踩的五个点
•用Win10记事本直接存,悄悄写进UTF-8BOM→全脚本转ANSI覆盖。
•从论坛贴吧复制代码,全角逗号括号混进去了→显示所有字符清一遍。
•把GEE端脚本塞进GOM端→命令集不对,按引擎重阉或改命令。
-改了QFunction不重载,以为没生效其实没刷→重载或重启M2。
•标签[@Main]行首多了空格→标签必须顶格独占一行。
脚本错误不靠重装服务端解决,红字给的文件+行号+类型三件套锁死,ANSI编码、半角符号、#IF/#ACT配对、GOTO标签存在这四条过完,90%的M2脚本报错消失。

