Close
Showing results 1 to 7 of 7
  1. #1

    Default Sleep/Spread out formations

    Hi all,

    My first question, is the Sleep command in AHK considered automation? I'm a bit hesitant to use it for fear of getting meself into trouble. I did a search and found a few posts where someone has stated that it is against the rules but it seemed like just the one person. If someone could confirm/deny if its acceptable that would me greatly appreciated.

    My second question. I have one key bound for a simple spread out thingo. One character moves forward/back/left/right etc. When I hold down the spread out key however they seemed to move only mm apart and it staggers when it does that. I thought at the start that might be computer lag and then got to thinking it might actually be my AHK script. Would using the sleep command fix that up?

    Thanks in advance for your help.

    Tasty

  2. #2

    Default

    The "sleep" command is controversial. It can be used to automate gameplay and I would suggest not using it at all. Whether it is considered automation for the purpose of formations I couldn't say but personally I wouldn't take the risk.

    Your problem with the "staggering" is probably related to sending keypresses instead of key up and key down combinations. If you use F12 as a formation key, for instance, I suspect that you are sending the key onto the clones as "{F12 down}{F12 up}". You need to send the up and down messages separately. If you use the ClonesPush procedure:

    Code:
    ~F12::ClonesPush("{F12 down}")
    ~F12 Up::ClonesPush("{F12 up}")
    Also see the Movement section in the wiki.
    The Orcks of War
    Shaman Borck Zorck Dorck Porck Corck
    Mixed Team - Msblonde - Mswhite - Msblack - Msred - Msbrown -

  3. #3

    Default

    Just took a look at the wiki before. Might just redo all my code with the new 'streamlined version' should prolly help with quite a few things

  4. #4

    Default

    I spent some time reading blue posts on the G15 keyboard today, and as far as I can tell they don't have a crystal clear policy on delays. They are pretty clear that delays are dangerous because they are likely to be used for automated gameplay or circumventing the restriction on multiple casts with 1 button press, both of which will get you banned.

    Generally timed actions are not allowed. They can lead to automated play and can get you in trouble for it. Since Fortitude triggers a GCD, it's in a gray area. You might want to learn how to bind Fortitude and the target you select using the actual in-game macros. You can use a modifier button (like Alt) and then click to automatically fort people. Try posting in the UI forum for more information. http://forums.worldofwarcraft.com/bo...&forumId=11114
    Datth - Blizzard Poster

    I think that almost anything legitimate can be done without a delay so you are better off not using them. I use the key down / up technique for my spread out macro, except that I also add my walk key on 2 of the clones so that they wind up staggered. IMO this is legal, but if I ever found out otherwise I could certainly do without it.

    Code:
    ; Send a string to a specific WoW instance
    SendWow(iWow, strKeys)
    {
        localPid := pid%iWow%
        IfWinNotActive, ahk_pid %localPid%
            ControlSend, , %strKeys%, ahk_pid %localPid%
    }
    
    ; Spread out into a line: 2 3 1 4 5
    BeginSpreadLine()
    {
        SendWow(2, "{Q down}")
        SendWow(3, "{NumpadDiv down}{NumpadDiv up}{Q down}")
        SendWow(4, "{NumpadDiv down}{NumpadDiv up}{E down}")
        SendWow(5, "{E down}")
    }
    
    EndSpreadLine()
    {
        SendWow(2, "{Q up}")
        SendWow(3, "{NumpadDiv down}{NumpadDiv up}{Q up}")
        SendWow(4, "{NumpadDiv down}{NumpadDiv up}{E up}")
        SendWow(5, "{E up}")
    }
    
    `;::BeginSpreadLine()
    `; Up::EndSpreadLine()
    Semiclon triggers the macro (actually a mouse button mapped to semicolon) and NumpadDiv is my toggle walk. The SendWow function is based on the process IDs of your WoW instances. I pass those in from a PowerShell script that I can share if anyone wants.
    All my codes r belong to you: wow5box

  5. #5

    Default

    Quote Originally Posted by 'Chorizotarian',index.php?page=Thread&postID=51580 #post51580
    The SendWow function is based on the process IDs of your WoW instances. I pass those in from a PowerShell script that I can share if anyone wants.
    Share away, I am quite interested. I made a separate section from the main AHK page where we can showcase all example scripts.
    The Orcks of War
    Shaman Borck Zorck Dorck Porck Corck
    Mixed Team - Msblonde - Mswhite - Msblack - Msred - Msbrown -

  6. #6

    Default

    I manually launch all of my WoW instances then run the PowerShell script below. It has to be run as admin because it sorts the process IDs by exe path, which requires admin privileges.

    Code:
    function Join-String([string[]] $strArray, [string] $sep = ' ')
    {
        if ($strArray -ne $null) { [string]::Join($sep, $strArray) } else { $null }
    }
    
    # Get Window IDs
    $pids = @(get-process -name $processName | sort Path | foreach { $_.Id })
    $pids
    $pidStr = join-string $pids ','
    
    .\Wow.ahk $pidStr
    My AHK script then does this:

    Code:
    ; Get WoW process IDs from input params
    pidStr = %1%
    nPids = 0
    Loop, parse, pidStr, `,
    {
        ++nPids
        pid%nPids% := A_LoopField
    }
    
    ; Create a window group containing all WoW instances
    Loop, %nPids%
    {
        localPid := pid%A_Index%
        GroupAdd, wowGroup, ahk_pid %localPid%
    }
    Since I know which pid is my main WoW window and which one is each clone I can send keystrokes to specific toons without the clunkiness of creating separate keybindings on each. For normal keys that get sent to everyone I just do this:

    Code:
    ; Send a string to everyone
    SendAll(strKeys)
    {
        global nPids
        Loop, %nPids%
        {
    	    SendWow(A_Index, strKeys)
    	}
    }
    
    ~*1::SendAll("{1 down}{1 up}")
    ~*2::SendAll("{2 down}{2 up}")
    ~*3::SendAll("{3 down}{3 up}")
    ...
    The "*" means that the key should be sent regardless of any modifiers. I pass control and alt as separate keys so that I can switch Bongos pages:

    Code:
    ~Control::SendAll("{Control down}")
    ~Control Up::SendAll("{Control up}")
    
    ~Alt::SendAll("{Alt down}")
    ~Alt Up::SendAll("{Alt up}")
    All my codes r belong to you: wow5box

  7. #7

    Default

    Thanks for all the help guys. For anyone interested it was in fact stuttering because my spread out keys weren't being sent as separate keydown/keyup presses.

Similar Threads

  1. Spread Out Macros Formations need ahand
    By skullchewer in forum Macros and Addons
    Replies: 1
    Last Post: 02-06-2009, 11:15 PM
  2. Spread Out Macros / Formations
    By Slats in forum Macros and Addons
    Replies: 28
    Last Post: 04-03-2008, 10:44 AM
  3. I can't get no sleep..
    By dancook in forum Off-Topic
    Replies: 1
    Last Post: 03-14-2008, 01:24 PM
  4. Sleep and keywait command
    By Theanara in forum Software Tools
    Replies: 5
    Last Post: 01-27-2008, 01:16 AM
  5. Spread Out Macros / Formations
    By Slats in forum General WoW Discussion
    Replies: 0
    Last Post: 01-01-1970, 12:00 AM

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •