【M2引擎报错必看】传奇脚本调试秘籍:5分钟揪出隐藏错误+防崩指南

来源: 作者: 点击:
当反复出现“第XX行脚本错误”却找不到原因时,往往是:
幽灵符号:不可见的空格/换行符

变量污染:跨脚本变量冲突(如<STR(S攻击)>被意外修改)

引擎差异:LEG/翎风/GOM对函数支持不同

🛠️高效定位法(附实操截图)
第一步:精准日志追踪

在Mir200\Envir\MapQuest_Def\QManage.txt首行插入:
AutoRunNPCFIRST1

AutoRunNPCDAY1


添加调试命令(实时记录变量值):
SENDMSG6"[脚本监控]当前攻击力:<STR(S攻击)>"
SAVETOLOG"D:\Logs\变量追踪.txt"//路径自行修改

第二步:可视化工具排查

工具名称作用使用技巧

Notepad++显示隐藏字符视图→显示符号→显示空格
M2脚本调试器实时检测函数返回值右键点击报错行→单步跟踪
LogViewer过滤错误日志搜索关键词:ERRFail

📌示例:在Notepad++中2840行发现黄色空格→删除后立即解决

🚫高危错误避坑清单

--❌死亡陷阱:变量未初始化直接运算
SetNewItemValue40=<STR(S防御)>+3--当S$防御为空时崩溃
--✅安全写法:先赋默认值
MOVS$防御0
SetNewItemValue40=<STR(S防御)>

--❌致命语法:混淆中英文符号
SetNewItemValue4,0+3--中文逗号引发解析失败
--✅纠正:全角符号转半角
SetNewItemValue40+3

💥引擎崩溃急救方案

情景:修改脚本后M2闪退,无法启动
删除临时文件

清空Mir200\GuildBase\和Log\文件夹
还原最后修改

将Envir文件夹替换为修改前备份
检查关键配置

核对!Setup.txt中ScriptPath=路径是否正确

确认DBServer中物品数据库无重复ID
终极重置(适用于翎风引擎)

执行命令:ReloadAdmin→ReloadNpc→ReloadMonItems

🌐引擎兼容性对照表
函数LEG引擎GOM引擎翎风引擎应对方案

SetNewItemValue✓✓✓参数统一用英文逗号分隔
CHECKVAR✗✓✓LEG引擎改用CHECK[]
INC✓✓✗翎风需改用MOV+CALC
[顶部]