传奇单机架设全故障排障M2闪退DBC2000黑屏端口7000卡登录补丁PAK解决

来源: 作者: 点击:
单机架设先把服务端解压到纯英文目录,例如D:\MirServer,客户端也放D:\MirClient,路径里不要出现中文、空格、括号。很多M2闪退、黑屏、读不到地图,第一步就是路径问题。装系统运行库装VC++2005到2022的x86和x64合集,装.NET Framework 4.0以上,老引擎补DirectX9,Windows Defender和第三方杀软把服务端目录、客户端目录、登录器生成器全部加白名单,不关实时防护经常把DBServer、M2Server、LoginGate、RunGate、各类dll、PAK资源静默删掉。

DBC2000老核按下面走。控制面板打开BDE Administrator,Database Aliases新建STANDARD,别名写HeroDB,Type选STANDARD,PATH指向D:\MirServer\Mud2\DB,必须精确到DB文件夹,不能指到MirServer根目录。改完按Ctrl+S或点Apply保存,关掉重开确认HeroDB还在。64位系统老DBC2000异常就重装对应版本,部分老包用32位DBC更稳;区域格式短日期改成yyyy-M-d,避免老引擎日期解析异常。DB文件夹里HeroDB.dbf、Item.dbf、Magic.dbf、Monster.dbf等不能缺,0字节就从左备包复制回来。M2报Unknown database、Borland Database Engine初始化失败、数据库连接失败,先复查BDE别名大小写、PATH、DB文件权限,再给DB文件夹加Everyone读取写入权限测试。

MySQL类服务端另走一套。先起MySQL服务,Navicat连127.0.0.1:3306,建空库后导入版本sql,确认账号表、角色表、物品表、技能表、行会表、英雄/合击表都成功。服务端配置填ip用127.0.0.1,port按包内默认,user/password/dbname和Navicat一致;DBService或DBServer起不来看日志是连不上、拒绝访问还是库表缺失,连不上查MySQL服务没起、端口被改、防火墙拦,拒绝访问查密码和权限,表缺失重新导入sql别只建空库。

启动顺序固定。手动起:DBServer/DBService先起,看到数据库连接成功;再起LoginSrv账号服务;再起LoginGate登录网关,默认7000;再起SelGate角色网关,默认7100;再起RunGate游戏网关,默认7200;最后起M2Server主逻辑。用GameCenter一键控制器也按这个依赖关系,跳步直接起M2会报数据库未就绪、267找不到dbserver、或者一直等待网关。任务管理器里残留dbserver、m2server、logingate、rungate要先结束再起,多开一套引擎会抢端口和DB。

端口占用用cmd查。netstat -ano | findstr "7000"看登录网关,findstr "7100"看角色网关,findstr "7200"看游戏网关,微端常8000、热更常8080/80按包另查。看到LISTENING且PID不是当前服务端,任务管理器详细信息按PID找程序,常见酷狗、迅雷、QQ音乐、IIS、虚拟机、上一次没关干净的M2占端口。能关就关,关不掉就改服务端端口:LoginGate.ini改7000系,SelGate.ini改7100系,RunGate.ini/Config.ini改7200系,!addrtable.txt、!Setup.txt、登录器列表三处同步改,只改网关不改列表会卡登录,只改列表不改网关会连接失败。

单机IP全文件统一写127.0.0.1。GameCenter配置向导服务器IP写127.0.0.1;Mir200\!Setup.txt里ServerAddr、GameGird、各个网关地址按引擎字段统一;LoginSrv\!addrtable.txt写区名和127.0.0.1:7000;LoginGate.ini的IP写127.0.0.1,Port写7000;SelGate写7100;RunGate写7200;列表文件ServerList.txt或list.txt写127.0.0.1和对应端口。老核单行格式如“1测试区 127.0.0.1 7000
0”,带微端按版本加微端IP端口。列表文件编码用ANSI,别用带BOM的UTF-8,否则登录器读列表乱码或空白。登录器用服务端自带配置器生成,别拿别家引擎登录器硬套,Hero、GOM、GEE、996、LEG各自配置字段不同。

进登录器没列表:先浏览器开列表地址,本地文本列表就开http服务放list.txt,确认能返回纯文本;检查登录器配置器主列表、备列表、端口和!addrtable一致;防火墙拦7000就临时关防火墙或加放行;列表文件不存在、格式错、区名后管道符数量不对都会不显示。

点登录连接失败:查LoginGate是否起来、7000是否被占、!addrtable区名IP端口、登录器列表IP是否还写127.0.0.1本机、防火墙入站是否放行。用其他电脑连单机还失败,单机本来就只听127.0.0.1,换局域网要把所有网关和M2、列表、登录器都换内网IP,不能只改列表。

输账号后卡创建角色、卡选人:创建卡死查DBServer、账号库、DB文件夹权限、SelGate 7100;选人后进不了游戏查RunGate 7200、M2加载角色报文、character表字段损坏。能建号不能进选区,多半SelGate没起或7100被占;能选区点开始没反应,查RunGate、M2地图加载、出生地图配置。

