传奇BLUE引擎旧版本中,很多服务端脚本会使用checkstringlist命令实现怪物攻击触发检测功能。但将引擎升级至0524-07及以上新版本后,M2会弹出提示,禁止使用checkstringlist命令,导致原有怪物切割、斩杀、怪物攻击扣血等脚本功能失效,影响服务端正常运行。

以下为升级引擎前,正常使用的原始触发脚本:
[@ATTACK]
#IF
CheckStringList ..\MonAttackTrigger.txt <$TARINFO_FNAME> HardDisk
#ACT
T.HUMANHP - <$STR(M1)>
#IF
CheckStringList ..\QuestDiary\数据文件\允许切割怪物.txt <$TARINFO_FNAME> HardDisk
#ACT
T.HUMANHP - <$STR(M切割血量)>
#IF
CheckStringList ..\QuestDiary\数据文件\允许斩杀怪物.txt <$TARINFO_FNAME> HardDisk
#ACT
T.HUMANHP - <$T.HP>
针对BLUE引擎新版本禁用checkstringlist命令的问题,可通过蓝海CSV转换器搭配HASH哈希命令的方式替换原有脚本写法。新写法完美兼容0524-07及以上新版引擎,稳定实现原有怪物攻击、切割、斩杀扣血逻辑,解决引擎报错、脚本失效问题。

将原脚本中checkstringlist命令调用的所有怪物名单文件进行整理,包含怪物攻击触发名单、允许切割怪物名单、允许斩杀怪物名单,确保文件内怪物名称数据完整、无冗余错误内容。

打开蓝海CSV转换器,将整理好的怪物名单文件及对应目录直接拖入软件界面,点击开始转换按钮,软件会自动在原文件目录下,生成对应的CSV格式数据文件,为后续哈希加载数据做准备。

将转换完成的CSV文件统一放置在QM脚本指定加载目录,随后编辑QM登录脚本,
在[@Onstart]启动段添加HASH数据加载命令,实现服务端启动自动读取怪物数据,具体脚本示例如下:
[@Onstart]
#IF
true
#ACT
Hash H_允许切割怪物 Load ..\QuestDiary\数据文件\允许切割怪物.csv
Hash H_允许斩杀怪物 Load ..\QuestDiary\数据文件\允许斩杀怪物.csv
Hash H_全部怪物名单 Load ..\QuestDiary\数据文件\MonAttackTrigger.csv
打开QF攻击触发脚本,删除原有checkstringlist命令语句,替换为HashExists哈希检测命令,适配新版BLUE引擎规则,完整可用脚本代码如下:
[@ATTACK]
#IF
HashExists H_全部怪物名单 <$TARINFO_FNAME>
#ACT
T.HUMANHP - <$STR(M1)>
#IF
HashExists H_允许切割怪物 <$TARINFO_FNAME>
#ACT
T.HUMANHP - <$STR(M切割血量)>
#IF
HashExists H_允许斩杀怪物 <$TARINFO_FNAME>
#ACT
T.HUMANHP - <$T.HP>
HashExists命令支持取反检测写法,可满足特殊脚本逻辑需求,适配更多传奇服务端定制玩法,具体示例代码如下:
#IF
!HashExists H_全部怪物名单 <$TARINFO_FNAME>
#ACT
T.HUMANHP - <$STR(M1)>