服务端是热血传奇游戏运行的底层程序集合,决定地图、怪物、爆率、技能、任务、角色数据一切逻辑。无论Hero/Blue/GOM/GEE/OpenMir2,本质都是“数据库+网关+游戏逻辑+脚本”的组合。认识服务端就是搞清楚目录结构、关键进程、配置文件、脚本位置四个层面。
一、服务端根目录与核心文件夹
以经典MirServer为例,根目录下固定包含:
•DBServer:数据库服务,负责玩家账号、角色、背包、仓库、技能、任务数据读写。Hero/Blue配DBC2000,GOM/GEE用内置LiteSQL/Access,OpenMir2用MySQL/MongoDB。核心文件:DBServer.exe、DBServer.ini、HeroDB(DBC路径)。
•LoginGate:登录网关,处理客户端连接请求,验证账号合法性,默认端口7000。核心文件:LoginGate.exe、LoginGate.ini。
•SelGate:角色网关,处理角色创建、删除、选择,默认端口7100。核心文件:SelGate.exe、SelGate.ini。
•RunGate:游戏网关,处理游戏内数据通信(移动、攻击、聊天、交易),默认端口7200。核心文件:RunGate.exe、RunGate.ini。
•GameGate:部分引擎叫GameGate,功能同RunGate,负责客户端与M2逻辑交互。
•M2Server/Mir200:游戏逻辑核心,加载地图、怪物、NPC、技能、任务、爆率,处理战斗计算、移动同步、物品掉落。核心文件:M2Server.exe、!Setup.txt、!Abil.txt等。Mir200目录下Envir文件夹是脚本心脏。
•Mud2:数据库文件存放地,DBC2000的HeroDB路径指向Mud2\DB,内含StdItems.DB(物品库)、MonGen.txt(怪物刷新)、Magic.DB(技能库)、ChrNameList.txt(角色名列表)等。
•LogServer:日志服务,记录玩家登录、死亡、打怪、交易、GM操作。核心文件:LogDataServer.exe、LogData.ini。
•LoginSrv:账号验证服务,处理注册、登录、踢人、封号。核心文件:LoginSrv.exe、LoginSrv.ini。
•登录器:生成客户端登录器程序,含配置器、列表文件、补丁密码。核心文件:GameOfMir登录器生成器.exe、MakeGameLogin.exe、ServerList.txt。
二、核心配置文件详解
•!Setup.txt(M2Server配置):控制经验倍数、爆率倍率、金币倍率、复活规则、PK模式、行会参数、沙巴克参数、地图切换规则。修改后M2内“重新加载配置”生效。
•DBServer.ini:数据库连接参数(DBC名称、路径、端口)、角色数据保存路径、账号表名。
•LoginGate.ini/SelGate.ini/RunGate.ini:网关IP、端口、最大连接数、防攻击参数。
•MonGen.txt(怪物刷新):定义每个地图的怪物种类、坐标、数量、刷新时间。格式:地图名XY怪物名数量刷新间隔(秒)。
•MonItems(怪物爆率):每个怪物对应一个.txt文件,定义掉落物品、数量、概率。格式:物品名数量概率(1/xxx)。
•Shop.txt(商店NPC):定义NPC出售物品、价格、限购条件。
•AdminList.txt(GM权限):每行一个角色名,拥有GM命令权限(@级别@刷@金币等)。
•MapInfo.txt(地图信息):定义地图ID、名称、安全区、复活点、PK规则、背景音乐、连接点。
•MapQuest.txt(任务脚本):定义任务触发条件、NPC对话、奖励、失败惩罚。
•Npc_def(NPC脚本):每个NPC对应一个.txt文件,控制对话内容、功能选项、任务流程、商店逻辑。
三、关键数据文件
•StdItems.DB:物品数据库,定义武器、防具、首饰、药水、材料的基础属性(攻击、防御、魔御、重量、持久、需求等级、职业限制)。
•Magic.DB:技能数据库,定义技能名称、等级、消耗MP、伤害公式、范围、冷却时间。
•Monster.DB:怪物数据库,定义怪物名称、血量、攻击、防御、魔御、经验、移动速度、攻击速度、AI类型。
•ChrNameList.txt:角色名列表,用于封号、禁言、GM权限识别。
•GuildList.txt:行会列表,记录行会名称、会长、成员、等级、资金。
•CastleInfo.txt:沙巴克信息,记录占领行会、城主、税收、旗帜状态。
四、脚本系统逻辑
Envir目录下脚本分三类:
•Npc_def:NPC行为脚本,控制对话分支、任务触发、商店交易、功能调用(@传送@修复@合装备)。
•MapQuest:任务脚本,定义任务链、触发条件(杀怪数量、物品提交、NPC对话)、奖励发放。
•Market_Sell:商店脚本,定义NPC出售物品列表、价格、限购规则。
脚本语法固定:[@段名]定义标签,#IF#ACT#SAY#ELSEACT控制流程,<$PARAM>调用变量,%USERNAME%取角色名。修改脚本后M2内“重新加载NPC脚本”生效。
五、不同引擎服务端差异
•Hero/Blue:依赖DBC2000+BDE,目录结构最经典,脚本语法最通用,兼容性最强,但性能上限低。
•GOM/GEE:内置数据库,无需DBC2000,支持PAK补丁加密、多网关负载、云服务器部署,性能强,但脚本语法有私有扩展。
•OpenMir2:开源C#架构,跨平台,数据库用MySQL/MongoDB,分布式多服务,适合二次开发,但部署复杂度高。
•翎风/3K/统一:在Hero基础上魔改,增加合击、内功、连击、奇经八脉,脚本兼容Hero但数据库结构扩展。
六、服务端启动流程
1.启动数据库服务(DBServer/MySQL)。
2.启动账号验证服务(LoginSrv)。
3.启动登录网关(LoginGate)。
4.启动角色网关(SelGate)。
5.启动游戏网关(RunGate/GameGate)。
6.启动游戏逻辑核心(M2Server/Mir200),加载地图、怪物、NPC、脚本。
7.启动日志服务(LogServer)。
所有进程无报错、端口监听正常,服务端才算完全启动。
七、常见服务端故障点
•DBServer起不来:DBC2000路径错、HeroDB名称不一致、数据库文件损坏、端口占用。
•M2Server报错:脚本语法错误、地图文件缺失、物品数据库字段不匹配、怪物刷新坐标越界。
•网关连不上:IP配置错、端口被防火墙拦截、网关进程未启动、客户端版本不匹配。
•爆率不生效:MonItems文件格式错、概率数值超范围、M2未重载配置。
•地图黑屏:Map文件缺失、MapInfo.txt路径错、客户端补丁未覆盖。
服务端本质是游戏世界的“操作系统”,所有玩法、数值、规则都写在里面。改服务端就是改游戏本身,从爆率到技能,从地图到任务,全由这些文件控制。理解目录结构、配置文件、脚本逻辑,是修改、维护、二次开发的基础。
一、服务端根目录与核心文件夹
以经典MirServer为例,根目录下固定包含:
•DBServer:数据库服务,负责玩家账号、角色、背包、仓库、技能、任务数据读写。Hero/Blue配DBC2000,GOM/GEE用内置LiteSQL/Access,OpenMir2用MySQL/MongoDB。核心文件:DBServer.exe、DBServer.ini、HeroDB(DBC路径)。
•LoginGate:登录网关,处理客户端连接请求,验证账号合法性,默认端口7000。核心文件:LoginGate.exe、LoginGate.ini。
•SelGate:角色网关,处理角色创建、删除、选择,默认端口7100。核心文件:SelGate.exe、SelGate.ini。
•RunGate:游戏网关,处理游戏内数据通信(移动、攻击、聊天、交易),默认端口7200。核心文件:RunGate.exe、RunGate.ini。
•GameGate:部分引擎叫GameGate,功能同RunGate,负责客户端与M2逻辑交互。
•M2Server/Mir200:游戏逻辑核心,加载地图、怪物、NPC、技能、任务、爆率,处理战斗计算、移动同步、物品掉落。核心文件:M2Server.exe、!Setup.txt、!Abil.txt等。Mir200目录下Envir文件夹是脚本心脏。
•Mud2:数据库文件存放地,DBC2000的HeroDB路径指向Mud2\DB,内含StdItems.DB(物品库)、MonGen.txt(怪物刷新)、Magic.DB(技能库)、ChrNameList.txt(角色名列表)等。
•LogServer:日志服务,记录玩家登录、死亡、打怪、交易、GM操作。核心文件:LogDataServer.exe、LogData.ini。
•LoginSrv:账号验证服务,处理注册、登录、踢人、封号。核心文件:LoginSrv.exe、LoginSrv.ini。
•登录器:生成客户端登录器程序,含配置器、列表文件、补丁密码。核心文件:GameOfMir登录器生成器.exe、MakeGameLogin.exe、ServerList.txt。
二、核心配置文件详解
•!Setup.txt(M2Server配置):控制经验倍数、爆率倍率、金币倍率、复活规则、PK模式、行会参数、沙巴克参数、地图切换规则。修改后M2内“重新加载配置”生效。
•DBServer.ini:数据库连接参数(DBC名称、路径、端口)、角色数据保存路径、账号表名。
•LoginGate.ini/SelGate.ini/RunGate.ini:网关IP、端口、最大连接数、防攻击参数。
•MonGen.txt(怪物刷新):定义每个地图的怪物种类、坐标、数量、刷新时间。格式:地图名XY怪物名数量刷新间隔(秒)。
•MonItems(怪物爆率):每个怪物对应一个.txt文件,定义掉落物品、数量、概率。格式:物品名数量概率(1/xxx)。
•Shop.txt(商店NPC):定义NPC出售物品、价格、限购条件。
•AdminList.txt(GM权限):每行一个角色名,拥有GM命令权限(@级别@刷@金币等)。
•MapInfo.txt(地图信息):定义地图ID、名称、安全区、复活点、PK规则、背景音乐、连接点。
•MapQuest.txt(任务脚本):定义任务触发条件、NPC对话、奖励、失败惩罚。
•Npc_def(NPC脚本):每个NPC对应一个.txt文件,控制对话内容、功能选项、任务流程、商店逻辑。
三、关键数据文件
•StdItems.DB:物品数据库,定义武器、防具、首饰、药水、材料的基础属性(攻击、防御、魔御、重量、持久、需求等级、职业限制)。
•Magic.DB:技能数据库,定义技能名称、等级、消耗MP、伤害公式、范围、冷却时间。
•Monster.DB:怪物数据库,定义怪物名称、血量、攻击、防御、魔御、经验、移动速度、攻击速度、AI类型。
•ChrNameList.txt:角色名列表,用于封号、禁言、GM权限识别。
•GuildList.txt:行会列表,记录行会名称、会长、成员、等级、资金。
•CastleInfo.txt:沙巴克信息,记录占领行会、城主、税收、旗帜状态。
四、脚本系统逻辑
Envir目录下脚本分三类:
•Npc_def:NPC行为脚本,控制对话分支、任务触发、商店交易、功能调用(@传送@修复@合装备)。
•MapQuest:任务脚本,定义任务链、触发条件(杀怪数量、物品提交、NPC对话)、奖励发放。
•Market_Sell:商店脚本,定义NPC出售物品列表、价格、限购规则。
脚本语法固定:[@段名]定义标签,#IF#ACT#SAY#ELSEACT控制流程,<$PARAM>调用变量,%USERNAME%取角色名。修改脚本后M2内“重新加载NPC脚本”生效。
五、不同引擎服务端差异
•Hero/Blue:依赖DBC2000+BDE,目录结构最经典,脚本语法最通用,兼容性最强,但性能上限低。
•GOM/GEE:内置数据库,无需DBC2000,支持PAK补丁加密、多网关负载、云服务器部署,性能强,但脚本语法有私有扩展。
•OpenMir2:开源C#架构,跨平台,数据库用MySQL/MongoDB,分布式多服务,适合二次开发,但部署复杂度高。
•翎风/3K/统一:在Hero基础上魔改,增加合击、内功、连击、奇经八脉,脚本兼容Hero但数据库结构扩展。
六、服务端启动流程
1.启动数据库服务(DBServer/MySQL)。
2.启动账号验证服务(LoginSrv)。
3.启动登录网关(LoginGate)。
4.启动角色网关(SelGate)。
5.启动游戏网关(RunGate/GameGate)。
6.启动游戏逻辑核心(M2Server/Mir200),加载地图、怪物、NPC、脚本。
7.启动日志服务(LogServer)。
所有进程无报错、端口监听正常,服务端才算完全启动。
七、常见服务端故障点
•DBServer起不来:DBC2000路径错、HeroDB名称不一致、数据库文件损坏、端口占用。
•M2Server报错:脚本语法错误、地图文件缺失、物品数据库字段不匹配、怪物刷新坐标越界。
•网关连不上:IP配置错、端口被防火墙拦截、网关进程未启动、客户端版本不匹配。
•爆率不生效:MonItems文件格式错、概率数值超范围、M2未重载配置。
•地图黑屏:Map文件缺失、MapInfo.txt路径错、客户端补丁未覆盖。
服务端本质是游戏世界的“操作系统”,所有玩法、数值、规则都写在里面。改服务端就是改游戏本身,从爆率到技能,从地图到任务,全由这些文件控制。理解目录结构、配置文件、脚本逻辑,是修改、维护、二次开发的基础。

