Here is an update to the _CHARINFO structure in MQ.h:
Code: Select all
#define NUM_BANK_SLOTS 16
typedef struct _CHARINFO {
BYTE Unknown0000;
BYTE Unknown0001;
CHAR Name[64];
CHAR Lastname[70];
DWORD Unknown0136;
DWORD Race;
DWORD Class;
DWORD Gender;
DWORD Level;
DWORD Exp;
DWORD Face;
DWORD Mana;
DWORD BaseHP;
DWORD Stunned;
DWORD BaseSTR;
DWORD BaseSTA;
DWORD BaseCHA;
DWORD BaseDEX;
DWORD BaseINT;
DWORD BaseAGI;
DWORD BaseWIS;
BYTE Unknown0204[172];
BYTE Language[32];
BYTE Unknown0408[496];
SPELLBUFF Buff[15];
BYTE Unknown1144[1800];
DWORD SpellBook[256];
BYTE Unknown3968[1024];
DWORD MemorizedSpells[8];
BYTE Unknown5024[56];
DWORD Plat;
DWORD Gold;
DWORD Silver;
DWORD Copper;
DWORD BankPlat;
DWORD BankGold;
DWORD BankSilver;
DWORD BankCopper;
BYTE Unknown5112[32];
DWORD Skill[125];
BYTE Unknown5644[112];
DWORD AutoSplit;
BYTE Unknown5760[96];
struct _SPAWNINFO* pSpawn;
PITEMINFO Inventory[30];
PITEMINFO Cursor;
BYTE Unknown5984[4];
DWORD STR;
DWORD STA;
DWORD CHA;
DWORD DEX;
DWORD INT;
DWORD AGI;
DWORD WIS;
BYTE Unknown6016[4];
DWORD SaveMagic;
DWORD SaveFire;
DWORD SaveCold;
DWORD SavePosion;
DWORD SaveDisease;
DWORD CurrWeight;
BYTE Uknown6044[12];
SPELLBUFF ShortBuff[6];
BYTE Unknown6152[912];
DWORD ZoneBoundId;
DWORD ZoneBirthId;
DWORD ZoneOtherId[3];
FLOAT ZoneBoundX;
FLOAT ZoneBirthX;
FLOAT ZoneOtherX[3];
FLOAT ZoneBoundY;
FLOAT ZoneBirthY;
FLOAT ZoneOtherY[3];
FLOAT ZoneBoundZ;
FLOAT ZoneBirthZ;
FLOAT ZoneOtherZ[3];
BYTE Unknown7144[3548];
DWORD GuildID;
BYTE Unknown10696[15];
BYTE Anon;
WORD GuildStatus;
BYTE Unknown10714[452];
DWORD AAExp;
BYTE Unknown11170[428];
DWORD AAPoints;
BYTE Unknown11602[2542];
PITEMINFO Bank[NUM_BANK_SLOTS];
} CHARINFO, *PCHARINFO;