23rd April Offsets

A forum for the general posts relating to MacroQuest. *DEPRECATED: This forum is no longer in public use, but remains here for your reading pleasure. Enjoy

Moderator: MacroQuest Developers

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

Post by Amadeus » Thu Apr 24, 2003 2:56 am

I'd give anything to know how you guys do this ..hehe. C++ makes so much sense...but this structure finding business just seems as ethereal as hell.

User avatar
dont_know_at_all
Developer
Developer
Posts: 5450
Joined: Sun Dec 01, 2002 4:15 am
Location: Florida, USA
Contact:

Post by dont_know_at_all » Thu Apr 24, 2003 4:44 am

No, it's not like pulling them out of thin air.

Take AFK in the SPAWNINFO struct. I found the command table with the entry with "/afk". I looked at the code till I found where it was setting a byte in the structure.

For LFG, since they "gave" use the LFG window, I haven't been able to figure it out. So, I dump my structure with it on and with it off to see what's changed.

It sucks, basically.

zedisdeadbaby
a ghoul
a ghoul
Posts: 83
Joined: Sun Nov 03, 2002 4:24 pm

Post by zedisdeadbaby » Thu Apr 24, 2003 4:46 am

what tools do you use for looking through memory?

all i have is the VC++ debugger (which has always worked for my needs), but i know you guys have better tools than that.
dont_know_at_all wrote:No, it's not like pulling them out of thin air.

Take AFK in the SPAWNINFO struct. I found the command table with the entry with "/afk". I looked at the code till I found where it was setting a byte in the structure.

For LFG, since they "gave" use the LFG window, I haven't been able to figure it out. So, I dump my structure with it on and with it off to see what's changed.

It sucks, basically.

User avatar
dont_know_at_all
Developer
Developer
Posts: 5450
Joined: Sun Dec 01, 2002 4:15 am
Location: Florida, USA
Contact:

Post by dont_know_at_all » Thu Apr 24, 2003 5:11 am

Updated eqgame.ini and mq.h in CVS depot. Killed six things in twenty minutes -- /who does not crash but shows wrong data.

Still missing Linkdead, LFG, and all the SpeedXXX offsets in SPAWNINFO. They are clearly marked wrong in mq.h.

EqMule
Developer
Developer
Posts: 2697
Joined: Fri Jan 03, 2003 9:57 pm
Contact:

hera are some more...

Post by EqMule » Thu Apr 24, 2003 7:29 am

http://macroquest2.com/phpBB2/viewtopic ... 3556#13556

I moved this to developers forum instead...
Last edited by EqMule on Fri Apr 25, 2003 10:17 am, edited 9 times in total.
My status o/
If you like MQ2 and would like to contribute, please do. My goal is 25 donations per month.
So far I've received Image donations for this month's patches.

Bitcoin: 1Aq8ackjQ4f7AUvbUL7BE6oPfT8PmNP4Zq
Krono: PM me.
I can always use characters for testing, PM me if you can donate one.

compuboy
a ghoul
a ghoul
Posts: 108
Joined: Thu Apr 24, 2003 8:19 am
Location: Good Question, if anyone finds out, let me know

WARNING NOOB ALERT

Post by compuboy » Thu Apr 24, 2003 8:24 am

Hello all, I just got turned onto this by my friend, and I really think that this is an excellent group of people creating things that I would never think would be possible.

I know the subject says noob, but i and not computer illiterate, and can definetly find my way around a comp. I am just wondering, if anyone would mind posting a VERY short thing on what to do when a new patch comes out, I have VS6 Enterprise so instructions for that would be GREAT

Thanks
compuboy

User avatar
ap50
a snow griffon
a snow griffon
Posts: 425
Joined: Sun Aug 18, 2002 2:29 pm

Post by ap50 » Thu Apr 24, 2003 8:47 am

Any time there's a patch that updates EQGAME.EXE a new set of memory addresses aka the offsets need to be found, a number of people already do this, some better than others though :roll:

Once that's done, if there's been any structure changes to the areas we're messing with, the code gurus nozy around the code and see what's changed, and hopefully update the source code in the CVS.

You then download the CVS updates, assuming you have the complete codebase already, or download the whole thing if you don't, find the relevant posts in here that tell you how to create a VC6 project for the DLL and EXE files, compile them.

Even if there hasn't been any structure changes, you need to modify your EQGAME.INI file which contains the old offsets, and replace them with the current working ones.
[color=yellow][size=92][b]Just because you're paranoid, it doesn't mean everyone isn't out to get you![/b][/size][/color]

compuboy
a ghoul
a ghoul
Posts: 108
Joined: Thu Apr 24, 2003 8:19 am
Location: Good Question, if anyone finds out, let me know

Post by compuboy » Thu Apr 24, 2003 8:51 am

Cool thanks a lot!

I will read around the site, and try to figure this crap out.... I will post if i run into any brick walls at full spead.

thanks
compuboy

remember: "you dont have to run faster than the bear, you only have to run faster than the slowest person running from the bear"

eqjoe
a grimling bloodguard
a grimling bloodguard
Posts: 984
Joined: Sat Sep 28, 2002 12:26 pm

Re: hera are some more...

Post by eqjoe » Thu Apr 24, 2003 10:09 am

EqMule00 wrote:

Code: Select all

