_SPAWNINFO with hex offsets, comments/questions

A forum for feature requests/discussions and user submitted patches that improve MQ2

Moderator: MacroQuest Developers

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

_SPAWNINFO with hex offsets, comments/questions

Post by Amadeus » Sun May 11, 2003 5:27 pm

Nothing really changed here from eqmule's version other than a few added comments and the offsets changed to hex.

Couple comments/questions for the gallery:

1. I really want to think that the value at offset 0x0e0 is a pointer to a structure that we may or may not have defined as yet. Being new, I may just have stumbled onto something else that I don't know about ..hehe. But, it's it intriguing that if you go to the location in memory pointed to by the value at 0x0e0, you'll find that (from that point) at offset 0x14 is a value that is sometimes equal to Unknown0x138 from this structure (spawninfo), and also you'll find the Char Name[64] value from this structure at 0x70 at that location.

2. Gender is strange....it seems to be fine, until you go into wolf form ..hehe

3. Can anyone confirm that Deity is correct as is now?

Code: Select all

// 5-14-2003		eqmule
typedef struct _SPAWNINFO {
/*0x000*/   BYTE    Unknown0x000;
/*0x001*/   CHAR    Name[64];
/*0x041*/   BYTE    Unknown0x041[7];
/*0x048*/   FLOAT   SpeedZ;
/*0x04c*/   FLOAT   Heading;
/*0x050*/   FLOAT   X;
/*0x054*/   FLOAT   SpeedX;      //Unsure about this one, it's definately a directional speed. 
/*0x058*/   FLOAT   Y;
/*0x05c*/   FLOAT   Z;
/*0x060*/	FLOAT	Unknown0x060;
/*0x064*/	FLOAT	SpeedRun;	 // Confirmed
/*0x068*/	FLOAT	SpeedY;
/*0x06c*/   BYTE    Unknown0x06c[4];
/*0x070*/	FLOAT	SpeedHeading;	
/*0x074*/   FLOAT   CameraAngle;	//128=up, -128=down
/*0x078*/   BYTE    Unknown0x078[12];
/*0x084*/   PACTORINFO   pActorInfo;
/*0x088*/   BYTE    Unknown0x088[5];
/*0x08d*/   BYTE    Linkdead;
/*0x08e*/   BYTE    Unknown0x08e;
/*0x08f*/   BYTE    LFG;
/*0x090*/   BYTE    Unknown0x090[76];
/*0x0dc*/   DWORD   Zone;
/*0x0e0*/   DWORD   Unknown0x0e0;    // Pointer of some sort?
/*0x0e4*/   struct  _SPAWNINFO *pNext;
/*0x0e8*/   PCHARINFO   pCharInfo;
/*0x0ec*/   BYTE    Unknown0x0ec[4];
/*0x0f0*/   struct  _SPAWNINFO *pPrev;
/*0x0f4*/   DWORD   Unknown0x0f4;
/*0x0f8*/   CHAR    Lastname[32];
/*0x118*/   BYTE    Unknown0x118[8];
/*0x120*/   FLOAT   Unknownf0x120; 
/*0x124*/   FLOAT   Unknownf0x124;		// Possible ModelHeightOffset
/*0x128*/   FLOAT   Unknownf0x128;		// Possible CameraHeightOffset
/*0x12c*/   FLOAT   Unknownf0x12c;
/*0x130*/   FLOAT   Unknownf0x130;		
/*0x134*/   BYTE    Type;                   // 0-player, 1-npc, 2-corpse, 3-any, 4-pet
/*0x135*/   BYTE    Light;
/*0x136*/   BYTE    Unknown0x136[2];
/*0x138*/	DWORD	Unknown0x138;		// **
/*0x13c*/   BYTE    Level;
/*0x13d*/   BYTE    Unknown0x13d;		
/*0x13e*/   BYTE    Gender;				// ??
/*0x13f*/   BYTE    Unknown0x13f;
/*0x140*/   BYTE    HideMode;			//1=hidden 2=invis? 3=invis versus undead 4=invis v animals
/*0x141*/   BYTE    StandState;
/*0x142*/   BYTE    Class;
/*0x143*/   BYTE    Unknown0x143;		
/*0x144*/   BYTE    Unknown0x144;
/*0x145*/   BYTE    Unknown0x145;
/*0x146*/   BYTE    GM;
/*0x147*/   BYTE    Unknown0x147;		//Fluxuates
/*0x148*/   DWORD   SpawnID;
/*0x14c*/   DWORD   MasterID;
/*0x150*/   DWORD   Race;
/*0x154*/   DWORD   Anon;
/*0x158*/   DWORD   AARank;
/*0x15c*/   DWORD   AFK;
/*0x160*/   DWORD   VisType;
/*0x164*/   DWORD   HPCurrent;
/*0x168*/   BYTE    Unknown0x168[8];
/*0x170*/   DWORD   Deity;				// ?
/*0x174*/   DWORD   HPMax;
/*0x178*/   DWORD   GuildID;
/*0x17c*/   BYTE    Unknown0x17c[20];
} SPAWNINFO, *PSPAWNINFO; 
EDIT: Modified/Added Valerien's Changes

EDIT: Modified as per eqmule's suggestion

EDIT: Modified as per source's suggestion on thread http://macroquest2.com/phpBB2/viewtopic.php?t=2250 ....tested, and works great as far as I can tell.
Last edited by Amadeus on Thu May 15, 2003 3:24 am, edited 4 times in total.

Valerian
a grimling bloodguard
a grimling bloodguard
Posts: 709
Joined: Sun Jul 28, 2002 3:29 am

Post by Valerian » Sun May 11, 2003 9:18 pm

I found some other problems in it, the lines commented have moved, and I haven't converted the offsets to hex, but feel free to move your struct around and see how wrong I am.. I know SpeedRun is where I have it (I had to fix my /speed command). SpeedX took SpeedRun's old place, and SpeedHeading moved down a little into the second half of your BYTE Unknown0x06c[8]

Code: Select all

/*084*/   FLOAT   SpeedX;      //Unsure about this one, it's definately a directional speed. 
/*088*/   FLOAT   Y; 
/*092*/   FLOAT   Z; 
/*096*/   FLOAT   Unknown096; 
/*100*/   FLOAT   SpeedRun;      // Definate. SpeedRun is here. 
/*104*/   FLOAT   SpeedY; 
/*108*/   FLOAT   Unknown108; 
/*112*/   FLOAT   SpeedHeading;   // Pretty sure about this one. changes depending on how fast you're turning.