传奇SKY引擎物品魔法库加载异常Connection closed单机修复步骤

来源: 作者: 点击:
先关掉所有SKY数据库服务器、M2、各网关、登录器,按下面顺序查,不要反复点启动。

一、确认SKY用哪种数据库
SKY老单机会用DBC2000/BDE读Paradox库;部分SKY“数据库服务器”自带配置,不依赖BDE。看服务端目录:若有Mud2\DB或Mir200\DB下放StdItems.DB、Magic.DB、Monster.DB,基本走DBC;若DBServer程序里有“设置-数据库路径”或自带dbconfig,按程序配置走,不装BDE也没事。
走DBC就打开控制面板BDE Administrator,Object-New选STANDARD,别名按服务端要求建;多数老端用HeroDB,SKY部分包用MirDB,以Mir200\!Setup.txt或DBServer配置里的DBName为准。PATH填实际DB文件夹,例如D:\MirServer\Mud2\DB,纯英文、无空格、无中文、末尾不加点号和反斜杠。Ctrl+S保存,关BDE。

二、检查物品和魔法库文件
进DB目录,至少看:
StdItems.DB(物品,有的SKY叫Item.DB也按包内实际名)
Magic.DB(技能/魔法,有的包另带Spell.DB)
Monster.DB(怪物,辅助验证)
文件必须存在、大于0KB、没被杀软隔离。几KB或0字节就是解压不完整或被杀软删,从原压缩包重新解压DB目录覆盖;覆盖前结束M2Server、DBServer、所有Gate进程,避免文件被锁。
SKY专项报错里Item/Magic读不到会直接假性启动,客户端连上来服务端无法完成数据握手,就提示Connection closed,所以先把这个库修好再起网关。

三、核对服务端路径和权限
整个端放D:\MirServer或E:\MirServer,不要放“D:\游戏\传奇”“C:\Program Files (x86)”这类含中文、空格、括号的路径。SKY对路径空格敏感,!Setup里如果写了“D:\MirServer\Mud2\DB \”后面带空格也会读错,手动删掉空格。
DB文件右键属性-常规-高级,取消“压缩内容以便节省磁盘空间”;常规里取消只读。MirServer根目录右键安全-编辑,给当前系统用户完全控制,Win10/11上BDE和DBServer常因权限读不到库。
杀软把StdItems.DB、Magic.DB、DBServer.exe、M2Server.exe加信任;去杀软隔离区看有没有恢复,恢复后重新覆盖一次原版DB更稳。

四、核对!Setup和DBServer配置
用记事本开Mir200\!Setup.txt,找DBName、DBPath类字段:DBName和BDE别名完全一致,DBPath和BDE的PATH完全一致,都指向DB文件夹而不是Mir200上层。若SKY数据库服务器程序独立配置,打开它的设置页,物品库指向StdItems/Item、魔法库指向Magic,路径选实际DB目录,点测试/保存。
如果服务端另用MySQL(少数SKY改版会这样),检查DBConfig或中控里的IP、库名、账号、密码、端口,Magic表要导完整SQL,火球治愈等基础技能必须有行;空表也会加载异常。普通SKY单机老端不考虑这个,先按DBC查。

五、启动顺序与端口
单机架设标准顺序:先起SKY数据库服务器/DBServer,窗口显示物品、魔法加载成功、无Exception;再起LogServer(如有)、LoginSrv、LoginGate、SelGate/角色网关、RunGate/游戏网关,最后起M2。DBServer没正常出物品魔法就起M2,M2会缺数据,客户端选角色进图被断。
单机IP全部127.0.0.1。LoginSrv、LoginGate、RunGate、SelGate、M2配置、登录器列表七处IP一致;端口按SKY原包默认,常见登录7000、游戏7100/7200,具体看各ini。cmd执行netstat -ano | findstr "7000 7100 7200"看LISTENING,被占就结束对应PID或在各网关ini统一换端口。防火墙放行对应TCP。
Connection closed只在数据库修好、网关全监听后再测;如果DB不报错了但还断,单独看RunGate红字、M2底栏红字、登录器列表编码(单机用ANSI,不存UTF-8 BOM)。

六、版本不配套处理
StdItems和Magic不要跨引擎混用。SKY端就用SKY包内原DB,不拿HERO、BLUE、GOM、GEE的库硬套;字段结构不同会物品加载到一半抛Exception。若原DB损坏且无备份,从同版本SKY完整包重新解压DB目录覆盖,再把自己改过的爆率、新增装备单独回填,不整库替换。
DBServer在Win10/11仍闪退,右键属性兼容Windows XP SP3或Win7、管理员运行;缺msvcr71/msvcr120等装VC运行库合集。BDE在64位系统用32位管理视图建别名,建完重启电脑再起端。

按上面把BDE别名、DB文件路径、StdItems/Magic文件完整性、127端口、启动顺序全对一遍,物品和魔法Exception会消失;数据库正常后M2能完整加载,客户端Connection closed基本跟着解决。仍报某行物品或技能异常,用DB编辑器打开StdItems/Magic,查重复Idx、技能ID、攻击力/魔法力字段混了中文或空值,删掉异常行再起DBServer。