CTM again menu

User Tag List

Thread: CTM again

Page 1 of 2 12 LastLast
Results 1 to 15 of 16
  1. #1
    ostapus's Avatar Active Member
    Reputation
    60
    Join Date
    Nov 2008
    Posts
    180
    Thanks G/R
    3/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    CTM again

    Hi,

    Anyone would be so kind to provide description for CTM function ? i remember there was discussion but coudn't find it anymore. What are parameters to that call (4 parameters).

    thanks

    CTM again
  2. #2
    bolototo's Avatar Banned
    Reputation
    0
    Join Date
    May 2009
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    private const uint ctmBase = 0x01281838;

    private const uint ctmTurnScale = ctmBase + 0x04;
    private const uint ctmDistance = ctmBase + 0x0c;
    private const uint ctmAction = ctmBase + 0x1c;
    private const uint ctmTarget = ctmBase + 0x20;
    private const uint ctmDestinationX = ctmBase + 0x8C;
    private const uint ctmDestinationY = ctmDestinationX + 0x4;
    private const uint ctmDestinationZ = ctmDestinationY + 0x4;



    CtmAction :
    FaceTarget = 1,
    FaceDestination = 2,
    Walk = 4,
    InteractNpc = 5,
    Loot = 6,
    InteractItem = 7,
    Attack = 10,
    Idle = 13




    http://www.mmowned.com/forums/wow-me...ck-move-2.html

  3. #3
    luciferc's Avatar Contributor
    Reputation
    90
    Join Date
    Jul 2008
    Posts
    373
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Unkowned has a full Documentation if you want to go to his wiki.

    But the above is correct.

    Basic Use ( Psuedo - Code )

    SET X FLOAT
    SET Y FLOAT
    [[Optional]]
    SET Z FLOAT --Only for Flying Mounts
    Set Dist (How close to the location) FLOAT << Mess around with this for interaction (there is a Dist that lets you interact w/o moving)
    Set TurnScale (How fast you turn only applys if over 180 deg) FLOAT
    [[/Optional]]

    Set CTM Action to 4 INT

    Your done!
    Last edited by luciferc; 09-16-2009 at 03:06 PM.

  4. #4
    furang's Avatar Member
    Reputation
    19
    Join Date
    Jul 2009
    Posts
    84
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    here's function i'm using
    int WalkToCoords (float x, float y, float z)
    {
    int go=4;
    WriteProcessMemory(hProc,(LPVOID)(BASEADDR+CTM_X),&x,sizeof(x),NULL);
    WriteProcessMemory(hProc,(LPVOID)(BASEADDR+CTM_Y),&y,sizeof(y),NULL);
    WriteProcessMemory(hProc,(LPVOID)(BASEADDR+CTM_Z),&z,sizeof(z),NULL);
    WriteProcessMemory(hProc,(LPVOID)(BASEADDR+CTM_STATUS),&go,sizeof(int),NULL);
    return 0;
    }
    and here are some consts that you may need
    #define BASEADDR 0x1281838
    #define CTM_X 0x8C
    #define CTM_Y 0x90
    #define CTM_Z 0x94

  5. #5
    Tanaris4's Avatar Contributor Authenticator enabled
    Reputation
    148
    Join Date
    Oct 2008
    Posts
    646
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Other actions:

    enum ctmActionType{
    ctmFaceTarget = 0x1,
    ctmFaceDestination = 0x2,
    ctmStop = 0x3,
    ctmWalkTo = 0x4,
    ctmInteractNpc = 0x5,
    ctmLoot = 0x6,
    ctmInteractObject = 0x7,
    ctmFaceOther = 0x8,
    ctmSkin = 0x9,
    ctmAttack = 0x10,
    ctmIdle = 0x13,
    ctmAttackPos = 0xA,
    ctmAttackGuid = 0xB,
    ctmWalkAndRotate = 0xC,
    ctmNone = 0xD
    };
    Last edited by Tanaris4; 09-16-2009 at 03:52 PM.

  6. #6
    ostapus's Avatar Active Member
    Reputation
    60
    Join Date
    Nov 2008
    Posts
    180
    Thanks G/R
    3/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Sweet,

    appreciate it everyone. hmm... wasn't there something related to GUID as well (or i just dont remember it ) ? like in case of ctmInteractObject/Npc...
    What is url for Unkowned's wiki ?
    Last edited by ostapus; 09-16-2009 at 04:14 PM.

  7. #7
    Mr.Zunz's Avatar Contributor
    Reputation
    92
    Join Date
    Mar 2007
    Posts
    393
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by ostapus View Post
    Sweet,

    appreciate it everyone. hmm... wasn't there something related to GUID as well (or i just dont remember it ) ? like in case of ctmInteractObject/Npc...
    What is url for Unkowned's wiki ?
    Yeah you write the guid to private const uint ctmTarget = ctmBase + 0x20; and then call interact


  8. #8
    ostapus's Avatar Active Member
    Reputation
    60
    Join Date
    Nov 2008
    Posts
    180
    Thanks G/R
    3/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Can anyone confirm CTM offsets (well, i saw offsets in 3.2.2 topic but just in case)

    ctmBase = 0x01297920;
    ctmTurnScale = ctmBase + 0x04;
    ctmAnotherDistanceLike = ctmBase + 0x08; -- ClickToMove use it
    ctmDistance = ctmBase + 0x0C;
    ctmAction = ctmBase + 0x1c;
    ctmTarget = ctmBase + 0x20;
    ctmDestinationX = ctmBase + 0x8C;
    ctmDestinationY = ctmDestinationX + 0x90;
    ctmDestinationZ = ctmDestinationY + 0x94;


    for some reason, Action 4 - WalkTo behave strange for me with following "code"

    _writeDouble(ctmDestinationX, x) ; _writeDouble(ctmDestinationY, y) ; _writeDouble(ctmDestinationZ, z)
    _writeDouble(ctmTurnScale, 3.14) ; -- default like
    _writeDouble(ctmDistance, distance) ;
    _writeDword(ctmAction, 4)

    just want to make sure it works for other so i will dig it out...

  9. #9
    ostapus's Avatar Active Member
    Reputation
    60
    Join Date
    Nov 2008
    Posts
    180
    Thanks G/R
    3/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    BLEH ME! once i posted - i found what is wrong )

  10. #10
    ashleyww's Avatar Banned
    Reputation
    6
    Join Date
    Apr 2009
    Posts
    131
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Heres what I use

    Code:
     
    Const $ClickToMove = 0x01297920 ;Updated
    Const $ClickToMove_Xpos = 0x012979ac;Updated
    const $ClickToMove_Ypos  =0x012979b0;Updated
    Const $ClickToMove_Zpos = 0x012979b4;Updated
    Const $ClickToMove_InteractDistance = 0x0129792c;Updated
    Const $ClickToMove_Target = 0x01297940;Updated
    Const $ClickToMove_State = 0x0129793c;Updated
    And to use CTM i use

    Code:
    	_BMWriteFloat($handle, $ClickToMove_Xpos, $XCoord)
    	_BMWriteFloat($handle, $ClickToMove_Ypos, $YCoord)
    	_BMWriteFloat($handle, $ClickToMove_Zpos, $ZCoord)
    	_BMWriteInt($handle, $ClickToMove_State, "4")

  11. #11
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wow you guys are funny. You do realize that the CTM stuff is stored as a struct in memory right? And that struct's layout hasn't changed since as long as I can remember...

    Code:
            [StructLayout(LayoutKind.Sequential)]
            public struct ClickToMoveInfoStruct
            {
                public float Unknown1F;
                public float TurnScale;
                public float Unknown2F;
    
                /// <summary>
                /// This can be left alone. There is no need to write to it!!
                /// </summary>
                public float InteractionDistance;
    
                public float Unknown3F;
                public float Unknown4F;
                public uint Unknown5U;
    
                /// <summary>
                /// As per the ClickToMoveAction enum members.
                /// </summary>
                public uint ActionType;
    
                public ulong InteractGuid;
    
                /// <summary>
                /// Check == 2 (This might be some sort of flag?)
                /// Always 2 when using some form of CTM action. 0 otherwise.
                /// </summary>
                public uint IsClickToMoving;
    
                [MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)]
                public uint[] Unknown6U;
    
                /// <summary>
                /// This will change in memory as WoW figures out where exactly we're going to stop. (Also the actual end location)
                /// </summary>
                public Point Dest;
    
                /// <summary>
                /// This is wherever we actually 'clicked' in game.
                /// </summary>
                public Point Click;
    
                /// <summary>
                /// Returns the fully qualified type name of this instance.
                /// </summary>
                /// <returns>
                /// A <see cref="T:System.String"/> containing a fully qualified type name.
                /// </returns>
                /// <filterpriority>2</filterpriority>
                public override string ToString()
                {
                    string tmp = "";
                    for (int i = 0; i < Unknown6U.Length; i++)
                    {
                        tmp += "Unknown6U_" + i + ": " + Unknown6U[i].ToString("X") + ", ";
                    }
                    return
                        string.Format(
                            "TurnScale: {0}, InteractionDistance: {1}, ActionType: {2}, InteractGuid: {3}, IsClickToMoving: {4}, ClickX: {5}, ClickY: {6}, ClickZ: {7}, DestX: {8}, DestY: {9}, DestZ: {10}, Unk4f: {12}, UNK: {11}",
                            TurnScale, InteractionDistance, (ClickToMoveType) ActionType, InteractGuid.ToString("X"),
                            IsClickToMoving == 2, Click.X, Click.Y, Click.Z, Dest.X, Dest.Y, Dest.Z, tmp, Unknown4F);
                }
            }

  12. #12
    ostapus's Avatar Active Member
    Reputation
    60
    Join Date
    Nov 2008
    Posts
    180
    Thanks G/R
    3/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well, i dont think so. everywhere in wow (well, where i saw operations with ctm "structure") wow operates on absolute addresses, not "structure offsets". i assume it is global variables in source code.

    thanks for info anyway as little contribution (useless one though : ) )

    Unknown2F will hold "interact" distance returned from here
    0069E8E3 call myf_ctmGetInteractDistanceOfAction

    myf_ctmGetInteractDistanceOfAction takes action as parameter and returns appropriate distance or displays error like "too far" etc...
    later square root of that distance will be used as InteractionDistance in CGPlayer_C__ClickToMove, code:

    .text:0069E99A fld myv_ctmAnotherDistanceLike
    .text:0069E9A0 fsqrt
    .text:0069E9A2 fstp myv_mmow_ptrClickToMove_InteractDistance

    myv_ctmAnotherDistanceLike = Unknown2F (referring to Apoc's info)

  13. #13
    Apoc's Avatar Angry Penguin
    Reputation
    1388
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/13
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The CTM addresses you guys keep barking about, is a global struct. (Not a pointer!!)

    So yes, I do think so.

  14. #14
    ostapus's Avatar Active Member
    Reputation
    60
    Join Date
    Nov 2008
    Posts
    180
    Thanks G/R
    3/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    mmm, i see.. so, if we have

    global struct
    {
    a, b
    } mystruct ;

    in binary that will be
    mov eax, <absolute address> [a]
    mov eax, <absolute address> [b]

    is that correct ? not something like
    mov edx, <absolute address> mystruct
    mov eax, [edx+4] // as a
    mov edx, [esdx+8] // as b

    ? lazy to check it myself )

  15. #15
    EmilyStrange's Avatar Active Member
    Reputation
    34
    Join Date
    Jul 2009
    Posts
    125
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Deleted by author. (I was being mean, woke up in a bad mood.)
    Last edited by EmilyStrange; 09-26-2009 at 03:01 PM.

Page 1 of 2 12 LastLast

Similar Threads

  1. Transfer gold from ALLIANCE to HORDE and Back again!!!
    By coolkiller in forum World of Warcraft Exploits
    Replies: 12
    Last Post: 11-09-2006, 12:05 PM
  2. Starting WoW again. Need some feedback
    By paypal in forum World of Warcraft General
    Replies: 5
    Last Post: 10-11-2006, 02:39 AM
  3. Once again: DO NOT USE HACKS AT THIS TIME!
    By idusy-org in forum OC News
    Replies: 27
    Last Post: 09-27-2006, 08:16 PM
  4. Dc again? Crap!...
    By Simy in forum World of Warcraft General
    Replies: 5
    Last Post: 06-24-2006, 12:53 AM
  5. Green Dragon Spawns are bugged again
    By Matt in forum World of Warcraft Exploits
    Replies: 0
    Last Post: 03-31-2006, 11:13 AM
All times are GMT -5. The time now is 06:33 PM. 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