脚本错误排查
编写脚本时遇到报错是正常现象。这一页整理了 BLUE 引擎中几种高频脚本错误的排查思路和修复方法。
ResetLoopCounter 报错
现象:M2 启动时提示 脚本错误 ResetLoopCounter。
原因:新引擎已取消 ResetLoopCounter 命令,旧版本脚本中残留的此命令会在新引擎上触发报错。
解决办法:使用字符替换工具,批量替换删除脚本中所有的 ResetLoopCounter 即可。
自定义变量提示不存在 / CHECK 0 0 报错
现象:脚本中使用了 CHECK [0] 0 语法,引擎提示变量不存在或脚本报错。
原因:这是老引擎的遗留语法,新引擎不再兼容。
解决办法:使用字符替换工具,批量替换 CHECK [0] 0 为 TRUE。
M2 提示禁止使用 checkstringlist 命令
现象:M2 启动后提示 禁止使用 checkstringlist 命令。
原因:部分版本的引擎对 checkstringlist 命令的使用做了限制,会提示禁止使用,需要使用新的配置方式替代。
解决办法:使用蓝海 CSV 转换器将旧的 stringlist 配置转换为新格式。具体操作参考蓝海 CSV 转换器使用教程。
脚本死循环
现象:M2 频繁提示"脚本死循环"。
新版引擎对脚本死循环的检测更加严格。排查方向:
- 检查循环逻辑:确认
GOTO不会形成回环 - 检查 @RESUME 触发:小退登录触发中如果使用了
KICK后仍需要 DELAYGOTO 跳转,否则可能导致无法小退 - 优化读写操作:减少重复读写文本文件的脚本,改用内存操作
无法小退
现象:游戏中点击小退没有反应。
原因:QManage.txt 登录脚本中使用了 KICK 踢下线后,没有做正确的延迟跳转处理。
修复方法:修改 QManage.txt 中的 @RESUME 段,增加 DELAYGOTO 跳转:
[@RESUME]
#IF
TRUE
#ACT
DELAYGOTO 1000 @xiaotui
BREAK
[@xiaotui]
#IF
TRUE
#ACT
KICK 1
补充说明:为了防止外挂一键小退,M2 增加了战斗中小退检测。被人攻击时会中断小退读秒。可在 M2 参数设置 > 时间设置 > 战斗中小退间隔 中调整,设为 0 则关闭该功能。
文本读取返回旧值
ReadRandomLine、ReadLine、DeleteLine 等命令在读取空值时可能返回变量上次保存的值。
解决方法:读取操作后及时清空相关变量。
文本操作不生效(HardDisk 参数)
不加 HardDisk 参数时,数据仅写入内存,引擎大约 1 分钟才存盘一次。需要实时写入的场景必须加 HardDisk 参数。
HardDisk 参数位置不同(可能在第 2 到第 7 个参数位置),请查阅引擎更新日志确认具体用法。脚本路径规范
新版本统一使用 ..\QuestDiary\,废除旧的 QuestDiary\ 和 .\QuestDiary\ 写法。
