Hello, first i would like to thank you guys for lots of usefull information here in ownedcore forums.
I hope my question also gives some information to those who seek.
Im trying to understand the consept of object manager, static client connection address, offsets in general.
I will try to ask my question using an example, maxHP value.
I've searched and found a static pointer that points the address which holds my maxHP value in it.
As seen in CheatEngine screen shot below I found the static pointer Wow.exe + A42620.
When i add 0xC and then 0x80 which is "0x20 * 4" which i believe maxHP offset, it points to address that holds my maxHP value.
And this A42620 never changes. So everytime i boot the game i can get my maxHP value by,
Code:
BlackMagic wow = new BlackMagic();
wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft"));
IntPtr BaseWoW = wow.MainModule.BaseAddress;
uint playerBase = (uint)BaseWoW + 0xA42620;
uint DiscriptorFields = wow.ReadUInt(wow.ReadUInt(playerBase) + 0xC);
int MAXHP = wow.ReadInt(DiscriptorFields + (0x20 * 4));
maxHPLabel.Text = MAXHP.ToString();
That BaseWoW variable holds the "Wow.exe+" seen in cheat engine, in this case BaseWoW = 0x1A8.
So my question is, is the playerBase variable abow actually our local player's base address?
And is DiscriptorFields variable actually discriptor fields?
And if so, since i've found the player base static pointer can i track it back to static client connection and how i should i look into it?
And look for objectManager offsets etc?
Thanks for reading.