在荣耀传奇服务端中,若需在同一登录器上同时支持合区与新开服务器,核心在于登录器配置、网关列表管理及客户端IP指向的协调。整个过程不涉及代码重写,仅通过配置文件调整即可完成。
首先明确架构逻辑。登录器(LoginGate)负责接收玩家连接请求,并根据用户选择的区服,将其转发至对应的游戏网关(RunGate)。每个区服对应独立的M2Server实例和数据库(或数据目录)。合服本质是将多个区的数据合并到一个服务端运行;新区则是新增一套独立服务进程。
准备新区服务端。复制现有区服的完整服务端文件夹,例如从D:MirServerZone1复制为D:MirServerZone2。修改Zone2下所有配置文件中的端口,避免冲突:
LoginSrv端口改为7001
RunGate监听端口改为7101
M2Server游戏端口改为7201
DBServer数据端口(如有)改为6001
同时更新数据库名称(如使用SQLServer),或更改文本型服务端的数据路径,确保新区数据隔离。
配置合服服务端。若执行合服操作,需先将原多个区的角色、物品、行会等数据导入同一数据库或合并StdItems、Map、GuildBase等文本目录。合服后的服务端作为独立区存在,例如命名为MergeZone,分配新端口组(如7002/7102/7202)。
编辑登录器网关列表。登录器读取的区服列表通常来自ServerList.txt或!AddrTable.txt,位于LoginGate或LoginSrv目录。文件格式如下:
[新区]
IP=127.0.0.1
Port=7001
[合服区]
IP=127.0.0.1
Port=7002
[老区1]
IP=127.0.0.1
Port=7000
每行定义一个区服名称及其对应的LoginSrv地址和端口。客户端启动时,登录器自动加载此列表并显示在区服选择界面。
同步客户端配置。确保客户端使用的登录器版本支持多区列表。部分旧版登录器需替换为多区兼容版本,或修改其内部资源文件(如.dat或.ini)以正确解析ServerList.txt。
启动所有服务进程。依次运行:
原区LoginSrv(7000)、新区LoginSrv(7001)、合服区LoginSrv(7002)
各区对应的DBServer、M2Server、RunGate
注意每个区必须使用独立端口组,否则进程冲突导致启动失败。
验证区服显示。启动客户端,登录器应列出“新区”“合服区”“老区1”等选项。选择任一区后,客户端自动连接对应IP和端口,进入该区角色界面。
若某区未显示,检查三点:
对应LoginSrv是否正在监听指定端口(用netstat-ano|findstr:7001验证)
ServerList.txt编码是否为ANSI(UTF-8可能导致乱码或无法识别)
防火墙是否放行所有LoginSrv端口(7000–7002)
通过上述配置,可在同一登录器下同时提供新区、合服区及原有区服的入口,玩家自由切换,互不影响。关键在于端口隔离、数据分离与列表文件准确指向。
首先明确架构逻辑。登录器(LoginGate)负责接收玩家连接请求,并根据用户选择的区服,将其转发至对应的游戏网关(RunGate)。每个区服对应独立的M2Server实例和数据库(或数据目录)。合服本质是将多个区的数据合并到一个服务端运行;新区则是新增一套独立服务进程。
准备新区服务端。复制现有区服的完整服务端文件夹,例如从D:MirServerZone1复制为D:MirServerZone2。修改Zone2下所有配置文件中的端口,避免冲突:
LoginSrv端口改为7001
RunGate监听端口改为7101
M2Server游戏端口改为7201
DBServer数据端口(如有)改为6001
同时更新数据库名称(如使用SQLServer),或更改文本型服务端的数据路径,确保新区数据隔离。
配置合服服务端。若执行合服操作,需先将原多个区的角色、物品、行会等数据导入同一数据库或合并StdItems、Map、GuildBase等文本目录。合服后的服务端作为独立区存在,例如命名为MergeZone,分配新端口组(如7002/7102/7202)。
编辑登录器网关列表。登录器读取的区服列表通常来自ServerList.txt或!AddrTable.txt,位于LoginGate或LoginSrv目录。文件格式如下:
[新区]
IP=127.0.0.1
Port=7001
[合服区]
IP=127.0.0.1
Port=7002
[老区1]
IP=127.0.0.1
Port=7000
每行定义一个区服名称及其对应的LoginSrv地址和端口。客户端启动时,登录器自动加载此列表并显示在区服选择界面。
同步客户端配置。确保客户端使用的登录器版本支持多区列表。部分旧版登录器需替换为多区兼容版本,或修改其内部资源文件(如.dat或.ini)以正确解析ServerList.txt。
启动所有服务进程。依次运行:
原区LoginSrv(7000)、新区LoginSrv(7001)、合服区LoginSrv(7002)
各区对应的DBServer、M2Server、RunGate
注意每个区必须使用独立端口组,否则进程冲突导致启动失败。
验证区服显示。启动客户端,登录器应列出“新区”“合服区”“老区1”等选项。选择任一区后,客户端自动连接对应IP和端口,进入该区角色界面。
若某区未显示,检查三点:
对应LoginSrv是否正在监听指定端口(用netstat-ano|findstr:7001验证)
ServerList.txt编码是否为ANSI(UTF-8可能导致乱码或无法识别)
防火墙是否放行所有LoginSrv端口(7000–7002)
通过上述配置,可在同一登录器下同时提供新区、合服区及原有区服的入口,玩家自由切换,互不影响。关键在于端口隔离、数据分离与列表文件准确指向。

