May 14th 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

Jaerin
Developer
Developer
Posts: 133
Joined: Mon Mar 10, 2003 7:37 pm
Contact:

May 14th Offsets

Post by Jaerin » Wed May 14, 2003 9:23 am

Update: 8:12pm fixed Guilds

*Untested and Unverified*

****Current memcheckers look the same

Code: Select all

[MacroQuest]
MacroQuestVersion=SRC-20030308
ClientName=eqgame
ClientVersion=Wed May 14 03:16:xx 2003
ClientOverride=0
MacroQuestWinClassName=__MacroQuestTray
MacroQuestWinName=MacroQuest

[Function Locations]
WriteChatColor=004E26F5
GetRaceByID=004D7EC7
GetClassByID=004D7872
GetDeityByID=004D9369
LeftClick=0
RightClick=0
ScreenItem=0045DB16
ScreenSpawn=004EC00C
NewUIINI=00448021
MaxMana=00465D55
Commands=004EB151
CmdCleanup=0
MemChecker=004FB3D1
MemChecker2=004FEC01
MemCheckAddr1=004FEC6F
MemCheckAddr2=004FECA7
MemChecker3=004FC056

[DirectInput8]
Main=0077A7F4
Keyboard=0077A7F8
Mouse=0077A7FC

[Memory Locations]
Zoning=007600C8
Zones=007600E4
SpawnHeader=007600E8
Items=007600EC
Doors=00760104
SpawnFooter=00760110
Char=00760124
CharInfo=0076012C
Target=00760130
Guilds=006F441C
Packs=0
OldAttack=0075DB40
Mouse=0077A800
Attack=00731FD8
Spells=0076D890
CommandList=005AEED0
DoAbilityList=00427BAA
DoAbilityAvailable=00731F74
Group=006B0260
GroupCount=006B0118
HSliderItems=0
HSliderMoney=0
PackPanel1=0
PackPanel2=0
clsMain=0
clsItems=00760154
clsSpawns=007600D8
clsInvPanel=0
clsMerchantPanelStatus=0
clsMerchantItemBase=0
clsMerchantSelectedItem=0
clsMerchantSelectedSlotID=0
clsMainNewUI=0077A990
clsMainSpellRefresh=0
clsMainSpellMemId=0
clsMainSpellMemBar=0
clsMainSpellMemGem=0

EncryptPad=005C9140
EncryptPad2=005C9D90
EncryptPad3=005C9564
Last edited by Jaerin on Wed May 14, 2003 9:13 pm, edited 1 time in total.

desnts
RTFM, then ask again
Posts: 58
Joined: Wed Apr 30, 2003 4:40 pm

Post by desnts » Wed May 14, 2003 6:48 pm

wont allow me to log on. get to char select hit enter and it sits and sits and sits.

anyone else getting this?

also if u start it after eq is loaded, the mouse doesnt work and cant cast spells. defenitly something going on here.

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

Post by Amadeus » Wed May 14, 2003 7:04 pm

It all seems to work for me :)

However, Guilds should be 006F441C ...not tested yet, but that should fix the first letter of the guild name in /who being cut off.

NealThorpayt
Developer
Developer
Posts: 66
Joined: Thu Mar 13, 2003 2:14 pm
Location: Miskatonic University
Contact:

Post by NealThorpayt » Wed May 14, 2003 7:16 pm

Greetings Constructs,

I too have the situation where these offsets cause me to hang after selecting a character and trying to enter the game.

I'll look into the offsets.

End of line...
By the pricking of my thumb, something wicked this way comes...

desnts
RTFM, then ask again
Posts: 58
Joined: Wed Apr 30, 2003 4:40 pm

Post by desnts » Wed May 14, 2003 7:20 pm

works fine for me now with the offset from amadeus with 1 char and him already loaded

i normally run eqw so i run 2 chars with these offsets cant run both it crashes one of them also still cant load a char with mq running, have to start mq after char is in the game

hope this helps as i know nothing about the offsets

sprite
a lesser mummy
a lesser mummy
Posts: 51
Joined: Tue Apr 15, 2003 8:42 am

Post by sprite » Wed May 14, 2003 7:53 pm

