自己架设传奇单机服注册不了账号从登录器到LoginSrv排错

来源: 作者: 点击:
一、先判断是哪种「注册不了」

点注册没反应
登录器没连到LoginSrv,或LoginSrv没起

提示连接失败/超时
IP端口错、7000被占、网关没监听

注册成功但登录提示账号不存在
账号没写进库,HeroDB路径错或账号库只读

LoginSrv双击闪退
缺运行库、配置文件路径错、杀软删了exe

进注册界面都点不开
登录器不是本端生成、引擎协议不对

二、登录器IP和端口

单机所有地址统一127.0.0.1,别填localhost、别填192.168、别填外网IP。

登录器生成器里:
服务器IP=127.0.0.1
端口=7000(跟LoginGate一致)

列表文件写法:
单机测试127.0.0.17000

登录器和网关端口不一致,注册包发不出去,表现就是点完没反应。

改了端口就把LoginGate配置、登录器列表一起改,别只动一处。

三、LoginSrv有没有起来

注册账号走的是LoginSrv.exe,不是M2。
M2起来了不代表能注册。

进服务端目录:
D:\MirServer\LoginSrv

双击LoginSrv.exe
黑窗出「LoginServerStart」或「登录服务启动成功」才算正常。

闪退处理:
•右键属性兼容XPSP3+管理员运行

•装VC++2005~2015运行库

•杀软隔离区找回LoginSrv.exe加白

•看LoginSrv目录日志文件,缺dll就补运行库

LoginSrv没运行,客户端注册请求直接丢空。

四、LoginGate和端口占用

注册请求顺序:
登录器→LoginGate(7000)→LoginSrv

LoginGate.exe没起,注册也废。

查端口:
cmd里
netstat-ano|findstr"7000"

有占用看PID,任务管理器结束。
常见占用:迅雷、安卓模拟器、上次的Gate没关、QQ游戏大厅。

端口冲突就把整套改7001:
LoginGate配置
登录器列表
引擎向导
三处同步。

五、DBC/HeroDB路径(HERO老端)

账号写不进库,一半是HeroDB路径错。

控制面板→BDEAdministrator
Databases里HeroDB
PATH指向:
D:\MirServer\Mir200\Mud2\DB
或
D:\MirServer\Mud2\DB

看你端DB文件实际位置,选到DB文件夹本身,别选上层。

Ctrl+S保存,关窗选Yes。

验证:
重开BDE→展开HeroDB→能看到Account/StdItems/Magic表就正常。

路径错的表现:
注册没报错但登录说账号不存在
LoginSrv日志报无法打开数据源
DBServer起不来

Win10/11装DBC2000右键安装包管理员+XP兼容。
区域格式改yyyy-M-d。

六、账号库文件权限和损坏

进DB文件夹看:
Account.DB(或ID.DB/Hum.db,看端)

问题点:
•文件只读→取消只读

•文件0KB→库坏了,从原包重新拿

•杀软隔离→恢复加白

•文件夹只读→Mir200\Mud2整层取消只读

DBServer和LoginSrv都要能写这个文件,写不进就注册假成功。

七、注册开关没开

部分端默认关注册,或限制了账号格式。

进LoginSrv目录:
Logsrv.ini/Config.ini

找:
RegisterEnable=1

是0改1。
有的端在引擎控制器「允许新账号注册」勾选框,同样打开。

账号格式限制:
AccountMinLen=3
AccountMaxLen=12

注册时账号用纯英文或英文+数字。
带中文、空格、@、#会被拒。

密码也别带空格特殊符号,先试简单abc123。

八、登录器和引擎不配套

HERO端用HERO登录器
GOM端用GOM登录器
GEE端用GEE登录器

拿万能登录器或别的端登录器硬连:
注册界面可能能点
点了没包发出来
或者闪退

正确做法:
用服务端自带的登录器生成器
言应引擎
填127.0.0.1:7000
生成exe放客户端根目录

