物品数据库、魔法数据库一起报错,本质就是DBServer/M2通过DBC2000或对应数据库通道读StdItems、Magic失败。按下面顺序改,不用换引擎也能定位。
一、服务端路径改纯英文无空格
MirServer整体放到磁盘根目录,例如D:\MirServer或E:\MirServer。桌面、中文文件夹、Program Files、带括号和空格的目录都会导致BDE解析失败。 若原来在“D:\游戏\传奇”“C:\Program Files\MirServer”这类路径,整目录剪切到纯英文根目录,再重新配数据库路径。
二、DBC2000/BDE建别名并指到DB目录
控制面板打开BDE Administrator。左侧Databases右键New,驱动选STANDARD。别名按服务端配置来,多数HERO/BLUE老端用HeroDB;若dbsrc.ini或!Setup.txt里写的是MirDB、LegendDB、其他名字,就按那个建,别自己拍脑袋改名。
右侧PATH精确到放.DB的文件夹,不是MirServer根目录,也不是Mud2上层。常见:
D:\MirServer\Mud2\DB
D:\MirServer\Mir200\DB
D:\MirServer\DBServer\FDB
以你端里StdItems.DB、Magic.DB实际位置为准。PATH末尾不要反斜杠。 LANGDRIVER有Chinese (PRC) ANSI就选,读中文物品名不容易乱码。改完点Apply绿勾,关BDE提示保存选是。右键别名Open,能列出StdItems、Magic说明通道通;打不开继续查路径和文件。
三、核对服务端配置里的库名和路径
DBServer目录看dbsrc.ini,Mir200或Mud2相关配置看!Setup.txt,搜索DBName、DBCName、DataBase、DBPath、ItemsDir、MagicDir之类字段。BDE别名、配置文件库名、实际文件夹三者必须一致。比如BDE叫HeroDB,配置里写herodb或HERODB,部分Delphi编译的DBServer会报未知别名;配置写D:\MirServer\Mud2但PATH指到Mir200\DB,也会物品魔法双错。 改完用记事本存ANSI,不存UTF-8带BOM。
四、检查StdItems.DB和Magic.DB文件本身
进实际DB目录,至少看:
StdItems.DB 物品库
Magic.DB 技能/魔法库
Monster.DB 怪物库,部分端强关联
StdItems.idx、Magic.idx 索引文件,Paradox库缺失索引会Exception
文件大小正常几十KB到几百KB,不能是0KB,不能图标异常。0KB、缺失、被杀软删,就从原压缩包重新解压DB目录覆盖;覆盖前在任务管理器结束M2Server、DBServer、LoginGate、SelGate、RunGate,避免文件被锁。
如果用的是文本库,例如StdItems.txt、Magic.txt,编码必须ANSI/GBK,换行CRLF,不用UTF-8不用BOM;字段用Tab分隔,数值列不留空、不写“无”、不写中文,缺值填0。
五、杀软、只读、NTFS压缩、权限
Windows Defender、360、火绒常把StdItems.DB、Magic.DB、DBServer.exe误隔离。整个MirServer加信任/排除项,隔离区恢复被删文件后再解压覆盖。DB文件夹右键属性取消只读;高级里取消“压缩内容以便节省磁盘空间”,老Paradox库被NTFS压缩后经常读不了。 文件夹属性安全给当前用户完全控制。DBServer.exe、M2Server.exe、GameCenter.exe右键属性兼容性,勾以管理员身份运行;Win10/11可加Windows 7兼容。
六、清BDE锁文件和残留进程
异常关服后DBServer没退,会锁.DB导致重读失败。任务管理器结束M2Server、DBServer、LoginGate、SelGate、RunGate。系统盘删BDE锁:
C:\Windows\System32\PDOXUSRS.NET
C:\Windows\SysWOW64\PDOXUSRS.NET(64位系统也看)
有.px/.lck/.net锁文件可备份后清。清完重开BDE确认PATH,再启动DBServer。
七、引擎版本和数据库结构必须同系
老HERO的StdItems硬套GOM/GEE,常报缺UniqueItem、DropRatePlus、Penetrate等字段;GOM新核读老库报Field not found;合击/英雄端缺Skill.DB但M2勾了英雄,也会魔法库异常。 处理原则:
同压缩包自带DB目录优先,不单独下“全职业物品库”“魔法库补丁”硬替;
跨大版本只换同版本完整服务端,不单换DBServer.exe;
字段缺就用同引擎DB扩展/转换工具把StdItems、Magic、Monster转成当前引擎结构,或DBCommander打开按报错字段补列;
合击端确认是否要Skill.DB,纯1.76不要勾英雄功能。
八、新GOM/GEE不靠DBC2000的情况
部分新GOM/GEE用Access或内置数据,不装DBC2000也行。若报物品数据库加载失败、Code -100,检查Access Database Engine是否安装;用Access模式就装对应32/64位Access引擎,Magic/Item表字段别手动改坏。用MySQL的改SQLHost、SQLDB、SQLUser、SQLPass,别把DBC别名和SQL混着配。
九、启动顺序和日志定位
先起DBServer,窗口应显示数据库连接、物品库/魔法库初始化成功;再LoginSrv、LoginGate、SelGate、RunGate,最后M2。DBServer红字看具体行:
“无法打开HeroDB/未知别名”=BDE名或PATH错;
“StdItems.DB第X行字段溢出/类型错误”=用DBC工具打开跳该行查超长、空值、非数字;
“Magic.DB结构不匹配/缺字段”=引擎和库版本不对;
“文件不存在”=PATH指错或文件被杀软删;
“Access violation”伴随DBServer消失=杀软拦截或BDE没保存成功。
十、最简复现法
把Mud2\DB或Mir200\DB换成同引擎原包纯净库,BDE重指PATH,dbsrc/!Setup库名改一致,关杀软、取消只读压缩、管理员起DBServer。能起说明原库坏或结构错;还报错说明BDE别名、路径、权限或引擎配置不对。按“纯英文路径—BDE HeroDB指DB目录—StdItems/Magic非0KB—配置库名一致—杀软放行—管理员起DBServer”六步走,物品和魔法双错基本都能消。
传奇单机架设物品数据库魔法数据库反复加载错误DBC2000路径权限版本排查修复
来源:
作者:
点击:

