May 15th 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 15th Offsets

Post by Jaerin » Thu May 15, 2003 10:00 am

So help me if any of these are wrong I will eat a shoe.

No really if any of these are wrong then they were wrong on the April 30th.

***It appears that Memchecker1 has changed. 2 and 3 appear to be the same***

Code: Select all

[MacroQuest]
MacroQuestVersion=SRC-20030308
ClientName=eqgame
ClientVersion=Thu May 15 02:59:xx 2003
ClientOverride=0
MacroQuestWinClassName=__MacroQuestTray
MacroQuestWinName=MacroQuest

[Function Locations]
WriteChatColor=004E2779
GetRaceByID=004D7F4B
GetClassByID=004D78F6
GetDeityByID=004D93ED
LeftClick=0
RightClick=0
ScreenItem=0045DBC5
ScreenSpawn=004EC092
NewUIINI=00447FFA
MaxMana=00465E04
Commands=004EB1D8
CmdCleanup=0
MemChecker=004FB60C
MemChecker2=004FF0B4
MemCheckAddr1=004FF122
MemCheckAddr2=004FF15A
MemChecker3=004FC509

[DirectInput8]
Main=0077A7E4
Keyboard=0077A7E8
Mouse=0077A7EC

[Memory Locations]
Zoning=007600B8
Zones=007600D4
SpawnHeader=007600D8
Items=007600DC
Doors=007600F4
SpawnFooter=00760100
Char=00760114
CharInfo=0076011C
Target=00760120
Guilds=006F440C
Packs=0
OldAttack=0075DB32
Mouse=0077A980
Attack=00731FC8
Spells=0076D880
CommandList=005AEEC0
DoAbilityList=00736CE8
DoAbilityAvailable=00731F64
Group=006B010D
GroupCount=006B0108
HSliderItems=0
HSliderMoney=0
PackPanel1=0
PackPanel2=0
clsMain=0
clsItems=00760144
clsSpawns=007600C8
clsInvPanel=0
clsMerchantPanelStatus=0
clsMerchantItemBase=0
clsMerchantSelectedItem=0
clsMerchantSelectedSlotID=0
clsMainNewUI=0077A980
clsMainSpellRefresh=0
clsMainSpellMemId=0
clsMainSpellMemBar=0
clsMainSpellMemGem=0

EncryptPad=005C9130
EncryptPad2=005C9554
EncryptPad3=005C9D80

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Thu May 15, 2003 10:39 am

So are you saying mecheck1 needs a rewrite?

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

Post by sprite » Thu May 15, 2003 10:43 am

Do not run MQ till Memcheck 1 has been rewritten.

Verant seems determined to do some bannings now. An invalid checksum in memcheck 1 will not cause a disconnection. Which means in all likelyness it is being logged instead.

You can test this yourself by removing the entire memcheck1 detour. It won't have any effect. The memcheck is being ran, but is not disconnecting, therefore it must be logged instead.

You have been warned.

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Thu May 15, 2003 4:49 pm

You forgot the offset for ServerHost in Memory Locations.... :D

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

Post by Jaerin » Thu May 15, 2003 4:52 pm

That one is not in CVS so I haven't updated it.

I pulled the original eqgame.ini from the April 30th version since it seemed there was question on whether my last offsets were off.

Jaerin

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

Post by EqMule » Thu May 15, 2003 5:07 pm

Code: Select all

clsMain=00760100
clsInvPanel=00002CB8
getting the rest as well...
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.

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Thu May 15, 2003 6:57 pm

ServerHost=006FC75C

Will need that one eventually (I hope, crossing fingers...)

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

Post by NealThorpayt » Thu May 15, 2003 7:03 pm

Greetings Constructs,

EQMule, How were you able to find the offset for clsMain when it was generally believed to have been removed?

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

|| Napolion ||
a ghoul
a ghoul
Posts: 96
Joined: Sat Dec 28, 2002 7:45 am

Post by || Napolion || » Thu May 15, 2003 8:01 pm

sprite wrote:Do not run MQ till Memcheck 1 has been rewritten.

Verant seems determined to do some bannings now. An invalid checksum in memcheck 1 will not cause a disconnection. Which means in all likelyness it is being logged instead.

You can test this yourself by removing the entire memcheck1 detour. It won't have any effect. The memcheck is being ran, but is not disconnecting, therefore it must be logged instead.

You have been warned.
Are you sure about this ?? :roll:

