[Advise request] Player control menu

Shout-Out

User Tag List

Results 1 to 4 of 4
  1. #1
    Maeco's Avatar Member
    Reputation
    2
    Join Date
    May 2009
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Advise request] Player control

    Hello guys,

    I am currently working on some private software, which is going to help me control my slave characters when I am multiboxing.

    The first task was to get some memory reading done so I could analyse the game world(s) out-of-process. With of lots of research and (ancient) thread diggin' I got the major part of this task completed.

    My second (and current) task is to get the (slave) player control working. My first attempt at this was to send/post windows messages to the specific client(s) (WM_KEYDOWN/UP, WM_MOUSEMOVE, etc.).
    This worked fantastically, my slave character behaved like how a 14 year old would control his freshly created (alliance ) character (i.e. excessively jumping around, hit & run, straving, turn-jump & hit), frankly if you didn't know better you would think of it as just another player.

    The downside was it only worked for a single client. Whenever tried to use this method for two clients simultaneously, every mouse related windows message send/posted conflicted with the input of the other client. I was trying to simulate the move forward behavior you get when you hold down the left and right mouse button or middle mouse button (default bindings).

    My primary thoughts about this issue is that I think my method assumes one window having the capture focus (HWND GetCapture(VOID)) when processing those mouse events. So when you are sending mouse button down message to different wow-window handles at the same time they will be grabbing the capture focus constantly from each other.

    I could be wrong about this, but I don't think my first method is the path to go. As for now I could always stick to sending key down/up messages, however I want to avoid so-called 'keyboard turning'. I still want my slaves to be able to turn very quick if not instantly, the same way you turn with your mouse (holding down right mouse button and move mouse).

    My question is, should I continue with controlling my slaves via sending windows messages or are there a better alternatives I should explore. So far I have discovered the click-to-move functionality and I managed to utilize it with process memory writes.
    However navigating with click-to-move excludes the option to let my slaves strafe if I am not mistaken. Strafing is essencial for close combat manouvering.

    Are there any thoughts/suggestions you willing to share with me?

    Kind regards,

    Maeco

    [Advise request] Player control
  2. #2
    Robske's Avatar Contributor
    Reputation
    305
    Join Date
    May 2007
    Posts
    1,062
    Thanks G/R
    3/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    A combination of the CTM structure and CInputControl class should do it

    The CInputControl class has a method called SetFlags, you can use it to enable or disable certain movement flags as shown below. The code and calling conventions for this are somewhere on this forum, the updated addresses are posted in the 3.1.3 thread.

    Code:
        public enum eMovementFlag
        {
            MOVEMENT_FLAG_MOVE_FORWARD = 0x10,
            MOVEMENT_FLAG_MOVE_BACKWARD = 0x20,
            MOVEMENT_FLAG_STRAFE_LEFT = 0x40,
            MOVEMENT_FLAG_STRAFE_RIGHT = 0x80,
            MOVEMENT_FLAG_TURN_LEFT = 0x100,
            MOVEMENT_FLAG_TURN_RIGHT = 0x200,
            MOVEMENT_FLAG_PITCH_UP = 0x400,
            MOVEMENT_FLAG_PITCH_DOWN = 0x800,
            MOVEMENT_FLAG_AUTO_RUN = 0x1000,
            MOVEMENT_FLAG_ALL = 0x1FF0
        }
    Edit: I don't know much about multiboxing and what it requires but would it be "viable" to calculate a position relative to the leader (lets say 5 yards southwest of the leader) and keep the slave at that position using CTM/CInputControl, keeping it faced at the leader's target?
    Last edited by Robske; 06-04-2009 at 05:45 PM.
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding
    "I cried a little earlier when I had to poop" - Sku

  3. #3
    Maeco's Avatar Member
    Reputation
    2
    Join Date
    May 2009
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Robske View Post
    A combination of the CTM structure and CInputControl class should do it

    The CInputControl class has a method called SetFlags, you can use it to enable or disable certain movement flags as shown below. The code and calling conventions for this are somewhere on this forum, the updated addresses are posted in the 3.1.3 thread.

    Code:
        public enum eMovementFlag
        {
            MOVEMENT_FLAG_MOVE_FORWARD = 0x10,
            MOVEMENT_FLAG_MOVE_BACKWARD = 0x20,
            MOVEMENT_FLAG_STRAFE_LEFT = 0x40,
            MOVEMENT_FLAG_STRAFE_RIGHT = 0x80,
            MOVEMENT_FLAG_TURN_LEFT = 0x100,
            MOVEMENT_FLAG_TURN_RIGHT = 0x200,
            MOVEMENT_FLAG_PITCH_UP = 0x400,
            MOVEMENT_FLAG_PITCH_DOWN = 0x800,
            MOVEMENT_FLAG_AUTO_RUN = 0x1000,
            MOVEMENT_FLAG_ALL = 0x1FF0
        }
    I am still familiarizing myself with the terms you guys use. I found some info about CInputControl, but nowhere I can seem to find when you are talking about out-of-process or in-process context.

    I am avoiding code injection like a disease, since I am not fully aware of what I can do wrong (and thus being detected by this warden thing). Can I modify the according memory sections of CInputControl with the correct flags to see my character move or do I need to call 'SetMovementInfo' function (in-process context) to affect my character?


    Originally Posted by Robske View Post
    Edit: I don't know much about multiboxing and what it requires but would it be "viable" to calculate a position relative to the leader (lets say 5 yards southwest of the leader) and keep the slave at that position using CTM/CInputControl, keeping it faced at the leader's target?
    This generally depends on which action(-group) the slaves are currently executing, whenever there is no combat going on, their highest priority action is to stay in a certain proximity and formation of the designated master.

    In my first version they will just execute an action system, but at some point I want to attach an artificial neural network to each of them.

  4. #4
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You can safely call SetFlags right now, warden doesnt check the stack to see who called what.

Similar Threads

  1. [Request] Player logged or dead
    By sed- in forum WoW UI, Macros and Talent Specs
    Replies: 2
    Last Post: 05-28-2013, 03:06 PM
  2. [Question/Request] Player model edit.
    By Urkie in forum WoW ME Questions and Requests
    Replies: 1
    Last Post: 08-24-2011, 03:52 AM
  3. [Request] User control panel
    By omladinek in forum WoW EMU Questions & Requests
    Replies: 1
    Last Post: 06-06-2009, 10:39 AM
  4. [Release / Request] changing client side players name in c++
    By macintox in forum WoW Memory Editing
    Replies: 5
    Last Post: 03-25-2008, 12:51 AM
  5. [Request] Command Edit to work on players! (core experts read pls)
    By latruwski in forum World of Warcraft Emulator Servers
    Replies: 2
    Last Post: 02-07-2008, 10:30 AM
All times are GMT -5. The time now is 12:48 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