Some of these offsets are wrong. If none have posted corrections by tomorrow I will post some.

/doability crashes EQ.

Jay
a lesser mummy
a lesser mummy
Posts: 59
Joined: Tue Jan 28, 2003 11:37 am

Post by Jay » Wed May 14, 2003 8:11 pm

The offsets as given above crashed a crash and hang for me when loaded AFTER char... Did not test otherwise.

MegaHertz
a lesser mummy
a lesser mummy
Posts: 35
Joined: Mon Dec 16, 2002 5:13 pm

Post by MegaHertz » Wed May 14, 2003 8:23 pm

Download the latest cvs of macroquest then recompile and thees offset's will work. noting that the guild was wrong and someone posted the correct here. I also got 2 build errors with the latest cvs but the exe compiles and seems to run fine. if i have any problems I will post them.

Draekz
a hill giant
a hill giant
Posts: 263
Joined: Thu Aug 01, 2002 6:07 pm
Location: Winnipeg, Manitoba, Canada

Post by Draekz » Wed May 14, 2003 8:39 pm

woot i was working on finding offsets, and now realize how easy it is (time consuming) but simple :)

All the ones i changed so far were right except

Code: Select all

GetRaceByID=004D7BC5
Not sure why i got a diff number tho but *shrugs* oh well!

Take it easy all ;)

Draekz

EDIT: quick question tho! I was wondering, I notice a few spots without a code in it..any particular reason there isnt one? I suppose its why left and right click dont work? Also, if u found the code for those, is thats all whats needed? Or is it just that MQ isnt programmed efficiently to use those with the new way the UI works?

Thanks for any responses! Just curious

Draekz

Clawed
a ghoul
a ghoul
Posts: 105
Joined: Mon Jan 20, 2003 6:17 am

Post by Clawed » Wed May 14, 2003 9:00 pm

You can't find offsets for those blank ones, because they don't exist. EverQuest's client functionality has changed such that a lot of MQ code must be redeveloped to work with it. Someone just needs to go in and remove all code referencing those bad offsets, and then remove them from the INI file.
Clawed

Shocks
a ghoul
a ghoul
Posts: 101
Joined: Tue Feb 18, 2003 3:26 pm
Contact:

For those with eq just hanging.

Post by Shocks » Wed May 14, 2003 10:00 pm

If you are having the problem where you try to log into the world and hang and hang. You are not compiled with the newist files. I went to the cvs file section downlaoded eqlib.cpp and mq.h then recompiled. I logged in just fine.


Now for another issue. I have the new offfsets. They seem to mostly work only problem Im having is when my macro /call melee it crashes me to my desktop.

Shocks
a ghoul
a ghoul
Posts: 101
Joined: Tue Feb 18, 2003 3:26 pm
Contact:

DoAbility

Post by Shocks » Wed May 14, 2003 10:22 pm

It seems the DoAbility part of the fight.mac is causing my crash to desktop.

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

Post by Amadeus » Wed May 14, 2003 11:17 pm

ok..the proper offset should be:

Code: Select all

DoAbilityList=00736cf8
I should point out, for prosperity's sake, that DoAbilityList-0x08 is the MeleeAttack type, and DoAbilityList-0x04 is the RangeAttack type (though, if you have something that is not an 'attack' type item in either of these slots, you get a weird result here (ie, I have a Valorian Insignia in my range and got an "8" value there..shrug)


Also, VOID DoAbility should be modified as follows. I put in a few qualifiers that should help with crashes in the future when offsets are incorrect. If you're wondering 0x77FFFFFF would be 119, which is the highest skill # listed in skills.h at this point. (Note: New code is in bold)

Code: Select all

