龙之谷-技术资料-第15讲DNT文件解析

由于肾大开启投票选择关闭PAK文件或放弃PAK文件(主要是为了其中DNT文件),无论玩家做何选择,显然DNT文件已经可以被广大玩家所认识,故在此向大家介绍一下DNT文件。

DNT文件,又名【Dragon Nest Table file】,由原EXT文件改进而来,是一种较为简单的二维数据表,在DN中,所有的DNT文件构成了一个简易的数据库,供客户端使用。

DNT文件属于EYE自定义的格式,其文件结构为:
【头部】
总计10字节
DWORD dwNull;//空字节,占4字节
WORD wFieldNum;//字段个数(列数),占2字节
DWORD dwRecordNum;//数据个数(行数),占4字节

【字段描述块】
变长,每个字段描述块结构如下:
WORD wTextLen;//字段名称的长度,占2字节
char szText[wTextLen];//字段名称,占wTextLen字节
BYTE dbFieldType;//字段类型,占1字节,其含义如下:
1:字段类型为普通变长文本
2:字段类型为布尔型(以32位整型存放)
3:字段类型为32位整型
4:字段类型百分比(该字段为单精度浮点型,但要除以100)
5:字段类型单精度浮点型

【数据块】
变长,前置PKID,后面按照字段描述块定义的字段顺序排列
每一行数据结构如下:
DWORD dwPKID;//主键(32位整型)
以下根据字段描述块定义的类型分为以下3种:
★如字段类型为1,该数据为普通变长文本,结构如下:
WORD wLen;//文本的长度,占2字节
char szText[wLen];//文本,占wLen字节
★如字段类型为2,该数据为32位整型,占4字节,但其值只有0(假)和1(真)两种。
★如字段类型为3,该数据为32位整型,占4字节。
★如字段类型为4,该数据为单精度浮点型,占4字节,但结果要除以100。
★如字段类型为5,该数据为单精度浮点型,占4字节。

DNT文件处理方法简介:
1.打开文件,读取头部,获得字段个数和数据个数
2.根据字段个数,分配内存,读取每一个字段的描述信息,获得字段名和字段类型
3.根据数据个数,分配内存,先读取主键,然后根据字段描述信息中的字段类型,依次读取数据

© 版权声明
THE END
文章不错?点个赞呗
点赞0 分享