Page 2 of 4
Posted: Thu Apr 24, 2003 2:56 am
by Amadeus
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.
Posted: Thu Apr 24, 2003 4:44 am
by dont_know_at_all
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.
Posted: Thu Apr 24, 2003 4:46 am
by zedisdeadbaby
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.
Posted: Thu Apr 24, 2003 5:11 am
by dont_know_at_all
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.
hera are some more...
Posted: Thu Apr 24, 2003 7:29 am
by EqMule
WARNING NOOB ALERT
Posted: Thu Apr 24, 2003 8:24 am
by compuboy
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
Posted: Thu Apr 24, 2003 8:47 am
by ap50
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
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.
Posted: Thu Apr 24, 2003 8:51 am
by compuboy
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"
Re: hera are some more...
Posted: Thu Apr 24, 2003 10:09 am
by eqjoe
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........
Posted: Thu Apr 24, 2003 10:30 am
by lostinspace
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
Posted: Thu Apr 24, 2003 10:45 am
by eqjoe
Putting updates in dev section...
Posted: Thu Apr 24, 2003 3:17 pm
by kaz
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.
Posted: Thu Apr 24, 2003 7:19 pm
by iluvseq
CHARINFO_ posted earlier is not correct at all. Working on decifering it now.
Posted: Fri Apr 25, 2003 1:38 am
by Gengis
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.
Posted: Fri Apr 25, 2003 6:47 am
by ewiggins
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).