361传奇引擎大小地图标识文件设置教程小地图编号计算与地图注释文字添加完整方法详解

来源: 作者: 点击:
小地图标识这摊事,一张图不显示,多半不是图片丢了,是两个txt和一个dat没对齐。一个管对号,告诉引擎这张地图用哪张缩略图;一个管写字,告诉引擎在小地图哪个坐标上标一行什么字。361这套引擎还是照搬老盛大的规矩,动手之前先把两个文件在哪搞清楚,比急着改内容管用。

先说两个文件的分工。

服务端这边的小地图对号文件,路径在 MirServer\Mir200\Envir\MiniMap.txt,一行一个地图,左边是地图代码,右边是缩略图编号。它只管这张地图配哪张图,不管字。

客户端那边的小地图文字标识文件,路径在客户端目录下的 Data\MapDesc1.dat,右键用记事本就能打开,写的是哪张地图、什么坐标、标什么字、什么颜色。管字不管图。有些版本还会带一个 MapDesc2.dat,作用跟MapDesc1一样,按引擎版本挑一个生效,多出来的那个空着不影响。

两个文件各管一段,小地图上没图是MiniMap没配,小地图上有图但没字是MapDesc1没写,分开查就不会乱。

先讲MiniMap.txt怎么写。

打开文件,看到的都是这种一行两段的内容:

0 101

前面0是地图代码,正好是MapInfo.txt里方括号里那个标识,后面101是缩略图编号。想查一张地图的地图代码,去 Envir\MapInfo.txt 里搜这张地图名,找到方括号开头的那串就是,比如 [D011 天然一层],D011就是代码,天然一层是游戏里左下角显示的名字,两个别弄混,MiniMap.txt里填的是前面那串。

后面这个缩略图编号怎么算,是小地图这项里最容易算错的地方。

老引擎的缩略图都在客户端的 mmap.wil 里,用WIL编辑器打开这个文件,数到你要的那张图,看它显示的图片序号,加一就是MiniMap里要填的编号。举例,编辑器里那张小地图的序号显示是100,MiniMap里就写101。这段加一是死规矩,忘了加一,小地图要么不显示,要么串成隔壁那张地图的图,症状是进了A地图看着像B地图。

图多起来以后,wil放不下,就要用扩展包。扩展包按万一段位切开:

mmap10 这一段占10001到15000,mmap11占15001到20000,mmap12占20001到24999。换算方法也很直白,MiniMap里那个编号减去段的起点再加一,就是这套包里第几张图。比如MiniMap里写10006,落在mmap10这一段,10006减10001等于5,取的就是mmap10里的第5张图。

另有一部分版本不用wil,改用客户端 Data\minimap\ 目录下一张张独立的.mmap文件,编号从5001起,301.mmap对5001,302.mmap对5002,往后一个一个加。还有一类是按文件名加一万再加一算,301.mmap对应10302。这几套规则长得像,算之前先看你手上那份引擎说明写的是哪一套,别拿别人的数字照抄。

把一张新图挂上小地图,完整走一遍:先在客户端把缩略图加进mmap.wil,记下它显示出来的图片序号;去服务端MapInfo.txt里找到这张地图的标识,取方括号里前面那段;回到MiniMap.txt末尾添一行,把标识和图片序号加一之后的数写上;存盘,重载服务端,进这张图按一下小地图看有没有出来。

再说MapDesc1.dat怎么写。

这个文件的每一行是一段,用英文逗号隔成六段,顺序固定:

比奇省,343,245,比奇城,$33FFFF,0

第一段是地图名,填的是游戏里那张地图的名字,注意跟MiniMap里填的地图代码不是一回事,这里要写中文名或者MapInfo里冒号后面那个显示名,写错了标识就落不到这张图上。

第二段和第三段是坐标,X和Y,指的是这个标识点在这张地图上的具体位置,不是屏幕像素。标一个NPC、一个副本入口、一个传送点,坐标就填它站在地上那个点的坐标,走出去几步拿不准,进游戏看一眼小地图上的自己再估。

第四段是显示的文字,可以写NPC名、副本名、区域名,想标醒目一点,把字做得长一点也行,中括号、星号这些符号都能写进去,只要不是逗号就不会把段落截断。

第五段是颜色,写成美元符号起头加六位十六进制,按红绿蓝三组排。纯红是
𝐹
𝐹
0000
,纯绿
FF0000,纯绿00FF00,纯蓝
0000
𝐹
𝐹
,亮黄
0000FF,亮黄FFFF00,青是
33
𝐹
𝐹
𝐹
𝐹
,紫是
33FFFF,紫是FF00FF,偏蓝亮的$7BBDCE是老盛大常用的一种。想统一色调,全篇用同一个值就整齐。