进游戏黑屏按资源查。先确认客户端版本匹配:1.76类老核用10/13周年纯净客户端,GOM/GEE用15到17周年完整客户端,别用官方最新周年精简端混补丁。补丁解压到客户端根目录,Data、Map、Wav、Resources、NewopUI.pak直接覆盖,不要解成D:\MirClient\补丁\Data这种多层目录。GOM/GEE看登录器配置器PAK管理,状态列全绿才正常;红叉写密码错误就改Pak.txt或服务端Mir200\Pak.txt密码,默认常见gameofmir但以版本包为准;红叉写文件不存在就是pak.txt里绝对路径还指向旧盘符,批量替换成D:\MirClient\Data后重新生成登录器。NewopUI.pak缺失或密码错会登录界面黑屏,从版本登录器资源里复制原文件到客户端Data覆盖。地图全黑查Map目录,服务端Mir200\Map或Mud2\Map的.map文件要和客户端的Map一致,新增自定义地图要把编号文件同时进服务端和客户端;MapInfo.txt里[0 比奇省] 0 0 0:0:0:0:0:0:0这种行对应的0.map必须存在。装备问号、怪物方块、NPC没贴图,查Data里wil/wix/pak是否覆盖全,PAK密码是否一致,补丁文件夹名是否和登录器资源配置一致。

微端模式单机要关。用全补丁完整客户端就不勾微端;用微端才起MicroGate/微端服务,并把manifest或列表微端地址写127.0.0.1对应端口。微端没起但登录器勾了微端,表现就是进图一直加载、资源不全、地图黑。

M2闪退分几类。双击没反应装VC运行库、.NET,右键以管理员身份运行;起来几秒退看M2黑窗最后红字,DBC路径错回数据库配置,插件错进Mir200\PlugList.txt删第三方dll只留引擎基础插件,脚本错进Mir200\Envir\Script看最近改的登录脚本、功能脚本、QFunction,按M2报错文件名和行号回退。Access violation多因M2Server.exe被杀软删、文件损坏、内存不足、插件冲突,从原包恢复同版本M2,关杀软重起。老系统用兼容模式,GameCenter、M2、登录器右键属性设Windows XP SP3或Win7,勾管理员身份,Win10/Win11再勾禁用全屏优化。

客户端进游戏闪退、登录界面黑、有声音无画面,按渲染查。登录器属性兼容XP SP3,禁用全屏优化;客户端目录Mir.ini或Setup.ini把分辨率改1024x768先窗口化;缺失d3d9相关dll装DirectX9修复;高DPI屏在登录器属性高DPI设置里用系统缩放;独立显卡笔记本在显卡控制面板指定传奇程序用独显。Cache、UserCache临时缓存清掉再进,避免旧补丁MD5冲突。

合击/英雄不出问题单独查。!Setup.txt开HeroSystem、ComboSkill相关开关,Mir200\Envir里英雄脚本、合击脚本、HeroInfo、ComboSkill文件不能0字节;英雄不召查看角色是否达到版本要求等级、是否用@AddHero或NPC领英雄、HeroData表是否导入成功;合击放不出查合击技能是否学习、怒气/火龙之心条件、技能快捷键是否拖到F栏、M2是否加载合击脚本无红字。单机架测试用GM命令加等级、造装备、加技能点,别直接进高难度地图测合击。

NPC不说话、任务卡、命令无反应,多改脚本后语法错。进Mir200\Envir\Npc_def和Script,对比备份把最近改的文件恢复原版;M2红字会写哪个npc.txt哪一行条件错误,按行修。全局脚本、机器人脚本、登录脚本循环调用也会让M2卡死,先移走自定义脚本再逐条加回。

数据库异常、角色丢失、物品错乱,先停M2再处理。DBC老核备份Mud2\DB整个文件夹;MySQL用Navicat导出sql或mysqldump整库。改爆率、经验、技能、商店前都先备份,改完只重启M2或相关网关,不全关再全起可少踩端口残留。移动服务端目录后用Notepad++在!Setup.txt、!addrtable.txt、网关ini、登录器列表批量替换旧盘符,绝对路径没换全会I/O error、找不到Map、找不到DB。

防火墙和杀软白名单清单。服务端加白:GameCenter.exe、DBServer.exe、DBService.exe、LoginSrv.exe、LoginGate.exe、SelGate.exe、RunGate.exe、M2Server.exe、MobileGate/AndGate如用手游、微端程序、mysql、apache/nginx。客户端加白:登录器exe、mir.exe、配置器、Data目录。Windows防火墙入站放行7000、7100、7200,微端8000,热更8080/80按包补;纯单机127.0.0.1自测可临时关防火墙,但改局域网再开规则,不要长期裸关杀软。

最常用排障顺序:看路径全英文→看杀软隔离恢复加白→装VC/.NET/DX→DBC或MySQL确认库通→按DB、LoginSrv、LoginGate、SelGate、RunGate、M2顺序起→黑窗无红字再生成登录器→客户端纯净化+补丁根目录覆盖+PAK密码对→本机127.0.0.1进游戏→出图后测打怪、掉装、合击、GM命令。每一步只改一个变量,改完重启对应模块,不要同时换IP、换补丁、换登录器,否则不知道哪一处修好。多区复制目录要改全套端口和列表,单机只跑一区别开多套网关,能减少90%的闪退和黑屏。