Forum > Miscellaneous

[DBC] CharBaseInfo.dbc 4.0.6

(1/2) > >>

Daem0n:
Hello. Help plz. How to open/edit CharBaseInfo (cata 4.0.6 client)?

Steff:
Just start cata client it load the DBC itself :)

Eluo:

--- Quote from: "Steff" ---Just start cata client it load the DBC itself :)
--- End quote ---
Lol what? xD

I just tried out taliis and it works fine as far as i can tell...
But if it actually gets accepted when changed by taliis, that you will have to try out on your own^^

Daem0n:
heh....new file format ...
raceID classID unk0 unk1 classcombinationGUID unk2 unk3 unk4

unk0-4 = 0

maybe it will help someone =)
sorry for my bad english and bad code =)
i write so fast ;)


take near CharBaseInfo.dbc and get CharBaseInfoNew.dbc



--- Code: ---#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
using namespace std;
#define RACESCOUNT 14




typedef 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;
}
--- End code ---

Daem0n:

--- Quote from: "Eluo" ---I just tried out taliis and it works fine as far as i can tell...

--- End quote ---

taliis open only 3 row

Navigation

[0] Message Index

[#] Next page

Go to full version