一、现象定性:绝对路径与权限问题
单机正常但服务器异常,核心矛盾是绝对路径变更与读写权限缺失。本地测试路径通常为 D:\MirServer,上传到服务器后盘符(如变为 E:\)或目录深度变化,导致引擎找不到 StdItems.DB(物品库)和 Monster.DB(怪物库)。装备看不见、怪物变鸡、技能错乱,本质是数据库连接失败,引擎降级使用了默认空数据。
二、第一步:修正数据库物理路径(DBC2000/BDE)
这是导致“数据库完全不对”的首要原因。服务器系统需安装 DBC2000 或 BDE 组件,且路径必须指向服务器实际目录。
1. 服务器端操作:远程桌面连接服务器,打开控制面板 → BDE Administrator(若没有需先安装DBC2000)。
2. 修改别名路径:
◦ 左侧 Databases 下找到 HeroDB(默认别名)。
◦ 右侧 PATH 属性必须修改为服务器上的真实路径:例如 E:\MirServer\Mud2\DB(根据你实际上传位置修改盘符和文件夹名)。
* 关键细节:路径中严禁包含中文或空格,必须使用英文反斜杠 \。
3. 保存生效:关闭 BDE 时点击 Yes 保存配置。若使用 GOM、GEE 等引擎控制器,需在控制器设置中重新指定数据库文件(如 HeroDB.mdb)的物理位置。
三、第二步:同步服务端配置文件路径(!Setup.txt)
服务端核心配置文件 Mir200\!Setup.txt 记录了数据库的读取位置,上传后需手动修正。
* 用记事本打开 Mir200\!Setup.txt。
• 搜索 DatabasePath 关键字。
• 将路径修改为与 BDE 中一致的绝对路径,例如:DatabasePath=E:\MirServer\Mud2\DB。
* 同时检查 DBServer\DBSrc.ini 文件,确认其中的 DBPath 指向同一位置。路径不一致会导致 M2Server 加载空数据库。
四、第三步:解决文件权限与防火墙拦截
服务器环境比单机严格,文件不可写或端口被拦会导致数据加载失败。
* 文件夹权限:右键 MirServer 根目录 → 属性 → 安全。给 Users 或 Everyone 添加完全控制权限。特别是 Mud2\DB 目录,权限不足时 DBServer 会报“无法写入”错误。
* 防火墙与端口:服务器防火墙需放行传奇相关端口(如 7000、7100、7200)。若端口被拦截,客户端能进游戏但数据同步异常,表现为捡不起物品或装备瞬丢。
五、第四步:客户端补丁完整性校验
“装备看不见”也可能是客户端问题。服务器修改了物品外观编号(Looks),但客户端补丁缺失。
* 补丁覆盖:将服务端配套的 Data 文件夹(含 .pak 文件)完整上传到服务器或发给朋友,覆盖其客户端根目录。
* 登录器配置:确认朋友使用的是服务器生成的新登录器,而非本地单机测试时的旧登录器。旧登录器可能读取的是本地缓存数据,导致与服务器数据不同步。
六、分引擎特殊处理(GOM/GEE)
若使用 GOM 或 GEE 引擎,数据库可能是 .mdb 或 .db 格式,无需配置 BDE。
* GOM引擎:检查控制器中的“数据库路径”是否指向 HeroDB.mdb。
• GEE引擎:检查是否指向 GEEM2.db。
* 这类引擎的数据库通常只有一个文件,上传服务器时务必确认该文件随 MirServer 完整上传,且控制器配置页面的路径已更新。
七、强制重载与最终测试
修改完路径和权限后,必须彻底重启服务端以重建数据库连接。
1. 关闭所有服务端程序(M2Server、DBServer等)。
2. 重新启动,观察 M2Server 启动日志是否有红色报错(如“Load StdItems.DB failed”)。
3. 若无报错,进入游戏创建新角色测试。若装备显示正常,则路径修复成功。

