现在的位置: 首页 > 综合 > 正文

菜鸟学习OGRE和天龙八部之二: 天龙八部AXP数据格式搞定(2009.10.19)

2012年02月19日 ⁄ 综合 ⁄ 共 1341字 ⁄ 字号 评论关闭

站位编辑,过段时间再写...因为现在有大侠写了资源提取工具,我暂时不用自己去写了哇

-------------------------------------------------------------------------------------------------------

 

本来想偷懒的,但是不知道为什么OGRE的资源要一个一个写文件夹,很囧...那我要全部载入怎么办...

索性研究AXP格式,只载入AXP,就方便多了啊

用UE打开对比了一下,大概格式已经清楚了,

 

游戏的包文件其实都有一些共同的东西:文件头,文件索引表文件数据

 

文件头可以找到文件索引表的位置,
文件索引表一般每条索引会包含文件名、文件位置、文件长度三个数据。(但天龙的文件名没放索引表里面,而是放在AXP文件的末尾)

有了这个索引表,文件数据就可以读取出来.

总结一下寻找的过程就是:

 

文件头->索引表->文件数据

 

打开UE,按照下面的偏移地址(UE左边显示的地址)找对应信息就可以了哇,我直接给出比较重要的文件格式,

其他什么版本号,链表指针地址之类不重要的就直接忽略

 

偏移地址                                     数据类型      存储的数据的作用

0x10                                           UINT        存储的是文件索引表的地址 (就是00060028h) 

0x14                                           UINT        资源的个数  

0x60028                                     UINT        第一个资源数据的地址(就是00160028h)  

0x60028 + 0x4                           UINT        第一个资源数据的长度 

0x60028 + 0x8                           UINT        第一个资源数据的标志位,有0x00000000和0x80000000两个标识,应该是空闲/使用标志或文件是否存在的标志

0x60028 + (n-1)*0xC                 UINT        第n-1个资源数据的地址

0x60028 + (n-1)*0xC  + 0x4      UINT        第n-1个资源数据的长度

0x60028 + (n-1)*0xC  + 0x8      UINT        第n-1个资源数据的标志位,有0x00000000和0x80000000两个标识

 

数据的地址和大小都知道了,就可以读取数据了

但是还缺少数据文件的名字,

在AXP文件最最下面一个区域就是存贮的文件路径,文件名字和文件类型,文件大小等数据

而且都是按文件索引顺序排下来.

-----------------------------------------------------------------

文件头和索引表之间有一堆文件名表的东西,暂时不知道怎么用,反正文件名已经有了,无视

 

数据格式知道了,有空我再写载入程序.

 

 

 

 


 

 

 

抱歉!评论已关闭.