I am out of here.
|| Napolion ||

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 8:22 pm

Same source code, different compiler options. Looks different but does the same thing.

It is safe.

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

Post by Amadeus » Thu May 15, 2003 8:31 pm

My question is what is clsmain, and what makes it important? Also, how could you tell that 00002cb8 was definately the the clsinvpanel. It looks more like clsmain+clsinvpanel should be another offset itself rather than relating one to the other....in my stack it looks like there are other structs between clsmain and clsmain+clsinvpanel as it is given now.

Maybe I'm missing something; however, it looks to me like clsmain is a struct of only 0x30 bytes as 0x31 looks like part of the spawnlist struct in my stack.

I think it's weird how CLSMAIN and CLSINVPANEL and all those like it are used in the source....seems awkward....

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Thu May 15, 2003 8:37 pm

A lot of the EQ code looks awkward. My guess is it was written by seperate teams, then simply tacked together rather than looking for ways to share code, optimize, etc. Piecemeal organization, resulting in a lot of redundancy.

Kinda like MQ if you think about it....

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

Post by sprite » Thu May 15, 2003 9:36 pm

Yeah Memcheck 1 is safe, seems like they are using dwords instead of bytes to hold the keys, or I could be wrong about this too /shrug.

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

Post by zedisdeadbaby » Fri May 16, 2003 2:16 am

/mouseto is crashing me with these offsets :cry:

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

Post by Amadeus » Fri May 16, 2003 3:41 am

clsMain=00760100
clsInvPanel=00002CB8

getting the rest as well...
I don't think this is right. Offset 00760100 is actually SPAWNINFO for the current character.

Notice:

Code: Select all

0:010> dd 0076011C L 1      //0076011C is the current CHARINFO offset
0076011c  05943470

0:010> dd 05943470+0x16e0 L 1    //0x16e0 is the current offset of pSpawn in CHARINFO
05944b50  [b]0611f488[/b]

Code: Select all

0:010> dd 00760100 L 1     //00760100: offset recently presented as clsmain
00760100  [b]0611f488[/b]

Thus:

Code: Select all

0:010> !c:\games\macroquest\mqext\release\mqext.pspawn 0611f488

Name = Amadeus (offset 0x1)    // yea right...hehe
SpeedZ = -0.625504 (offset 0x48)
Heading = 257.318176 (offset 0x4c)
X = -1898.431885 (offset 0x50)
SpeedX = -1.941145 (offset 0x54)
Y = -689.787903 (offset 0x58)
Z = 81.762253 (offset 0x5c)
SpeedRun = 0.910000 (offset 0x64)
SpeedY = -0.023823 (offset 0x68)
SpeedHeading = 0.000000 (offset 0x70)
CameraAngle = 0.000000 (offset 0x74)
pActorInfo = 97647944 (offset 0x84)
LFG = 0 (offset 0x8f)
Zone = 33 (offset 0xdc)
pNext = 0 (offset 0xe4)
pCharInfo = 93598832 (offset 0xe8)
pPrev = 672172416 (offset 0xf0)
Lastname =  (offset 0xf8)
Type = 0 (offset 0x134)
Light = 12 (offset 0x135)
Level = 65 (offset 0x13c)
Gender = 0 (offset 0x13e)
HideMode = 1 (offset 0x140)
StandState = 100 (offset 0x141)
Class = 6 (offset 0x142)
GM = 0 (offset 0x146)
SpawnID = 2134 (offset 0x148)
MasterID = 0 (offset 0x14c)
Race = 4 (offset 0x150)
Anon = 2 (offset 0x154)
AARank = 0 (offset 0x158)
AFK = 0 (offset 0x15c)
VisType = 1 (offset 0x160)
HPCurrent = 2697 (offset 0x164)
Deity = 215 (offset 0x170)
HPMax = 2697 (offset 0x174)
GuildID = 80 (offset 0x178)

Maybe clsmain is supposed to be the current char's spawninfo. Again, I never really understood it's purpose. But, one could get it without a seperate entry in eqgame.ini if that were the case.

The other interesting thing of note is that I thought perhaps if this offset pointed to the current char's spawninfo, then maybe our offset for char= was wrong...but, nope.

Code: Select all

0:010> dd 00760100 L 8
00760100  [b]0611f488[/b] 00000000  00000000 00000000
00760110  00000000  [b]0611f488[/b] 00000000 05943470

So...hmm...dunno what to tell ya