-
Contributor
Click to move changed?
Once again, before last patch, click to move was done like this:
write xyz, write CTM_WALK (4) then it walks to the coordinates written before, but now after some hair pulling i now see that CTM XYZ is like the "current coordinates" of the path to the clicked target, and changing them does nothing, they just change back, the status still works as intended though
Code:
CTM_Base = wow.exe + 0xE47AD0
CTM_Push = CTM_Base + 0x1c //status
CTM_X = CTM_Base + 0x7c
CTM_Y = CTM_X + 0x4
CTM_Z = CTM_X + 0x8
-
Legendary
Unless i'm mistaken, 0xE47B58 is where xyz supposed to be.
-
Contributor
The addresses are fine, but u cannot write to them anymore, if you click somewhere and check the values, you will see they are like "current coordinates" all the way to the right clicked target on the ground.
-
Legendary
There's 2 sets of coordinates: current and destination. The ones at 0xE47B58 are destination and current ones are at 0xE47B4C. Some other ctm fields (build 20886, not rebased):
01247AE4 - precision (float)
01247AE8 - some tickcount (DWORD)
01247AEC - state (DWORD)
01247AF0 - GUID (16 bytes)
... some unknown stuff in between
01247B4C - current pos (xyz)
01247B58 - dest pos (xyz)
-
Post Thanks / Like - 1 Thanks
natt_ (1 members gave Thanks to TOM_RUS for this useful post)
-
Contributor
ooh now i see, i messed up while updating these, i basically got confused on my search and figured out that they were correct because of their values, thank you for making it clear
/TT
EDIT:
Here is CTM for 64 bit if anyone wondering (rebased)
16238A0 state
1623918 xyz
Last edited by natt_; 03-10-2016 at 01:02 PM.
Reason: added more pptrs
-
Master Sergeant
hey guys i have some problem with the function of CTM , for my c++ bot.. this is my function:
void HotkeyThread(void*) {
DWORD BaseAddress=GetModuleBase("Wow.exe", WoWId);
while(TRUE) {
if((char)GetAsyncKeyState(VK_F5)) {
ofstream makefile;
makefile.open("waypoints.txt", ios:
ut | ios::app);
makefile << "CTM(" << Myx << ", " << Myy << ", " << MyZ << ", 4);\r\n";
makefile.close();
cout << "Point Saved\r\n";
}
if((char)GetAsyncKeyState(VK_F6) && noaccess==0) {
noaccess=1;
CTM(78.2803, 1826.39, 216.078, 4);
CTM(96.3926, -8846.68, 641.36, 4);
CTM(94.2829, -8839.01, 628.415, 4);
CTM(94.2829, -8839.01, 628.415, 4);
noaccess=0;
cout << "Starting Navigation \r\n";
}
}
}
in that is incorporate some waypoint while i have create with an another function while able to create some waypoint with F5!... but the point is that, when the bot reach the first waypoint It does not continue to the next point... any advice on this?
-
It looks like you're writing four different sets of coordinates sequentially. It's not going to walk to the first one, and then the second, etc.. They are not queued. It will only walk to the last one you write, as it replaces the others before the game has a chance to actually perform the movement.
-
Contributor
To add to what Namreeb has been saying.
You actually need to check your position towards your destination, and if you are close enough, you switch to the next destination. (you do this with Vector3.DistanceTo ), if you have a good implementation of Vector3, wont be an issue.
However, if you are not close enough and your destination is no longer where you was aiming for, you should re-write the values accordingly so you are surely going to that destination.
Not sure about people, but I do only use the CTM offset only to verify my destination, else, I'll call ClickToMove itself to start going to somewhere.
-
Master Sergeant
thanks guys I was solved only by changing an offset value and swap the order of YZX...
But now i have to make the CR for my char...