第六段一般写0,固定参数,别动它。有的说明里写这一段0代表大地图、1代表小地图,具体看引擎,拿不准就按0来,绝大多数版本认0。

一段完整的添加过程:在MapDesc1.dat末尾另起一行,写盟重省,330,268,盟重土城,$FFFF00,0,保存关掉,重进游戏或者切一次地图,小地图上就多出这行字。位置偏了,回去改第二三段的坐标;颜色不好看,改第五段;文字写错了,改第四段。一段只改一个地方,别一口气全动,出问题好回退。

有一件事必须先做,不做的话前面写得再对也不显示。

进游戏按F12,打开系统设置,找到地图标识那一项勾上。这是客户端的显示开关,关着的时候MapDesc1.dat里写了多少段,小地图上一段都不会出来。很多新手把文件改了个遍,最后发现是F12里那个框没勾,白折腾半天。GOM这一类放在自定义补丁里的版本,同样要开这个开关。

摆标识的时候,有几处细节容易踩。

编码要用ANSI或者GBK。这个dat文件里全是中文地名和中文标识,存成UTF-8,进游戏看到的就是一串乱码方块,它不是不显示,是显示成了你认不出的字。用记事本另存的时候看一眼编码那一栏,选ANSI,或者用支持选编码的编辑器存成GBK。

逗号必须是英文半角。中文全角逗号长得跟英文逗号几乎一样,引擎认不出,那一行会被整段丢掉,症状是别的标识都在,就新加的这一段没有。改完存之前,把新写那一行放大看一眼逗号。

坐标别超范围。每张地图有自己的宽高,XY填到地图外,这个标识要么不显示,要么叠在边缘上。两张不同地图的坐标范围差得远,比奇省能填几百,小副本可能只有几十,按地图实际大小来。

同一条要随时能删。想撤掉一个标识,回到那一行整行删掉或者前面加个分号注释掉即可。分号起头的是注释,引擎跳过不读,拿来临时停用某几段很方便,改回来把分号去掉就行。

再讲两个文件怎么配合着用,才是完整的小地图。

MiniMap.txt决定右上角那个小窗口里铺的是哪张图,管“有没有图”。MapDesc1.dat决定这张图上写着哪些字,管“认不认路”。给一张新地图做完整标识,两步都要走:MiniMap里补一行,把代码跟缩略图编号接上;MapDesc1里按坐标补几行,把NPC、副本口、传送点标出来。只做前一步,小地图是张干净的底图,看着清楚但找不着地方;只做后一步,字是写进去了,没有底图撑着也不会显示。两步齐了才是一张能用的图。

这套东西是改完要重载才生效的,别改完直接开着游戏测。服务端的MiniMap.txt改完要重载或者重启服务端;客户端的MapDesc1.dat改完要退游戏重进,有的版本还要切一次地图才读新文件。改一次、重载一次、验一次,比一次性改一堆再回头找错省事得多。

269 小地图制作里最后一件常干的事,是把现成的地图缩成小地图。

没有现成缩略图的,就用地图编辑器打开这张图的.map文件,把地图导出来,再用图片工具把它缩到原图的四分之一大小,存成bmp。缩法很简单,在图像大小里把像素按百分比改成25,出来就是四分之一。之后把这张bmp用WIL编辑器追加进mmap.wil,记住它显示的序号,去MiniMap.txt里写序号加一,整条链就通了。这一步做完,新地图的小地图才算真的做出来,前面讲的对号、写字都是在已有的图上做文章。

排查小地图不显示,按这个顺序挨着走一遍,基本能定位。

先进游戏按F12看地图标识那个开关开没开,没开先勾上,这是最常见的一个原因。开了还是没有,去MiniMap.txt里找这张地图的代码在不在,不在就补上。补了还不显示,重新数一遍缩略图序号,确认加一加对了、段位换算没算偏。图出来了但字没有,去MapDesc1.dat看这段写没写、名字跟地图对得上没、逗号是不是半角、编码是不是GBK。全对了还是不行,把服务端和客户端都重启一次,排除缓存里读着旧文件。按这个顺序排查,比来回猜快。

最后补一句容易忽略的。MiniMap.txt里填的地图代码,要以MapInfo.txt方括号里第一段为准,别拿冒号后面那个中文名去填,也别拿扩展调用那条竖线后面的代码去填。有些地图是 [神秘海域1|haidao44 神秘海域(外围)] 这种写法,代码取前面的神秘海域1,不是后面的haidao44。取错一段,小地图永远挂不上这张新图,而且报不出错,只能靠挨个核对。名字里带中文、带括号的,写的时候一个字都别改,多一个空格都可能对不上。改之前把两个文件各备份一份放旁边,改坏了能立刻还原,这是做小地图这一摊最省心的习惯。