传奇3G EI启动报错与账号注册失败修复实录

来源: 作者: 点击:
一、核心报错诊断:数据库连接中断

你提供的 EI_20061128.exe 报错日志是关键线索:

EOleException Exception]:用户 'sa' 登录失败。

问题本质:EI程序(游戏主逻辑)无法连接 SQL Server 数据库。账号注册和登录数据均依赖数据库读写,数据库连不上,注册功能自然失效。启动项“看似正常”是因为部分网关(如LoginGate)已启动,但核心游戏逻辑(EI)已崩溃。

二、修复“sa登录失败”的实操步骤

1. 验证SQL Server服务与身份验证模式

• 启动服务:打开“服务”(services.msc),找到 MSSQLSERVER 或 SQL Server (SQLEXPRESS),确保状态为“已启动”。

• 修改认证模式:打开 SQL Server 企业管理器(或SQL Server Management Studio),右键服务器实例 → 属性 → 安全性:

• 将“身份验证”改为 SQL Server 和 Windows 身份验证模式(混合模式)。

• 重启SQL Server服务。

• 设置sa密码:展开“安全性” → “登录名” → 右键 sa → 属性:

• 设置密码(如 123456),取消“强制实施密码策略”。

• 在“状态”页签中,将“登录”设置为 已启用。

2. 修正服务端配置文件

传奇3G服务端通过 .ini 文件连接数据库,需确保以下文件中的密码与SQL Server中设置的sa密码完全一致:
• 重点文件:DBServer.ini、!setup.txt、EI_20061128 同目录下的 Config 或 DBConfig.ini。

• 修改项:查找 SQLPassword= 或 DBPwd= 参数,将其值修改为你设定的sa密码。

• 连接字符串检查:部分版本使用ODBC连接,需检查控制面板 → 管理工具 → ODBC数据源(32位)中的 account、game3g 等数据源配置。

三、外网架设的IP修正流程

你日志中的 SERVERTABLE 显示IP为 125.219.184.41,若此IP非你当前公网IP,需进行以下修改:
1. 修改IP配置文件:
◦ !servertable.txt:将第二列IP改为你的公网IP。

◦ !addrtable.txt:修改服务器地址。

◦ DBServer.ini、LoginGate.ini、RunGate.ini:将 ServerAddr= 或 GateAddr= 改为公网IP。

2. 路由器映射:在路由器“虚拟服务器”中,将 7000(登录)、7100(角色)、7200(游戏)端口映射到本机内网IP(如 192.168.1.100)。
3. 客户端同步:登录器列表文件(list.txt)中的IP必须改为公网IP。

四、账号注册功能专项排查

在解决数据库连接后,若仍无法注册,检查以下两点:
• 注册网关限制:检查 LoginGate 目录下的配置文件,确认 EnableRegister= 或 AllowCreateAccount= 参数是否为 1(允许注册)。

• 手动创建账号(备用方案):

1. 打开 SQL Server,进入 account 数据库。
2. 找到 TBL_Account 或 Account 表,手动插入一条数据:
INSERT INTO TBL_Account (FLD_ACCOUNT, FLD_PASSWORD) VALUES ('test01', '123456');

3. 若能使用此账号登录,说明注册功能是脚本或网关配置问题。

五、操作顺序与验证

1. 先内后外:先在单机环境(IP设为127.0.0.1)修复数据库连接,确保EI启动无报错、能注册账号。
2. 再改外网:单机测试通过后,再将所有配置文件IP改为公网IP,并做端口映射。
3. 重启顺序:修改配置后,关闭所有服务端窗口,按顺序启动:DBServer → LoginGate → EI。

修复 sa 登录失败是首要任务,EI程序正常启动后,账号注册功能将自动恢复。