当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇架设后登录器无法注册新账号的完整排障与修复

热度:
注册账号不是登录器自己完成的。登录器把注册请求发给LoginGate,再进LoginSrv做校验,最后写进DBServer对应的账号库。任意一环断掉,表现都是点注册没反应、按钮灰色、提示失败,或者注册完登录说账号不存在。按下面顺序查,从最快见效的往底层走。

一、先确认服务端进程是不是全起来了

引擎控制器里至少要有这几个窗口常驻:

DBServer
LoginSrv
LoginGate
RunGate/SelGate
M2Server

少一个,注册链路就断。尤其是LoginSrv和LoginGate,很多人只开M2就以为服务起了,结果注册请求根本没人接。

看窗口有没有一闪而过。闪退优先查三件事:

缺VC++运行库,装一遍常用运行库包
路径带中文或空格,服务端整体挪到D:\MirServer这种纯英文路径
杀毒把LoginGate.exe、DBServer.exe删了,恢复文件并加白名单

启动顺序按这个来,别乱点:

先开DBServer
再开LoginSrv
再开LoginGate
最后开M2Server和网关

二、查M2和LoginSrv里的注册开关

这是最高频的坑。很多端为了防止乱注册,默认把新账号注册关了。

1.M2里放开注册

进M2Server控制台,菜单走:

选项→参数设置→环境设置(有的版本在“功能设置”或“账号登录服务器”)

找下面几项:

禁止新账号注册:必须取消勾选
允许账号注册:勾上
单IP注册数量限制:单机测试先设0或不限制
账号最小长度:一般4,密码长度6-16

保存,重启M2生效。

2.LoginSrv里再放一次

进LoginSrv程序,选项→基本设置,找:

允许注册新账号:勾上
专用登录器模式:如果登录器没配验证码,先取消勾选
单IP最大注册数:调到5或0

同时打开LoginSrv目录下的Logsrv.ini,看有没有:

AllowReg=0
EnableRegister=0

有就改成1,保存重启LoginSrv。

3.GOM/GEE登录网关单独查

GOM/GEE系打开GomLoginGate.exe,设置→注册设置:

允许新账号注册:勾上
关闭注册:必须取消

不改这个,前面M2放开了也没用,网关层直接拦。

三、登录器必须和当前引擎配套

拿A引擎的登录器连B引擎的网关,协议对不上,注册按钮可能灰色,也可能点了完全没反应。

确认做法:

看M2窗口标题,确认是GOM、GEE、HERO、BLUE、Legend哪一种
用当前服务端压缩包里自带的登录器配置器,不要网上随便下“万能登录器”
配置器里重新生成一次登录器,生成出来的LoginGate.exe和DLL一并覆盖到服务端LoginGate目录
覆盖完重启LoginGate

配置器里几个关键点:

服务器IP:单机填127.0.0.1,外网填公网IP
登录网关端口:默认7000,和LoginGate的Config.ini里Port一致
网关密码/密钥:LoginGate窗口显示的密钥,配置器里填一模一样
勾选“显示注册按钮”“允许注册账号”

重新生成完,把客户端目录下的Cache、Config旧缓存删掉,再开登录器。

四、IP和端口对齐

注册包发不出去,常见就是IP端口三处对不上。

检查这三个地方必须完全一致:

1.登录器列表list.txt或ServerList.txt
单机写:

http://127.0.0.1:端口/list.txt
或直接127.0.0.1

2.登录器配置器里的服务器地址和端口
3.服务端LoginGate\Config.ini里的Port

默认7000,改过就用改过的。用命令查端口监听:

netstat-ano|findstr:7000

没监听说明LoginGate没起来,或者被占。占用就换端口,三处一起换,别只改一边。

外网开服还要在路由器把7000、7100、7200映射出去,系统防火墙临时关掉测一次。

五、数据库能不能写进去

注册本质是往账号库插一条记录。网关通了还失败,就是库写不进。

