DB/CharBaseInfo: Difference between revisions

From wowdev
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 1: Line 1:
__TOC__
Defines availability of classes for the different races. Please note that this [[DBC]] does not have the typical 4 byte columns only!
Defines availability of classes for the different races. Please note that this [[DBC]] does not have the typical 4 byte columns only!


==0.5.3.3368==
==Classic==
===0.5.3.3368===
  struct CharBaseInfoRec {
  struct CharBaseInfoRec {
   uint8_t m_raceID;
   uint8_t m_raceID;
Line 9: Line 11:
   uint32_t m_generatedID;
   uint32_t m_generatedID;
  };
  };
==Structure==
==Wrath==
===3.0.2.8905===
====Table====
{| style="background:#FCFCFC; color:black"
{| style="background:#FCFCFC; color:black"
|-  
|-  
Line 21: Line 25:
|2  || [[ChrClasses.dbc|Class]]  || iRefID  || these classes are allowed.
|2  || [[ChrClasses.dbc|Class]]  || iRefID  || these classes are allowed.
|}
|}
===3.3.5.12340===
====Table====
{| style="background:#FCFCFC; color:black"
|-
! width="80" | Column
! width="180 " | Field
! width="80" | Type
! width="600" | Notes
|- style="background:#F0F8FF;"
|1  || [[ChrRaces.dbc|Race]]  || iRefID  || For this race,
|- style="background:#F0F8FF;"
|2  || [[ChrClasses.dbc|Class]]  || iRefID  || these classes are allowed.
|}


==6.0.1.18179==
==Warlords==
===6.0.1.18179===
====Struct====
  struct CharBaseInfoRec {
  struct CharBaseInfoRec {
   uint8_t padding_0[4];
   uint8_t padding_0[4];
Line 54: Line 74:
--[[User:Ascathos|Ascathos]] ([[User talk:Ascathos|talk]]) 09:38, 4 May 2015 (UTC)
--[[User:Ascathos|Ascathos]] ([[User talk:Ascathos|talk]]) 09:38, 4 May 2015 (UTC)


[[Category:DBC]][[Category:3.0.2.8905]][[Category:DBC_WotLK]]
[[Category:DBC]]
[[Category:DBC_WotLK]][[Category:3.0.2.8905]][[Category:3.3.5.12340]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]

Revision as of 20:29, 13 July 2016

Defines availability of classes for the different races. Please note that this DBC does not have the typical 4 byte columns only!

Classic

0.5.3.3368

struct CharBaseInfoRec {
  uint8_t m_raceID;
  uint8_t m_classID;
  uint8_t padding_0[2];
  uint32_t m_proficiency;
  uint32_t m_generatedID;
};

Wrath

3.0.2.8905

Table

Column Field Type Notes
1 Race iRefID For this race,
2 Class iRefID these classes are allowed.

3.3.5.12340

Table

Column Field Type Notes
1 Race iRefID For this race,
2 Class iRefID these classes are allowed.


Warlords

6.0.1.18179

Struct

struct CharBaseInfoRec {
  uint8_t padding_0[4];
  uint8_t m_raceID;
  uint8_t m_classID;
  uint8_t padding_1[2];
};

Editing CharBaseInfo.dbc

The easiest way is to open it in a hex editor. No DBC-Editor beside Tallis supports this type of file.

The structure is particularly easy, as described in DBC. The first 20 bytes are the header and are to be ignored. Most important, the uint32 at 0x4 defines the count of entries. After that, starting at 0x14, the entries start. There for each entry, it will be 4 bytes for a unique id (which can be ignored), then two bytes for the actual data, one for race, one for class, then two bytes to be ignored.

 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
57 44 42 43 06 00 00 00 02 00 00 00 02 00 00 00
01 00 00 00 01 01 01 02 01 03 02 01 02 03 04 06
00

The italic text stays the same (it is the header). Note that the uint32 at 0x4 would be the count of pairs, each combination line of Race and Class raise the counter by 1. 001xByte[5] begins the first pairing. This file would contain:

Race Class
01   01
01   02
01   03
02   01
02   03
04   06

After all records, there will be an additional 0x00, which is the empty string block of the DBC file.

--Ascathos (talk) 09:38, 4 May 2015 (UTC)