单机传奇服务端启动正常但登录器创建ID无反应的端口与网关排查

来源: 作者: 点击:
服务端启动无报错但登录器点创建ID无反应,本质是客户端发出的注册请求未到达DBServer(数据库服务)或到达后未执行。单机环境IP设为127.0.0.1正确,问题多集中在端口占用、网关缺失、配置不一致及权限拦截。

一、首要检查注册网关进程与端口占用

服务端启动窗口虽显示“正常”,但若缺失注册网关(RegGate/RegisterGate)进程,注册数据将无法转发。打开任务管理器查看进程,必须同时存在LoginSrv(登录服务)、DBServer(数据库)、M2Server(主控)及RegGate。若RegGate缺失,手动进入MirServer\LoginGate目录双击启动RegGate.exe。

端口7000被占用是导致注册“假死”的常见原因。即使服务端启动,若7000端口被其他软件(如某些音乐播放器、QQ、旧服务端残留)占用,注册请求会被系统丢弃。在cmd执行 netstat -ano | findstr :7000 查看端口状态,若被占用则结束占用进程,或修改服务端端口(需同步修改登录器配置)。

二、登录器配置与引擎的严格对应

单机环境下,登录器的通讯密码、端口、引擎类型必须与服务端绝对一致,否则点击注册按钮会像“石沉大海”无任何提示。

- 引擎匹配:GOM引擎必须用GOM登录器,HERO引擎必须用HERO登录器。跨引擎使用即使能打开窗口,注册功能也必然失效。优先使用服务端自带的配套登录器配置器生成。
- 参数核对:打开登录器配置器,检查“服务器地址”是否为127.0.0.1,“服务器端口”是否与Mir200\!setup.txt及LoginSrv.ini中的端口(默认7000)一致。“登录器通讯密码”必须与M2Server-选项-基本设置中的密码完全一致(包括大小写)。
- 注册开关:检查LoginSrv目录下的LoginSrv.ini,找到RegisterEnable=参数,确保其值为1(允许注册)。部分版本此参数默认为0,会导致注册功能关闭。

三、权限拦截与数据库路径验证

Windows防火墙与杀毒软件可能在不提示的情况下拦截LoginGate或DBServer的通信。建议临时关闭防火墙和杀毒软件测试,或将MirServer整个目录加入白名单。

DBC2000数据库路径错误会导致DBServer无法写入账号数据。检查DBC2000中HeroDB的路径是否指向MirServer\Mud2\DB。若路径错误,DBServer虽能启动,但处理注册时会因找不到数据库文件而静默失败。

四、替代方案:手动添加账号测试

若以上检查均无误仍无法注册,可能是登录器本身的注册模块损坏。可采用手动添加账号方式绕过注册环节:

1. 找到MirServer\DBServer\FDB目录下的Account.DB(或Member.txt/UserAccount.dat,视引擎而定)。
2. 使用DBC2000打开或直接编辑文本,按格式添加一行账号数据(如账号密码
0)。
3. 保存后直接在登录器尝试登录该账号。若能登录,则问题局限在注册网关或登录器配置;若手动添加也登录失败,则需检查DBServer与M2的连接状态。

五、特殊引擎的脚本级拦截(GOM/GEE)

对于GOM或GEE引擎,注册逻辑受脚本控制。检查Mir200\Envir\Market_Def\QFunction-0.txt中是否存在[@UserRegister]段。若该段脚本被删除或逻辑错误(如包含未定义的变量检查),也会导致点击注册无反应。可临时注释复杂判断逻辑,保留最简单的RegisterUser命令进行测试。

排查顺序建议:先看进程(RegGate)→ 再查端口(7000占用)→ 核对登录器配置(密码/端口)→ 关闭防火墙测试 → 最后检查DBC路径和脚本。