admin 发表于 2018-8-16 13:04:05

传奇3地图显示原理及工具介绍

传奇3地图大家以为只有一个map文件就可以显示地图嘛,大错特错。这个文件里面包含的信息非常有限,来看一下地图文件格式。
地图格式:
/// @brief 地图文件头typedef struct tagMAPFILEHEADER{   CHARszDesc;      // 公司名称   SHORTshVer;         // 版本   SHORTshWidth;         // 地图宽度   SHORTshHeight;      // 地图高度   CHARcEventFileIdx;   // 事件文件索引   CHARcFogColor;       // 背景颜色}MAPFILEHEADER, *LPMAPFILEHEADER;

/// @brief 瓷砖信息typedef struct tagTILEINFO{   CHARcFileIdx;      // 文件索引   SHORTshTileIdx;       // 瓷砖索引}TILEINFO, *LPTILEINFO;

/// @brief 地图单元格信息 (客户端的格式)typedef struct tagCELLINFO{   BYTEbFlag;         // 障碍层   BYTEbObj1Ani;      // 动画物体1   BYTEbObj2Ani;      // 动画物体2   WORDbFileIdx;      // 文件索引// BYTEbFileIdx;   WORDwObj1;         // 物体1   WORDwObj2;         // 物体2   WORDbDoorIdx;      // 大门索引// BYTEbDoorIdx;   BYTEbDoorOffset;   // 大门偏移   WORDwLigntNEvent;    // 光线}CELLINFO, *LPCELLINFO;
在绘制的时候分为几个步骤。1)先把地图按大小画好,然后填充成单色,即背景色。你看到的就是一个单色的图。大部分情况是一张黑色的矩形图。2)绘制瓷砖,就是把瓷砖从Data目录的wil文件里面取出来,然后绘制到第一步里面产生的图上面。你就可以看到有花,有草,有地板。3)绘制物体层,物体层就是建筑物或者地表,树木,墙体等,物理层也是在Data目录的wil文件里面,这样你就可以看到一张完整的题图了。
所以地图工具要显示完整地图都需要使用客户端的Data目录。常用的地图工具主要是几个,一个是IllusionMapEditorV7,这个是韩国人搞的一个工具,这个工具论坛里面有的下,由于需要读取Data数据,使用的时候需要把这个工具拷贝到客户端的根目录下,运行的时候,它会把Data里面wil文件转换成自己可以读取的格式,非常慢。等所有的转换完,再打开地图,把那些wil显示在地图上。这个软件比较慢,所以我都不怎么用。另一个是King Map Editor,王者软件开发的,这个其他地方应该也有的下,这个工具需要设置客户端的Data目录,然后再打开地图,不需要转换也可以直接显示地图,而且支持保存bmp工具,可以说是小地图制作的必备工具,一度在小范围内流行。由于它需要读取Data目录,所以它运行的时候,其他软件都读取不了Data目录,导致客户端运行的时候看不到地图,看到黑黑的界面,这时把它关了就可以了。还有一个传奇3地图轮廓显示器,英文MapShow,论坛上有的下,这个工具的强悍之处就是只要一个map文件,不用Data目录就可以显示地图,速度非常快,据测试各种格式都支持,传奇2、传奇3,传奇3G。但显示的是一个大概的轮廓,没有瓷砖和物体。这个工具一般用来比对大地图和小地图。也就是修改服务端的MiniMap.txt文件,速度快很多。

新人一个 发表于 2019-4-19 16:20:05

这个工具一般用来比对大地图和小地图

笨笨 发表于 2020-8-30 20:08:51

学习中......请多关照!
页: [1]
查看完整版本: 传奇3地图显示原理及工具介绍