Just start cata client it load the DBC itself
#include <stdio.h>#include <stdlib.h>#include <iostream>#include <fstream>using namespace std;#define RACESCOUNT 14typedef long int INT32;int _tmain(int argc, _TCHAR* argv[]){ char Signature[4]; INT32 Records = 0; INT32 Fields = 0; INT32 RecordSize = 0; long long StringBlockSize = 0; int tmp; FILE *fin = fopen("CharBaseInfo.dbc", "rb"); if(!fin) { cout << "Error" << endl; cin.get(); return 0; } memset(Signature, 0, 4); fread(Signature, 4, 1, fin); fread(&Records, 4, 1, fin); fread(&Fields, 4, 1, fin); fread(&RecordSize, 4, 1, fin); fread(&StringBlockSize, 8, 1, fin); printf("%c%c%c%cn", Signature[0], Signature[1], Signature[2], Signature[3]); cout << Records << endl; cout << Fields << endl; cout << RecordSize << endl; //cout << StringBlockSize << endl; for(int i=0; i<Records; i++) { for(int j=0; j<8; j++) { tmp = 0; fread(&tmp, 1, 1, fin); cout << tmp << "t" ; } cout << endl; } fclose(fin); Records = 10*RACESCOUNT; FILE *fout = fopen("CharBaseInfoNew.dbc", "wb"); if(!fin) { cout << "Error" << endl; cin.get(); return 0; } fwrite(&Signature, 4, 1, fout); fwrite(&Records, 4, 1, fout); fwrite(&Fields, 4, 1, fout); fwrite(&RecordSize, 4, 1, fout); fwrite(&StringBlockSize, 8, 1, fout); tmp = 0; int k = 1; for(int i=1; i<=RACESCOUNT; i++) { for(int j=1; j<=10; j++) { if(j != 10) { tmp = i; fwrite(&tmp, 1, 1, fout); tmp = j; fwrite(&tmp, 1, 1, fout); tmp = 0; fwrite(&tmp, 1, 2, fout); tmp = k; fwrite(&tmp, 1, 1, fout); tmp = 0; fwrite(&tmp, 1, 3, fout); } else { tmp = i; fwrite(&tmp, 1, 1, fout); tmp = 11; fwrite(&tmp, 1, 1, fout); tmp = 0; fwrite(&tmp, 1, 2, fout); tmp = k; fwrite(&tmp, 1, 1, fout); tmp = 0; fwrite(&tmp, 1, 3, fout); } k++; } } tmp = 0; fwrite(&tmp, 1, 1, fout); fclose(fout); cout << "OK" << endl; cin.get(); return 0;}
I just tried out taliis and it works fine as far as i can tell...
Did you also use the newest version?viewtopic.php?f=59&t=1095