单机传奇一启动 M2 就卡在“正在读取物品数据”或弹“物品数据库加载失败 Code=-100”“Magic Param Error”“Field 'DropRatePlus' not found”,根子不在你操作错,而是 StdItems.DB / Magic.DB 这两个文件跟当前引擎、路径、编码、字段结构对不上。按下面顺序查,基本都能定位到具体哪一根线断了。
先确认服务端摆哪儿了。MirServer 必须放磁盘根目录纯英文路径,例如 D:\MirServer\ ,中间不能有“传奇服务端”“我的架设”这种中文,也不能塞在 C:\Program Files (x86)\ 里带空格。路径含中文或空格时,BDE/DBC2000 和 GOM 引擎读 Mud2\DB 下的 StdItems.DB、Magic.DB 会直接解析失败,表现为物品库魔法库双双报错。
老引擎(HERO、BLUE、LEG)走 DBC2000 那条链,必须配 BDE Administrator。控制面板打开 BDE Administrator,左边 Databases 里建别名 HeroDB(部分端叫 MirDB),右边 PATH 指到 D:\MirServer\Mud2\DB,点 Apply 保存,关掉 BDE 再起引擎控制器。别名名字、PATH 路径、引擎配置里填的数据库名三者不一致,就会“找不到 DBserver”或物品库加载失败。Win10/Win11 装 32 位 DBC2000 就行,64 位系统跑 32 位 BDE 正常,但 PATH 绝不可指向中文目录。
GOM/GEE 系大多不吃 DBC2000,直接读 Mud2\DB 下的二进制 StdItems.DB、Magic.DB,同时可能兼读 Envir 下的 StdItems.txt、Magic.txt 文本配置。这种情况下若你用记事本打开过 StdItems.txt 或 Magic.txt,保存时被转成 UTF-8 带 BOM,引擎只认 ANSI,下一行字段全偏移,就会报“第 X 行格式错误”或魔法参数错。用 Notepad++ 打开这两个 txt,编码转 ANSI,换行符转 Windows(CRLF),删掉首尾空行再覆盖保存。
字段结构不匹配是跨引擎套库的典型报错。BLUE/LEG 升过级后常报“StdItems.DB 表找不到 DropRatePlus 字段”“Magic.DB 找不到 Penetrate 字段”,GOM 新核报“Field 'UniqueItem' not found”,都是老 DB 缺新引擎要的扩展列。两种修法:一是下对应引擎的“DB 扩展工具”把 StdItems.DB、Magic.DB、Monster.DB 拖进去点自动转换,生成 ~new.DB 再替回原文件;二是用 DB Commander 2000 打开 DB,按报错缺的字段名手动 Add Field(类型照官方模板填 Integer 或 String)。跨大版本不能硬套,比如 HERO 的 StdItems.DB 直接丢进 GOM 多数缺列,翎风 DB 丢进 HERO 也读不全。
文件本身损坏或缺失也有固定表象。Mud2\DB 里 StdItems.DB、Magic.DB、Monster.DB 任意一个 0 字节、被杀软隔离、或解压时丢了 .idx 索引,启动必报物品或魔法库错。进 DB 目录看大小,正常几十 KB 到几百 KB;若是 0 KB 或图标异常,关掉杀毒再从原压缩包重解压 Mud2\DB 覆盖。DBC 类还要看 StdItems.idx 在不在,缺 idx 会“Idx:0 数据失败”。
手动改过物品名或技能行最容易埋雷。物品 Name 超 32 字节、用了中文括号或前后多一个空格,会让后续 Image、Dura、Stdmode 字段整体错位;Magic.txt 里 Skill= 后接了非数字、MP 消耗填负数、动画帧数超过客户端 Magic.wil 实际帧数,都会让魔法库读崩。改库规矩:数值列不许空、不许写“无”、不许中文,缺值填 0;名称只改 Name 列,Idx 和 Index 不动;新增行复制已有有效行改,不手敲 Tab 分隔。
还有两个隐蔽点。NTFS 压缩和只读属性会让老引擎读 Paradox 库失败,右键 StdItems.DB、Magic.DB → 属性 → 高级 → 取消“压缩内容以便节省磁盘空间”,同时去掉只读,MirServer 文件夹给当前用户完全控制。上次 M2 崩退没关干净,DBServer.exe 还锁着 DB 文件,任务管理器结束 M2Server、DBServer、LoginGate 再起,能消掉“数据库被占用”类假错。
排错顺序就一套:先改纯英文根路径 → 对引擎类型(HERO 查 BDE 别名 / GOM 查是否读 txt 编码)→ 看 Mud2\DB 文件大小与 idx 是否全 → 用同版本原包 DB 覆盖试启动 → 若仍报缺字段就用引擎配套 DB 扩展工具转一遍 → 最后才用 DBC 编辑器修具体行。绝大多数“总是出错”的端,前两步就能消掉。

