黑金论坛发布站,黑金论坛,传奇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://lyysoft.net/) |
Powered by Discuz! X3.1 |