// ***************************************************************************
// Function:    DoAbility
// Description: Our '/doability' command
//              Selects the closest spawn
// Usage:       /doability [list|ability|#]
// ***************************************************************************
VOID DoAbility(PSPAWNINFO pChar, PCHAR szLine)
{
	if (!cmdDoAbility) return;

	if (szLine[0]==0 || atoi(szLine) || !EQADDR_DOABILITYLIST) {
		cmdDoAbility(pChar,szLine);
		return;
	}

	DWORD Index, DoIndex = 0xFFFFFFFF;
	CHAR szBuffer[MAX_STRING] = {0};

	GetArg(szBuffer,szLine,1);

	if (!stricmp(szBuffer,"list")) {
		WriteChatColor("Abilities:",USERCOLOR_DEFAULT);
		for (Index=4;Index<10;Index++) {
			[b]if (EQADDR_DOABILITYLIST[Index] > 0x77FFFFFF) {
				sprintf(szBuffer,"%d. **MQ ERROR: DoAbilityList offset most likely incorrect.**", Index-3 );
			} else[/b] if (EQADDR_DOABILITYLIST[Index]==0xFFFFFFFF) {
				sprintf(szBuffer,"%d. <Empty>",Index-3);
			} else if (szSkills[EQADDR_DOABILITYLIST[Index]]) {
				sprintf(szBuffer,"%d. %s",Index-3,szSkills[EQADDR_DOABILITYLIST[Index]]);
			} else {
				sprintf(szBuffer,"%d. *Unknown%d",Index-3,EQADDR_DOABILITYLIST[Index]);
			}
			WriteChatColor(szBuffer,USERCOLOR_DEFAULT);
		}
		WriteChatColor("Combat Skills:",USERCOLOR_DEFAULT);
		for (Index=0;Index<4;Index++) {
			[b]if (EQADDR_DOABILITYLIST[Index] > 0x77FFFFFF) {
				sprintf(szBuffer,"%d. **MQ ERROR: DoAbilityList offset most likely incorrect.**", Index+7 );
			} else [/b]if (EQADDR_DOABILITYLIST[Index]==0xFFFFFFFF) {
				sprintf(szBuffer,"%d. <Empty>",Index+7);
			} else if (szSkills[EQADDR_DOABILITYLIST[Index]]) {
				sprintf(szBuffer,"%d. %s",Index+7,szSkills[EQADDR_DOABILITYLIST[Index]]);
			} else {
				sprintf(szBuffer,"%d. *Unknown%d",Index+7,EQADDR_DOABILITYLIST[Index]);
			}
			WriteChatColor(szBuffer,USERCOLOR_DEFAULT);
		}
		return;
	}


	for (Index=0;Index<10;Index++) {
		if (EQADDR_DOABILITYLIST[Index]!= 0xFFFFFFFF [b]&& EQADDR_DOABILITYLIST[Index] <= 0x77FFFFFF[/b]) {
			if (!strnicmp(szBuffer,szSkills[EQADDR_DOABILITYLIST[Index]],strlen(szSkills[EQADDR_DOABILITYLIST[Index]]))) {
				if (Index<4) {
					DoIndex = Index+7; // 0-3 = Combat abilities (7-10)
				} else {
					DoIndex = Index-3; // 4-9 = Abilities (1-6)
				}
			}
		}
	}

	
	if (DoIndex!=0xFFFFFFFF [b]&& DoIndex <= 0x77FFFFFF[/b]) {
		cmdDoAbility(pChar,itoa(DoIndex,szBuffer,10));
	} else {
		WriteChatBuffer("You do not seem to have that ability on a /doability button",USERCOLOR_DEFAULT);
	}
}
DKAA: please indicate you got this last bit of code. I'll send patches of eqgame.ini and MQ.h eventually, but you don't want to see a patch of my EQLib.cpp ..haha ;)


OK! ..what's next? :)

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

Post by Amadeus » Wed May 14, 2003 11:25 pm

woot i was working on finding offsets, and now realize how easy it is (time consuming) but simple

All the ones i changed so far were right except
Code:

GetRaceByID=004D7BC5



Not sure why i got a diff number tho but *shrugs* oh well!
I'm afraid I have to go with the offset that's posted initially in this thread(GetRaceByID=004D7EC7). I only say that because the results from that offset with the results from the previous offset on a memory dump from the other day are more similar. I havn't tested either though in game ;)

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 May 15, 2003 3:27 am

Do these changes reflect a change in the way the abilities are stored?

I'd rather not add runtime checks for offset validity. If you want to add checks, put them in when the ini file is loaded.

That way my laggy old machine can keep up.