Mirserver
Rungate
游戏网关 RunGate 的配置参数详解,包括连接容量、动作间隔、组合速度补偿、超速检测与惩罚、封包过滤、武器加速与客户端速度调优。
RunGate(游戏网关)位于 MirServer\RunGate\ 目录,是游戏数据包中转的核心组件,同时负责封外挂检测和性能优化。其核心配置文件为 Config.ini。
目录结构
| 路径 | 说明 |
|---|---|
RunGate\Config.ini | 游戏网关核心配置文件 |
RunGate\AntiPulgin.ini | AC 封挂网关参数配置 |
RunGate\AntiPulginLog.ini | AC 封挂网关日志 |
RunGate\Abusive.txt | 脏话过滤字符列表 |
RunGate\BlockHWID.txt | 机器码过滤屏蔽列表 |
RunGate\ChatCmds.txt | 喊话过滤命令列表 |
RunGate\DenyIP.txt | IP 安全过滤屏蔽列表 |
RunGate\DenyIPRange.txt | IP 段安全过滤屏蔽列表 |
RunGate\DenyAccount.txt | 账号安全过滤屏蔽列表 |
RunGate\DenyCharName.txt | 角色安全过滤屏蔽列表 |
RunGate\DenyUserCmd.txt | 命令安全过滤屏蔽列表 |
RunGate\FilterOpcodes.txt | 操作码间隔过滤,防止封包攻击 |
RunGate\CrashDumps\ | 崩溃内存转储文件 |
RunGate\Data\ | AC 封挂网关反挂模块存放目录 |
Mir200\!RunAddr.txt | 引擎启用允许网关连接的 IP 列表,修改后在主界面重新加载 → 允许连接的网关 IP 列表即可 |
Integer 整数参数
连接与容量
| 参数 | 默认值 | 说明 |
|---|---|---|
MaxUser | 1024 | 最高人数限制 |
ShowLogLevel | 3 | 日志级别 |
MaxConnectOfIP | 50 | 每 IP 的最高连接。需 [Switch] LimitConnectionPerIP=1 才生效(默认开关已开) |
MaxClientCount | 50 | 每台电脑最高连接。需 [Switch] ProcClientCount=1 才生效(默认开关为 0,即当前不限制) |
ClientTimeOutTime | 60000 | 超时空闲连接 |
NomClientPacketSize | 1024 | 普通封包大小限制 |
MaxClientPacketSize | 16384 | 特殊封包大小限制 |
MaxClientPacketCount | 15 | 批量购买个数 |
MaxSendCacheSize | 1048576 | 限制单玩家下发缓存 1M(可达到 100M 的下发流量),正常情况下完全达不到此流量;1024*1024*3 就是 3M |
LoginWaitTime | 3800 | 登录排队基础等待时间,与 [Float] LoginWaitTimeRate 一起决定排队时长 |
MaxUserForLoginWait | 8000 | 实际在线人数超过此数量,登录游戏会排队;赋值 0 将关闭登录排队功能 |
BuffPoolSize | 320 | 内存池初始大小(MB) |
动作间隔
单位毫秒,数值越大动作越慢、限制越严格:
| 参数 | 默认值 | 说明 |
|---|---|---|
ChatInterval | 800 | 说话间隔 |
TurnInterval | 350 | 转身间隔 |
MoveInterval | 570 | 移动间隔(调参时先调此项,见文末封加速调参步骤) |
SpellInterval | 1200 | 魔法间隔。魔法速度控制只由 [Integer] 的 SpellInterval 控制,建议值 1180 |
AttackInterval | 900 | 攻击间隔 |
ButchInterval | 450 | 挖肉间隔 |
SitDownInterval | 450 | 下蹲间隔 |
PickupInterval | 330 | 拾取物品间隔 |
EatInterval | 330 | 使用药品间隔([Switch] EatInterval=0 时默认不检测该间隔) |
组合速度补偿
单位毫秒,负值表示放宽、正值表示更严格:
| 参数 | 默认值 | 说明 |
|---|---|---|
MoveNextSpellCompensate | 640 | 移动后魔法补偿 |
MoveNextAttackCompensate | 200 | 移动后攻击补偿 |
MoveNextTurnCompensate | 250 | 移动后转身补偿 |
AttackNextMoveCompensate | -10 | 攻击后移动补偿 |
AttackNextSpellCompensate | 600 | 攻击后魔法补偿 |
SpellNextMoveCompensate | -95 | 魔法后移动补偿 |
SpellNextAttackCompensate | 255 | 魔法后攻击补偿 |
TurnNextMoveCompensate | 200 | 转身后移动补偿 |
SpaceMoveNextPickupInterval | 600 | 瞬移后拾取物品的间隔 |
RushCompTime | 210 | 野蛮冲撞补偿(默认 450,越大越严格)。主要取决于 ClientMoveSpeedRate,ClientMoveSpeedRate=2 时可以设置 RushCompTime=200;开启 DebugSpeedMessage=1 自行调试合适的 RushCompTime 值 |
超速检测与惩罚
| 参数 | 默认值 | 说明 |
|---|---|---|
PunishBaseInterval | 20 | 加速惩罚基数(官方调参步骤中建议设为 0) |
CheckOvSpdInv | 20000 | 超速阈值,超过此值将累加超速计数 |
MaxOvSpdCnt | 30000 | 允许的最大的超速计数,超过后动作封包会被丢掉(卡在原地不能攻击等) |
ReleaseOvSpdCntTime | 5000 | 释放一个超速计数的间隔时间 |
PunishMoveInterval | 150 | 移动动作的超速惩罚间隔 |
PunishSpellInterval | 150 | 魔法动作的超速惩罚间隔 |
PunishAttackInterval | 150 | 攻击动作的超速惩罚间隔 |
封包过滤与防护
| 参数 | 默认值 | 说明 |
|---|---|---|
FilterOpcodesVer | 5 | 操作码间隔过滤(FilterOpcodes.txt)的配置版本,防止部分封包攻击 |
MaxFilterCount | 64 | 累计过滤封包的超速次数,超过此数量会封 IP 到临时列表;0 则是关闭,不封 IP |
武器加速与客户端速度
| 参数 | 默认值 | 说明 |
|---|---|---|
OpenSpellSpeedRate | 0 | 武器的攻击速度也可以在使用魔法时起加速作用,加速效果没有普通攻击明显;0 关闭、1 开启 |
ClientMoveFrameTime | 95 | 客户端每帧的间隔,默认 95;复古建议调节为 120,移动起来相对缓慢。参数改变后标准的移动间隔为 ClientMoveFrameTime * 6;建议弃用移动速度调节(即 ClientMoveSpeedRate=0),改用单个 ClientMoveFrameTime 来改变移动速度 |
ClientMoveSpeedRate | 0 | 客户端移动速度(不建议在此处调整速度,移动建议用 ClientMoveFrameTime 参数调节) |
ClientSpellSpeedRate | 0 | 客户端魔法速度(不建议在此处调整速度,魔法速度建议合理设置 MaxItemSpeed、MaxItemSpeedRate、OpenSpellSpeedRate 参数,结合游戏脚本或者装备给攻速实现) |
ClientAttackSpeedRate | 0 | 客户端攻击速度(不建议在此处调整速度,攻击速度建议合理设置 MaxItemSpeed、MaxItemSpeedRate 参数,结合游戏脚本或者装备给攻速实现) |
MaxItemSpeed | 55 | 武器最高速度限制;武器加攻速最大 99,比如设置 10,武器攻速 +100 也实际只有 10 的速度 |
MaxItemSpeedRate | 60 | 武器加速因数(60);装备攻击加速比率,默认 60 即可 |
MaxMovementSpeed | 80 | 限制最大移动速度,默认 80,正常最大 100 左右 |
Strings 字符串配置
| 参数 | 默认值 | 说明 |
|---|---|---|
Title | GameGateServer | 网关标题,保持默认即可 |
CMDSpaceMove | Move | 瞬移命令关键字,用于识别瞬移封包,配合 SpaceMoveNextPickupInterval 判断瞬移后拾取 |
OverClientCntMsg | 开启游戏过多,链接被断开! | 开启客户端数量超过 MaxClientCount 时的提示 |
HWIDBlockedMsg | 机器码已被封,链接被断开! | 机器码命中 BlockHWID.txt 时的提示 |
ChatFilterReplace | 说话内容被屏蔽 | 命中脏话过滤、ChatFilterMethod=0(全部替换为)时的替换文字 |
OverSpeedSendBack | [提示]:请爱护游戏环境,关闭加速外挂重新登陆! | 超速警告文字,需 [Switch] OverSpeedSendBack=1 时才下发 |
PacketDecryptFailed | [警告]:游戏连接被断开,请重新登陆!原因:使用非法外挂,客户端不配套,开启的客户端数量过多。 | 封包解密失败提示,客户端不配套或非法外挂时下发 |
BlockHWIDFileName | d:\mirserver\rungate\BlockHWID.txt | 被封机器码列表(BlockHWID.txt)的路径,必须与网关程序实际所在目录一致,否则机器码封禁不生效 |
ActivateCode | 2BRQ-L8AM-DRWH | 激活码。将获得的激活码填写在此处,第一次激活比较久,稍等 2 分钟左右,重新开启程序即可 |
Switch 开关设置
| 参数 | 默认值 | 说明 |
|---|---|---|
OpenClientSpeedRate | 0 | 游戏全局速度调节总开关;1 时 ClientMoveSpeedRate、ClientSpellSpeedRate、ClientAttackSpeedRate 才生效(显示客户端的速度调节,建议关) |
WriteLog | 1 | 记录网关日志写到引擎用的 logserver 开关,基本用不上默认为 0 即可 |
LimitConnectionPerIP | 1 | 每 IP 连接数限制开关 |
OverSpeedSendBack | 0 | 加速警告 |
DefenceCCPacket | 0 | 防止 CC 攻击 |
KickOverSpeed | 0 | 加速掉线(不建议开启) |
DoMotaeboSpeedCheck | 1 | 禁止超级野蛮(改进封"超级野蛮",并封掉"幻影野蛮",配合 RushCompTime 使用) |
DenyPresend | 0 | 禁止商城赠送 |
ItemSpeedCompensate | 1 | 组合速度考虑武器加速度;如果启用武器加速最好开启,能更好配合组合速度的计算 |
KickOverPacketSize | 1 | 异常掉线处理 |
ChatFilter | 1 | 说话过滤 |
ChatInterval | 1 | 说话间隔 |
ChatCmdFilter | 0 | 命令过滤(例如 make),配合 ChatCmds.txt,对该列表命令的喊话内容做脏话检测 |
TurnInterval | 1 | 转身速度 |
MoveInterval | 1 | 移动速度 |
SpellInterval | 1 | 魔法速度 |
AttackInterval | 1 | 攻击速度 |
ButchInterval | 1 | 挖肉速度 |
SitDownInterval | 1 | 下蹲速度 |
SpaceMoveNextPickupInterval | 1 | 瞬移后拾取物品 |
PickupInterval | 1 | 拾取物品间隔开关 |
EatInterval | 0 | 使用物品间隔开关 |
ProcClientCount | 0 | 限制每个电脑开启数量开关 |
ClientShowHintNewType | 1 | 1.76 版本物品显示方式 |
SyncClientSpeed | 0 | 同步客户端速度(1 开启,0 关闭) |
DebugSpeedMessage | 0 | 超速调试信息(供管理员测试使用);开启可以查看动作超速信息,让信息保持在 30 内最好,加速就可以封住了 |
NoDirectionMotaebo | 0 | 封定向野蛮(官方说明:NoDirectionMotaebo=1 禁止定向野蛮,默认开启) |
CheckMagicId | 0 | 非法空魔法封账号处理 |
DenyUpdateStoreItem | 1 | 禁止添加、撤销摆摊物品 |
DealAction | 1 | 是否禁止攻击后交易(如防止野蛮后交易等) |
UseTimePeriod | 0 | 使用高精确度检测加速,会用比较多的 CPU |
CheckOnlinePlayer | 1 | 实时监测虚假玩家的链接(建议开启);不开启的话在线人数显示会有所偏差(开启必须结合最新 2015 引擎,否则会 T 掉玩家);如果使用老版本 M2,务必将 CheckOnlinePlayer=0 |
AllowMultiPendingPackets | 1 | 允许多个延迟包(缓解游戏封速严格导致游戏内错位) |
AllowMultiDelayPackets | 0 | 允许多个延迟包,延迟包其实就是超速包 |
CheckNullSession | 0 | 空会话检测,过滤无效空连接 |
CheckSpecFlag | 0 | 客户端特殊标记检测 |
MultiPostPendingPackets | 0 | 多个投递挂起包延迟包 |
BlockHighTraffic | 1 | 下发缓冲限流默认 T 掉本连接;BlockHighTraffic=1 开关开启会踢掉当前 IP 所有连接 |
Method 处理方式
| 参数 | 默认值 | 选项说明 |
|---|---|---|
OverSpeedPunishMethod | 3 | 对加速处理方式:0 转换封包、1 丢包、2 空包、3 延迟处理(建议) |
BlockIPMethod | 0 | 掉线处理:0 掉线、1 临时封 IP(重启失效)、2 加到永久封 IP 列表 |
ChatFilterMethod | 0 | 脏话处理:0 全部替换为、1 替换过滤字符、2 掉线 |
SpeedHackWarnMethod | 0 | 加速警告:0 文字警告、1 弹窗警告 |
Float 浮点参数
| 参数 | 默认值 | 说明 |
|---|---|---|
PunishIntervalRate | 1.000000 | 加速惩罚倍数 |
LoginWaitTimeRate | 0.500000 | 登录等待时间 = (实际在线人数 - MaxUserForLoginWait) * LoginWaitTimeRate |
OnlinePlayerCountRate | 3.240000 | 排队时报告的在线人数倍数;报告数量 = 实际在线人数 * OnlinePlayerCountRate |
GameGate 多网关配置
单网关配置:
[GameGate]
Count=1
ServerAddr1=127.0.0.1
ServerPort1=5000
GatePort1=7200
多网关配置(3 个端口):
[GameGate]
Count=3
ServerAddr1=127.0.0.1
ServerPort1=5000
GatePort1=7200
ServerAddr2=127.0.0.1
ServerPort2=5000
GatePort2=7300
ServerAddr3=127.0.0.1
ServerPort3=5000
GatePort3=7400
| 参数 | 说明 |
|---|---|
Count | 多开端口个数(实际启用的网关组数,当前只启用第 1 组) |
ServerAddr1 | 服务器 1 的 IP(引擎 M2 所在地址) |
ServerPort1 | 服务器 1 的端口(引擎端口) |
GatePort1 | 网关服务器的对外端口(客户端 / 登录器连接用) |
配套文件
| 文件 | 说明 |
|---|---|
Abusive.txt | 脏话过滤列表,格式为:过滤字符 规则(0 全部替换、1 命中字符替换为 *、2 踢下线) |
ChatCmds.txt | 在此增加自定义列表的命令,喊话内容会进行脏话检测过滤,每行一个命令。默认只有一条:@传 (不包含双引号,注意后面有空格),例如可增加 @喊 |
BlockHWID.txt | 被封机器码列表(路径由 BlockHWIDFileName 指定) |
DenyAccount.txt | 被封账号列表 |
DenyCharName.txt | 被封角色列表 |
DenyIP.txt | 被封 IP 列表 |
DenyIPRange.txt | 被封 IP 区域列表 |
DenyUserCmd.txt | 被封命令列表 |
FilterOpcodes.txt | 操作码间隔过滤规则,防止部分封包攻击(由 FilterOpcodesVer 指定版本) |
!RunAddr.txt | 引擎启用允许网关连接的 IP 列表(Mir200 目录),修改后在主界面重新加载 → 允许连接的网关 IP 列表即可 |
封加速调参步骤
- 提高计时精度勾选
- 设置
PunishIntervalRate=1.000000、PunishBaseInterval=0 - 设置
DebugSpeedMessage=1,并先设置 3 个参数为 0:ClientMoveSpeedRate=0(客户端移动速度)、ClientSpellSpeedRate=0(客户端魔法速度)、ClientAttackSpeedRate=0(客户端攻击速度) - 例如跑动:让人物在游戏里自动跑路,然后调节
MoveInterval参数,游戏里提示超速 30 以内就最好,而且基本保持 30 左右;然后再调节砍、魔法的动作,再者调节组合速度
提高计时精度开关说明:默认打开。打开能获取更精准的封挂准确度,但部分操作系统(目前已知受影响系统为 Win2003 32 位)会使 M2 的 CPU 使用率提高很多;如果认为机器的 CPU 资源不够使用,可以选择关闭来降低部分桌面程序的 CPU 使用率。64 位操作系统默认已打开计时精度,网关里的开关不影响 M2 的 CPU。如果发现引擎 CPU 占用比较高,尝试不要勾选:主菜单 → 选项 → 提高计时精度。
移动速度调参说明
如果需要调整客户端所有人物(包括英雄)的移动速度:
ClientAttackSpeedRate=0
ClientMoveSpeedRate=0
ClientSpellSpeedRate=0
ClientMoveFrameTime=100
ClientMoveFrameTime 复古模式默认 100 或 110,数字越小速度越快。
攻击速度调参说明
1、M2 → 功能设置 → 英雄设置 1
- 启用武器加速(数值根据自己需要设置):武器加攻速最大
99,比如设置10,武器攻速+100也实际只有10的速度 - 启用武器加速魔法(魔法也支持武器加速效果)
- 装备攻击加速比率(默认
60即可)
2、M2 → 功能设置 → 英雄设置 2
行走时间间隔:
| 职业 | 数值 |
|---|---|
| 战士 | 600 |
| 法师 | 680 |
| 道士 | 680 |
组合速度补偿:
| 项目 | 数值 |
|---|---|
| 移动后魔法 | -400 |
| 移动后攻击 | -730 |
| 攻击后移动 | -730 |
| 攻击后魔法 | -420 |
| 魔法后移动 | -450 |
| 魔法后攻击 | -520 |
3、调整 RUNGATE 武器因数
OpenSpellSpeedRate=1:武器的攻击速度也可以在使用魔法时起加速作用,加速效果没有普通攻击明显ItemSpeedCompensate=1:如果启用武器加速最好开启,能更好配合组合速度的计算- 武器速度控制:
MaxItemSpeed=88(数值根据自己需要设置;武器加攻速最大99,比如设置10,武器攻速+100也实际只有10的速度)MaxItemSpeedRate=60:装备攻击加速比率(默认60即可)
4、结合游戏脚本或者装备给攻速实现
封禁列表
| 文件 | 说明 |
|---|---|
BlockHWID.txt | 被封机器码列表 |
DenyAccount.txt | 被封账号列表 |
DenyCharName.txt | 被封角色列表 |
DenyIP.txt | 被封 IP 列表 |
DenyIPRange.txt | 被封 IP 段列表 |
DenyUserCmd.txt | 被封命令列表 |
喊话过滤
ChatCmds.txt 中的命令喊话会进行脏话检测过滤,每行一个命令。默认包含 @传 (含空格)。
脏话过滤
Abusive.txt 格式:过滤字符 规则,规则含义:
0:全部替换1:命中字符替换为*2:踢下线
激活
将激活码填写在 Config.ini 的 [Strings] 节下 ActivateCode= 处。首次激活较慢(约 2 分钟),重新启动程序即可。
各组件激活码:
- M2Server.key 为 M2 注册文件,和 M2 放在一起即可。
- 21.05.25-10 后引擎 M2 激活码:
XR9ZT-666Z8-JF3QR-RHKY5 - 21.05.25-09 前引擎 M2 激活码:
RDY64-5XXM8-J7THW-MMVUT - 21.05.26-1 后游戏网关激活码:
2BRQ-L8AM-DRWH - 21.05.25-15-1 前游戏网关激活码:
SFCZB-AAX3C-A8UN5-SHL63 - 登录网关通用激活码:
BSGKA-DCR3B-H4SAU-FBH2F
参数热更新
编辑 Config.ini 后保存(Ctrl+S)即可直接生效,无需重启网关。