1.HERO/老引擎用DBC2000

控制面板打开BDEAdministrator,看有没有HeroDB:

类型STANDARD
PATH指向MirServer\Mud2\DB(按实际路径,有的在Mir200\Mud2\DB)
状态双击打开,显示OPEN

路径错就改,改完Apply保存,重启DBCache/DBServer。

再进DBServer窗口,选项→基本设置,勾“允许创建新人物”,确定保存重启。

2.GOM/GEE用MySQL

进Mirserver\DBServer,打开!DBConfig.txt:

DBIP=127.0.0.1
DBName=mir
DBUser=root
DBPassword=123456(按你本地实际密码)

连不上就检查MySQL服务起没起,mir库和account表在不在。表坏了执行:

repairtableaccount;

3.文件型账号库

进LoginSrv\Account或Mud2\DBServer\FDB、IdDB目录:

确认.db/.fdb/.txt没设只读
文件夹右键属性→安全→当前用户给“写入”权限
文件损坏就从完整端备份里复制一份覆盖

服务端根目录整体给“完全控制”权限,能避开一堆诡异写入问题。

六、账号密码格式被服务端校验拦了

不是所有字符都能注册,服务端默认规则比较严:

账号:只支持英文字母和数字,4-12位
密码:6-16位
别用中文、空格、@#这类特殊符号
避开admin、test、gm这类保留词

输错格式表现像“注册失败”或“请确认账号”,不是服务端坏了,换合规账号名再试。

七、登录器没注册入口的单独处理

按钮灰色或根本没有注册区,优先怀疑两件事:

1.配置器生成时没勾“显示注册按钮”
重开配置器,勾上重新生成。

2.M2里“禁止注册”开着
回到第二节把开关全放开。

3.登录网关文件没覆盖
用配置器包里的LoginGate.exe覆盖服务端LoginGate目录,重启网关。

这三步做完,注册入口和提交链路一般就通了。

八、应急方案:手动建账号

前端注册怎么都调不好,可以先手动插账号验证数据库本身没问题。

文本库(Hero/Blue部分版本):
进DBServer\DB或LoginSrv\Account,找Account.txt/Member.txt,按已有行格式加:

test123456
0

账号密码
权限,保存就能直接登录。

DBC2000库:
BDEAdministrator打开HeroDB的Account表,手动加账号密码字段。

Access库:
用Access打开.mdb,在account表插一行。

能手动建号登录,说明数据库正常,问题一定在网关或登录器配置;手动也建不了,就是库权限或表结构坏了。

九、验证码和专用登录器模式

Hero引擎默认可能开“专用登录器模式”和登录验证码。登录器没配对应验证码模块时,注册会无响应。

进LoginSrv→选项→基本设置:

取消“专用登录器模式”
验证码相关选项先关掉

重新注册正常了,再按需把防刷机制加回来。

十、十分钟定位流程

按这个顺序点一遍:

1.看LoginSrv、LoginGate窗口在不在,闪退查日志
2.M2里取消“禁止注册”,勾“允许注册”,重启
3.LoginSrv.ini里AllowReg=1
4.用端里自带配置器重生成登录器,覆盖配套LoginGate
5.列表IP填127.0.0.1,端口和网关Config.ini对齐
6.DBC2000的HeroDB路径对,DBServer勾“允许创建新人物”
7.Account目录给写入权限,库文件别只读
8.账号用纯英文数字,密码6位以上
9.还不行就手动建号,能建说明库没问题,继续查网关

绝大多数“没法创建新用户”都落在前三步:进程没全起、注册开关没开、登录器不是配套生成。先把这三处钉死,再往下查数据库和权限,基本都能通。

注册功能正常的标志不是按钮能点,而是注册完能立刻用同账号登进去建角色。只点注册不报错但登不进去,继续查DBServer写库和M2的账号同步,别在登录器界面反复试。
[顶部]