传奇出现脚本错误,表现通常是M2Server控制台弹红字、点NPC没反应、登录卡属性、杀怪不触发、地图事件失效、M2启动到一半停住。错误源全部落在Mir200\Envir下的文本脚本里,按报错信息和文件分类直接定位修,不用重装引擎。
一、报错信息在哪看、怎么读
•实时窗口:M2Server.exe控制台滚动日志,红字格式一般为
[Error]Line45inQFunction-0.txt:Unknowncommand'MOVAB'
或脚本错误:[@MAIN]第15行段错误格式不对加载NPC失败:Market_Def\比奇老兵-0.txt
•日志文件:Mir200\Log\下-M2Server-日期.log、SystemLog.txt、ScriptError.log,搜scripterror/loadfail/Syntaxerror/NotFound/Invalid/TypeMismatch
-关键信息三段:出错文件名→行号→错误类型(未知命令/标签不存在/变量未定义/参数错误/文件缺失)
二、脚本文件分布与高发目录
•Market_Def\:NPC对话脚本(比奇老兵-0.txt、福利使者.txt等)
-QuestDiary\:任务、活动、充值、回收、登录分支(可按子目录拆分)
•MapQuest_def\:QFunction-0.txt(杀怪/捡物/死亡/使用物品触发)、QManage-0.txt(登录/下线/全局事件)
-MonItems\:怪物爆率脚本(物品名/ID、数量、概率)
•Robot_def\:RobotManage.txt与定时机器人任务
•!Setup.txt:确认QFunctionDir、脚本主目录指向正确Envir路径
三、高频错误类型与直修方案
1.编码与换行符错误(最隐蔽)
所有.txt脚本必须ANSI(简体下即GBK),UTF-8/UTF-8BOM必乱码或命令失效;换行用WindowsCRLF,LF会被跳过。
修:Notepad++打开→格式→转为ANSI/转为Windows格式→覆盖保存
2.命令拼写/大小写/空格错误
#ACT写成#ATC、CHECKITEM拼错、MOVA0100写成MOVA0100、GIVE写成gvie、中文引号逗号混用。
修:对照引擎命令手册(Hero/GOM/GEE/V8命令集不同),全命令大写,参数空格分隔,字符串用英文双引号
3.结构标签错误
•[@Label]必须顶格独占一行,GOTO/#CALL指向的标签不存在→报GOTO@xxx不存在
-同目录多文件都写[@Main]→跳转错乱,标签加前缀(@War_Main、@Tao_Main)
•#IF无#ACT/#ELSEACT、缺#ENDIF、嵌套超引擎限制→段错误
-行尾全角空格、零宽字符、隐藏BOM→Notepad++开“显示所有字符”清掉
4.变量未定义/作用域错
•未MOV赋值直接CHECK/EQUAL/LARGE→判定异常或报错
-P0-P9临时、D0-D9/N个人持久、G0-G9全局、S字符串混用;自定义变量与系统保留字重名
•部分引擎要求开头VAR类型HUMAN/GLOBAL变量名声明
修:统一命名,首次使用前置MOVD00,跨会话数据别用P系临时变量
5.物品/地图/怪物名与数据库不一致
脚本写GIVE屠龙1,StdItems.DB里是屠龙刀;MAPMOVE0330330地图号不存在;MonItems爆率文件怪物名拼错。
修:直接抄DB字段,或改用数字ID(GIVE100111),地图号核对MapInfo.txt
6.路径与#CALL引用错误
#CALL[\QuestDiary\功能\奖励.txt]@段实际文件在Market_Def\功能\;..\\多写一层;相对路径以Envir为根。
修:按报错路径逐层对目录,文件确实存在再改引用
7.引擎版本命令不兼容
Hero支持CALC、旧C2只认INC/DEC;[@OnMapEnterEx]新引擎才有;S变量上限S49超了报错。
修:确认当前M2引擎版本命令表,降级写法
8.爆率文件格式错
MonItems\怪物.txt标准:物品名数量概率(概率为1/分母),物品ID错、概率写0或超范围、缺字段。
修:对照正常怪物文件格式抄
四、标准排查顺序(照做最快)
1.抄M2红字:文件名+行号+错误类型
2.开对应txt,跳行号,看上下5行结构
3.查编码(ANSI?CRLF?隐藏符?)
4.查命令拼写、参数个数、引号、#IF/#ACT配对
5.查标签唯一、GOTO/#CALL目标存在
6.查物品/地图/怪物名与DB一致
7.改完M2点“重载NPC/重载登录脚本/重载QFunction”,不行再清Log\ScriptCache.dat重启M2
8.仍不明就分段注释(;注释块)逐步取消定位
五、典型报错对照
•Unknowncommand'XXX'→拼错或引擎不支持该命令
•变量未定义/variablenotdefined→未MOV初始化或未VAR声明
-GOTO@xxx不存在→标签漏写或拼写不一致
•Filenotfound→#CALL路径错或文件没放对目录
•Syntaxerror/脚本语句未闭合→缺引号、缺括号、#IF无#ACT
-NPC脚本加载失败→编码非ANSI、头部[@Main]缺失、路径错
•TypeMismatch→数字加引号/字符串没加引号/变量类型混用
改脚本前备份原文件,M2开“显示脚本执行日志”可逐行跟执行流,复杂功能拆形单独测,报错直接锁到行。
一、报错信息在哪看、怎么读
•实时窗口:M2Server.exe控制台滚动日志,红字格式一般为
[Error]Line45inQFunction-0.txt:Unknowncommand'MOVAB'
或脚本错误:[@MAIN]第15行段错误格式不对加载NPC失败:Market_Def\比奇老兵-0.txt
•日志文件:Mir200\Log\下-M2Server-日期.log、SystemLog.txt、ScriptError.log,搜scripterror/loadfail/Syntaxerror/NotFound/Invalid/TypeMismatch
-关键信息三段:出错文件名→行号→错误类型(未知命令/标签不存在/变量未定义/参数错误/文件缺失)
二、脚本文件分布与高发目录
•Market_Def\:NPC对话脚本(比奇老兵-0.txt、福利使者.txt等)
-QuestDiary\:任务、活动、充值、回收、登录分支(可按子目录拆分)
•MapQuest_def\:QFunction-0.txt(杀怪/捡物/死亡/使用物品触发)、QManage-0.txt(登录/下线/全局事件)
-MonItems\:怪物爆率脚本(物品名/ID、数量、概率)
•Robot_def\:RobotManage.txt与定时机器人任务
•!Setup.txt:确认QFunctionDir、脚本主目录指向正确Envir路径
三、高频错误类型与直修方案
1.编码与换行符错误(最隐蔽)
所有.txt脚本必须ANSI(简体下即GBK),UTF-8/UTF-8BOM必乱码或命令失效;换行用WindowsCRLF,LF会被跳过。
修:Notepad++打开→格式→转为ANSI/转为Windows格式→覆盖保存
2.命令拼写/大小写/空格错误
#ACT写成#ATC、CHECKITEM拼错、MOVA0100写成MOVA0100、GIVE写成gvie、中文引号逗号混用。
修:对照引擎命令手册(Hero/GOM/GEE/V8命令集不同),全命令大写,参数空格分隔,字符串用英文双引号
3.结构标签错误
•[@Label]必须顶格独占一行,GOTO/#CALL指向的标签不存在→报GOTO@xxx不存在
-同目录多文件都写[@Main]→跳转错乱,标签加前缀(@War_Main、@Tao_Main)
•#IF无#ACT/#ELSEACT、缺#ENDIF、嵌套超引擎限制→段错误
-行尾全角空格、零宽字符、隐藏BOM→Notepad++开“显示所有字符”清掉
4.变量未定义/作用域错
•未MOV赋值直接CHECK/EQUAL/LARGE→判定异常或报错
-P0-P9临时、D0-D9/N个人持久、G0-G9全局、S字符串混用;自定义变量与系统保留字重名
•部分引擎要求开头VAR类型HUMAN/GLOBAL变量名声明
修:统一命名,首次使用前置MOVD00,跨会话数据别用P系临时变量
5.物品/地图/怪物名与数据库不一致
脚本写GIVE屠龙1,StdItems.DB里是屠龙刀;MAPMOVE0330330地图号不存在;MonItems爆率文件怪物名拼错。
修:直接抄DB字段,或改用数字ID(GIVE100111),地图号核对MapInfo.txt
6.路径与#CALL引用错误
#CALL[\QuestDiary\功能\奖励.txt]@段实际文件在Market_Def\功能\;..\\多写一层;相对路径以Envir为根。
修:按报错路径逐层对目录,文件确实存在再改引用
7.引擎版本命令不兼容
Hero支持CALC、旧C2只认INC/DEC;[@OnMapEnterEx]新引擎才有;S变量上限S49超了报错。
修:确认当前M2引擎版本命令表,降级写法
8.爆率文件格式错
MonItems\怪物.txt标准:物品名数量概率(概率为1/分母),物品ID错、概率写0或超范围、缺字段。
修:对照正常怪物文件格式抄
四、标准排查顺序(照做最快)
1.抄M2红字:文件名+行号+错误类型
2.开对应txt,跳行号,看上下5行结构
3.查编码(ANSI?CRLF?隐藏符?)
4.查命令拼写、参数个数、引号、#IF/#ACT配对
5.查标签唯一、GOTO/#CALL目标存在
6.查物品/地图/怪物名与DB一致
7.改完M2点“重载NPC/重载登录脚本/重载QFunction”,不行再清Log\ScriptCache.dat重启M2
8.仍不明就分段注释(;注释块)逐步取消定位
五、典型报错对照
•Unknowncommand'XXX'→拼错或引擎不支持该命令
•变量未定义/variablenotdefined→未MOV初始化或未VAR声明
-GOTO@xxx不存在→标签漏写或拼写不一致
•Filenotfound→#CALL路径错或文件没放对目录
•Syntaxerror/脚本语句未闭合→缺引号、缺括号、#IF无#ACT
-NPC脚本加载失败→编码非ANSI、头部[@Main]缺失、路径错
•TypeMismatch→数字加引号/字符串没加引号/变量类型混用
改脚本前备份原文件,M2开“显示脚本执行日志”可逐行跟执行流,复杂功能拆形单独测,报错直接锁到行。

