Character相关的DBC中,有两个DBC中含有一个字节的字段,导致wxDeMPQ读取失败。这次增加Byte类型,用于支持此种类型字段。
int CByteField::Data2String(std::string& str, CFileBuffer &fb, int offset, int strpos) const
{
unsigned char data = 0;
// fb.Seek(offset);
fb.Read(data);
Toolkit::StringOf<unsigned int>(data, str);
return fb.Good() ? 0 : -1;
}
下面是一个实际的DBC字段描述例子:
<File name="CharBaseInfo.dbc" version="1.0">
<Note>http://www.madx.dk/wowdev/wiki/index.php?title=CharBaseInfo.dbc</Note>
<Fields>
<Field position="0" type="byte" size="1">RaceID</Field>
<Field position="1" type="byte" size="1">ClassID</Field>
</Fields>
</File>
这样Item,Character,Creature的基本数据应该算全了,差关键的ID问题了。怎么说呢,所有的DBC中没有提到ItemID的对应问题,就是说,无法知道某个ID确切地和哪个Item关联,找了很久,无果。四处晃荡,又回到
http://www.wowmodelviewer.org/上,无疑发现"chuanhsing"上传的ItemID表,赶忙发message询问来源,才知道都在WDB中。唉,一直以为WDB文件不重要,没有去分析~
将chuanhsing的回复贴上,以示敬意。
Hi,
The full mapping of NPC or item's ID are all stored in itemcache.wdb and creaturecache.wdb. Item.dbc is part of ItemCache.wdb but without item names.
http://www.sourcepeek.com/wiki/ItemCache.wdb
http://www.sourcepeek.com/wiki/CreatureCache.wdb
http://www.sourcepeek.com/wiki/Item.dbc
Chuanhsing