Zoolander
06-07-2003, 10:19 PM
Here's the current charInfoStruct and spellBuff struct from test. I tested it with many different classes, spellbooks, stats, skills, etc. and everything seemed right. The inventory doesn't seem to be part of it anymore. It's sent in a different packet after this one.
I had to hack my code a bit to not use the fields I couldn't find like GuildID and aaXP, but everything else works.
struct spellBuff
{
/*0000*/ int8_t unknown0000; //
/*0001*/ int8_t level; // Level of person who casted buff
/*0002*/ int8_t unknown0002[2]; //
/*0004*/ int32_t spell; // Spell
/*0008*/ int32_t duration; // Duration in ticks
/*0012*/ int32_t unknown0012; //
/*0016*/ };
struct charProfileStruct
{
/*0000*/ uint8_t opCode; // 0x6b
/*0001*/ uint8_t version; // 0x00
/*0002*/ uint8_t unknown0002[4]; //
/*0006*/ char name[64]; // Name of player sizes not right
/*0070*/ char lastName[32]; // Last name of player sizes not right
/*0102*/ uint32_t gender; // Player Gender - 0 Male, 1 Female
/*0106*/ uint32_t race; // Player race
/*0110*/ uint32_t class_; // Player class
/*0114*/ uint32_t unknown0114; //
/*0118*/ uint32_t level; // Level of player (might be one byte)
/*0122*/ uint8_t unknown0122[20]; //
/*0142*/ uint32_t deity; // deity
/*0146*/ uint8_t unknown0146[512]; //
/*0658*/ uint32_t exp; // Current Experience
/*0662*/ uint32_t points; // Unspent Practice points
/*0666*/ uint32_t MANA; // MANA
/*0670*/ uint32_t curHp; // current hp
/*0674*/ uint32_t unknown0674; // 0x05
/*0678*/ uint32_t STR; // Strength
/*0682*/ uint32_t STA; // Stamina
/*0686*/ uint32_t CHA; // Charisma
/*0690*/ uint32_t DEX; // Dexterity
/*0694*/ uint32_t INT; // Intelligence
/*0698*/ uint32_t AGI; // Agility
/*0702*/ uint32_t WIS; // Wisdom
/*0706*/ uint8_t unknown0706[48]; //
/*0754*/ uint8_t languages[28]; // List of languages (MAX_KNOWN_LANGS)
/*0782*/ uint8_t unknown0782[4]; // All 0x00
/*0786*/ int32_t sSpellBook[400]; // List of the Spells in spellbook
/*2386*/ uint8_t unknown2386[448]; // all 0xff after last spell
/*2834*/ int32_t sMemSpells[8]; // List of spells memorized
/*2866*/ uint8_t unknown2866[56]; //
/*2922*/ uint32_t platinum; // Platinum Pieces on player
/*2926*/ uint32_t gold; // Gold Pieces on player
/*2930*/ uint32_t silver; // Silver Pieces on player
/*2934*/ uint32_t copper; // Copper Pieces on player
/*2938*/ uint32_t platinumBank; // Platinum Pieces in Bank
/*2942*/ uint32_t goldBank; // Gold Pieces in Bank
/*2946*/ uint32_t silverBank; // Silver Pieces in Bank
/*2950*/ uint32_t copperBank; // Copper Pieces in Bank
/*2954*/ uint8_t unknown2954[16]; // Unknown - all zero
/*2970*/ uint32_t skills[74]; // List of skills (MAX_KNOWN_SKILLS)
/*2974*/ uint8_t unknown2974[704]; //
/*3678*/ uint32_t zoneId; // see zones.h
/*3682*/ spellBuff buffs[15]; // Buffs currently on the player
/*3922*/ uint8_t unknown3922[4]; // Always - 0xaa 0x4a 0x45 0x00
/*3926*/ };
I had to hack my code a bit to not use the fields I couldn't find like GuildID and aaXP, but everything else works.
struct spellBuff
{
/*0000*/ int8_t unknown0000; //
/*0001*/ int8_t level; // Level of person who casted buff
/*0002*/ int8_t unknown0002[2]; //
/*0004*/ int32_t spell; // Spell
/*0008*/ int32_t duration; // Duration in ticks
/*0012*/ int32_t unknown0012; //
/*0016*/ };
struct charProfileStruct
{
/*0000*/ uint8_t opCode; // 0x6b
/*0001*/ uint8_t version; // 0x00
/*0002*/ uint8_t unknown0002[4]; //
/*0006*/ char name[64]; // Name of player sizes not right
/*0070*/ char lastName[32]; // Last name of player sizes not right
/*0102*/ uint32_t gender; // Player Gender - 0 Male, 1 Female
/*0106*/ uint32_t race; // Player race
/*0110*/ uint32_t class_; // Player class
/*0114*/ uint32_t unknown0114; //
/*0118*/ uint32_t level; // Level of player (might be one byte)
/*0122*/ uint8_t unknown0122[20]; //
/*0142*/ uint32_t deity; // deity
/*0146*/ uint8_t unknown0146[512]; //
/*0658*/ uint32_t exp; // Current Experience
/*0662*/ uint32_t points; // Unspent Practice points
/*0666*/ uint32_t MANA; // MANA
/*0670*/ uint32_t curHp; // current hp
/*0674*/ uint32_t unknown0674; // 0x05
/*0678*/ uint32_t STR; // Strength
/*0682*/ uint32_t STA; // Stamina
/*0686*/ uint32_t CHA; // Charisma
/*0690*/ uint32_t DEX; // Dexterity
/*0694*/ uint32_t INT; // Intelligence
/*0698*/ uint32_t AGI; // Agility
/*0702*/ uint32_t WIS; // Wisdom
/*0706*/ uint8_t unknown0706[48]; //
/*0754*/ uint8_t languages[28]; // List of languages (MAX_KNOWN_LANGS)
/*0782*/ uint8_t unknown0782[4]; // All 0x00
/*0786*/ int32_t sSpellBook[400]; // List of the Spells in spellbook
/*2386*/ uint8_t unknown2386[448]; // all 0xff after last spell
/*2834*/ int32_t sMemSpells[8]; // List of spells memorized
/*2866*/ uint8_t unknown2866[56]; //
/*2922*/ uint32_t platinum; // Platinum Pieces on player
/*2926*/ uint32_t gold; // Gold Pieces on player
/*2930*/ uint32_t silver; // Silver Pieces on player
/*2934*/ uint32_t copper; // Copper Pieces on player
/*2938*/ uint32_t platinumBank; // Platinum Pieces in Bank
/*2942*/ uint32_t goldBank; // Gold Pieces in Bank
/*2946*/ uint32_t silverBank; // Silver Pieces in Bank
/*2950*/ uint32_t copperBank; // Copper Pieces in Bank
/*2954*/ uint8_t unknown2954[16]; // Unknown - all zero
/*2970*/ uint32_t skills[74]; // List of skills (MAX_KNOWN_SKILLS)
/*2974*/ uint8_t unknown2974[704]; //
/*3678*/ uint32_t zoneId; // see zones.h
/*3682*/ spellBuff buffs[15]; // Buffs currently on the player
/*3922*/ uint8_t unknown3922[4]; // Always - 0xaa 0x4a 0x45 0x00
/*3926*/ };