传奇M2启动卡在加载物品数据库 原因与处理

来源: 作者: 点击:
M2走到“正在加载物品数据库...”就停住,说明引擎已经读完版本信息、客户端版本信息,开始读 Items 相关表/文件,但没读完也没报错退出。常见不是M2本身坏了,而是物品库文件、路径、编码、插件、数据库驱动这几处卡住。

先说最经常碰到的:DBC 物品库问题。老引擎(Hero、Legend、GOM 老版)用 DBC 存物品,DBE 里建的文件名、路径、登录器里填的 DBC 名字对不上,M2 就会在加载物品数据库这里假死。检查 D:\MirServer\DB\StdItems.DB 或你改过的路径在不在;DBE 里数据库别名是不是 StdItems;有些服把物品库改名成 Items.DB、NewItems.DB,M2 配置里还填 StdItems,就卡住。DBE 装的是 32 位还是 64 位也有关,Win10/Win11 上老 DBE 能打开但引擎读的时候锁死,表现是 M2 日志停在这一行,CPU 占一点点,不崩也不走。

第二个常见:物品数据库里有脏数据。某个物品名字带换行、价格写成汉字、形状字段填了超范围数字、库存字段负数、绑定字段乱填,M2 一条条读,读到坏行就死循环或抛异常被吞了。处理办法是用 DBE 打开 StdItems,按记录看有没有空行、名字为空的物品、Stack 字段填成 99999999 的、Reserved 字段填中文的。别手动拖到尾,用“替换/排序/导出”先备份再清。很多服主从别处扒来的物品库,最后一堆 @@@、空图标、特效字段错,启动必卡这。

第三个:M2 和 Plug 插件加载顺序卡住。日志写“准备加载插件信息...正在读取配置信息...正在加载客户端版本信息..客户端版本信息加载成功..正在加载物品数据库...”,有些引擎是先挂插件再读物品,插件里 Hook 了物品加载函数,插件本身崩了没弹窗,M2 就停这。把 Plug 目录改名成 Plug_bak,纯引擎起一次,能过这一行就是插件问题。常见作妖插件:自动刷怪、商城、转生、内功、合击、登录送装、反外挂 dll。特别是破解版插件,缺依赖 msvcr100、msvcp120、vcruntime140,加载时静默失败。

第四个:M2 读取的是文本物品库(GOM/GEE 新版用 Items/StdItems.txt 或 json),路径写错。M2 里“物品数据库路径”填了 D:\MirServer\DB\ 但实际文件在 D:\MirServer\Envir\Items\StdItems.txt,引擎不会说“文件不存在”,而是尝试读目录当文件,卡住或一直等 IO。看 M2 配置器——项目里“物品库类型”是 DBC 还是 TXT/JSON,类型选错必卡。TXT 物品库还要求表头顺序和分隔符一致,用 Excel 另存 csv 再改名 txt 的,分隔符是逗号,引擎要制表符,读起来就像死机。

第五个:杀软/ defender 把 M2 读库过程拦了。M2.exe 读 StdItems.DB 被 Windows Defender 的受控文件夹访问拦住,日志不动,关了 Defender 或把 MirServer 整个加白就能过。特别是 Win11 23H2/24H2,Defender 默认拦引擎写日志、读 DBC,表现为 M2 卡在任意“正在加载 XXX”,不一定是物品库,但物品库这一步文件大、最先暴雷。

第六个:硬盘/云盘/共享目录问题。MirServer 放百度网盘同步盘、OneDrive、NAS 映射盘、U 盘、机械盘坏道区,M2 读物品库时 IO 超时,既不报错也不往下走。把 MirServer 剪到本地固态根目录(D:\MirServer,别放 D:\游戏\传奇\2024合击\最终版\别删\MirServer 这种深路径),再起。路径太长、中文太多、带空格,老 Borland 写的 M2 会出鬼问题。

第七个:物品库记录和 M2 版本不匹配。GOM 185 物品库塞进 GEE 合击版 M2,字段多出来的列被当必需项,M2 在“加载物品数据库”后还会去加载“物品特效/冷却/转生限制/元素属性”,读不到就卡。看下一行日志本该是“物品数据库加载成功”或“正在加载技能数据库”,没出就是物品库结构不对。别拿 A 引擎物品库硬喂 B 引擎,至少要对照 StdItems 字段:Name、Idx、Shape、Weight、AniCount、Source、Reserved、Looks、Price、Stock、NeedLevel...

