传奇单机架设BDE显示0Items in HeroDB原因解析

来源: 作者: 点击:
架设传奇单机版时,BDE Administrator 显示 “0 Items in HeroDB” 且提示物品、魔法数据错误,即使路径正确、服务端放在 D 盘,问题通常出在数据库文件缺失、格式不匹配或 BDE 配置指向错误。需从数据库状态、BDE 设置、引擎兼容性三方面排查。

一、HeroDB.mdb 文件本身异常

文件未生成或为空
首次运行服务端前,必须存在有效的 HeroDB.mdb。若该文件是空文件(0KB)或仅占几KB,说明未正确初始化。解决方法:
使用完整服务端包中的 HeroDB.mdb 替换;
或运行配套的 DBCreate.exe 工具生成标准数据库。

数据库结构损坏
即使文件大小正常(通常 5MB 以上),也可能因非正常关闭导致表结构错乱。用 Microsoft Access 打开 HeroDB.mdb,检查是否存在 StdItems、Magic、Monster 等核心表。若提示“不可读”或“加密”,需更换来源可靠的数据库。

版本不匹配
GOM、C3、Hero 等不同引擎对 HeroDB 表字段要求不同。例如 GOM 引擎需 StdItems 表含 AniCount、Effect 字段,而旧版 C3 不需要。若混用数据库,BDE 虽能连接但读取为 0 条目。务必使用与当前引擎配套的 HeroDB.mdb。

二、BDE Administrator 配置错误

路径未指向实际数据库
打开 BDE Administrator(控制面板 → 管理工具 → BDE),展开 Configuration → Drivers → Native → PARADOX,检查 DEFAULT DRIVER 是否为 STANDARD。然后查看 DATABASE → STANDARD 下的 PATH:
正确路径应为 D:MirServerMir200(即 HeroDB.mdb 所在目录);
若显示 C 盘或其他路径,右键 STANDARD → Properties → 修改 PATH 值。

未重启 BDE 服务
修改 PATH 后必须重启 BDE 服务。方法:
按 Ctrl+Shift+Esc 打开任务管理器;
结束所有 idapi32.dll 相关进程(如 BDEAdmin.exe、M2Server.exe);
重新打开 BDE Administrator 验证路径是否生效。

权限不足
Windows 10/11 默认禁止程序写入 Program Files。若将服务端放在 D:MirServer 但以普通用户运行,BDE 可能无法读取。建议:
将整个 MirServer 文件夹移至 D: 根目录(非子文件夹);
右键文件夹 → 属性 → 安全 → 编辑 → 给当前用户“完全控制”权限。

三、服务端启动顺序与依赖缺失

未先启动 BDE 再运行 M2Server
BDE 必须在 M2Server 启动前完成初始化。正确流程:
先打开 BDE Administrator,确认 STANDARD 路径正确;
关闭 BDE Administrator;
再双击 StartRun.bat 启动服务端。

缺少 Access Database Engine
64位系统运行32位传奇服务端时,若未安装 Microsoft Access Database Engine 2010 Redistributable(x86 版),会导致 MDB 文件无法被识别。下载并安装该组件后重启电脑。

杀毒软件隔离数据库
部分安全软件将 HeroDB.mdb 判定为可疑文件并自动隔离。检查杀毒软件隔离区,恢复 HeroDB.mdb 并添加信任。

四、快速验证步骤

手动测试数据库可读性
用 Access 打开 HeroDB.mdb,双击 StdItems 表,若能正常显示物品列表,说明数据库有效。

替换标准数据库测试
从已知可用的同引擎单机包中复制 HeroDB.mdb 覆盖当前文件,重启服务端看是否仍显示 0 Items。

查看 M2Server 日志
检查 D:MirServerMir200Log 下的最新日志文件,搜索 “Database”“HeroDB”“Failed to open” 等关键词,定位具体错误。

若以上操作后 BDE 仍显示 0 Items,基本可判定为数据库与引擎版本不兼容。此时应放弃当前 HeroDB.mdb,改用与服务端完全匹配的原始数据库文件,而非自行创建或转换。路径正确只是前提,数据库内容和 BDE 配置才是关键。