-
Active Member
[Classic] 1.13.4.34219
In an attempt to be of slight use to this forum (and since there are probably more people like me who are trying to get a foothold in Classic), here are some offsets I'm currently playing with:
s_curMgr = 0x236bd18
firstObject = 0x1e8
nextObject = 0x70
local player guid seems to be at s_curMgr + 0x208
GetBaseFromToken is at 0x1110350 (see here (Offsets for 1.13.3.33526))
Last edited by badusername1234; 04-30-2020 at 03:12 PM.
-
Post Thanks / Like - 1 Thanks
awwe (1 members gave Thanks to badusername1234 for this useful post)
-
Active Member
Can someone confirm that 0x033bf20 is a GetMatrix function? I'm trying to find CGGameObject_C_GetMatrix() to hopefully transform collision meshes to world space and have found some matrix methods in the CGGameObject vtable but the transformations have slightly-off rotation for some reason. Scale seems right though...
Edit: Im dumb, the specific matrix I need is just stored in the object
Last edited by badusername1234; 05-04-2020 at 03:52 PM.
-
Member
Can you give s_curMgr offset for 1.13.4.34266?
-
Active Member
Originally Posted by
ddkr
Can you give s_curMgr offset for 1.13.4.34266?
it's 0x2372D48
-
Member
Originally Posted by
badusername1234
In an attempt to be of slight use to this forum (and since there are probably more people like me who are trying to get a foothold in Classic), here are some offsets I'm currently playing with:
s_curMgr = 0x236bd18
firstObject = 0x1e8
nextObject = 0x70
local player guid seems to be at s_curMgr + 0x208
GetBaseFromToken is at 0x1110350 (see
here (Offsets for 1.13.3.33526))
How did you get the offset for firstObject and player guid? Is the guid 64-bit or 128-bit?
I just tried with CE but it seems s_curMgr +firstObject == 0...
Also do you know what's the data structure of an object in classic? I just want to enumerate all objects and find local player, and get the xyz coordinates...
Lastly, would you able to find the offsets for the CTM struct, or the CTM function offset?
Second day here and so confused as a lot info here is outdated! Thanks in advance!
Thanks in advance!
-
Member
Originally Posted by
qpwo1029
How did you get the offset for firstObject and player guid? Is the guid 64-bit or 128-bit?
I just tried with CE but it seems s_curMgr +firstObject == 0...
Also do you know what's the data structure of an object in classic? I just want to enumerate all objects and find local player, and get the xyz coordinates...
Lastly, would you able to find the offsets for the CTM struct, or the CTM function offset?
Second day here and so confused as a lot info here is outdated! Thanks in advance!
Thanks in advance!
128
What version of CE can be used?
-
Active Member
Originally Posted by
qpwo1029
How did you get the offset for firstObject and player guid? Is the guid 64-bit or 128-bit?
I just tried with CE but it seems s_curMgr +firstObject == 0...
Also do you know what's the data structure of an object in classic? I just want to enumerate all objects and find local player, and get the xyz coordinates...
Lastly, would you able to find the offsets for the CTM struct, or the CTM function offset?
Second day here and so confused as a lot info here is outdated! Thanks in advance!
Thanks in advance!
I opened it in ghidra and then used my eyes... There's a function that iterates the object manager which you can find them from. Info regarding the object manager/object structure isn't outdated, the changes are minor.
The way I tend to find things for the first time is to find a reference to an object (via the object manager) which you can then use to perform scans that are pretty much guaranteed to lie within that object's memory (depending on how far you scan). Things like position are then very easy to get. You also get vtable references in there which will literally hand you lists of relevant functions to poke at.
Some stuff is indeed outdated here but the idea behind how things work is generally the same - when you see that something works differently to how it's described, you can be fairly certain that it has a similar responsibility/goal and that gives you a head start in figuring out what's going on.
I'm not giving out CTM offsets for a few reasons:
- I don't have them because I don't use it
- just to spite the guy who keeps spam asking for CTM offsets
- CTM is buttsauce
-
Contributor
Originally Posted by
badusername1234
Can someone confirm that 0x033bf20 is a GetMatrix function? I'm trying to find CGGameObject_C_GetMatrix() to hopefully transform collision meshes to world space and have found some matrix methods in the CGGameObject vtable but the transformations have slightly-off rotation for some reason. Scale seems right though...
Edit: Im dumb, the specific matrix I need is just stored in the object
I have it at 0x480 in classic. It may have changed i have not checked it recently. I found it by looking at the Vtables around rotation/position.
-
Active Member
Yeah I found it when I made my edit.. I found it by watching the memory of the elevators in thunderbluff since they move, that made it quite easy to track down
-
Member
Originally Posted by
badusername1234
I opened it in ghidra and then used my eyes... There's a function that iterates the object manager which you can find them from. Info regarding the object manager/object structure isn't outdated, the changes are minor.
The way I tend to find things for the first time is to find a reference to an object (via the object manager) which you can then use to perform scans that are pretty much guaranteed to lie within that object's memory (depending on how far you scan). Things like position are then very easy to get. You also get vtable references in there which will literally hand you lists of relevant functions to poke at.
Some stuff is indeed outdated here but the idea behind how things work is generally the same - when you see that something works differently to how it's described, you can be fairly certain that it has a similar responsibility/goal and that gives you a head start in figuring out what's going on.
I'm not giving out CTM offsets for a few reasons:
- I don't have them because I don't use it
- just to spite the guy who keeps spam asking for CTM offsets
- CTM is buttsauce
Yes You knew the guy will post a spam post asking CTM two weeks later.
But you dosen't know the guy has no interest in classic CTM.
It does n’t make sense to say this, please be kind
Last edited by Lvv; 05-19-2020 at 10:46 AM.