irrwowview

wow dbc文件

具体解析参考:http://wowdev.org/wiki/index.php/DBC.
dbc文件是wow文件中比较简单的文件格式,一个dbc文件分为三段:文件头,数据表和字符串表.

1.文件头:

偏移  类型  描述
0x00 char[4] 总是 'WDBC' (不包含'\0')
0x04 uint32 nRecords - 数据表的记录数(行数)
0x08 uint32 nFields - 数据表的域数(列数)
0x0C uint32 recordSize = nFields * 4 (不一定为真!)
0x10 uint32 字符串表大小

(由于某些dbc文件不是每个域都为4字节,所以有可能recordSize < nFields * 4 )

2.数据表:
数据表的开始位置接着文件头(0x14开始),占nRecords * recordSize.
每一个域都有特定的含义(域含义可参考http://wowdev.org/wiki/index.php/DBC,wow的每一次更新都可能修改域的含义),而且有三种可能的类型(整型,单精度,空终止字符串偏移量).

3.字符串表:
字符串表的开始位置接着数据表(0x14 + nRecords * recordSize开始).
字符串表的索引是从0开始的,而且是空终止字符串,因此不需要字符串长度.

4.关于修改dbc的说明:
根据上面的说明可知,如果域的类型是整型或单精度,则随便改都可以(变态SF中改法伤值就是改spell.dbc的相应域);而要改的域是字符串则要注意.如果新字符串长度小于或等于原来的,则补'\0';否则就是大工程了,改文件头中描述字符串表大小的值,后面的字符串域都要增加相应的偏移.

posted on 2008-07-10 22:11 shjy 阅读(1703) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理