别从别的端扒一个login.exe过来套。

九、启动顺序

顺序反了LoginSrv可能没监听到。

标准:
1.DBServer.exe
2.LoginSrv.exe
3.LoginGate.exe
4.SelGate.exe
5.RunGate.exe
6.M2Server.exe

有GameCenter点「启动全部」也行,启动完看每个黑窗有无红字。

LoginSrv必须在登录器打开前起好。

十、防火墙和杀软

Defender常拦LoginGate.exe、LoginSrv.exe。
整个D:\MirServer加白名单。

防火墙高级设置里放行TCP7000、7100、7200,或临时关防火墙测一次。

关杀软不是永久方案,测完加白再开。

十一、GOM/GEE端的账号库

新端不走DBC,走内置库或文本。

查:
Mir200\Envir下有没有Account相关
或服务端带MySQL/SQLite

GOM多数还是登录器本地注册写进服务端账号文件,
前提是LoginSrv起得来+登录器配套+IP对。

如果端里带网页注册后台:
浏览器开127.0.0.1/reg.php(看端说明)
网页能注册=登录器协议问题
网页也注册不了=LoginSrv/库问题

十二、临时绕过注册(进游戏用)

急着进游戏不想跟注册死磕,两条路:

方法A:直接建账号
HERO端用DBC工具开HeroDB→Account表
加一行:
UserName=test
UserPass=123456
权限字段按原表留默认

保存后登录器直接登test/123456。

方法B:先给GM账号再建角色
AdminList.txt加:
test10

M2重新加载管理员列表
登录器登test
进游戏用GM命令建角色测试
(注意:这是绕登录界面,不是真修注册)

绕行只是临时,真要别人也能注册,还是得把LoginSrv那条链路修通。

十三、排错顺序照着走

1.登录器IP改127.0.0.1,端口7000
2.登录器是不是本端生成
3.LoginSrv.exe双击起不起
4.LoginGate.exe起不起
5.netstat查7000被没被占
6.BDE里HeroDB路径指到DB文件夹
7.Account.DB取消只读
8.Logsrv.ini里RegisterEnable=1
9.账号用纯英文不带空格
10.杀软加白、防火墙放行
11.启动顺序DBServer→LoginSrv→Gate→M2
12.还不行看LoginSrv黑窗红字

红字才是真线索,别盲目重下端。

十四、高频现象速查

点注册没反应
LoginSrv没起/端口错/登录器不配套

连接失败
127.0.0.1没填对/7000被占/Gate没起

注册成功登不上
HeroDB路径错/Account.DB只读/库损坏

LoginSrv闪退
缺VC++/杀软删/ini路径错

提示账号已存在
之前其实写进去了,直接登录别重注

提示非法字符
账号带中文或空格

网页能注册登录器不能
登录器引擎版本不对

十五、别踩的坑

•IP填192.168本机自连,有的端回环不通,统一127.0.0.1

•只起M2想起注册,LoginSrv没跑等于没开注册服务

•登录器从别端复制,协议不对看不出报错

•DBC路径选到Mud2上层没选DB文件夹,库读空

•Account.DB杀软删了不提示,注册假成功

•改了Logsrv.ini没重启LoginSrv

•账号用「admin1」带空格,系统当非法

•防火墙只关了Defender没关360/火绒

十六、备份位置

改之前备:
•LoginSrv\Logsrv.ini

•Mir200\Envir\AdminList.txt

•Mud2\DB\Account.DB

•登录器列表文件

注册功能本身不复杂,链路就一段:
登录器发包→LoginGate收→LoginSrv写账号库。
哪一段断了都表现成「注册没反应」。
先确认LoginSrv黑窗在不在,再确认7000通不通,最后回HeroDB路径,三步能定位九成问题。别一上来重装整个端,也别信「注册补丁」,老端没那种东西,都是配置错。
[顶部]