黑金论坛发布站,黑金论坛,传奇3私服,传奇三私服

标题: 传奇3地图显示原理及工具介绍 [打印本页]

作者: admin    时间: 2018-8-16 13:04
标题: 传奇3地图显示原理及工具介绍
传奇3地图大家以为只有一个map文件就可以显示地图嘛,大错特错。这个文件里面包含的信息非常有限,来看一下地图文件格式。
地图格式:
/// @brief 地图文件头
typedef struct tagMAPFILEHEADER
{
   CHAR  szDesc[20];      // 公司名称
   SHORTshVer;           // 版本
   SHORTshWidth;         // 地图宽度
   SHORTshHeight;        // 地图高度
   CHAR  cEventFileIdx;   // 事件文件索引
   CHAR  cFogColor;       // 背景颜色
}MAPFILEHEADER, *LPMAPFILEHEADER;

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

/// @brief 地图单元格信息 (客户端的格式)
typedef struct tagCELLINFO
{
   BYTE  bFlag;           // 障碍层
   BYTE  bObj1Ani;        // 动画物体1
   BYTE  bObj2Ani;        // 动画物体2
   WORD  bFileIdx;        // 文件索引  // BYTE  bFileIdx;
   WORD  wObj1;           // 物体1
   WORD  wObj2;           // 物体2
   WORD  bDoorIdx;        // 大门索引  // BYTE  bDoorIdx;
   BYTE  bDoorOffset;     // 大门偏移
   WORD  wLigntNEvent;    // 光线
}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
这个工具一般用来比对大地图和小地图
作者: 笨笨    时间: 2020-8-30 20:08
学习中......请多关照!




欢迎光临 黑金论坛发布站,黑金论坛,传奇3私服,传奇三私服 (http://www.3gmir3.com/) Powered by Discuz! X3.1