手把手教你自己架设传奇:从零到开区全流程

来源: 作者: 点击:
先确定你要做哪种:1.76 复古、1.80 合击、1.95 英雄、H5 微端、还是自研换皮。老 Mir2/Legend 系用 Windows 最省事,别一上来就 Linux 容器,排错能排到半夜。准备一台云服务器或本地机,Windows Server 2016/2019 或 Win10 64 位,4 核 8G 能跑小服,200 人在线建议 8 核 16G 起,带宽 5M 起步,人多加带宽比加 CPU 更管用。

第一步装环境。VC++ 2005/2008/2010/2012/2013/2015/2017/2019 的 x86 和 x64 全装,很多网关和 DBServer 缺运行库就闪退,报的还不是缺库而是“应用程序无法正常启动 0xc000007b”。数据库用 MS SQL Server 2008 R2 / 2012 / 2014 都行,安装时选“混合模式身份验证”,给 sa 设 12 位以上密码,别用 admin123、root123、qweasd123。装完进 SQL Server Configuration Manager,Protocols 里把 TCP/IP 启用,IPAll 的 TCP Port 填 1433,重启 SQL 服务。Windows 防火墙入站规则放开 1433、5500、5600、7000、7100、7200、5000、6000、10000 这几个,具体看引擎文档,有的 RunGate 用 7200/7300,有的用 5000 段。

第二步拿服务端。一套能用的 Legend/Mir2 服务端至少包含:DBServer、LoginSrv、M2Server、GameGate、RunGate、LoginGate、SelChr、Envir、Map、Wav、Data、DB 备份。把 .bak 数据库还原进 SQL,数据库名必须和配置里一致,常见叫 HeroDB、MirDB、LegendDB、AccountDB。还原完展开表,看一下 Account 表、Character 表、HumAdditional 表在不在,没有就是备份没选对。

第三步改 IP。这是 90% 新手卡住的地方。全局搜服务端目录里的旧 IP,重点文件:
• !Setup.txt(GameIP、DBServerIP、LoginGateIP、GameGateIP、ExternalIP)

- DBServer\DBSrv.ini(ServerAddr、ServerPort、DB 连接串)
• LoginSrv\LoginSrv.ini(LoginGate 地址、DB 地址)

• GameGate\Config.ini(后端 M2 地址、前端监听)

- RunGate\GateInfo.ini 或 RunGate.cfg(网关 IP、M2 IP)
• M2Server 里 GameGate 列表(AddGameGate 那段)

