-
Member
Has there been CTM struct changes since Legion?
I see offsets for CTM name, offset, and trigger, I'm just guessing around looking for some guidance.
Code:
import pymem
pm = pymem.Pymem('Wow.exe')
base = pm.process_base.lpBaseOfDll
ctm = base + 0x26E1ED0 // 8.1 ctm pointer
ctm_trigger = base + 0x25E5A2C // 8.1 ctm trigger
def move(x, y, z):
pm.write_float(ctm + 0x28, x)
pm.write_float(ctm + 0x2C, y)
pm.write_float(ctm + 0x30, z)
pm.write_int(ctm_trigger, 0x5)
move(8000.0, 8000.0, 0.0)
edit: I thought I had it working, but it was just the CTM trigger sending the last click
Last edited by taladork; 12-18-2018 at 11:08 PM.
-
It has been talked about multiple times, the short answer is that it's encrypted.
-
Originally Posted by
DarkLinux
It has been talked about multiple times, the short answer is that it's encrypted.
Hey, looking back at some of your previous comments (from [8.0.1.27144] thread) you mention the fact you can still call ClickToMove or its wrapper.
Is this still the case, or is it now required that this encryption be reversed / bypassed in order to use CTM.
-
Member
Originally Posted by
sendeos23
Hey, looking back at some of your previous comments (from [8.0.1.27144] thread) you mention the fact you can still call ClickToMove or its wrapper.
Is this still the case, or is it now required that this encryption be reversed / bypassed in order to use CTM.
you can call the "push" for it, but can no longer just write the x,y,z values. For example, you can click somewhere, and then if you call the CTM trigger it will go to the last clicked position.
-
Originally Posted by
taladork
you can call the "push" for it, but can no longer just write the x,y,z values. For example, you can click somewhere, and then if you call the CTM trigger it will go to the last clicked position.
yeah I saw this working too
I have resorted to writing my own movement system...
So far have MoveToDestination(x,y,z) working but having issues with rotation/pitch updates as changing these on the client don't get automatically sent to the server.
character ends up moon walking if the destination changes while moving (player faces new destination but is running in original direction).
trying to find some info on how to use CMovement_C__UpdatePlayerMovement to send these rotation updates + what flags to use.
-
Originally Posted by
sendeos23
yeah I saw this working too
I have resorted to writing my own movement system...
So far have MoveToDestination(x,y,z) working but having issues with rotation/pitch updates as changing these on the client don't get automatically sent to the server.
character ends up moon walking if the destination changes while moving (player faces new destination but is running in original direction).
trying to find some info on how to use CMovement_C__UpdatePlayerMovement to send these rotation updates + what flags to use.
Do you have the actual ClickToMove offset? It can be called directly if you spoof the ret / opcode checks still.
-
Post Thanks / Like - 1 Thanks
sendeos23 (1 members gave Thanks to lolp1 for this useful post)
-
Originally Posted by
lolp1
Do you have the actual ClickToMove offset? It can be called directly if you spoof the ret / opcode checks still.
Yeah i have the offset, I would do that If I knew a) the expected parameters b) how to actually spoof the op codes and return address. I could probably work out the expected parameters but i'm still relatively new to reversing / game hacking and i reckon (b) is still a bit beyond my skill level.
But thank you, I will keep that in mind if I get stuck with my custom movement implementation.
Update from my previous post :
I managed to fix my update rotation issue , my custom movement system is working quite nicely
Next, a navigation system...
Update :
@lolp1 so after some reading I think I have found some code to spoof the return address (first thing I googled - a tut on another forum where you have left a comment )
Will give this a go using the below typedef:
typedef bool(FASTCALL *p_CGPlayer_C__ClickToMove) (PVOID _this, __int32 clickType, WoWGUID* interactGuid, xyz* pos)
Last edited by sendeos23; 01-02-2019 at 02:05 PM.
-
Thanks lolp1 - got my CTM working using method you mentioned.