Page 1 of 1

_CHARINFO struct after 042603

Posted: Thu Apr 24, 2003 6:07 pm
by NealThorpayt
Greetings Constructs,

Here is what I determined the new _CHARINFO struct to be:

Code: Select all

#define		NUM_BANK_SLOTS			16
typedef struct _CHARINFO {
	BYTE		Unknown0x0000;
	BYTE		Unknown0x0001;
	CHAR		Name[64];
	CHAR		Lastname[70];
	DWORD		Unknown0x0088;
	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		Unknown0x00CC[0x00AC];
	BYTE		Language[32];
	BYTE		Unknown0x0198[0x01F0];
	SPELLBUFF		Buff[15];
	BYTE		Unknown0x0478[0x0708];
	DWORD		SpellBook[256];
	BYTE		Unknown0x0F80[0x0400];
	DWORD		MemorizedSpells[8];
	BYTE		Unknown0x13A0[0x0038];
	DWORD		Plat;
	DWORD		Gold;
	DWORD		Silver;
	DWORD		Copper;
	DWORD		BankPlat;
	DWORD		BankGold;
	DWORD		BankSilver;
	DWORD		BankCopper;
	BYTE		Unknown0x13F8[0x0020];
	DWORD		Skill[125];
	BYTE		Unknown0x160C[0x0070];
	DWORD		AutoSplit;
	BYTE		Unknown0x1680[0x0060];
	struct _SPAWNINFO*	pSpawn;
	PITEMINFO		Inventory[30];
	PITEMINFO		Cursor;
	BYTE		Unknown1760[0x0004];
	DWORD		STR;
	DWORD		STA;
	DWORD		CHA;
	DWORD		DEX;
	DWORD		INT;
	DWORD		AGI;
	DWORD		WIS;
	BYTE		Unknown1780[0x0004];
	DWORD		SaveMagic;
	DWORD		SaveFire;
	DWORD		SaveCold;
	DWORD		SavePosion;
	DWORD		SaveDisease;
	DWORD		CurrWeight;
	BYTE		Unknown179C[0x0048];
	SPELLBUFF		ShortBuff[6];
	BYTE		Unknown1844[0x0390];
	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		Unknown1C24[0x0DDC];
	DWORD		GuildID;
	BYTE		Unknown12A04[0x000F];
	BYTE		Anon;
	WORD GuildStatus;
	BYTE Unknown12A16[0x01C4];
	DWORD AAExp;
	BYTE Unknown12BDA[0x01AC];
	DWORD AAPoints;
	BYTE Unknown12D8E[0x09EE];
	PITEMINFO		Bank[NUM_BANK_SLOTS];
} CHARINFO, *PCHARINFO;
Please note that the locations for GuildStatus, AAExp, and AAPoints are yet to be determined.

End of line...

this is only here for reference and ideas of concistance

Posted: Fri Apr 25, 2003 5:28 am
by EqMule

Code: Select all