• 登录器列表文件 serverlist.txt / list.json(http://公网IP:端口/serverlist.txt)

本机测就填 127.0.0.1;局域网填 192.168.x.x;云服务器填公网 IP,网关监听填 0.0.0.0。内网网卡和公网网卡分开的机器,别把内网 IP 当外网 IP 填到登录器列表里,玩家进游戏会卡在“正在连接服务器”。

第四步启动顺序。DBServer → LoginSrv → M2Server → GameGate → RunGate → LoginGate。M2 控制台出“游戏服务器启动完成 / 数据库初始化成功 / 已加载 XXX 个怪物 / 已加载 XXX 张地图”才算正常。哪里红字就先修哪里:连不上 DB 是 sa 密码或 1433;Gate 连不上 M2 是 IP/端口;M2 起不来是 Envir 里脚本有死循环或 MapInfo 坐标越界;角色进图黑屏是 Map 文件缺或微端没下到。

第五步做登录器。用你这套引擎配套的登录器生成器,别拿 A 引擎的登录器去连 B 引擎的 M2,版本号不对直接收不到列表。选完整端还是微端:完整端客户端 1~2G,微端只下登录器+配置,地图补丁/Wzl/Wis/Texture 放 IIS 或 Nginx 上,M2 的 UpdateServer 指向这个下载站。IIS 里要把 .wzl .wis .pak .map .txt .json 的 MIME 加上,否则微端下载到 0 字节,进图全黑、怪物变白、技能没特效。登录器过杀软别用乱加壳的破解生成器,玩家电脑一开就被火绒/360 删,你工单都接不过来。能用引擎官方登录器就用官方的,要定制就走正经签名。

第六步调游戏。Envir 目录是命根子:
• Envir\MapInfo.txt:地图名、地图文件、安全区、回城点、允许 PK、允许死亡掉物

• Envir\Monster.txt:怪物名字、Appr 外观、等级、血量、攻击、魔防、经验、移动速度

- Envir\MonItems\*.txt:爆率,格式是 物品名 概率,1000 代表千分之一还是万分之一看引擎,别写 1000000 以为必爆,很多引擎会溢出变成 0
• Envir\Npc_def\:NPC 脚本,@main 是主界面,#if #act #say #elseAct 那套,少个分号整个 NPC 不显示

- !Setup.txt:经验倍数、升级经验曲线、元宝开关、交易开关、行会开关、沙巴克时间
• 想加泡点、自动回收、转生、内功、合击、装备进化,就上对应 M2 插件,但别把“HeroM2 插件”塞进“LegendM2 裸端”,主版本和插件版本要对齐,不然人物属性算错、背包复制、下线回档。

第七步压测和分线。单 M2 撑 200~500 人看版本复杂度。人多就多开 RunGate,一个 RunGate 扛一部分玩家,前面用 LoginGate 做登录分发。DBServer 瓶颈在 SQL 查询,别让 M2 每次存盘都全表写,开定时存盘+下线存盘+重要操作立即存盘。日志开滚动,CheckLog 留 30 天,出复制 BUG 能反查谁刷了东西、哪台网关进来的。

第八步做网站和充值。开区网站用帝国 CMS、织梦、或者自己写的 PHP 都行。开区列表、充值、GM 后台、客服系统分开部署。充值接第三方支付,回调地址走 HTTPS,订单写 Pay_Order 表,状态 0 未付 1 已付,M2 侧有个 PayCheck 定时器扫已付订单,发元宝后把状态置 2。别在网页里写死 sa 密码,别把 1433 对公网开放,GM 后台绑服务器 IP+访问 IP 白名单+二级密码,不然号里元宝会被刷到天上。

第九步防封和防攻击。RunGate 开 IP 限速、单 IP 最大连接、封包长度校验、防加速、防脱机、防沙箱、防 WPE。M2 开防穿墙、防卡位、防刷怪、防刷物品、防负属性。前面套一层高防 IP,被 CC 时封空 UA、封每秒新建连接超阈值的 IP。别信“一键防封神器”,老引擎的封包协议就那样,真较真的人用脱机客户端照样进,只能靠行为检测:瞬移、秒怪、无限喝药、背包装备异常暴涨,这些靠 M2 规则拦。

第十步合规。用 1.76 复古端自己朋友间玩没事,挂“热血传奇”“盛大”“腾讯”logo、用比奇/盟重/沙巴克原版地图名+原版技能名+原版怪物名去做商业化吸金,著作权和商标风险很高。长期做就换皮:自研职业、自研地图、自研技能、自研 NPC 文案,或者拿有授权的 H5 传奇框架。别在宣传里碰瓷官服,别写“和官服一模一样”,别做元宝提现盘,别做拉人头返利,不然不是技术问题,是另外一条线找你。

日常运维写几个 bat:
• 每天 03:00 用 sqlcmd 备 HeroDB 到 D:\backup\HeroDB_日期.bak

• 每天 04:00 打包 Envir、Map、DBServer、M2Server 配置到压缩包

- 崩服自动重启:timeout 5 后重新起 M2Server.exe,但重启前先拷 ErrorLog 和 !Error 目录,不然 BUG 被盖掉
• 开区前清脏号:Character 表里 Level=1、Gold=0、LastLogin 超过 180 天、Name 像乱码的全删

- 玩家卡门:先踢该账号,再查 RunGate 是不是丢包,再查 MapInfo 里那张图的坐标是不是写成了负数或超上限

新人最常问“我双击 M2Server 黑框一闪就没了”——不是 M2 坏了,是 DBServer 没先起、或者 SQL 连不上、或者 VC 运行库没装、或者 !Setup.txt 里数据库名和 SQL 里不一致。别换引擎,先读红字。红字说“Cannot connect to SQL Server”就去查 sa 和密码;说“Map 'xxx' not found”就去 Map 目录看缺哪个 .map;说“Script error in Envir\Npc_def\XXX.txt line 88”就去把那个分号补上。

登录器列表文件示例(文本版):

[S1]
ServerName=测试一区
ServerIP=你的公网IP
ServerPort=7000
OnLine=0

M2 的 GameGate 里要把这个 7000 对应上。玩家填列表地址 http://你的IP:8080/serverlist.txt 能看到区名,点进去能到登录界面,建号能进比奇,打死鸡能掉肉,回城不卡,交易不消失,关服再开角色还在,这时候才叫“架设成功了”。

接下来才是开服运营:首冲送什么、沙巴克几点开、行会战奖励、打金比例、回收规则、反外挂公告、开区节奏(中午 12 点还是晚 8 点)、合区策略(7 天合还是 15 天合)、托怎么控盘、广告投流投哪、客服话术怎么写。技术只是门票,门后面那套才是能不能活过三个月的东西。

版本平衡举个实在的:1.76 复古别一开区就送屠龙,元宝别靠充值无上限刷,怪物爆率别全服调成“一刀 999”,看起来热闹,三天后满地神装没人打怪,拍卖行全是元宝,经济崩了人就散。复古服就把祖玛、赤月、沃玛体系守住;合击服就把英雄、内功、连击、怒之项链那套做深;单职业就把吸血、切割、转生、神力、专属怪做细。玩家要的是“明天上线还有事干”,不是“今晚充一万直接毕业”。

最后一句大白话:架设传奇不是点下一步,是把“数据库—网关—M2—脚本—客户端—登录器—网站—支付—防封—备份”这十条线拧成一根绳。哪根松了,表现就是“卡、掉、回档、黑屏、进不去、刷东西、被封、被打瘫”。别信“十分钟开服神器”,真开过服的人,电脑里都躺着几十个崩过的端、几百行红字日志、和一份改了又改的 !Setup.txt。