Last year, I tried to analyze the World of Warcraft DBC local database files and also developed a related editor.
I will not post the code in this article, as it has been a long time and I can no longer run the old project.
The DBC files are divided into three parts: header, body, and footer.
Header
name | length | desc |
---|---|---|
Fixed name | 4 | fixed“WDBC” |
line count | 4 | |
columns count | 4 | |
line byte length | 4 | How many bytes per row can be ignored or calculated based on 4 bytes per column multiplied by the number of columns |
Append string length to the end | 4 | Some DBC fields are text, so the field stores a 4-byte index, and the text is appended at the end |
Body
lineCount×columnCount×4=bodyLength
Tail string
If it is a string column, the integer stored in its field is the index of the tail string position, starting from 1
[NULL]string[NULL]string[NULL]