If this is a stupid question, I'm sorry for posting, but I'm running out of ideas.
I'm fairly new into memory editing, but I've done quite a bit of programming in several different languages. I've also lurked these forums for a while, read a few "how-to-start"-guides, but never really gone into it.
I've just managed to write a simple demo-bot, which can turn around, target things, loot some data etc. What I'm trying to do now is getting the Click To Move to work, and I've run into a brick wall.
I have offsets, which I suppose are accurate (from the MemDump Thread ([WoW][4.3.0.15005] Info Dump Thread):
Code:
internal enum ClickToMove
{
Pointer = 0xAD7480, // 4.3.0 15005
Offset = 0x30, // 4.3.0 15005
DestinationX = 0x009D60DC, // 4.3.0 15005
DestinationY = DestinationX + 0x4, // 4.3.0 15005
DestinationZ = DestinationX + 0x8, // 4.3.0 15005
Push = 0x009D606C, // 4.3.0 15005
StopDistance = 0x009D605C, // 4.3.0 15005
TurnScale = 0x009D6054, // 4.3.0 15005
Angle = 0x009D6064, // 4.3.0 15005
By JuJuBoSc
}
My problem is simply, I just don't get this to work, I don't know which values points to what. I've read through so many examples and help pages of CTM, but they're all so old. According to all of them, the offsets are so basic so it's just to use lines like WriteFloat(WoWBase + OffsetX, someXPos), which seems so trivial. But I don't really get which values goes where from this new dump.
My strategy, to find the correct values, is to enable CTM, run somewhere fairly far away, and just read the values at selected offsets. Since I'm not sure what the "pointer", or the other values in the enum exactly are, I've trial and errored, but reached nothing so far. I've tried both using the pointer as a regular offset to the CTM-struct, and as an offset to an address, which points to the struct. Examples of the two approaches follow below:
Code:
// WoWBase is a uint pointing to the base address of the WoW process.
CTMLoc = WoWBase + Pointer;
x = ReadFloat(CTMLoc + DestinationX);
trigger ReadInt(CTMLoc + Push);
-----
CTMLoc = WoWBase + Pointer;
CTMLoc = ReadUint(CTMLoc);
x = ReadFloat(CTMLoc + DestinationX);
trigger ReadInt(CTMLoc + Push);
Am I close? Does anyone have any hints for me. I'm really not expecting a working CTM-script, since I'm trying to learn (I'm writing a bot to learn memedit, not learning memedit to code a bot), but something that can move me in the correct direction.
Sincerely
Zorgie