-
Contributor
8.2.0.31478 Object Manager
I couldn't find much that was shared
0x26bb860: ObjMgr
ObjMgr + 0x18: FirstObj
FirstObj + 0x30: NextObj
FirstObj + 0x70: EntityList in some cases, depends on if first object is a unit/player/active player
Obj + 148: Object Name Cache (not unit names)
(CurObj + ObjNameCache) + 0xE0: Current Object Name
CurObj + 0x10: Object Type
CurObj + 0x48: Object GUID
CurObj + 0x190: X
CurObj + 0x194: Y
CurObj + 0x198: Z
CurObj + 0x19C: R (Or facing, there's a few different things that link to the object position, under those is the object rotation in radians)
(CurObj + 0x120) + 0x1A0: Appears to be the Current Object Creator GUID
(CurObj + 0x120) + 0x24: Appears to be fish on a bobber (byte) or maybe an isanimated flag
0x120 could just be all the flags, I’m unsure as I haven’t looked into it further because I just needed this to make my fishing bot
But I did notice there was a byte that changed based on movement direction from 0 to 8ish, taking into account strafing, which makes me think there’s more in there.
Wow.exe+0x25D0830: Lua Tainted
Wow.exe+0x27849D0: Minimap (Zone) Text
Wow.exe+0x27851A8: Real Zone
Wow.exe+0x2754470: AFK Chat State (byte 0-2?)
(CurObj + 0x120) + 0x408: (Channeling spell id)
(CurObj+0x120) +0x414: (Channeling finish time)
(CurObj+0x120) +0x410: (Channel start time)
(CurObj+0x120) + 0x3B0: Unit Casting Spell ID
(CurObj+0x120) + 0x400: Unit Cast Start time
(CurObj+0x120) + 0x404: Unit Cast End time
CurObj+0x158C: Unit Race
Wow.exe+0x24FF3F0:Targetting pointer
Targeting + 0x30: Current target GUID
Targeting + 0x40: Previous target GUID
Last edited by ChrisIsMe; 09-22-2019 at 12:27 PM.
-
Contributor
Last edited by ChrisIsMe; 09-22-2019 at 12:13 AM.
-
Member
Originally Posted by
ChrisIsMe
I couldn't find much that was shared
0x26bb860: ObjMgr
ObjMgr + 0x18: FirstObj
FirstObj + 0x30: NextObj
FirstObj + 0x70: EntityList in some cases, depends on if first object is a unit/player/active player
Obj + 148: Object Name Cache (not unit names)
(CurObj + ObjNameCache) + 0xE0: Current Object Name
CurObj + 0x10: Object Type
CurObj + 0x48: Object GUID
CurObj + 0x190: X
CurObj + 0x194: Y
CurObj + 0x198: Z
CurObj + 0x19C: R (Or facing, there's a few different things that link to the object position, under those is the object rotation in radians)
I haven't found the descriptors or animation flags yet, but getting close
i got these values for X,Y,Z,R by assuming that they are float type:
x: -10639.7, y: 1186.18, z: 34.1422, r: 5.99799
The value of R changes according to my rotation from 0-6.28.. which seems correct. North is 0, and the value increases when i turn counter-clockwise until a complete circle where it reaches 6.28 and is reset to 0.
The value of X,Y,Z changes when i move the player but the values seem illogical as indicated in my e.x. above. How should we interpret the X,Y,Z ?
-
Contributor
Originally Posted by
SailorMars
i got these values for X,Y,Z,R by assuming that they are float type:
x: -10639.7, y: 1186.18, z: 34.1422, r: 5.99799
The value of R changes according to my rotation from 0-6.28.. which seems correct. North is 0, and the value increases when i turn counter-clockwise until a complete circle where it reaches 6.28 and is reset to 0.
The value of X,Y,Z changes when i move the player but the values seem illogical as indicated in my e.x. above. How should we interpret the X,Y,Z ?
Those seem like normal XYZ values.
You can also look at
Object+0x150 which is also the objects coordinates.
-
Member
Originally Posted by
ChrisIsMe
Those seem like normal XYZ values.
You can also look at
Object+0x150 which is also the objects coordinates.
How should we interpret these X,Y,Z values? I'm using tomtom to display the coordinate in the current zone which is different from them. Obviously, these values are relative to something else. How do we convert these values to the coordinate displayed by tomtom for the current zone.
-
Contributor
Originally Posted by
SailorMars
How should we interpret these X,Y,Z values? I'm using tomtom to display the coordinate in the current zone which is different from them. Obviously, these values are relative to something else. How do we convert these values to the coordinate displayed by tomtom for the current zone.
Those coordinates are from the minimap afaik. I’m not sure you can convert world to those, but it’s maybe possible. Have fun with math (: or look at the lua in ida, or question why you’d choose those coordinates over the exact world coordinates.
-
TomTom (and other addons) use the C_Map.GetPlayerMapPosition API and multiply the coordinates by 100. WoW provides an API to convert map coordinates + map id to world coordinates, see C_Map.GetWorldPosFromMapPos.
Keep in mind, those APIs only work outsides instances. They return 0,0 otherwise.
"Threads should always commit suicide - they should never be murdered" - DirectX SDK
-
Member
Any idea where is the descriptor . In this example, wowobjectdescriptorfields=0 is used, but i doubt if it is correct.
https://www.ownedcore.com/forums/wor...ml#post4060495 (Cheat Engine - Object Manager Script (For Newbies))
-
-
Member
It seems to me that in 8.2.0.31478, the hp is directly a field of the unit object. My test result:
1. scan for hp yields 2 addresses close to each other, i cannot tell which is the real one
0x19a7face488
0x19a7face698
2. player base is
0x19a7facd100
So , the hp is at either 1 of these offsets of the player object directly, no more descriptor structure:
19a7face488-19a7facd100= 1388
19a7face698-19a7facd100= 1598
As suggested here
https://www.ownedcore.com/forums/wor...ml#post4053770 ([WoW] 8.2.0.31229)
I remember i did come across a post saying classic is based off 8.0.x source code which is still using the descriptor to hold the health value.
Last edited by SailorMars; 09-23-2019 at 09:12 AM.
-
Contributor
Originally Posted by
SailorMars
It seems to me that in 8.2.0.31478, the hp is directly a field of the unit object. My test result:
1. scan for hp yields 2 addresses close to each other, i cannot tell which is the real one
0x19a7face488
0x19a7face698
2. player base is
0x19a7facd100
So , the hp is at either 1 of these offsets of the player object directly, no more descriptor structure:
19a7face488-19a7facd100= 1388
19a7face698-19a7facd100= 1598
As suggested here
https://www.ownedcore.com/forums/wor...ml#post4053770 ([WoW] 8.2.0.31229)
I remember i did come across a post saying classic is based off 8.0.x source code which is still using the descriptor to hold the health value.
Unit+0x1598 Health
Unit+0x15A0 Max Health
Unit+0x120 + 0x1488 //Level
Unit+0x158C: Unit Race
You can also fnid the health and such inside of 0x120
Last edited by ChrisIsMe; 09-23-2019 at 11:19 AM.
-
Descriptor fields use to be in separate memory chunks hence the need for the descriptor offset which was the pointer to the chunk(s), there were actually a couple of pointers but the main one was the descriptor pointer.
Now all descriptor fields are contiguous with the main object, so one memory chunk, and no need for pointer. There might be offset pointers to section within in the ONE memory chunk, not really sure. I just use base object address plus an offset. Looking through lua routines they all seem to use this address method.
Last edited by counted; 09-23-2019 at 03:10 PM.
-
Contributor
Originally Posted by
counted
Descriptor fields use to be in separate memory chunks hence the need for the descriptor offset which was the pointer to the chunk(s), there were actually a couple of pointers but the main one was the descriptor pointer.
Now all descriptor fields are contiguous with the main object, so one memory chunk, and no need for pointer. There might be offset pointers to section within in the ONE memory chunk, not really sure. I just use base object address plus an offset. Looking through lua routines they all seem to use this address method.
Ya, I've found that 0x120 seems to contain a few things that I haven't been able to find in the main object structure, and then most other things are just in the main object structure it's self.
Last edited by ChrisIsMe; 09-23-2019 at 06:52 PM.
-
Member
can u describe what method did u use to find object manager on Wow 8.2.0 because i playing in a private server and obj adress not the same ?
-
Contributor
Originally Posted by
jmanji
can u describe what method did u use to find object manager on Wow 8.2.0 because i playing in a private server and obj adress not the same ?
use the search function
https://www.ownedcore.com/forums/wor...ctmanager.html ([HELP] Find 64bit objectmanager)
-
Post Thanks / Like - 1 Thanks
ChrisIsMe (1 members gave Thanks to maikel233 for this useful post)