typedef struct _SPAWNINFO { 
/*000*/   BYTE   SpawnFlag; 
/*001*/   CHAR   Name[64]; 
/*065*/   BYTE   Unknown065[7];
/*072*/   FLOAT   MovingZ;    //DeltaHeading but not sure if its Z yet
/*076*/   FLOAT   Heading; 
/*080*/   FLOAT   X; 
/*084*/   FLOAT   RunSpeed;
/*088*/   FLOAT   Y; 
/*092*/   FLOAT   Z; 
/*096*/   BYTE   Unknown096[4];
/*100*/   FLOAT  MovingX;   //DeltaHeading but not sure if its X yet
/*104*/   FLOAT  MovingY;   //DeltaHeading but not sure if its Y yet
/*108*/   BYTE   Unknown108[8];
/*116*/   FLOAT   CameraAngle; 
/*120*/   BYTE   Unknown120[12]; 
/*132*/   PACTORINFO   pActorInfo; 
/*136*/   BYTE   Unknown136[7];
/*144*/   BYTE   LFG;
/*145*/   BYTE   Unknown145[76];
/*220*/   DWORD   Zone; 
/*224*/   DWORD   Unknown224; 
/*228*/   struct _SPAWNINFO *pNext; 
/*232*/   PCHARINFO   pCharInfo; 
/*236*/   BYTE   Unknown236[4]; 
/*240*/   struct _SPAWNINFO *pPrev; 
/*244*/   DWORD   Unknown244; 
/*248*/   CHAR   Lastname[32]; 
/*280*/   BYTE   Unknown280[36]; 
/*316*/   BYTE   Level; 
/*317*/   BYTE   Type; 
/*318*/   BYTE   Gender; 
/*319*/   BYTE   Unknown319;
/*320*/   BYTE   HideMode; //1=hidden 2=invis? 3=invis versus undead 4=invis v animals?
/*321*/   BYTE   StandState; 
/*322*/   BYTE   Class; 
/*323*/   BYTE   Unknown323[5]; 
/*328*/   DWORD   SpawnID; 
/*332*/   DWORD   MasterID; 
/*336*/   DWORD   Race; 
/*340*/   BYTE   Unknown340[16]; 
/*356*/	  DWORD   HPCurrent; 
/*360*/   BYTE   Unknown360[8];
/*368*/   DWORD   Deity;
/*372*/   DWORD   HPMax; 
/*376*/   DWORD   GuildID; 
} SPAWNINFO, *PSPAWNINFO;
I can use some help on figuring out the speedheading X Y or Z... /shrug
Thanks Mule!

We need:
Light
SpeedRun
GM
AFK
LinkDead
Anon
Speedheading
AARank
SpeedX
SpeedY


I will try to get AFK, Anon, Light and SpeedRun so at least SuperWho will be close to working by today. We can pad the rest in unknown data so we have placeholders and variables that EQlib.cpp needs so we have a clean build.

At least we will have a working MQ while we find the rest of these........

lostinspace
decaying skeleton
decaying skeleton
Posts: 5
Joined: Wed Apr 09, 2003 7:42 am

Post by lostinspace » Thu Apr 24, 2003 10:30 am

Edit: I'm not using AFk and Anon, but for those who use, I think that:
AFK = 348
ANON = 340

Edit2: well, speeds probably look like this:
SpeedRun = 100
SpeedX=104
SpeedY=84
SpeedZ=72

Edit3:
LFG= 143
Last edited by lostinspace on Thu Apr 24, 2003 12:34 pm, edited 4 times in total.

eqjoe
a grimling bloodguard
a grimling bloodguard
Posts: 984
Joined: Sat Sep 28, 2002 12:26 pm

Post by eqjoe » Thu Apr 24, 2003 10:45 am

Putting updates in dev section...

kaz
a ghoul
a ghoul
Posts: 103
Joined: Tue Jan 14, 2003 4:09 am

Post by kaz » Thu Apr 24, 2003 3:17 pm

speed x,y,z are at either

spawninfo+0x48, 0x54, 0x64, 0x68 from what I tested so far, as to which is what I am not sure yet.

iluvseq
Clueless Mudslinger
Posts: 269
Joined: Mon Apr 14, 2003 10:05 am

Post by iluvseq » Thu Apr 24, 2003 7:19 pm

CHARINFO_ posted earlier is not correct at all. Working on decifering it now.

Gengis
a ghoul
a ghoul
Posts: 116
Joined: Wed Aug 14, 2002 7:46 pm

Post by Gengis » Fri Apr 25, 2003 1:38 am

K I got latest CVS and Compiled with offsets and seems to be working but I get a constant fast pingage. The left number seems to refresh insanely too fast and the right number is highly high. When I don't use MQ I can play fine.

ewiggins
decaying skeleton
decaying skeleton
Posts: 2
Joined: Fri Apr 25, 2003 6:44 am

Post by ewiggins » Fri Apr 25, 2003 6:47 am

Gengis wrote:K I got latest CVS and Compiled with offsets and seems to be working but I get a constant fast pingage. The left number seems to refresh insanely too fast and the right number is highly high. When I don't use MQ I can play fine.
I too am having the same problem, a slight workaround is if your setup is like mine, VS 6.0, don't build it as a Release, make a Debug build, that helped stabilize the left-hand ping. If I did a Release build, the left hand number bounces around like crazy between 60-200, whereas Debug build keeps it pretty steady between 120-130 without jumping around alot. (I also set the Byte Alignment from 8 to 1).