一、核心原理与前期准备 明确单引擎多区逻辑
Hero引擎单引擎开双区,核心是通过复制多份M2Server进程配置,分配独立端口与分区标识,共享一套引擎核心服务(如LoginSrv、DBServer),而非启动多套完整引擎。这种方式可减少资源占用,实现Mir200文件夹下M2Server(1)、M2Server(2)多进程启动,对应不同游戏分区。
前期准备:1. 确保Hero引擎版本完整,服务端根目录(如D:\MirServer)文件齐全,无缺失核心模块;2. 备份Mir200文件夹(含M2Server.exe、配置文件等),避免修改错误导致原区失效;3. 准备文本编辑器(记事本或专业编辑器),用于修改配置文件参数;4. 确认电脑端口未被占用,核心端口(7000-7300区间)保留空闲。
二、第一步:复制M2Server进程 创建分区专属配置
1. 复制M2Server核心文件
打开服务端根目录下的Mir200文件夹,找到M2Server.exe(主M2进程),右键复制后粘贴在同一文件夹内,分别重命名为M2Server(1).exe、M2Server(2).exe(对应1区、2区,按需创建数量)。
同时复制Mir200文件夹内的!Setup.txt、!ServerTable.txt、!Runaddr.txt三个核心配置文件,分别重命名为!Setup(1).txt、!ServerTable(1).txt、!Runaddr(1).txt,对应1区M2进程;同理创建2区专属配置文件(后缀标注2),确保每个M2进程对应独立配置文件。
2. 配置分区专属标识与路径
为每个分区创建独立的数据存储路径,避免数据混淆:在服务端根目录下新建文件夹,分别命名为Zone1、Zone2(对应1区、2区),复制原Mir200\DB文件夹内的数据库文件至对应分区文件夹,确保每个分区有独立的数据库存储目录。
打开分区专属配置文件(如!Setup(1).txt),修改数据库路径参数:将DBPath=D:\MirServer\Mir200\DB,改为DBPath=D:\MirServer\Zone1\DB(1区路径);2区对应修改为DBPath=D:\MirServer\Zone2\DB,确保每个分区M2进程读取独立数据库。
第二步:修改分区端口配置 避免进程冲突
1. 调整主分区(原M2Server)端口
打开原!Setup.txt(主分区配置),找到端口相关参数,按默认值确认或修改,确保核心端口唯一:
1. 登录网关端口:GatePort=7000;2. 游戏端口:GamePort=7200;3. 数据库端口:DBPort=6000;4. 列表服务端口:ListPort=5500。记录主分区端口,后续分区端口需递增,避免冲突。
2. 配置1区(M2Server(1))端口
打开!Setup(1).txt(1区配置),修改端口参数,在主分区端口基础上递增(推荐递增10,便于记忆与管理):
1. 登录网关端口:GatePort=7010;2. 游戏端口:GamePort=7210;3. 数据库端口:DBPort=6010;4. 列表服务端口:ListPort=5510。
同时修改!ServerTable(1).txt:按“序号 内网IP 内网端口 外网IP 外网端口”格式填写,示例为“1 192.168.0.1 7210 220.201.32.23 7210”,端口与!Setup(1).txt中GamePort一致;!Runaddr(1).txt填写内网IP(如192.168.0.1),无需额外内容。
3. 配置2区(M2Server(2))端口
参考1区配置逻辑,打开!Setup(2).txt(2区配置),端口参数继续递增:GatePort=7020、GamePort=7220、DBPort=6020、ListPort=5520。
!ServerTable(2).txt填写示例:“2 192.168.0.1 7220 220.201.32.23 7220”;!Runaddr(2).txt填写与1区一致的内网IP,确保同一引擎下各分区IP统一,仅端口差异化。
三、第三步:设置引擎分区列表 关联多M2进程
1. 修改登录服务配置 添加分区信息
打开服务端根目录下LoginSrv文件夹,找到!AddrTable.txt文件(登录分区列表配置),按以下格式添加各分区信息,每行对应一个分区:
示例:“1区 192.168.0.1 7000 220.201.32.23 7000”“2区 192.168.0.1 7010 220.201.32.23 7010”。格式说明:分区名称 内网IP 内网网关端口 外网IP 外网网关端口,端口需与对应分区!Setup.txt中GatePort一致。
保存文件后,打开LoginSrv.exe的配置界面,确认“分区列表读取路径”指向修改后的!AddrTable.txt,确保登录服务能识别新增分区。
2. 配置M2进程分区标识
分别打开各分区M2进程的配置界面(双击对应M2Server(1).exe、M2Server(2).exe,启动后进入配置):
1. 点击“选项”→“功能设置”→“分区设置”,勾选“启用分区标识”,1区填写分区ID=1,分区名称=1区;2区填写分区ID=2,分区名称=2区,确保分区ID与!AddrTable.txt中序号对应。
2. 进入“数据库设置”,确认数据库路径与对应分区!Setup.txt中DBPath一致,避免读取错误数据库导致数据混乱。
3. 关联引擎核心服务 共享基础配置
单引擎多区需共享LoginSrv、DBServer等核心服务,无需为每个分区启动独立服务:
1. 确保DBServer文件夹下!AddrTable.txt添加了所有分区的内网IP(如192.168.0.1),允许各分区M2进程访问数据库;2. 启动LoginSrv服务后,各分区M2进程启动时会自动关联登录服务,无需额外配置;3. 网关服务(LoginGate、RunGate)按分区端口启动,1区对应启动LoginGate(1).exe(端口7010),2区对应LoginGate(2).exe(端口7020),与分区M2端口匹配。
四、第四步:创建多M2启动脚本 实现一键启动
1. 编写批处理启动脚本
在Mir200文件夹内新建文本文档,输入以下启动指令(按分区顺序编写),用于一键启动所有M2进程及对应网关:
@echo off
start D:\MirServer\Mir200\M2Server.exe(主区M2)
start D:\MirServer\Mir200\M2Server(1).exe(1区M2)
start D:\MirServer\Mir200\M2Server(2).exe(2区M2)
start D:\MirServer\LoginGate\LoginGate.exe(主区网关,端口7000)
start D:\MirServer\LoginGate\LoginGate(1).exe(1区网关,端口7010)
start D:\MirServer\LoginGate\LoginGate(2).exe(2区网关,端口7020)
exit
保存文档后,将文件后缀改为.bat(如“多区启动.bat”),双击即可一键启动所有分区M2进程及网关服务,无需手动逐一启动。
2. 配置启动依赖 确保启动顺序
若启动时出现M2进程报错,需调整启动顺序:先启动DBServer数据库服务,再启动LoginSrv登录服务,最后通过批处理脚本启动各分区M2进程及网关。可在批处理脚本中添加延迟指令(如timeout /t 5),确保前序服务启动完成后再启动后续进程。
示例:在启动M2进程前添加“timeout /t 5”(延迟5秒),避免因数据库服务未加载完成导致M2启动失败。
五、第五步:验证与测试 确保双区正常运行
1. 启动服务端 检查进程状态
按顺序启动服务:1. 启动DBC2000数据库,确认HeroDB及各分区数据库正常加载;2. 启动DBServer.exe,显示“数据库服务启动成功”;3. 启动LoginSrv.exe,显示“登录服务启动成功,分区列表加载完成”;4. 双击批处理脚本,启动各分区M2进程及网关,确保所有M2进程正常运行,无闪退或报错。
打开任务管理器,在“进程”栏查看M2Server.exe、M2Server(1).exe、M2Server(2).exe是否均处于运行状态,确认端口无占用冲突(可通过命令提示符输入“netstat -ano”查看端口占用情况)。
2. 客户端登录测试 验证分区访问
配置登录器:打开登录器配置器,添加分区信息,1区填写IP(内网192.168.0.1/外网IP)、端口7000;2区填写IP相同,端口7010,保存配置后生成登录器。
登录测试:启动客户端,通过登录器选择1区,输入账号密码登录,确认能正常进入游戏、打怪升级,数据存储正常;切换至2区登录,验证2区可独立进入,与1区数据互不干扰(如角色、装备数据独立),说明双区设置成功。
多场景测试:分别在1区、2区创建角色,测试传送、PK、任务等功能,确保各分区功能正常,无卡顿或数据同步异常。
六、常见异常排查 快速解决多区启动问题
1. M2进程启动闪退 端口冲突导致
若某分区M2进程启动后闪退,优先检查对应端口是否被占用:通过“netstat -ano”命令查看分区端口(如7210)是否被其他程序占用,若占用则修改该分区!Setup.txt中的端口参数(如改为7211),同步更新!ServerTable.txt及登录器端口配置,重启M2进程即可。
2. 客户端无法显示分区 登录服务配置错误
登录器看不到新增分区,需检查LoginSrv\!AddrTable.txt:确认分区信息格式正确,无多余空格;端口与对应分区GatePort一致;登录服务启动时已加载修改后的!AddrTable.txt,可重启LoginSrv服务,重新加载分区列表。
3. 分区数据混淆 数据库路径配置错误
若1区与2区角色数据互通(混淆),需检查各分区!Setup.txt中的DBPath参数:确保1区指向Zone1\DB,2区指向Zone2\DB,无路径填写错误;重新启动数据库服务及各分区M2进程,清除数据缓存后即可恢复独立数据存储。
4. 网关启动失败 与M2端口不匹配
网关启动报错,需确认网关端口与对应分区M2的GatePort一致:如1区网关LoginGate(1).exe端口需设为7010,与!Setup(1).txt中GatePort匹配;修改网关配置文件中的端口参数,重启网关服务即可。
七、核心要点总结 单引擎多区设置关键
Hero引擎单引擎开双区,核心是“端口差异化+配置独立化+服务共享化”:每个分区M2进程需配置独立端口与数据库路径,避免冲突;共享LoginSrv、DBServer等核心服务,减少资源占用;通过批处理脚本实现多M2一键启动,提升操作效率。
日常维护中,需定期备份各分区数据库及配置文件;修改端口或路径时,确保所有关联配置(!Setup.txt、!ServerTable.txt、登录器)同步更新;若需新增3区(M2Server(3).exe),按上述逻辑递增端口、创建专属配置即可,扩展性极强。
Hero传奇引擎一机双区设置教程 单引擎多M2启动配置方法
来源:
作者:
点击:

