当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

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

热度:
⚠️一、问题根源分析

用户提供的脚本报错:
[脚本参数不正确]Cmd:CHECKOFGUILDNPC名称: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;此命令可能无效,建议删除
CheckAttackMode1
EQUALA400<$USERNAME>
ACT

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

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

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

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


最后建议:

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

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

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