Ok, I need some help reversing the magictype.dat file, so any time you have to help would be useful. It's not required that you know how to hex edit, I've made a simple viewer to make it easier.
I need a description for every entry, to understand how the client handles them, any missing values I'll need to retrieve from packets or another method, but it'd be handy to get it all done from this file.
The structure I have so far id below, if you know what any other values are for, let me know asap and i'll update it.
Attachment below is a simple viewer, feel free to scan it, its clean.
thanks to anyone who takes the time to help.
I need a description for every entry, to understand how the client handles them, any missing values I'll need to retrieve from packets or another method, but it'd be handy to get it all done from this file.
The structure I have so far id below, if you know what any other values are for, let me know asap and i'll update it.
Attachment below is a simple viewer, feel free to scan it, its clean.
thanks to anyone who takes the time to help.
Code:
struct MAGICTYPE {
uINT magic_id; //to identify the spell.
uINT unknown0;
char name[16];
uINT aggressive; //1 on aggressive magics
uINT unknown1;
uINT unknown2; //=bool hits_360_degree?
uINT target_type; //see remarks
uINT skill_level; //level of skill
uINT mana; //mp required
uINT mag_effect; //see remarks
uINT unknown3;
uINT success_rate; // as %
uINT timer; //for timed skills.
uINT range; //skill range, as co-ordinates
uINT distance;
uINT unknown4;
uINT unknown5;
uINT exp; //exp required to level
uINT level_req; //level required to gained exp.
uINT unknown6; //mana/stamina/xp
uINT weapon; //weapon required, as in weaponskillname.ini
uINT unknown7; //Chance of poison %
uINT unknown8;
uINT unknown9;
uINT unknown10;
uINT unknown11;
uINT unknown12;
uINT unknown13; //stamina consumed.
uINT unknown14;
uINT unknown15;
uINT unknown16;
uINT unknown17;
uINT unknown18;
uINT unknown19;
char upgrade_info[64];
char unicode_txt[256]; //some unicode, i cant read.
char effect0[64];
char sound0[260];
char effect1[64];
char sound1[260];
uINT unknown20;
char effect2[64]; //effect from 3deffect.ini
char sound2[260];
char tme_file[64]; //effect time file, foun in ini\tme\
char effect3[64]; //all unknowns strings appear to be NULL, not looked through entire file yet.
uINT unknown21;
uINT unknown22;
uINT unknown23;
} //len=1584
/* remarks
how target_type works:
0 = targeting but not self-targeting
1 = targeting and self-targeting
2 = self targeting only
4 = you must aim (fb/scent)
8 = passive.
mag_effect:
if hi byte is 0x75, used as a percentage, by subtracting 30,000
*/