服务端启动时提示“CheckItemList.txt 加载错误”,直接导致了游戏核心规则无法加载,进而引发装备回收系统瘫痪。这并非两个独立的问题,而是因果关联的故障链。CheckItemList.txt 是引擎用于定义物品规则的核心文件,一旦读取失败,M2Server将无法识别物品的属性标签,导致依赖物品判定的回收脚本因无法获取物品信息而中断。解决此问题需从文件编码、路径配置及脚本逻辑三个维度入手。
文件编码格式错误排查
这是导致 CheckItemList.txt 加载失败最常见的原因。传奇引擎(尤其是GOM、GEE、HERO等主流引擎)对文本文件的编码格式极其敏感。现代操作系统(Win10/Win11)默认使用UTF-8编码保存文本文件,而老旧的传奇引擎核心通常只识别ANSI编码。
当文件以UTF-8格式保存时,文件头会包含引擎无法解析的BOM(字节顺序标记)字符,导致引擎在读取第一行时即报错。解决方法是使用记事本或Notepad++打开 MirServerMir200EnvirCheckItemList.txt,选择“另存为”,在编码选项中选择“ANSI”,然后覆盖原文件。保存后重启M2Server,通常即可解决加载错误。
文件路径与权限问题
若编码无误但仍报错,需检查文件路径是否被篡改或存在权限问题。部分版本在修改服务端路径后,未同步更新配置文件中的相对路径,导致引擎找不到文件。
首先,确认 CheckItemList.txt 是否真实存在于 MirServerMir200Envir 目录下。若文件丢失,可从备份中恢复或新建一个空文件。其次,检查 !Setup.txt 配置文件,确保没有错误的路径重定向。此外,Windows系统的权限控制可能会阻止引擎读取或写入该文件,建议以“管理员身份”运行M2Server,或关闭杀毒软件对游戏目录的实时监控,防止文件被锁定。
装备回收系统失效的关联分析
装备回收系统通常依赖脚本中的 CHECKITEM 或 CHECKITEMLIST 命令来判断玩家背包中是否存在特定装备。当 CheckItemList.txt 加载失败时,引擎无法识别列表中定义的物品类别或标签(如“终极装备”、“回收材料”等)。
此时,当玩家点击回收NPC,脚本执行到物品检查步骤时,引擎会因无法解析物品规则而报错或默认返回“False”(假),导致回收流程中断。这就是为什么修复了文件加载错误后,回收系统通常会自动恢复正常。若文件修复后回收仍无效,则需检查回收脚本(通常位于 Market_def 或 Merchant.txt 调用的脚本文件中)是否引用了错误的列表名称,或脚本逻辑本身是否存在语法错误。
脚本逻辑与物品规则配置
在确保文件能正常加载后,若回收功能仍不稳定,需深入检查 CheckItemList.txt 的内容配置。该文件定义了物品的匹配规则,例如 [规则名称] 下包含的物品列表。
如果回收脚本调用的是 [回收装备] 规则,但文件中该规则下未添加任何物品,或者物品名称书写错误(如多空格、错别字),引擎将无法匹配到玩家手中的装备。需打开文件,核对规则名称是否与脚本调用一致,并确保物品名称与数据库(StdItems)中的定义完全匹配。对于使用变量控制回收的版本,还需检查 QFunction.txt 或相关脚本中是否正确处理了物品扣除与奖励发放的逻辑,防止因脚本错误导致回收卡死。
综合排查与重启验证
完成上述修改后,必须重启M2Server才能生效。传奇引擎大多采用冷加载机制,即仅在启动时读取配置文件,运行中修改文件不会实时生效。
重启时,密切观察M2Server的控制台窗口,确认不再出现红色的报错信息。进入游戏后,尝试回收一件普通装备进行测试。若依然无效,可在M2Server的“管理工具”或“脚本调试”功能中查看实时日志,定位具体是哪一行脚本代码执行失败。通过“修复编码 -> 核对路径 -> 检查规则 -> 重启验证”的流程,可彻底解决因 CheckItemList.txt 错误引发的连锁故障。

