A forum for feature requests/discussions and user submitted patches that improve MQ2
Moderator: MacroQuest Developers
-
EqMule
- Developer

- Posts: 2697
- Joined: Fri Jan 03, 2003 9:57 pm
-
Contact:
Post
by EqMule » Wed May 21, 2003 5:28 pm
guess what I found...
Code: Select all
//5-15-2003 eqmule
typedef struct _EQWINDOWINFO {
DWORD WindowStyle; //if it is style then 04 = Window 01 = button
DWORD Unknown1;
DWORD Unknown2;
DWORD Unknown3;
DWORD Unknown4;
CHAR WindowTitle[140];
BYTE Unknown5[12];
DWORD pNextAddress; //most likely pointers to another structure...
DWORD pPrevAddress;
} EQWINDOWINFO, *PEQWINDOWINFO; //ok it goes on and there are plenty more to pick up here, but I just need the name for now...
// 5-15-2003 eqmule/Jaerin/Amadeus
typedef struct _EQWINDOW {
/*0x000*/ DWORD WindowID;
/*0x004*/ DWORD WndTime1; //how many ms the window has been open since sessionstart...
/*0x008*/ DWORD Unknown0x008; // 2000 seems a common value
/*0x00c*/ DWORD Unknown0x00c; //500 seems a common value
/*0x010*/ BYTE Flag;
/*0x011*/ BYTE MouseOver; //01 yes 00 no
/*0x012*/ BYTE Unknown0x012;
/*0x013*/ BYTE Unknown0x013;
/*0x014*/ BYTE Unknown0x014[12];
/*0x020*/ struct _EQWINDOW *pNext;
/*0x024*/ struct _EQWINDOW *pPrev;
/*0x028*/ DWORD Flags4;
/*0x02c*/ DWORD Z; //not sure but its logical to assume it at this point...
/*0x030*/ DWORD X;
/*0x034*/ DWORD Y;
/*0x038*/ DWORD Height;
/*0x03c*/ DWORD Width;
DWORD Depth; //hmm maybe...
BYTE Unknown0x040[12];
BYTE Open; //1 open 0 closed
BYTE Unknown0x051[7];
DWORD somekindofID;
DWORD *pUnknownStruct0x060;
struct _EQWINDOWINFO Info;
BYTE Unknown0x068[198];
BYTE WndButton; //01 pressed 00 not pressed
BYTE Unknown0xxxx[3];
BYTE Unknown0xxxxx[180];
DWORD WndTime2; //how many ms the window has been open since sessionstart...
}EQWINDOW, *PEQWINDOW;
All we have to do to open inventory is to set Open to 01 hehe now on to the rest, this is fun... will work nicely with our mousto function as the locs can go straight from read to write...
Posting offsets as I find them
Code: Select all
005e0940 = Inventory Window
005e0948 = Quantity Window
005e094C = Loot corpse Window
005E0954 = Merchant Window
005E0958 = Trade Window
005E095C = Window Selecter Window
005E0964 = Bazaar Search Window
005E0968 = Give NPC Window
005E0990 = Notes Window
OK I better mention that Im using the ClientVersion=Thu May 15 02:59:xx 2003 of eqgame.exe when finding theese offsets for future reference...
Last edited by
EqMule on Sun Jun 08, 2003 12:30 pm, edited 19 times in total.

o/
If you like MQ2 and would like to contribute, please do. My goal is 25 donations per month.
So far I've received

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.
-
Jaerin
- Developer

- Posts: 133
- Joined: Mon Mar 10, 2003 7:37 pm
-
Contact:
Post
by Jaerin » Wed May 21, 2003 5:43 pm
I already found the locations for all the windows. The offsets aren't current, but can be easily updated.
I believe the height and width measurements are the X,Y coords of the upper left and lower right of the window.
Adjusting those will change the height/width of the window.
There are a number of other things in there too.
Jaerin
Last edited by
Jaerin on Wed May 21, 2003 5:55 pm, edited 1 time in total.
-
Amadeus
- The Maestro

- Posts: 2036
- Joined: Sat Jun 29, 2002 3:51 pm
Post
by Amadeus » Wed May 21, 2003 5:45 pm
What about:
or something to that effect, since we want to be able to find the other offsets as well (ie, Panel_Bag1, etc...) and that would give us a naming scheme.
It would be nice though to have the application write down the x/y/etc.. locations to a file and still be read so that users could customize. We don't all have the same UI windows.
-
EqMule
- Developer

- Posts: 2697
- Joined: Fri Jan 03, 2003 9:57 pm
-
Contact:
Post
by EqMule » Wed May 21, 2003 5:50 pm
this isnt the UI... its whats read from your UI... and written to it... its the NEW CLS STUFF!!!! WHOOHOOOOOOO!!!
with this we can once again search merchants for items, open bags and inventory heck we can even customize our UI from within EQ if we add some functions for it, how cool is that, to have a "what you see is what you get UI-editor" inside of EQ?!!!

o/
If you like MQ2 and would like to contribute, please do. My goal is 25 donations per month.
So far I've received

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.
-
anOrcPawn00
- a lesser mummy

