Click To Move editing menu

User Tag List

Results 1 to 12 of 12
  1. #1
    zorgie's Avatar Member
    Reputation
    1
    Join Date
    Jun 2008
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Click To Move editing

    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

    Click To Move editing
  2. #2
    xalcon's Avatar Contributor ふたなり
    Authenticator enabled
    Reputation
    198
    Join Date
    Oct 2008
    Posts
    291
    Thanks G/R
    20/58
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Well... it seems you have not read those threads close enough... why are you reading from the CTM-Push? You have to WRITE the MOVEMENT-Flag to it!
    "Threads should always commit suicide - they should never be murdered" - DirectX SDK

  3. #3
    Sacred's Avatar Contributor
    Reputation
    207
    Join Date
    Dec 2007
    Posts
    152
    Thanks G/R
    3/9
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Since I'm not sure what the "pointer", or the other values in the enum exactly are
    Pointer in your enum is for reading/writing value for enable/disable CTM in game and you're trying to use it for moving, of course your code will not work.
    Last edited by Sacred; 01-15-2012 at 04:12 AM.

  4. #4
    zorgie's Avatar Member
    Reputation
    1
    Join Date
    Jun 2008
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for your answers! As for xalcon: I'm reading just to see if I'm even finding the correct addresses, with the code posted I'm not trying to actually move.

    I've tried a billion more things, with the most naïve approach being:

    Code:
    uint CTMOffset = 0x5AB950; // 4.3.0 dump thread, "find ctm struct-value"
    
    uint CTMAddress = WoWBase + CTMOffset;
    BMagic.WriteFloat(CTMAddress + DestinationX, x);
    BMagic.WriteFloat(CTMAddress + DestinationY, y);
    
    BMagic.WriteInt(CTMAddress + Push, 4);
    This, however, doesn't work either. I've also tried substituting CTMAddress with numerous of other offset, and adding the 0x30 value to it (not sure what that is for either though).

    Am I doing this completely wrong? I've really exhausted my ideas for the matter, sorry if I'm missing something obvious.

    Cheers
    Zorgie

  5. #5
    streppel's Avatar Active Member
    Reputation
    78
    Join Date
    Mar 2007
    Posts
    196
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    uint CTMOffset = 0x5AB950; // 4.3.0 dump thread, "find ctm struct-value"
    
    
    uint CTMAddress = BMagic.ReadUInt(WoWBase + CTMOffset);
    
    BMagic.WriteFloat(CTMAddress + DestinationX, x);
    BMagic.WriteFloat(CTMAddress + DestinationY, y);
    
    
    BMagic.WriteInt(CTMAddress + Push, 4);
    NON-OBJECTIVE HYPOTHETICAL PSEUDO PROCESSOR SPEED.
    https://memegenerator.net/cache/instances/400x/9/10044/10285683.jpg

  6. #6
    zorgie's Avatar Member
    Reputation
    1
    Join Date
    Jun 2008
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by streppel View Post
    Code:
    uint CTMOffset = 0x5AB950; // 4.3.0 dump thread, "find ctm struct-value"
    
    
    uint CTMAddress = BMagic.ReadUInt(WoWBase + CTMOffset);
    
    BMagic.WriteFloat(CTMAddress + DestinationX, x);
    BMagic.WriteFloat(CTMAddress + DestinationY, y);
    
    
    BMagic.WriteInt(CTMAddress + Push, 4);
    I've tried that aswell, no successes there either. I also tried added the 0x30 offset to both the read address, and the address pointer. Nothing there either.

    I just don't get what I'm doing wrong. Feels like I'm missing something trivial. Oh well, I'll keep spamming some code, and se what pops out.

  7. #7
    DarkLinux's Avatar Former Staff
    CoreCoins Purchaser Authenticator enabled
    Reputation
    1627
    Join Date
    May 2010
    Posts
    1,846
    Thanks G/R
    193/539
    Trade Feedback
    16 (100%)
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)
    Are you writing with a base address of wow? To test if its the correct address click some place in the game and then read the values that you wound normal write to...

  8. #8
    zorgie's Avatar Member
    Reputation
    1
    Join Date
    Jun 2008
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DarkLinux View Post
    Are you writing with a base address of wow? To test if its the correct address click some place in the game and then read the values that you wound normal write to...
    That was my first approach, and no, I'm getting nonsensical values. I have the correct base address of WoW, since I'm able to read the character name, class, and so on.

  9. #9
    vitecp's Avatar Corporal
    Reputation
    -2
    Join Date
    Jan 2012
    Posts
    16
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I can only give you my Autoit code that works. Maybe you can find the difference.
    Code:
    	_MemoryWrite("0x" & Hex($WowBase + $CTM_Base + $CTM_X), $WowProcess, $2_x, 'float')
    	_MemoryWrite("0x" & Hex($WowBase + $CTM_Base + $CTM_Y), $WowProcess, $2_y, 'float')
    	_MemoryWrite("0x" & Hex($WowBase + $CTM_Base + $CTM_Z), $WowProcess, $2_z, 'float')
    	_MemoryWrite("0x" & Hex($WowBase + $CTM_Base + $CTM_Action), $WowProcess, 4, 'int')

  10. #10
    zorgie's Avatar Member
    Reputation
    1
    Join Date
    Jun 2008
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by vitecp View Post
    I can only give you my Autoit code that works. Maybe you can find the difference.
    Code:
    	_MemoryWrite("0x" & Hex($WowBase + $CTM_Base + $CTM_X), $WowProcess, $2_x, 'float')
    	_MemoryWrite("0x" & Hex($WowBase + $CTM_Base + $CTM_Y), $WowProcess, $2_y, 'float')
    	_MemoryWrite("0x" & Hex($WowBase + $CTM_Base + $CTM_Z), $WowProcess, $2_z, 'float')
    	_MemoryWrite("0x" & Hex($WowBase + $CTM_Base + $CTM_Action), $WowProcess, 4, 'int')
    Well, I'm using pretty much the same lines. Might I ask what values you have in $CTM_Base, $CTM_Y, $CTM_Z, and $CTM_Action? Are they static, or derived from reading an already offsetted address?

    Thanks in advance!

    Zorgie

  11. #11
    vitecp's Avatar Corporal
    Reputation
    -2
    Join Date
    Jan 2012
    Posts
    16
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by zorgie View Post
    Well, I'm using pretty much the same lines. Might I ask what values you have in $CTM_Base, $CTM_Y, $CTM_Z, and $CTM_Action? Are they static, or derived from reading an already offsetted address?

    Thanks in advance!

    Zorgie
    Code:
    Const $CTM_Base = 0x9D6050
    Const $CTM_X = 0x8C
    Const $CTM_Y = 0x90
    Const $CTM_Z = 0x94
    Const $CTM_Action = 0x1C
    All of them you can get from [WoW][4.3.0.15005] Info Dump Thread.

  12. #12
    zorgie's Avatar Member
    Reputation
    1
    Join Date
    Jun 2008
    Posts
    6
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by vitecp View Post
    Code:
    Const $CTM_Base = 0x9D6050
    Const $CTM_X = 0x8C
    Const $CTM_Y = 0x90
    Const $CTM_Z = 0x94
    Const $CTM_Action = 0x1C
    All of them you can get from [WoW][4.3.0.15005] Info Dump Thread.
    If you read my post, I'm sure you're aware that I've gone through that thread and tried every value related to CTM already :P

    Just good to know which of them you're taking (there are ambigous values, if you're quite new to this and don't know _exacly_ what to look for.)

    Thanks anyways!

Similar Threads

  1. Click to Move - Explained
    By Apoc in forum WoW Memory Editing
    Replies: 33
    Last Post: 01-19-2010, 07:28 AM
  2. [3.2] Click To Move
    By Kamuuk in forum WoW Memory Editing
    Replies: 25
    Last Post: 08-22-2009, 10:59 AM
  3. Click to move?
    By ashleyww in forum WoW Memory Editing
    Replies: 32
    Last Post: 07-18-2009, 08:48 PM
  4. Click to Move Problem
    By Rival-Fr in forum WoW Memory Editing
    Replies: 5
    Last Post: 07-03-2009, 09:27 AM
  5. [Question] Attack Move edits
    By Jarth in forum WoW ME Questions and Requests
    Replies: 3
    Last Post: 10-09-2007, 04:34 PM
All times are GMT -5. The time now is 11:15 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search