WOOHOO!! guess what I found...

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

Moderator: MacroQuest Developers

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

WOOHOO!! guess what I found...

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

Jaerin
Developer
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
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

Post by Amadeus » Wed May 21, 2003 5:45 pm

What about:

Code: Select all

Panel_Inventory=005e0940 
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
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?!!!
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.

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

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

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

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