My only problem with this is that there is always a gap between the two characters, most likely due to lag, whereby the clone stops following well before it is directly behind the main. Thanks for the script though, I have added it to my script however commented it out until I am able to test without as much lag.Originally Posted by Rhubarb
For anyone that's interested, below is my entire script. It works for two clients and is basically Sorn's script with two /follow scripts added and a Suspend script added. Comments and suggestions welcome!
[code:1]
;
; Wow Duel Account Helper Version: .02a
; Language: English
; Platform: AutoHotkey Script
; Author: Sorn
; NOTES: Written for the Duel-Boxing.com forums, Send PM or post in the Autohotkey thread for assistance or suggestion
;
; Script Function:
; Allows you to play two copies of WOW at the same time
;
; Edited by Zaza 16/8/07 to include Suspend and Following, mainly for people with disconnects due to /follow.
; Edited without permission of Sorn, no attempt at plagiarism is intended. All other scripting work by Sorn.
; ************************************************** **************************************
; *** READ BEFORE USE! ***
; *** Uncomment ONE of the FOLLOW scripts to setup follow (line 82 to 90 OR 97 to 105) ***
; *** Bind 'Q' to follow macro on Clone ***
; *** Bind '=' to '/assist party1' on Clone ***
; *** Bind 'Ctrl+Q' to target self macros on both Main and Clone ***
; ************************************************** **************************************
;Tell user what is about to happen
SplashTextOn, 325, , Preparing to find your Main and Clone windows of WoW.
Sleep, 2000
SplasHtextoff
;Grab unique window ID's
WinGet, wowid, List, World of Warcraft
; Minimize All WOW windows
WinMinimize, ahk_id %wowid1%
WinMinimize, ahk_id %wowid2%
;Determine Main and Clone Windows
WinActivate, ahk_id %wowid1%
MsgBox, 4,, Is this your WOW Main window? (press Yes or No)
IfMsgBox Yes
idMain = %wowid1%
else
idMain = %wowid2%
If idMain = %wowid1%
{
idClone = %wowid2%
} else {
idClone = %wowid1%
}
;Activate All WOW windows
WinActivate, ahk_id %idMain%
WinActivate, ahk_id %idClone%
;*** Special Functions ***
#IfWinActive, World of Warcraft
; *** Makes wow2 follow Wow1 Player ***
^-::
ControlSend,,{- down}{- up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
; *** Makes wow2 Assist Wow1 Player ***
^=::
return
; ************************************************** *******************
; *** Suspending (Pausing) the Script ***
; *** Used when you need to type etc without duplicating keypresses ***
; ************************************************** *******************
^E::Suspend ; Press Ctrl+E to Suspend this script, press it again to resume.
; ************************************************** ***
; *** FOLLOW TYPE 1 ***
; *** Bind 'Q' to follow macro on clone ***
; *** Bind 'E' to walk forwards on clone (unfollow) ***
; ************************************************** ***
;#IfWinActive, World of Warcraft
; ~Q::
; ControlSend,,{Q down}{Q up}, ahk_id %idClone%
;return
;
;#IfWinActive, World of Warcraft
; ~E::
; ControlSend,,{E down}{E up}, ahk_id %idClone%
;return
; ************************************************** **********
; *** FOLLOW TYPE 2 ***
; *** On W down Clone follows Main until W key is released ***
; ************************************************** **********
;#IfWinActive, World of Warcraft
; ~w::
; ControlSend,,{Q down}{Q up}, ahk_id %idClone% ; Replace Q with follow macro keybinding
;return
;
;#IfWinActive, World of Warcraft
; ~w Up::
; ControlSend,,{w down}{w up}, ahk_id %idClone% ; When W is released, clone takes a step ergo breaks follow
;return
; *******************
; *** Target Self ***
; *******************
#IfWinActive, World of Warcraft
~^Q::
ControlSend,,{Ctrl down}{Q down}{Q up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{Ctrl down}{Q down}{Q up}{Ctrl up}, ahk_id %idClone%
return
; *******************
; *** Hotbars 1-0 ***
; *******************
#IfWinActive, World of Warcraft
~1::
ControlSend,,{1 down}{1 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{1 down}{1 up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~2::
ControlSend,,{2 down}{2 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{2 down}{2 up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~3::
ControlSend,,{3 down}{3 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{3 down}{3 up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~4::
ControlSend,,{4 down}{4 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{4 down}{4 up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~5::
ControlSend,,{5 down}{5 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{5 down}{5 up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~6::
ControlSend,,{6 down}{6 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{6 down}{6 up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~7::
ControlSend,,{7 down}{7 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{7 down}{7 up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~8::
ControlSend,,{8 down}{8 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{8 down}{8 up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~9::
ControlSend,,{9 down}{9 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{9 down}{9 up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~0::
ControlSend,,{0 down}{0 up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{0 down}{0 up}, ahk_id %idClone%
return
; ***************************
; *** Hotbars Shift ^ 1-0 ***
; ***************************
#IfWinActive, World of Warcraft
~+1::
ControlSend,,{Shift down}{1 down}{1 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{1 down}{1 up}{Shift up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~+2::
ControlSend,,{Shift down}{2 down}{2 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{2 down}{2 up}{Shift up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~+3::
ControlSend,,{Shift down}{3 down}{3 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{3 down}{3 up}{Shift up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~+4::
ControlSend,,{Shift down}{4 down}{4 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{4 down}{4 up}{Shift up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~+5::
ControlSend,,{Shift down}{5 down}{5 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{5 down}{5 up}{Shift up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~+6::
ControlSend,,{Shift down}{6 down}{6 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{6 down}{6 up}{Shift up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~+7::
ControlSend,,{Shift down}{7 down}{7 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{7 down}{7 up}{Shift up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~+8::
ControlSend,,{Shift down}{8 down}{8 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{8 down}{8 up}{Shift up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~+9::
ControlSend,,{Shift down}{9 down}{9 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{9 down}{9 up}{Shift up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~+0::
ControlSend,,{Shift down}{0 down}{0 up}{Shift up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Shift down}{0 down}{0 up}{Shift up}, ahk_id %idClone%
return
; **************************
; *** Hotbars Cntl ^ 1-0 ***
; **************************
#IfWinActive, World of Warcraft
~^1::
ControlSend,,{Ctrl down}{1 down}{1 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{1 down}{1 up}{Ctrl up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~^2::
ControlSend,,{Ctrl down}{2 down}{2 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{2 down}{2 up}{Ctrl up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~^3::
ControlSend,,{Ctrl down}{3 down}{3 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{3 down}{3 up}{Ctrl up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~^4::
ControlSend,,{Ctrl down}{4 down}{4 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{4 down}{4 up}{Ctrl up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~^5::
ControlSend,,{Ctrl down}{5 down}{5 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{5 down}{5 up}{Ctrl up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~^6::
ControlSend,,{Ctrl down}{6 down}{6 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{6 down}{6 up}{Ctrl up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~^7::
ControlSend,,{Ctrl down}{7 down}{7 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{7 down}{7 up}{Ctrl up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~^8::
ControlSend,,{Ctrl down}{8 down}{8 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{8 down}{8 up}{Ctrl up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~^9::
ControlSend,,{Ctrl down}{9 down}{9 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{9 down}{9 up}{Ctrl up}, ahk_id %idClone%
return
#IfWinActive, World of Warcraft
~^0::
ControlSend,,{Ctrl down}{0 down}{0 up}{Ctrl up}, ahk_id %idMain%
ControlSend,,{= down}{= up}, ahk_id %idClone%
ControlSend,,{Ctrl down}{0 down}{0 up}{Ctrl up}, ahk_id %idClone%
return
[/code:1]
Connect With Us