- Posts: 41
- Joined: Sat May 10, 2003 6:15 am
Post
by anOrcPawn00 » Wed May 21, 2003 6:02 pm
How about:
uw (from UI Window) + name (as used in the naming of the .xml files, easy to remember what's what)
Such as:
uwInventory
uwItemDisplay
uwPlayerWindow
uwGroupWindow
uwLootWnd
etc.?
Awesome find EQMule00!
-
Jaerin
- Developer

- Posts: 133
- Joined: Mon Mar 10, 2003 7:37 pm
-
Contact:
Post
by Jaerin » Wed May 21, 2003 6:05 pm
EQmule...I just confirmed the offset you found is infact the same offsets that I found a month ago.
Mine are from the April 14th patch. All they need is updating. I didn't keep them up-to-date because no one seemed to care about them. I would have coded something myself, but I can't code myself out of a wet paper bag.
See:
Clickalicious Info...
Jaerin
-
EqMule
- Developer

- Posts: 2697
- Joined: Fri Jan 03, 2003 9:57 pm
-
Contact:
Post
by EqMule » Wed May 21, 2003 6:10 pm
Jaerin wrote:EQmule...I just confirmed the offset you found is infact the same offsets that I found a month ago.
Mine are from the April 14th patch. All they need is updating. I didn't keep them up-to-date because no one seemed to care about them. I would have coded something myself, but I can't code myself out of a wet paper bag.
See:
Clickalicious Info...
Jaerin
yeah I know, I have been looking for them for a few days now, I even sent you a PM asking if you could email me the exe but I never got it, anyway, now that I have found them, Im ok.
And to the rest of you please cred Jaerin for the original find, Im just greasing the wheel, not turning it...

o/
If you like MQ2 and would like to contribute, please do. My goal is 25 donations per month.
So far I've received

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.
-
Amadeus
- The Maestro

- Posts: 2036
- Joined: Sat Jun 29, 2002 3:51 pm
Post
by Amadeus » Wed May 21, 2003 6:12 pm
Do all of them follow the same structure as the inventory window posted at the beginning of this thread? If so, we should just have a list of offsets, but then call the structure something a bit more generic.
Yes, this is nice :)
Once you get the offsets all done up once, I'll be glad to help in future finding them.
-
EqMule
- Developer

- Posts: 2697
- Joined: Fri Jan 03, 2003 9:57 pm
-
Contact:
Post
by EqMule » Wed May 21, 2003 6:19 pm
yep all of the ones I have posted follow that structure
and yes could someone with cvs access please make sure theese offsets go in the eqgame.ini so we get them updated every patch as well? I know its a shitload of extra work for our allready hardworking offset finders (hello Ap50) :) but until I or someone else find the "master offset" which we can just use to figure out the rest automatically we need them to lab with...
make up any name you like for them I dont care, as long as they get updated on patchday. I will however make a promise that if they are in I will release nice code to do some cool things with them...

o/
If you like MQ2 and would like to contribute, please do. My goal is 25 donations per month.
So far I've received

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.
-
kaz
- a ghoul

- Posts: 103
- Joined: Tue Jan 14, 2003 4:09 am
Post
by kaz » Wed May 21, 2003 6:29 pm
I think your on the same path Plazmic was on.
also there should be a way to programatically send clicks directly to those windows (or cells within them) without sending actual mouse clicks.
AMadMonk used to have a function like this that would click the trade button on npc trade directly by calling the appropriate class method with the appropriate arguments but no *real* mouse click was ever sent.
-
fwiggles
- a hill giant

- Posts: 161
- Joined: Mon Jun 17, 2002 8:29 pm
Post
by fwiggles » Wed May 21, 2003 6:32 pm
EqMule00 wrote:and inventory heck we can even customize our UI from within EQ if we add some functions for it, how cool is that, to have a "what you see is what you get UI-editor" inside of EQ?!!!
my god that would be the coolest ever
[color=red]Latest survey shows that 3 out of 4 people make up 75% of the world's population.[/color]
-
Jaerin
- Developer

- Posts: 133
- Joined: Mon Mar 10, 2003 7:37 pm
-
Contact:
Post
by Jaerin » Wed May 21, 2003 6:50 pm
I can almost guarentee that the window struct is much bigger than that...
I will take a look at it again when I get home tonight.
I know there are pointers to other windows in the struct also. I believe it's setup much like the the spawninfo or charinfo structs.
Jaerin
-
Amadeus
- The Maestro

- Posts: 2036
- Joined: Sat Jun 29, 2002 3:51 pm
Post
by Amadeus » Wed May 21, 2003 6:52 pm
hehe....you just did what I was going to request in your last edit of the original post.
I'll add these and submit them to DKAA when I send him the new EQLib.cpp breakdown tonight.
Do you want to post a code change/addition to the .ini file parser for addition too?
-
EqMule
- Developer

- Posts: 2697
- Joined: Fri Jan 03, 2003 9:57 pm
-
Contact:
Post
by EqMule » Wed May 21, 2003 7:19 pm
Jaerin wrote:I can almost guarentee that the window struct is much bigger than that...
I will take a look at it again when I get home tonight.
I know there are pointers to other windows in the struct also. I believe it's setup much like the the spawninfo or charinfo structs.
Jaerin
heh... yes off course its bigger... but I just posted the most relevant stuff for now, since im only concentrating on opening and closing the windows... however it will be nice to get some help filling in the gaps and the rest of it


o/
If you like MQ2 and would like to contribute, please do. My goal is 25 donations per month.
So far I've received

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.
-
EqMule
- Developer

- Posts: 2697
- Joined: Fri Jan 03, 2003 9:57 pm
-
Contact:
Post
by EqMule » Wed May 21, 2003 7:22 pm
Amadeus wrote:
Do you want to post a code change/addition to the .ini file parser for addition too?
nah lets hold off on that until things settle down a little, Im to excited to start coding right away, just wanna sit down and try things. I will just post some new functions and then DKAA and the other devs can decide if they want to put in this functionallity or if it needs modifying...

o/
If you like MQ2 and would like to contribute, please do. My goal is 25 donations per month.
So far I've received

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.