自己架设传奇单机服注册不了账号从登录器到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.1 7000

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

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

三、LoginSrv 有没有起来

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

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

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

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

• 装 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 路径错。

控制面板 → BDE Administrator
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 加白名单。

防火墙高级设置里放行 TCP 7000、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 加:
test 10

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

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

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

十六、备份位置

改之前备:
• LoginSrv\Logsrv.ini

• Mir200\Envir\AdminList.txt

• Mud2\DB\Account.DB

• 登录器列表文件

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