脚本

脚本错误排查

涵盖常见的脚本报错(ResetLoopCounter、自定义变量不存在、checkstringlist禁用等)的排查与修复方法。

编写脚本时遇到报错是正常现象。这一页整理了 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 频繁提示"脚本死循环"。

新版引擎对脚本死循环的检测更加严格。排查方向:

  1. 检查循环逻辑:确认 GOTO 不会形成回环
  2. 检查 @RESUME 触发:小退登录触发中如果使用了 KICK 后仍需要 DELAYGOTO 跳转,否则可能导致无法小退
  3. 优化读写操作:减少重复读写文本文件的脚本,改用内存操作

无法小退

现象:游戏中点击小退没有反应。

原因: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\ 写法。

遇到奇怪的脚本行为时,先检查是否有不兼容的旧命令残留。大部分"莫名其妙"的脚本报错,都能通过命令替换解决。

相关阅读