Simple Walk test menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 18
  1. #1
    Steveiwonder's Avatar Active Member
    Reputation
    31
    Join Date
    Oct 2009
    Posts
    122
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Simple Walk test

    Hello all,

    I've got my info from:
    http://www.mmowned.com/forums/wow-me...g-writing.html

    and various other reading.

    I am just simply trying to make my toon walk, but i am doing it wrong?

    Code:
            private void button_WalkTest_Click(object sender, EventArgs e)
            {
                BlackMagic wow = new BlackMagic();
                wow.OpenProcessAndThread(SProcess.GetProcessFromWindowTitle("World of Warcraft"));
    
                uint playerbase = wow.ReadUInt(wow.ReadUInt(wow.ReadUInt(0x00B366D0) + 0x34) + 0x24);//base
                float playerX = wow.ReadFloat(playerbase + 0x798);
                float playerY = wow.ReadFloat(playerbase + 0x79C);
    
                wow.WriteFloat(0x00CB9814, (playerX + 20)); 
                wow.WriteFloat(0x00CB9818, (playerY + 20)); 
    
                wow.WriteInt(0x00CB97A4, 4);//dance for me
            }
    Also stuggling to get player level with:

    Code:
    uint Level = wow.ReadUInt(wow.ReadUInt(playerbase + 0x8) + (0x35 * 4));
    i've manager to get Hp, mana, etc.

    Appreciate any response.

    Thanks

    Simple Walk test
  2. #2
    Evieh's Avatar Contributor
    Reputation
    92
    Join Date
    Aug 2006
    Posts
    191
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    0x00CB9814 is most likely an old offset.

    UNIT_FIELD_LEVEL = 0x36, not 35.

    edit: haven't tried it but 0x00B9260C seems to be the latest ctm action type offset (credits to drakefish, from 3.3.3a info dump thread).

    CTM X Pos = type + 70
    CTM Y Pos = CTM X Pos + 4
    z = y + 4 and so on for future reference
    Last edited by Evieh; 04-30-2010 at 12:36 AM.

  3. #3
    Seifer's Avatar Site Donator
    Reputation
    129
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just a few things:

    It's always better to get the process handle or ID using a process name than a window title, for the sole reason that for example a Firefox window with World of Warcraft in the title may also be counted as a Wow Process, while it actually isn't:

    Code:
    using System.Diagnostics;
    
    Process[] procs = Process.GetProcessesByName("Wow");
    BlackMagic Magic = new BlackMagic(procs[0].Id);
    For the level issue, I've taken the following from BlackRain:
    Code:
    public int Level
            {
                get { return GetStorageField<int>((uint) Offsets.WowUnitFields.UNIT_FIELD_LEVEL); }
            }
    Code:
    protected T GetStorageField<T>(uint field) where T : struct
            {
                field = field *4; // He's anal.
                var m_pStorage = ObjectManager.Memory.ReadUInt(BaseAddress + 0x08);
    
                return (T)ObjectManager.Memory.ReadObject(m_pStorage + field, typeof(T));
            }
    You can get the UNIT_FIELD_LEVEL address from Apoc's information thread.

    Regarding the movement; I'm assuming you are trying to use CTM to get your toon moving, and want to achieve so by writing to the global struct. You should look up WowDev on the CTM struct, as it provides you with the information you're after:

    Click To Move - WoW.Dev Wiki

    As well as searching for Apoc's thread on these very forums regarding CTM.
    What you want to do is have the base address of the CTM struct, and then use Malu's memory locations to write to the appropriate fields within this struct.

    Oh, the struct is in fact pulsed, so writing to it should get your character moving. If done correctly, that is.

  4. #4
    Steveiwonder's Avatar Active Member
    Reputation
    31
    Join Date
    Oct 2009
    Posts
    122
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thanks both. I managed to get the lvl working NP. Couldt get the CTM X Y Z but will looks at Seifer's post now.

    A friend gave me some fugly au3 code which i tried to use but the offsets dont work for me.

    $ctmindex = 0x00B92510, $ctmx = 0x8c, $ctmy = 0x90, $ctmz = 0x94, $ctmaction = 0x1c, $ctmdistance = 0xc

    _MemoryWrite($ctmindex + $ctmx, $wow, $positionXwherewewantogo, "float")
    _MemoryWrite($ctmindex + $ctmy, $wow, $positionYwherewewantogo, "float")
    _MemoryWrite($ctmindex + $ctmz, $wow, $positionZwherewewantogo, "float")
    _MemoryWrite($ctmindex + $ctmdistance, $wow, 1.5, "float")
    _MemoryWrite($ctmindex + $ctmaction, $wow, 4, "dword")


    Thank again, back to more reading,

    any other comments welcome.
    Last edited by Steveiwonder; 04-30-2010 at 05:24 PM.

  5. #5
    Seifer's Avatar Site Donator
    Reputation
    129
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I may be wrong, but my notes from a month ago or something say that the CTM struct is found at 0x5D3D87.

    Code:
    enum CTMStruct : uint
    {
    	x = 0x74,
    	y = 0x78,
    	z = 0x7C
    	InteractDistance = 0xC,
    	InteractGUID = 0x20,
    	Action = 0x1C,
    }
    None of this has been double checked or verified in any way.

  6. #6
    Steveiwonder's Avatar Active Member
    Reputation
    31
    Join Date
    Oct 2009
    Posts
    122
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks Seifer.

    I'm still trying to get this to work with BM using this enum, trying to just read the X Y Z atm failing hard.

  7. #7
    Seifer's Avatar Site Donator
    Reputation
    129
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Steveiwonder View Post
    Thanks Seifer.

    I'm still trying to get this to work with BM using this enum, trying to just read the X Y Z atm failing hard.
    Are you trying to read from the struct or write to it? Or are you trying to read a unit's X,Y,Z?

  8. #8
    Steveiwonder's Avatar Active Member
    Reputation
    31
    Join Date
    Oct 2009
    Posts
    122
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    At the moment im just trying to read the CTM XYZ values, then writing to it should be easy, right ?

    I may not fully understand how to use the enum properly, and thats down to me to learn.
    Last edited by Steveiwonder; 05-01-2010 at 08:54 PM.

  9. #9
    Bananenbrot's Avatar Contributor
    Reputation
    153
    Join Date
    Nov 2009
    Posts
    384
    Thanks G/R
    1/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yesterday I spent the whole afternoon to get global ctm working...
    <3 CheatEngine, it's time that I learn disassembly -.-
    whatsoever, the ctm struct is at wowProcess.MainModule.BaseAddress + 0x79251C = 0x00B9251C.
    The struct is completely ripped of from Apoc's thread about ctm, but I had to name the StructLayout esplicitly, because with sequential the Unit-GUID was bugged (/wink at marshaller ?). Also had to restructure a bit:
    Code:
        [StructLayout(LayoutKind.Explicit)]
        public struct ClickToMoveInfoStruct
        {
            [FieldOffset(0x0)]
            public float InteractionDistance;
            [FieldOffset(0x4)]
            private float Unknown3F;
            [FieldOffset(0x8)]
            private float Unknown4F;
            [FieldOffset(0xC)]
            public uint Timestamp;
            [FieldOffset(0x10)]
            public uint ActionType;
            [FieldOffset(0x14)]
            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>
            [FieldOffset(0x1C)]
            public uint IsClickToMoving;
    
            [FieldOffset(0x20)]
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
            private 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>
            [FieldOffset(0x74)]
            public Vector3 Dest;
    
            /// <summary>
            /// This is wherever we actually 'clicked' in game.
            /// </summary>
            [FieldOffset(0x80)]
            public Vector3 Click;
        }

  10. #10
    Seifer's Avatar Site Donator
    Reputation
    129
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Bananenbrot View Post
    but I had to name the StructLayout esplicitly, because with sequential the Unit-GUID was bugged (/wink at marshaller ?).
    You always have to define the StructLayout when passing it to the Marshaler.

  11. #11
    Bananenbrot's Avatar Contributor
    Reputation
    153
    Join Date
    Nov 2009
    Posts
    384
    Thanks G/R
    1/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Seifer View Post
    You always have to define the StructLayout when passing it to the Marshaler.
    I meant [StructLayout(LayoutKind.Explicit)] instead of [StructLayout(LayoutKind.Sequential)] as in the post of Apoc.
    Last edited by Bananenbrot; 05-02-2010 at 01:33 PM.

  12. #12
    Steveiwonder's Avatar Active Member
    Reputation
    31
    Join Date
    Oct 2009
    Posts
    122
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for your replies.
    Simple action and im having problems. As a test i did the following:

    Code:
    private void button2_Click(object sender, EventArgs e)
             {
                 Process[] pid = Process.GetProcessesByName("wow");
                 BlackMagic wow = new BlackMagic();
                        
                 wow.OpenProcessAndThread(pid[0].Id);           
    
                 wow.WriteFloat(0xB9251C + 0x74, 5910);//ctm x
                 wow.WriteFloat(0xB9251C + 0x78, 638);//ctm y
                 wow.WriteFloat(0xB9251C + 0x7C, 645);//ctm z
                 wow.WriteFloat(0xB9251C + 0xC, 10); // ctm distance
                 wow.WriteInt(0xB9251C + 0x1C, 4); // ctm action    
             }
    I'm getting nothing. I was watch the value of ctm action when doing a normal ctm action in wow and it gets set to 2. Tried this also but no luck.

    I must of read Click To Move - WoW.Dev Wiki 1million times already.

    Any comments apprcaited. Thank you.

    Edit: added code tags
    Last edited by Steveiwonder; 05-07-2010 at 10:31 AM.

  13. #13
    flo8464's Avatar Active Member
    Reputation
    30
    Join Date
    Apr 2009
    Posts
    434
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Seifer View Post
    I may be wrong, but my notes from a month ago or something say that the CTM struct is found at 0x5D3D87.
    Kinda obvious that this address lies in the middle of the .code section and it certainly can't be a data-struct, huh?
    Hey, it compiles! Ship it!

  14. #14
    Bananenbrot's Avatar Contributor
    Reputation
    153
    Join Date
    Nov 2009
    Posts
    384
    Thanks G/R
    1/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok...
    First, you need to set the click position, the destination position will be dynamically changed to your Player's position. Therefore, your offset to x will be 0x80.
    The second thing is that the value of IsClickToMoving (offset 0x1C) will be 2 of you are moving, but by setting it to 4 you will not gain anything.
    Try writing that value (which is the value for Move in the ClickToMoveType enum, see Apoc's thread) to ActionType at offset 0x10.

  15. #15
    WannaBeProgrammer's Avatar Member
    Reputation
    2
    Join Date
    Feb 2009
    Posts
    156
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Bananenbrot View Post
    Ok...
    First, you need to set the click position, the destination position will be dynamically changed to your Player's position. Therefore, your offset to x will be 0x80.
    The second thing is that the value of IsClickToMoving (offset 0x1C) will be 2 of you are moving, but by setting it to 4 you will not gain anything.
    Try writing that value (which is the value for Move in the ClickToMoveType enum, see Apoc's thread) to ActionType at offset 0x10.
    I dont think this is the problem, he just got the wrong address/offset..

Page 1 of 2 12 LastLast

Similar Threads

  1. [REQUEST] Simple walking Macro (Nox)
    By wwkxx in forum Pokemon GO Chat
    Replies: 0
    Last Post: 08-09-2016, 10:48 AM
  2. Replies: 15
    Last Post: 11-25-2007, 09:53 AM
  3. [tested] walk though a whole instance with out agro
    By i think i just pwned you in forum World of Warcraft Exploits
    Replies: 31
    Last Post: 06-24-2007, 10:37 PM
All times are GMT -5. The time now is 08:27 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