GOM引擎MirServer文件夹结构详解:从核心服务到游戏逻辑的全面解析 📅 2026/8/18 3:05:53 1. 从零开始为什么你需要了解MirServer的文件夹结构如果你刚接触GOM引擎或者从其他引擎比如LEGEND、BLUE转过来面对解压后MirServer里那几十个文件夹第一反应多半是有点懵。这很正常我刚开始的时候也一样看着一堆以“DBServer”、“LoginSrv”、“Mir200”命名的文件夹完全不知道从哪里下手。很多人会直接去网上找现成的版本然后一股脑把整个MirServer覆盖掉出了问题也不知道怎么排查最后只能重装系统、重装服务端陷入无尽的循环。实际上花上半小时彻底搞清楚每个核心文件夹的作用比你盲目折腾几天都管用。MirServer的文件夹结构就是整个传奇服务端的“骨架”和“器官分布图”。你知道哪个文件夹管数据库哪个文件夹放游戏逻辑哪个又是处理登录的出了问题你才能精准定位。比如玩家反馈“仓库物品不见了”你马上就知道该去检查DBServer下的数据库文件如果遇到“游戏地图黑屏”那问题大概率出在Mir200的Map文件夹。这种“指哪打哪”的排查能力是高效运维的基础。GOM引擎作为曾经市场占有率极高的传奇引擎之一其MirServer的目录结构设计有其历史沿革和逻辑性。虽然现在GOM引擎已停止更新但其架构思想影响了后续很多引擎且仍有大量复古、微变版本基于GOM在运行。理解它不仅是运维现有版本的需要也是你深入理解传奇服务端技术栈的敲门砖。接下来我就以一个老GM的视角带你把这些文件夹一个个“解剖”清楚。2. 核心服务进程文件夹详解引擎的“大脑”与“心脏”MirServer根目录下有几个以“Server”或“Srv”结尾的文件夹它们是独立运行的进程也就是服务端的核心后台程序。你可以把它们理解成一家公司的不同部门各司其职通过网络端口协同工作。2.1 DBServer游戏数据的“保险柜”这个文件夹是数据库服务器负责管理所有玩家的核心资产数据。你可以把它想象成一个非常专业的银行金库。核心文件DBServer.exe是主程序。同目录下的FDB文件夹至关重要里面存放着所有数据库文件。关键数据文件Hum.DB玩家角色数据文件。里面记录了角色的等级、职业、属性点、技能点、当前坐标等基础信息。Mir.DB这是最重要的文件之一保存玩家的背包物品、身上装备、仓库物品。很多丢装备、复制漏洞的根源都和这个文件的读写逻辑或备份恢复操作不当有关。Mir.DB.idx是Mir.DB的索引文件加速查询。Sort.DB记录一些排序信息。工作逻辑当玩家登录、拾取物品、存仓、交易时游戏逻辑层Mir200会向DBServer发送指令DBServer负责对这几个.DB文件进行读写操作。它不处理游戏规则只负责安全、持久化地存储数据。重要配置!serverinfo.txt定义了DBServer的连接地址和端口默认是127.0.0.1:6000必须与Mir200里的设置对应否则游戏无法读取角色数据。实操心得定期备份在关闭服务端后定期备份整个FDB文件夹这是你服务器的“命根子”。直接复制文件即可比用GM命令导出数据更底层、更完整。出问题先看这里遇到大面积玩家数据异常如装备消失、角色回档首先检查DBServer进程是否正常网络是否通畅FDB文件夹权限是否足够尤其在Windows Server系统上。不要手动修改除非你非常清楚DB文件的结构否则不要用第三方工具直接编辑.DB文件极大概率会导致数据损坏。所有修改应通过游戏逻辑或GM命令进行。2.2 LoginSrv进入世界的“安检门”这是登录服务器负责账号的登录验证和角色选择的门户。核心文件LoginSrv.exe。关键文件与配置!addrtable.txt极其重要的配置文件。它定义了游戏网关SelGate、RunGate的地址和端口。格式通常为“服务器标题 服务器名称 游戏网关IP 游戏网关端口 登录网关IP 登录网关端口”。这里配置错误会导致客户端无法连接或卡在“正在连接服务器”。!serveraddr.txt列出了LoginSrv自身对外的IP地址通常写为“*”表示所有IP和端口。Account文件夹这里存放着玩家的账号信息文件。每个账号对应一个.ID文件里面以密文形式保存了账号密码。这就是为什么在GOM引擎里注册的账号你会在这里看到一堆文件。工作流程客户端首先连接LoginSrv提交账号密码。LoginSrv验证Account文件夹下的信息通过后会根据!addrtable.txt的配置告诉客户端该去连接哪个游戏网关SelGate从而进入角色选择界面。实操心得开外网的关键当你想把服务器开放给朋友玩时需要把!addrtable.txt和!serveraddr.txt里的127.0.0.1本地回环地址改成你的公网IP或服务器内网IP。这是新手开外网最常见的卡点。账号管理如果你想手动封禁一个账号可以直接删除Account文件夹下对应的.ID文件。但更推荐在游戏内用GM命令操作。SelGate关联LoginSrv和SelGate是紧密协作的它们的端口配置必须一环扣一环。2.3 LogDataServer一切行为的“记录员”日志服务器顾名思义它负责记录游戏内发生的大量事件。核心文件LogDataServer.exe。日志内容它会记录玩家登录退出、聊天发言、击杀怪物、获得物品、交易记录、使用元宝等几乎所有行为。日志文件通常按日期生成存放在LogDataServer目录下的Log文件夹或类似名称的文件夹里。重要性对于商业服或希望维护良好环境的服来说这是审计和追责的终极依据。如果有人举报刷元宝、私下交易或者你想分析玩家的活跃行为都需要从这里查询日志。实操心得磁盘空间日志文件增长很快特别是人气高的服。需要定期清理或设置日志自动轮转/切割避免撑满硬盘导致服务端崩溃。排查利器当出现疑似BUG或玩家纠纷时不要争吵直接查日志。用文本编辑器的搜索功能按时间、角色名过滤事实一目了然。性能影响在高负载下频繁的日志写入可能对磁盘IO有一定压力但通常影响不大。如果为了极致性能可以在测试阶段暂时关闭它但正式运营务必开启。3. 游戏逻辑与资源中枢Mir200文件夹全解析如果说前面的“Server”是后台部门那么Mir200就是游戏运行的“主舞台”和“导演中心”。所有游戏规则、地图、怪物、物品、脚本都在这里。这个文件夹最大内容也最复杂。3.1 Envir游戏世界的“规则书”与“剧本”Envir是Mir200下最核心的子文件夹没有之一。它定义了游戏里的一切动态内容。MapInfo.txt地图配置文件。定义了所有地图的编号、名称、进入坐标、出口坐标、地图属性安全区、可骑马、可传送等。想增加新地图或修改地图连接必须编辑这个文件。格式如[0 比奇省] SAFE表示0号地图是比奇省且为安全区。MonGen.txt怪物刷新配置文件。决定了什么地图、什么坐标、刷新什么怪物、刷新数量、刷新范围和时间间隔。调整个服的怪物密度和难度主要就是改这个文件。Merchant.txtNPC配置文件。定义了NPC出现在哪个地图、哪个坐标、面向方向、外观形象、以及最关键的一一对应的脚本文件名在Market_Def或Npc_Def文件夹里。AdminList.txtGM名单文件。把你的人物角色名写进去一行一个该角色就拥有了GM权限。这是最原始但有效的GM授权方式。StartPoint.txt安全区/复活点配置。定义了玩家上线、死亡后的复活点坐标。MiniMap.txt小地图配置。关联地图编号和小地图图片。MonItems文件夹里面存放着每个怪物的爆率文件。例如白野猪.txt里就定义了杀死白野猪后可能掉落的所有物品及其概率。修改爆率是版本内容调整的日常操作。Market_Def和Npc_Def文件夹存放所有NPC的对话脚本文件.txt格式。游戏里你和NPC的所有交互买东西、接任务、传送都是由这里的脚本控制的。学习编写和修改NPC脚本是GM进阶的必修课。QuestDiary文件夹游戏功能脚本仓库。这里存放着更复杂的系统脚本比如登录奖励、首充系统、会员系统、装备回收、活动脚本等。通常由Market_Def里的NPC脚本来调用。这是实现自定义功能的核心区域。实操心得与避坑指南修改前先备份修改Envir下的任何配置文件尤其是MapInfo.txt、MonGen.txt务必先备份。一个标点符号错误都可能导致地图无法进入或服务端启动报错。编码问题脚本文件.txt请务必使用ANSI编码保存。如果误用UTF-8等编码会导致游戏内NPC对话乱码或脚本失效。这是新手最容易踩的坑。脚本逻辑GOM的脚本语法相对简单但逻辑要清晰。调试脚本时可以多利用服务端控制台M2Server的“脚本调试”功能或者用SENDMSG命令给玩家发送调试信息。爆率文件格式MonItems里的爆率文件格式通常是1/1 屠龙表示1分之1的概率掉落屠龙。概率可以写小数如1/1000。注意GOM引擎的爆率是“概率数量”的模式需要深入理解。3.2 Map、Wav、Data世界的“素材库”这三个文件夹存放游戏运行的资源文件。Map文件夹存放所有游戏地图文件.map格式。客户端和服务端的地图文件必须完全一致否则玩家走到对应位置就会黑屏。新增地图时需要把.map文件同时放到服务端的这个文件夹和客户端的Map文件夹下。Wav文件夹存放服务端触发的一些音效文件.wav格式比如GM上线提示音、全服公告音效等。客户端的音效在另一个路径。Data文件夹这个文件夹下的内容与客户端Data文件夹高度对应但服务端这里主要存放一些用于校验和逻辑判断的文件。Monster.DB怪物数据库定义了怪物的外观、血量、攻击力、防御力等基础属性。用DBC2000或Access可以打开编辑。Magic.DB技能数据库定义了技能的效果、等级、耗蓝等。StdItems.DB物品数据库这是最重要的DB文件。定义了游戏中所有物品的编号、名称、外观、属性攻魔道、准确、敏捷等、佩戴要求、重量、持久等。任何新增装备都必须在这里有对应的记录。重要提示修改任何.DB文件后必须重新启动M2Server在M2上点击“控制”-“重新加载”相关选项可能不够彻底修改才能生效。并且要同步更新客户端的Data文件否则玩家看不到新装备或显示为“未知物品”。3.3 GuildBase、Notice、Share行会与共享GuildBase文件夹存放行会公会信息文件。每个行会对应一个.Guild文件里面记录了行会名称、会长、成员、行会公告等。Notice文件夹存放游戏内的公告文件LineNotice.txt。M2Server会定时滚动播放这里面的内容。你可以直接编辑这个文本来修改游戏内公告。Share文件夹存放一些共享的配置文件比如IPLocal.dll和QQWry.dat是IP地址库用于在M2上显示玩家登录地理信息StrFilter.txt是聊天敏感词过滤表。3.4 M2Server的核心地位Mir200文件夹下还有一个最重要的可执行文件M2Server.exe。它就是传奇的主游戏逻辑服务器是整个游戏世界的“大脑”。它加载并运行Envir里的所有规则和脚本处理玩家的移动、战斗、技能释放、物品使用等所有实时逻辑。我们常说的“M2”指的就是它。在服务端启动顺序中它通常是最后启动的因为它依赖于DBServer、LoginSrv等提供的底层服务。4. 网络通信枢纽网关文件夹的作用与配置网关Gate是连接客户端与服务端内部模块的“桥梁”和“安检通道”负责数据包的转发、过滤和加密。MirServer里通常有多个网关。4.1 RunGate游戏世界的“主城门”这是游戏运行网关玩家在创建角色进入游戏后所有的实时数据移动、攻击、聊天都通过它与M2Server通信。作用处理游戏内的实时交互数据流也承担一部分反外挂的校验功能如速度控制、非法包检测。早期的传奇版本外挂很多是通过攻击RunGate的漏洞来实现的。配置其配置文件如!runaddr.txt需要与M2Server的配置对应。通常端口设置为7200。多开为了分流玩家压力可以开启多个RunGate如RunGate1, RunGate2并在!servertable.txt中配置实现负载均衡。4.2 SelGate角色选择的“接待厅”这是角色选择网关玩家在登录账号后进入角色选择、创建、删除界面时连接的就是SelGate。作用作为LoginSrv和角色数据之间的桥梁负责角色列表的读取和创建角色的请求转发。配置其端口默认7100需要在LoginSrv的!addrtable.txt中正确指向。4.3 LoginGate登录流程的“前哨站”这是登录网关是客户端连接服务端的第一站。它接收客户端的连接请求并转发给LoginSrv进行验证。作用一个纯粹的端口转发和流量网关。配置简单通常端口为7000。关系客户端 - LoginGate(7000) - LoginSrv - SelGate(7100) - 角色选择 - RunGate(7200) - 游戏世界。这是一个完整的连接链条。4.4 网关配置的黄金法则网关配置出错是导致“连接失败”的最常见原因。请记住一个核心原则端口不冲突地址要对得上。检查端口7000, 7100, 7200, 7300如果有多开等端口不能被其他程序占用。可以在命令行用netstat -ano | findstr :7000命令检查。检查IP地址单机测试时所有配置文件的IP都可以用127.0.0.1。开外网或局域网时必须将LoginSrv的!addrtable.txt、各网关的配置文件中的IP改为服务器的真实内网IP或公网IP。客户端Mir.ini或登录器配置里的IP也要同步修改。防火墙确保Windows防火墙或云服务器的安全组规则已经放行了上述端口TCP协议。5. 配套工具与日志文件夹运维的“瑞士军刀”除了核心文件夹MirServer里还有一些辅助性的目录和工具。Mir200\Log这是M2Server运行时生成的系统日志文件夹。里面会按日期生成YYYY-MM-DD.log文件记录了M2Server的运行状态、脚本错误、加载信息等。当服务端出现异常关闭、脚本报错时这是第一个要查看的地方。里面的错误信息通常能直接定位到问题脚本的行数。GameLog文件夹通常与LogDataServer配合存放更详细的物品日志格式为YYYYMMDD_物品日志.txt。可以查询到每一件装备的产出、流转记录。工具文件夹如工具合集、配套工具等里面可能包含DBC2000老牌数据库管理工具用于查看和编辑Monster.DB、Magic.DB、StdItems.DB。Access数据库有些版本的数据库是.mdb格式需要用Microsoft Access打开。地图编辑器、WIL/WZL编辑器、Pak打包工具用于制作和修改游戏资源。登录器配置器生成客户端的登录器是连接自定义列表和补丁的关键。实操心得养成看日志的习惯无论是开服测试还是处理线上问题首先打开Mir200\Log下的最新日志文件搜索“Error”、“Fail”、“异常”等关键词能解决80%的启动和运行问题。工具使用修改DB数据库前务必先关闭M2Server修改保存后再启动。用Access编辑时注意字段类型不要随意删除或修改字段名。6. 完整启动流程与日常维护要点理解了各个文件夹的作用后一个标准的GOM引擎服务端启动流程应该是启动 DBServer确保数据库服务就绪。启动 LoginSrv打开登录验证大门。启动 LoginGate开放登录端口。启动 SelGate开放角色选择端口。启动 RunGate开放游戏世界端口。最后启动 M2Server加载所有游戏规则和脚本启动主逻辑。通常会有一个启动游戏服务器.exe的批处理文件来自动按顺序执行以上步骤。你需要观察每个程序窗口的提示信息确认没有红色错误提示特别是M2Server加载到最后显示“游戏引擎启动成功...”字样。日常维护的核心备份策略定期每日/每周完整备份整个MirServer文件夹尤其是DBServer\FDB、LoginSrv\Account、Mir200\Envir和Mir200\GuildBase。备份前务必完全停止所有服务端进程。修改纪律修改任何配置或脚本前先备份原文件。修改后根据修改内容决定是重载还是重启。修改DB文件或核心脚本建议重启M2修改NPC脚本可以在M2上“重新加载NPC脚本”。空间监控关注LogDataServer和Mir200\Log文件夹的大小定期清理历史日志。安全防范保管好Mir200\Envir\AdminList.txt和LoginSrv\Account文件夹。定期检查RunGate的日志看是否有异常连接或攻击尝试。把MirServer的文件夹结构摸透就像是拿到了服务端的“建筑图纸”。以后无论遇到什么问题你都能快速判断出是哪个“部件”出了状况是该查日志、改配置还是修复脚本。这份了然于胸的感觉才是你从新手GM迈向熟练运维的真正起点。