typedef struct _CHARINFO {
	BYTE Unknown0000; // 0
	BYTE Unknown0001; // 3
	CHAR Name[64];
	CHAR Lastname[70];
	DWORD Gender;
	DWORD Race;
	DWORD Class;
	DWORD notsure00;//not sure
	DWORD Level;
	DWORD Exp;
	DWORD PracticePoints; // Unspent Practice points
	DWORD Mana;
	DWORD BaseHP;
	DWORD Stunned;// not sure
	DWORD BaseSTR;
	DWORD BaseSTA;
	DWORD BaseCHA;
	DWORD BaseDEX;
	DWORD BaseINT;
	DWORD BaseAGI;
	DWORD BaseWIS;
	DWORD Face; //not sure...
	BYTE EquipType[8];
	BYTE emptyforexpansion[4];
	DWORD EquipColor[8];
	DWORD Equipment[22];          // equipment ids
	DWORD InventoryBagIDs[9];// you can have 1 bag on the cursur thus 9 bags are possible...
	BYTE languages[48];          // List of languages (MAX_KNOWN_LANGS)
	BYTE unknown1735[480];
	struct _SPELLBUFF buffs[15];      // Buffs currently on the player
	DWORD InventoryBag1[10];	//IDs of what it contains
	DWORD InventoryBag2[10];
	DWORD InventoryBag3[10];
	DWORD InventoryBag4[10];
	DWORD InventoryBag5[10];
	DWORD InventoryBag6[10];
	DWORD InventoryBag7[10];
	DWORD InventoryBag8[10];
	DWORD InventoryBag9[10];
	DWORD unknown5030a[2];
	BYTE unknown17353[1432];          // 
	DWORD sSpellBook[512];        // List of the Spells in spellbook
	DWORD sMemSpells[8];          // List of spells memorized
	BYTE unknown5030[36];
	FLOAT y;
	FLOAT x;
	FLOAT z;
	FLOAT heading;
	DWORD standstate;
	DWORD Plat;
	DWORD Gold;
	DWORD Silver;
	DWORD Copper;
	DWORD BankPlat;
	DWORD BankGold;
	DWORD BankSilver;
	DWORD BankCopper;
	BYTE Unknown2952[32];
	DWORD Skill[74];
	BYTE unknown5446[316];       // ***Placeholder
	DWORD AutoSplit;
	BYTE unknown5446q[63];
	DWORD hungerlevel;			// max value < 10000 ; 0 is as hungry as you can get
	DWORD thirstlevel;
	BYTE unknown5447[20];       // ***Placeholder
	DWORD zoneId;                 // see zones.h
    DWORD CharSpawnAddress;		//address to char spawn data************************************
    PITEMINFO EquipmentInfo[22];		//addressarray of your equipment data
    PITEMINFO BagsAddresses[8];		//addressarray of your bags
    PITEMINFO Cursor;				//address of what is on your cursor (9th bag)
    DWORD unknown5447a;       // ***Placeholder
    DWORD STR;
    DWORD STA;
    DWORD CHA;
    DWORD DEX;
    DWORD INT;
    DWORD AGI;
    DWORD WIS;
    DWORD ACModifier;//how much extra AC your equipment gives
    DWORD SaveMagic;
    DWORD SaveFire;
    DWORD SaveCold;
    DWORD SavePosion;
    DWORD SaveDisease;
    DWORD CurrWeight;
    BYTE Uknown6044[12];
    SPELLBUFF ShortBuff[6];
    BYTE Unknown6152[912];
	DWORD bindzoneId[5];          // IDs of zone(s) where you are bound
	FLOAT sYpos[5];               // starting locs per bindzoneId
	FLOAT sXpos[5];               // starting locs per bindzoneId
	FLOAT sZpos[5];               // starting locs per bindzoneId
	BYTE unknown9490[20];
	struct itemPropertiesStruct bankinvprops[8];
	struct itemPropertiesStruct bankinvprops2[8];
	struct itemPropertiesStruct bankinvcontprops[80];
	struct itemPropertiesStruct bankinvcontprops2[80];
	DWORD unknown9326;//address of something
	DWORD bank_inv[8];            // itemIds of the 8 bank slots
	DWORD bank_inv2[8];           // itemIds of the 8 bank slots
	DWORD bank_cont_inv[80];      // itemIds of items inside containers in bank
	DWORD bank_cont_inv2[80];     // itemIds of items inside containers in bank
	DWORD deity;                  // deity
	DWORD guildID;                // guild ID
	DWORD unknown10042;//address
	DWORD unknown10043;//address
	BYTE ZoneTime;		//time spent in zone?	  
	BYTE unknown7443[4];
	BYTE pvp;
	BYTE _level;                 // seems to be player level
	BYTE anon;                   // 0 plain, 1 anon, 2 roleplay,
	BYTE gm;                     // gm flag?
	BYTE guildstatus;            // 0 member, 1 officer, 2 leader
	BYTE unknown10061[46];
	CHAR GroupMembers[6][64];    // all the members in group, including self
	BYTE unknown10489[22];
	DWORD altexp;                 // alternate exp pool 0 - ~15,000,000
	BYTE unknown10517[428];
	DWORD aapoints;               // number of unspent ability points
	BYTE unknown10949[3293];
} CHARINFO, *PCHARINFO;

ok Im gonna help out on this one, this is what my structure looked like pre 23 patch, I will merge what you have discovvered and confirm my other locations into something that is closer to the truth. I place it here for reference only, and will update as I go along.

Posted: Wed Apr 30, 2003 6:26 pm
by NealThorpayt
Greetings Constructs,

EQMule, could you please post your itemPropertiesStruct struct, as referenced in your _CHARINFO struct.

Thanks.

End of line...

itemPropertiesStruct

Posted: Thu May 01, 2003 5:39 am
by EqMule

Code: Select all

/*
** Generic Item Properties
** Length: 16 Octets
** Used in: charProfile
**
*/
struct itemPropertiesStruct
{
/*000*/ BYTE unknown01[2];
/*002*/ BYTE charges;         // not sure if this is in the right place
/*003*/ BYTE unknown02[13];
}; // 16 
sorry forgot that someone actually might need it lol

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:14 am
by xyilla

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:15 am
by xyilla

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:16 am
by xyilla

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:18 am
by xyilla

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:19 am
by xyilla

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:20 am
by xyilla

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:22 am
by xyilla

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:23 am
by xyilla

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:24 am
by xyilla

Re: _CHARINFO struct after 042603

Posted: Mon Jan 19, 2026 5:26 am
by xyilla