当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

热血传奇单机版服务端添加新地图修改MapInfo.txt放置MAP文件与NPC传送脚本教程

热度:
传奇单机版添加新地图需要做三件事:把.map地图文件放进服务端和客户端Map目录,在MapInfo.txt注册地图编号和名称,通过NPC脚本或GM命令传送到新地图。如果是借用已有地图素材做副本地图可跳过客户端补丁,全新自制地图需同步客户端补丁。

一、准备地图文件

地图核心文件是编号.map,如想加一张新图编号为6000则文件名为6000.map。可从完整端复制一张现有.map(如比奇.map重命名)做测试,或下载现成.map素材。

-服务端放置:复制到MirServer\Mir200\Map\(少数版本目录叫Maps\,找得到原地图文件的就是正确目录),取消文件只读属性。
•客户端放置:同样把6000.map复制到传奇客户端根目录的Map\文件夹下(客户端无Map文件夹就新建)。若地图用到新地砖/物件补丁(TilesX.wil、ObjectsX.wil或.pak),需放入客户端Data目录。

二、在MapInfo.txt注册新地图

打开MirServer\Mir200\Envir\MapInfo.txt,先看文件内已有地图格式,在末尾追加一行。GOM/GEE与Hero引擎主流格式如下:

格式A(方括号格式,较新引擎):

[6000我的新地图]NORECALLNORECONNECT(3)DAY

•6000:地图编号,须与.map文件名数字一致且无重复(建议从5001或6000往后编,避开原版1~5000)。

•我的新地图:游戏内显示地图名,可自定义。

•NORECALL:禁止记忆传送(回城卷可进不可出可用NORECONNECT指定回连地图)。

-NORECONNECT(3):断线重连回盟重(3是盟重地图编号,比奇为0)。
•DAY:白天光照(夜间用NIGHT或MINE矿井暗光)。

格式B(空格分隔格式,老Hero版):

6000我的新地图6000.map00

四个字段依次为:地图编号、显示名、地图文件名(含.map)、最低进入等级(0无限制)、地图类型标志(0普通1PK可开)。部分版本多几个字段如最大人数等,参照同文件已有行抄格式。

保存时注意编码为ANSI(Notepad++可转),不要存成UTF-8否则引擎读乱码导致"地图未开放"。

三、配置小地图显示(可选)

打开MirServer\Mir200\Envir\MiniMap.txt(或客户端Data\MiniMap.txt),末尾加一行:

6000103

6000是新地图编号,103是对应的小地图素材编号(在客户端mmap.wzl/mmap.pak中的位置)。借用已有地图小地图就填被借用地图的编号,如盟重小地图写3。不配此文件小地图显示空白但不影响进图。

四、设置地图间连接(双向传送坐标)

如果想从土城某坐标直接进入新地图并在新地图有回城点,在MapInfo.txt追加连接行:

3330268->60005050
60005050->3330268

含义:盟重(3)坐标330268踏入传送点进新地图(6000)落点5050;反向从新地图回盟重。只有NPC脚本传送可不写此行。

五、通过NPC或GM命令进入新地图

GM命令直接测试:
角色有GM权限后进游戏输入:

@move6000



@传送60005050

能正常显示地图说明添加成功。

NPC脚本传送(正式玩法):
在Market_Def建传送NPC脚本(参考之前NPC教程),关键行:

#ACT
MAPMOVE60005050

或在脚本中用MOVEMAP60005050(部分引擎等价)。保存后M2重载NPC脚本。

六、怪物刷新与地图绑定(如需刷怪)

打开Mir200\Envir\MonGen.txt,追加:

6000祖玛卫士2056060新地图刷祖玛卫士

字段依次为:地图编号、怪物名(与MonItems目录对应)、数量、刷新间隔秒、X1Y1X2Y2范围或填固定坐标写法(各端格式微差,参照文件内已有行抄)。M2重载怪物刷新。

七、常见问题排查

-提示"地图未开放":MapInfo.txt未加该行或编号与.map文件名不一致,或保存时编码非ANSI导致引擎未识别。
•进图黑屏但能跑:客户端Map目录缺对应.map文件或补丁(Tiles/Objects)未放Data目录,确认文件名完全一致含大小写。

-传进去掉坑/卡墙:MAPMOVE坐标(5050)不在可行走格,用@move6000先进去走动找空旷坐标再改脚本。
•小地图不显示:MiniMap.txt未配或编号填错,先借用已知地图编号测试。

-怪物不刷:MonGen.txt地图编号写错或未重载怪物刷新,确认怪物名拼写与MonItems目录文件名一致。

如果只是想做"盟重老兵传去比奇""比奇传去沃玛"这类用已有地图的传送,只需要写NPC脚本MAPMOVE对应原地图编号,不需要新增.map和改MapInfo.txt。
[顶部]