传奇M2脚本错误急救指南:3步解决死循环、参数错误,附详细操作图解

来源: 作者: 点击:
⚠️ 一、问题根源分析

用户提供的脚本报错:
[脚本参数不正确] Cmd:CHECKOFGUILD NPC名称:QManage 地图:0 座标:0:0 参数1: 参数2: 参数3: 参数4: 参数5:

原因:
命令参数缺失:CHECKOFGUILD 命令需指定参数(如行会名、检测类型),但脚本中未填写。

脚本逻辑冲突:GOTO @A400 跳转后,ONLINELONGMIN > 2 等条件可能与其他脚本冲突。

死循环风险:频繁使用 GOTO 跳转未限制次数,触发M2死循环报错。

🔧 二、针对性解决方法

步骤1:修复参数缺失(核心)

修改 QManage.txt 中报错的脚本段:
原错误命令(参数为空)

CHECKOFGUILD

正确写法示例(补充参数)

CHECKOFGUILD <$GUILDNAME> = 1 ;检测玩家是否属于指定行会

参数说明:

- 参数1:行会名称(如 <$GUILDNAME> 或具体名字)

- 参数2:检测类型(1=属于该行会,0=不属于)。

步骤2:避免死循环报错
修改循环上限:

打开服务端 Mir200\!Setup.txt → 找到 ScriptGotoCountLimit=10 → 改为 10000(建议值)→ 保存重启M2。
!Setup.txt 修改示例:
ScriptGotoCountLimit=10000 ;提高GOTO跳转次数上限

优化脚本逻辑:

用 #CALL 替代多层 GOTO,减少跳转嵌套。

添加 BREAK 终止冗余循环(如用户脚本中 GOTO @A400 后缺少终止命令)。

步骤3:排查其他常见错误
错误类型 解决方法 来源
时间格式报错 删除 !Setup.txt 中报错的时间字段
端口冲突(10048) 关闭占用端口的程序(如酷狗),或修改端口
城堡文件丢失 修改 !Setup.txt 中 CastleFile=.\Castle\List.txt
插件不兼容 删除 PlugList.txt 中非必要插件(如 X-FKGOM.dll)


🛡️ 三、用户脚本修正示例

针对用户提供的仓库保管员脚本:
[@A400]
IF

;ONLINELONGMIN > 2 ;此命令可能无效,建议删除
CheckAttackMode 1
EQUAL A400 <$USERNAME>
ACT

POWERRATE 1000 9999999
CLOSE
BREAK ;!!! 必须添加终止命令,避免死循环

关键修改:
删除无效命令 ONLINELONGMIN > 2(该命令需配合时间插件,否则报错)。

末尾添加 BREAK 防止跳转死循环。

💎 总结:预防与排查表
问题现象 优先操作 备用方案
脚本参数不正确 检查命令格式,补全缺失参数 删除或注释问题命令
M2报“脚本死循环” 修改 !Setup.txt 提高循环次数上限 优化脚本逻辑,减少 GOTO 使用
启动报错(端口/文件丢失) 关闭冲突程序或修改路径为相对格式 重启服务端并校验插件兼容性


最后建议:

- 修改脚本前备份 QManage.txt 和 !Setup.txt!

- 复杂脚本建议分段测试,用 SENDMSG 输出调试信息(例:SENDMSG 6 "当前执行到@A400")。

按此三步操作,可解决90%的M2脚本报错问题。若仍遇异常,需检查引擎版本是否过旧(推荐使用1108版引擎)。