第八个:内存不够或管理员权限没给。M2 没管理员权限,读 DBC 时打开文件句柄失败,老引擎不弹“Access denied”,就停日志。右键 M2.exe / 引擎控制器“以管理员身份运行”;别用快捷方式双层嵌套。16G 内存开十几个网关+微端+网站+数据库,物品库大(上万条)时分配不出连续内存也会卡这,任务管理器看 M2 私有内存是不是卡在某一数值不动。

第九个:Envir 里 ItemRule、ItemBind、DropRule 引用了物品库里不存在的 idx,M2 先载物品主表,再载规则,规则校验卡死。这种往往日志只有“正在加载物品数据库...”但过很久(几分钟)又动,或者 CPU 飙一下又停。把 Envir/ItemRule.txt 先移走试试,能过就是规则文件坏了。

第十个:多开控制器 / 一键启动器坑。用某某一键启动器,它先起 LoginGate、DBServer、LoginSrv,再起 M2,但 M2 读取的 Mir.ini / !Setup.txt 里 DB 路径是上一台机器拷来的盘符(C:\MirServer),你机器没 C 盘服,就读空路径卡住。直接开 M2.exe 不看控制器,反而能看见“无法打开 StdItems.DB”这种真错误;用花哨启动器把错误吞了,才显得“卡在加载物品数据库”。

排错顺序就实测好用这条:
1. 关 Defender / 360 / 火绒,MirServer 加白
2. 把 MirServer 放到 D 盘根目录,别深目录别中文别空格
3. 引擎控制器里看“物品数据库类型”和“路径”跟实际文件一致
4. DBC 用 DBE 打开 StdItems 看有无空行/汉字数字/异常 Shape
5. Plug 改名 Plug_bak 纯核起动
6. 用管理员身份跑 M2.exe,不是点启动器
7. 看 M2 同目录或 Log 目录里有没有 StdItems load error、DBE alias mismatch、Plug xxxx failed
8. 物品库是从别版扒的就换回原版物品库,先能起再慢慢加物品
9. DBServer 先起,看 DBServer 日志是不是也卡“物品/怪物/技能”读表,DBServer 卡比 M2 卡更像是 DBC 环境坏了
10. 还不行就重下同引擎纯净版,把 Envir/Map/Monster 留着,StdItems 用纯净版自带的,能起再合并

顺带说下 GOM/GEE 新版卡这行的另一头:客户端补丁和物品库里的 Looks/Icon 索引对不上不会卡启动,但“物品数据库”前如果有“正在加载客户端版本信息..客户端版本信息加载成功..”,说明 Pak/UI/ItemColor 没崩,问题在服务器端物品表本身,不是补丁。别一卡就去下客户端补丁,方向错了。

还有种假卡:M2 其实在跑,只是日志控件没刷新。等个 3 到 5 分钟,看 GameGate 有没有开始“等待客户端连接”、DBServer 有没有“数据库已就绪”。真卡是十分钟都不动、M2 进程不崩、CPU 0% 或 1%;假卡是后台其实过了,只是主窗体 RichEdit 没重绘。遇到假卡就别猛关进程,关多了把共享内存锁死,下次更起不来。

DBC 环境本身坏了也会这样:DBE 能开,但 BDE 驱动(Idapi32)没装好,M2 用 BDE 读 StdItems 时死等。重装 BDE 或用 64 位兼容层、换 GOM 的文本物品库最省事。现在还死守 DBC 的服主基本都被这问题烦过,新开服直接文本物品库少一半玄学故障。

如果 M2 是 Hero 引擎,还可能是 Hero 的“物品数据库”其实包含了“药品、耗材、装备、材料、坐骑、灵符”多表,其中 Materials.DB 或 ItemsEx.DB 缺失,主日志只打印“正在加载物品数据库...”,实际卡在副表。把 DB 目录和 Hero 原版比对,少一个文件补一个,比瞎改配置强。

最后一种:M2.exe 本身被改坏。从群文件下的“防坑版 M2.exe”被人夹了 miner/劫持 dll,启动到加载物品库时先等 C2 回连,回连不上就卡死。MD5 和官网引擎包对一下,不对就换官方引擎重生成。别信“修复 M2 卡物品库”的小工具,那种工具下一步就是把你 D:\MirServer\DB 打包发走。

能过这一行的标志是日志接着出:
正在加载物品数据库... 物品数据库加载成功
正在加载技能数据库...
正在加载魔法数据库...
正在加载怪物数据库...
正在加载任务/行会/沙巴克...
M2 启动完成,等待连接

卡在“物品数据库”这一句,八成物品库/DBC/插件/路径四选一;剩下两成是杀软、权限、坏盘、破解 DLL。别急着重装系统,也别把 Envir 全删了,先动 StdItems 和 Plug 就行。