热血传奇单机建角色开门报服务器不可用:网关端口DBC补丁排错

来源: 作者: 点击:
先分清现象。能出大区、能输账号、能创建角色,点开始进地图或选人后立刻弹服务器不可用,说明登录网关基本通,问题多在角色网关、游戏网关、M2地图/脚本加载、角色数据回写、防火墙杀软拦截这几块。按下面顺序查,不绕弯。

一、看六个进程是否全在

任务管理器详细信息里挨个确认,缺哪个补哪个:
DBServer.exe 数据库服务
LoginSrv.exe 账号服务
LoginGate.exe 登录网关,默认7000
SelGate.exe 角色网关,默认7100
RunGate.exe 或 GameGate.exe 游戏网关,默认7200
M2Server.exe 主引擎

能建角色但开门失败,重点看SelGate和RunGate。SelGate没起或崩了,选人后进地图会直接断;RunGate没起,M2发了地图数据但客户端收不到,也会报服务器不可用。控制器显示“启动成功”不代表底层网关都活,手动点开每个网关黑窗看最后一行,正常应显示监听对应端口、无红字。

二、用netstat确认端口在听

按本端实际端口查,默认示例:
cmd 执行 netstat -ano | findstr ":7000"
netstat -ano | findstr ":7100"
netstat -ano | findstr ":7200"

正常应看到127.0.0.1:7000 LISTENING、127.0.0.1:7100 LISTENING、127.0.0.1:7200 LISTENING,或者0.0.0.0对应端口LISTENING。7100不监听就查SelGate.ini和M2角色端口;7200不监听查RunGate.ini和M2游戏端口。有占用记PID,任务管理器结束占用程序再重启网关。迅雷、酷狗、IIS、上一次没关干净的M2/网关常占7000到7200。

三、所有IP统一127.0.0.1

单机只走回环,逐文件核:
Mir200\!Setup.txt 看ServerAddr、DBIP、各GateAddr都写127.0.0.1
LoginSrv\!Addrtable.txt 或地址表,区名对应127.0.0.1和登录端口
LoginGate.ini 本地IP127.0.0.1,Port按实际
SelGate.ini 监听127.0.0.1,角色端口和M2、登录器一致
RunGate/GameGate.ini 服务端IP127.0.0.1,游戏端口和M2一致
登录器列表 区名、127.0.0.1、登录端口三项和LoginGate对上

只要有一处写了192.168.x.x、公网IP、域名,单机建角色后开门就可能断。改完所有ini和!Setup后重启控制器,别只重启M2。

四、Hero/DBC类查HeroDB和角色写库

控制面板开BDE Administrator,别名HeroDB,PATH精确到D:\MirServer\Mud2\DB,末尾别带反斜杠;能展开StdItems、Magic、Monster、Account、Role等表才行。路径指到Mir200\DB、根目录、带中文文件夹,都会让DBServer连不上或部分表打不开。

建角色后能进选人但开门失败,查角色表是否真写入。BDE打开HeroDB的Role/角色表,看刚建的角色名、职业、性别、地图、坐标是否存在;若建角色时没写进去,开门读角色会报不可用。处理办法:
Mud2\DB目录取消只读,当前用户给完全控制
DBServer以管理员运行,必要时兼容Windows7
看DBServer窗口有无Cannot open HeroDB、表锁定、文件只读报错
杀软把Mud2\DB下DBF或BDE相关文件隔离,恢复并加白
整个MirServer重新解压DB目录前先备份已建账号,避免覆盖空库。

GOM/GEE/SQL类不装DBC,改查数据库连通:DBServer配置里地址127.0.0.1、端口、库名、账号密码和已导入的库一致;用管理工具连库查角色表有无新建记录。数据库没起或账号密码错,建角色可能走缓存假成功,开门读不到角色就断。

五、M2地图、出生点、脚本卡加载

M2窗口翻日志,重点看:
地图加载是否报0.map、3.map等missing,Mir200\Map缺文件就补全
MapInfo.txt里出生地图编号是否和Map文件夹文件同名
StartPoint.txt或出生点配置坐标是否超出地图范围
Envir\QuestDiary、NpcDef某脚本死循环或写错,M2加载到该行后不再处理进入请求
插件PlugList.txt挂了异常dll,M2局部功能崩但不一定闪退

自建新手出生若指向不存在地图,表现是创建成功、点开始一直转或弹服务器不可用。临时把出生点改回比奇0.map安全坐标,重启M2再进;确认能进再逐步恢复自定义地图和脚本。

六、防火墙和杀软静默拦截

单机也会拦。临时操作:
控制面板关Windows Defender防火墙,专用和公用都关,再点开门测试
第三方杀软看隔离区,恢复M2Server、DBServer、LoginSrv、LoginGate、SelGate、RunGate,整个MirServer加信任
登录器主程序也加信任,不关杀软直接跑常出现建角色行、进图断

测试通了再重新开防火墙,高级安全里建入站规则,按本端实际添加TCP对应端口,程序规则更直接:把上述六个exe全部允许入站出站。不要长期关防火墙凑合用。

七、登录器必须同引擎同端口

用服务端自带配置器重生成,不混用:
Hero端用Hero登录器配置器,GOM用GOM配置器,GEE用GEE配置器,BLUE/3K/翎风各自配套
列表写 区名127.0.0.1 7000
0 或配置器GUI填127.0.0.1+登录端口,角色/游戏端口按网关实际来
区名和M2的ServerName一字不差,带空格、特殊符号有时解析异常,测试先用纯英文区名
GOM若用微端,UpdateGate端口、Pak.txt路径和密码要一致;PAK密码错通常黑屏问号,不一定报服务器不可用,但资源校验失败也会中断进图
GEE若设了登录网关密码、加密模式,登录器配置器要同样勾选,空密码就都留空

八、最小救急顺序

关杀软和防火墙,任务管理器确认DBServer、LoginSrv、LoginGate、SelGate、RunGate、M2全在;cmd查7000/7100/7200都LISTENING;BDE确认HeroDB路径到Mud2\DB且Role表能写,或SQL库角色表有记录;!Setup和所有Gate.ini的IP全改127.0.0.1,端口按实际统一;用同引擎配置器重做列表127.0.0.1:7000,重新生成登录器放客户端根目录;M2日志清地图/脚本红字,出生点先改回原版比奇;再建新角色测试,别用刚才失败的老角色。老角色若已写坏出生地图,可在数据库改其地图号和坐标,或删角色重建。

按上面六块查,建角色后开门报服务器不可用大多落在SelGate/RunGate没监听、所有IP未统一127.0.0.1、HeroDB角色表只读写不进、M2地图或出生脚本报错、防火墙拦7200这几类。先netstat后M2日志,比重装服务端快。