this is all u need to fix it:
lets see who can figure it out. (teach a man to fish and all that)
Code:
//Actual Size: 0x1FEC Sep 22 2015 Live (see 5D239A) - eqmule
typedef struct _SPAWNINFO {
/*0x0000*/ void* vtable;
/*0x0004*/ struct _SPAWNINFO* pPrev;
/*0x0008*/ struct _SPAWNINFO* pNext;
/*0x000c*/ BYTE Unknown0x000c[0xc];
/*0x0018*/ FLOAT SpeedMultiplier;
/*0x001c*/ BYTE Unknown0x001c[0xc];
/*0x0028*/ FLOAT Feet;//or floor or something, work in progress -eqmule 2015-07-20
/*0x002c*/ BYTE Unknown0x002c[0x4];
/*0x0030*/ DWORD PlayerTimeStamp;//doesnt update when on a Vehicle (mounts/boats etc)
/*0x0034*/ BYTE Unknown0x0034[0x4];
/*0x0038*/ CHAR Lastname[0x20];
/*0x0058*/ BYTE Unknown0x0058[0xc];
/*0x0064*/ FLOAT Y;
/*0x0068*/ FLOAT X;
/*0x006c*/ FLOAT Z;
/*0x0070*/ FLOAT SpeedY;
/*0x0074*/ FLOAT SpeedX;
/*0x0078*/ FLOAT SpeedZ;
/*0x007c*/ FLOAT SpeedRun;
/*0x0080*/ FLOAT Heading;
/*0x0084*/ BYTE Unknown0x0084[0x8];
/*0x008c*/ FLOAT SpeedHeading;
/*0x0090*/ FLOAT CameraAngle;
/*0x0094*/ BYTE UnderWater;
/*0x0095*/ BYTE Unknown0x0095[0xc];
/*0x00a1*/ BYTE FeetWet;
/*0x00a2*/ BYTE Unknown0x00a2[0x2];
/*0x00a4*/ CHAR Name[0x40]; // ie priest_of_discord00
/*0x00e4*/ CHAR DisplayedName[0x40]; // ie Priest of Discord
/*0x0124*/ BYTE PossiblyStuck; //never seen this be 1 so maybe it was used a a point but not now...
/*0x0125*/ BYTE Type;
/*0x0126*/ BYTE Unknown0x0126[0x2];
/*0x0128*/ DWORD** BodyType;
/*0x012c*/ BYTE Unknown0x012c[0xc];
/*0x0138*/ FLOAT AvatarHeight; // height of avatar from groundwhen standing
/*0x013c*/ FLOAT UnknownHeight;
/*0x0140*/ FLOAT AvatarHeight2; // height of avatar from groundwhen crouched/sitting
/*0x0144*/ BYTE Unknown0x0144[0x4];
/*0x0148*/ DWORD SpawnID;
/*0x014c*/ DWORD PlayerState; //0=Idle 1=Open 2=WeaponSheathed 4=Aggressive 8=ForcedAggressive 0x10=InstrumentEquipped 0x20=Stunned 0x40=PrimaryWeaponEquipped 0x80=SecondaryWeaponEquipped
/*0x0150*/ DWORD IsABoat; // 1 = a type of boat
/*0x0154*/ struct _SPAWNINFO* Mount; // NULL if no mount present
/*0x0158*/ struct _SPAWNINFO* Rider; // _SPAWNINFO of mount's rider
/*0x015c*/ BYTE Unknown0x015c[0x4];
/*0x0160*/ BYTE Targetable;//1 if mob is targetable
/*0x0161*/ BYTE Unknown0x0161[0x43];
/*0x01a4*/ FLOAT RunSpeed;//0.70 on runspeed 5...
/*0x01a8*/ BYTE Unknown0x01a8[0x4];
/*0x01ac*/ DWORD SpellCooldownETA;
/*0x01b0*/ DWORD MasterID;
/*0x01b4*/ BYTE Unknown0x01b4[0x4];
/*0x01b8*/ DWORD FishingETA;
/*0x01bc*/ BYTE Unknown0x01bc[0x84];
/*0x0240*/ WORD Zone;
/*0x0242*/ WORD Instance;
/*0x0244*/ DWORD LastTick;
/*0x0248*/ DWORD GuildStatus;
/*0x024c*/ BYTE Linkdead;
/*0x024d*/ BYTE Light;
/*0x024e*/ BYTE Unknown0x024e[0x2];
/*0x0250*/ DWORD ManaMax;
/*0x0254*/ BYTE Unknown0x0254[0x8];
/*0x025c*/ DWORD ManaCurrent;
/*0x0260*/ BYTE Sneak;
/*0x0261*/ BYTE Unknown0x0261[0x3];
/*0x0264*/ DWORD RespawnTimer; // TimeStamp of when RespawnWnd will close - 0 when you're alive
/*0x0268*/ BYTE Unknown0x0268[0x8];
/*0x0270*/ DWORD GuildID;
/*0x0274*/ struct _LAUNCHSPELLDATA CastingData; // size: 0x50
/*0x02c4*/ BYTE FishingEvent;
/*0x02c5*/ BYTE Unknown0x02c5[0x1f];
/*0x02e4*/ BYTE Mercenary;
/*0x02e5*/ BYTE Unknown0x02e5[0x2b];
/*0x0310*/ DWORD AARank;
/*0x0314*/ BYTE Unknown0x0314[0x8];
/*0x031c*/ struct _EQC_INFO* spawneqc_info;
/*0x0320*/ BYTE Unknown0x0320[0x28];
/*0x0348*/ DWORD EnduranceCurrent;
/*0x034c*/ BYTE Unknown0x034c[0x44];
/*0x0390*/ FLOAT GetMeleeRangeVar1; // used by GetMeleeRange
/*0x0394*/ BYTE Unknown0x0394[0x4];
/*0x0398*/ DWORD Deity;
/*0x039c*/ BYTE Unknown0x039c[0x34];
/*0x03d0*/ DWORD InnateETA; //Calculated TimeStamp when innate skill will be ready (LoH, HT, Bash)
/*0x03d4*/ BYTE Unknown0x03d4[0x14];
/*0x03e8*/ DWORD PetID;//the unknown above this is petwindow target related I think
/*0x03ec*/ DWORD AFK;
/*0x03f0*/ BYTE Unknown0x03f0[0x4];
/*0x03f4*/ DWORD EnduranceMax;
/*0x03f8*/ CHAR Title[0x80];
/*0x0478*/ BYTE LFG;
/*0x0479*/ BYTE Unknown0x0479[0x13];
/*0x048c*/ DWORD Anon;//found in EQPlayer__SetNameSpriteTint_x
/*0x0490*/ BYTE Unknown0x0490[0x8];
/*0x0498*/ DWORD Buyer;
/*0x049c*/ BYTE Unknown0x049c[0x4];
/*0x04a0*/ BYTE HideMode;
/*0x04a1*/ BYTE Unknown0x04a1[0x3a];
/*0x04db*/ CHAR Suffix[0x80];
/*0x055b*/ BYTE Unknown0x055b;
/*0x055c*/ LONG HPMax;
/*0x0560*/ BYTE Unknown0x0560[0x30];
/*0x0590*/ BYTE GM;
/*0x0591*/ BYTE Unknown0x0591[0x8];
/*0x0599*/ BYTE StandState;
/*0x059a*/ BYTE Unknown0x059a[0xa];
/*0x05a4*/ DWORD Trader;//found in CEverQuest__RightClickedOnPlayer_x
/*0x05a8*/ BYTE PvPFlag;
/*0x05a9*/ BYTE Unknown0x05a9[0x7];
/*0x05b0*/ FLOAT ViewHeight;
/*0x05b4*/ BYTE Unknown0x05b4[0x4];
/*0x05b8*/ BYTE HoldingType; // I dont know the types, i put a 2h in Primary and its a 4 , modrod there and its a 1, nothing its a 5 -eqmule
/*0x05b9*/ BYTE Unknown0x05b9[0x7];
/*0x05c0*/ DWORD TimeStamp;//updates all the time including when on a mount
/*0x05c4*/ BYTE Unknown0x05c4[0x4];
/*0x05c8*/ LONG HPCurrent;
/*0x05cc*/ BYTE Unknown0x05cc[0x10];
/*0x05dc*/ BYTE Level;
/*0x05dd*/ BYTE Unknown0x05dd[0x92b];
/*0x0f08*/ struct _SPAWNINFO* WhoFollowing; // NULL if autofollow off
/*0x0f0c*/ DWORD GroupAssistNPC[0x1];
/*0x0f10*/ DWORD RaidAssistNPC[0x3];
/*0x0f1c*/ DWORD GroupMarkNPC[0x3];
/*0x0f28*/ DWORD RaidMarkNPC[0x3];
/*0x0f34*/ DWORD TargetOfTarget;
/*0x0f38*/ BYTE Unknown0x0f38[0x30];
/*0x0f68*/ void* pActorClient; // start of ActorClient struct
/*0x0f6c*/ BYTE InNonPCRaceIllusion;
/*0x0f6d*/ BYTE Unknown0x0f6d[0x3];
/*0x0f70*/ BYTE FaceStyle;
/*0x0f71*/ BYTE HairColor;
/*0x0f72*/ BYTE FacialHairColor;
/*0x0f73*/ BYTE EyeColor1;
/*0x0f74*/ BYTE EyeColor2;
/*0x0f75*/ BYTE HairStyle;
/*0x0f76*/ BYTE FacialHair;
/*0x0f77*/ BYTE Unknown0x0f77;
/*0x0f78*/ DWORD Race;
/*0x0f7c*/ BYTE Unknown0x0f7c[0x4];
/*0x0f80*/ BYTE Class;
/*0x0f81*/ BYTE Unknown0x0f81[0x3];
/*0x0f84*/ BYTE Gender;
/*0x0f85*/ CHAR ActorDef[0x40];
/*0x0fc5*/ BYTE Unknown0x0fc5[0x3];
/*0x0fc8*/ ARGBCOLOR ArmorColor[0x9];
/*0x0fec*/ BYTE Unknown0x0fec[0x4];
/*0x0ff0*/ DWORD Heritage; //drakkin only face setting
/*0x0ff4*/ DWORD Tattoo; //drakkin only face setting
/*0x0ff8*/ DWORD Details; //drakkin only face setting
/*0x0ffc*/ struct _EQUIPMENT Equipment; // size 0xb4
/*0x10b0*/ BYTE Unknown0x10b0[0x38];
/*0x10e8*/ VOID* pcactorex; // ActorInterface*
/*0x10ec*/ BYTE Unknown0x10ec[0x4];
/*0x10f0*/ VOID* FaceRelatedActorStruct;
/*0x10f4*/ BYTE Unknown0x10f4[0x34];
/*0x1128*/ FLOAT GetMeleeRangeVar2; // used by GetMeleeRange
/*0x112c*/ BYTE Unknown0x112c[0x64];
/*0x1190*/ DWORD Animation;
/*0x1194*/ BYTE Unknown0x1194[0xdc];
/*0x1270*/ DWORD Holding; //1 holding 0 not holding
/*0x1274*/ BYTE Unknown0x1274[0x14];
/*0x1288*/ DWORD MercID; //if the spawn is player and has a merc up this is it's spawn ID -eqmule 16 jul 2014
/*0x128c*/ DWORD ContractorID; //if the spawn is a merc this is its contractor's spawn ID -eqmule 16 jul 2014
/*0x1290*/ BYTE Unknown0x1290[0x14];
/*0x12a4*/ FLOAT WalkSpeed;
/*0x12a8*/ BYTE Unknown0x12a8;
/*0x12a9*/ DWORD HideCorpse;
/*0x12ad*/ BYTE Unknown0x12ad[0x3c];
/*0x12e9*/ BYTE InvitedToGroup;
/*0x12ea*/ BYTE Unknown0x12ea[0x2];
/*0x12ec*/ DWORD GroupMemberTargeted; // 0xFFFFFFFF if no target, else 1 through 5
/*0x12f0*/ BYTE Unknown0x12f0[0x184];
/*0x1474*/ struct _FELLOWSHIPINFO Fellowship; // size 0x9e4
/*0x1e58*/ FLOAT CampfireY;
/*0x1e5c*/ FLOAT CampfireX;
/*0x1e60*/ FLOAT CampfireZ;
/*0x1e64*/ WORD CampfireZoneID; // zone ID where campfire is
/*0x1e66*/ WORD InstanceID;
/*0x1e68*/ DWORD CampfireTimestamp; // CampfireTimestamp-FastTime()=time left on campfire
/*0x1e6c*/ BYTE Unknown0x1e6c[0x8];
/*0x1e74*/ DWORD Campfire; // do we have a campfire up?
/*0x1e78*/ BYTE Unknown0x1e78[0x11c];
/*0x1f94*/ void* vtable2;
/*0x1f98*/ BYTE Unknown0x1f98[0x4];
/*0x1f9c*/ struct _SPAWNINFO* pSpawn;
/*0x1fa0*/ DWORD Levitate;
/*0x1fa4*/ BYTE Unknown0x1fa4[0x48];
/*0x1fec*/
} SPAWNINFO, *PSPAWNINFO;