当反复出现 “第XX行脚本错误” 却找不到原因时,往往是:
幽灵符号:不可见的空格/换行符
变量污染:跨脚本变量冲突(如<STR(S攻击)>被意外修改)
引擎差异:LEG/翎风/GOM对函数支持不同
🛠️ 高效定位法(附实操截图)
第一步:精准日志追踪
在 Mir200\Envir\MapQuest_Def\QManage.txt 首行插入:
AutoRun NPC FIRST 1
AutoRun NPC DAY 1
添加调试命令(实时记录变量值):
SENDMSG 6 "[脚本监控] 当前攻击力:<STR(S攻击)>"
SAVETOLOG "D:\Logs\变量追踪.txt" //路径自行修改
第二步:可视化工具排查
工具名称 作用 使用技巧
Notepad++ 显示隐藏字符 视图 → 显示符号 → 显示空格
M2脚本调试器 实时检测函数返回值 右键点击报错行 → 单步跟踪
LogViewer 过滤错误日志 搜索关键词:ERR Fail
📌 示例:在Notepad++中2840行发现 黄色空格 → 删除后立即解决
🚫 高危错误避坑清单
-- ❌ 死亡陷阱:变量未初始化直接运算
SetNewItemValue 4 0 = <STR(S防御)>+3 -- 当S$防御为空时崩溃
-- ✅ 安全写法:先赋默认值
MOV S$防御 0
SetNewItemValue 4 0 = <STR(S防御)>
-- ❌ 致命语法:混淆中英文符号
SetNewItemValue 4,0 + 3 -- 中文逗号引发解析失败
-- ✅ 纠正:全角符号转半角
SetNewItemValue 4, 0 + 3
💥 引擎崩溃急救方案
情景:修改脚本后M2闪退,无法启动
删除临时文件
清空 Mir200\GuildBase\ 和 Log\ 文件夹
还原最后修改
将 Envir 文件夹替换为 修改前备份
检查关键配置
核对 !Setup.txt 中 ScriptPath= 路径是否正确
确认 DBServer 中物品数据库无重复ID
终极重置(适用于翎风引擎)
执行命令: ReloadAdmin → ReloadNpc → ReloadMonItems
🌐 引擎兼容性对照表
函数 LEG引擎 GOM引擎 翎风引擎 应对方案
SetNewItemValue ✓ ✓ ✓ 参数统一用英文逗号分隔
CHECKVAR ✗ ✓ ✓ LEG引擎改用 CHECK [ ]
INC ✓ ✓ ✗ 翎风需改用 MOV + CALC
幽灵符号:不可见的空格/换行符
变量污染:跨脚本变量冲突(如<STR(S攻击)>被意外修改)
引擎差异:LEG/翎风/GOM对函数支持不同
🛠️ 高效定位法(附实操截图)
第一步:精准日志追踪
在 Mir200\Envir\MapQuest_Def\QManage.txt 首行插入:
AutoRun NPC FIRST 1
AutoRun NPC DAY 1
添加调试命令(实时记录变量值):
SENDMSG 6 "[脚本监控] 当前攻击力:<STR(S攻击)>"
SAVETOLOG "D:\Logs\变量追踪.txt" //路径自行修改
第二步:可视化工具排查
工具名称 作用 使用技巧
Notepad++ 显示隐藏字符 视图 → 显示符号 → 显示空格
M2脚本调试器 实时检测函数返回值 右键点击报错行 → 单步跟踪
LogViewer 过滤错误日志 搜索关键词:ERR Fail
📌 示例:在Notepad++中2840行发现 黄色空格 → 删除后立即解决
🚫 高危错误避坑清单
-- ❌ 死亡陷阱:变量未初始化直接运算
SetNewItemValue 4 0 = <STR(S防御)>+3 -- 当S$防御为空时崩溃
-- ✅ 安全写法:先赋默认值
MOV S$防御 0
SetNewItemValue 4 0 = <STR(S防御)>
-- ❌ 致命语法:混淆中英文符号
SetNewItemValue 4,0 + 3 -- 中文逗号引发解析失败
-- ✅ 纠正:全角符号转半角
SetNewItemValue 4, 0 + 3
💥 引擎崩溃急救方案
情景:修改脚本后M2闪退,无法启动
删除临时文件
清空 Mir200\GuildBase\ 和 Log\ 文件夹
还原最后修改
将 Envir 文件夹替换为 修改前备份
检查关键配置
核对 !Setup.txt 中 ScriptPath= 路径是否正确
确认 DBServer 中物品数据库无重复ID
终极重置(适用于翎风引擎)
执行命令: ReloadAdmin → ReloadNpc → ReloadMonItems
🌐 引擎兼容性对照表
函数 LEG引擎 GOM引擎 翎风引擎 应对方案
SetNewItemValue ✓ ✓ ✓ 参数统一用英文逗号分隔
CHECKVAR ✗ ✓ ✓ LEG引擎改用 CHECK [ ]
INC ✓ ✓ ✗ 翎风需改用 MOV + CALC

