here you can find my AHK script I have used from TBC to CATA. It worked quite well even in pvp situations. I have interact with target mapped to key "g" and the code alternates sending 2 and g, 3 and g. 2 and 3 beeing my single and aoe dps keys. you can change it to whatever you want. The code will work for 2 - 5 accounts, but you can delete the lines with containing WowWinId3-5
Code:
;Grab unique window ID's
WinGet, WowWinId, List, World of Warcraft
ClonesPush(strKeys)
{
global WowWinId1
global WowWinId2
global WowWinId3
global WowWinId4
global WowWinId5
IfWinNotActive, ahk_id %WowWinId1%
ControlSend, , %strKeys%, ahk_id %WowWinId1%
IfWinNotActive, ahk_id %WowWinId2%
ControlSend, , %strKeys%, ahk_id %WowWinId2%
IfWinNotActive, ahk_id %WowWinId3%
ControlSend, , %strKeys%, ahk_id %WowWinId3%
IfWinNotActive, ahk_id %WowWinId4%
ControlSend, , %strKeys%, ahk_id %WowWinId4%
IfWinNotActive, ahk_id %WowWinId5%
ControlSend, , %strKeys%, ahk_id %WowWinId5%
}
; *******************************
; *** Only if WoW is in focus ***
; *******************************
#IfWinActive, World of Warcraft
~Enter::Suspend, Toggle
~/::Suspend, On
~Escape::Suspend, Off
~r::Suspend, On
;*** Special Functions ***
~+\::ClonesPush("{Shift down}{\ down}{\ up}{Shift up}")
;*** 2 step push - alternating 2 and g with the push of single button
~ě::
If toggle
{
send ě
ClonesPush("{ě down}{ě up}")
toggle := !toggle
}
Else
{
send g
ClonesPush("{g down}{g up}")
toggle := !toggle
}
Return
~š::
If toggle
{
send š
ClonesPush("{š down}{š up}")
toggle := !toggle
}
Else
{
send g
ClonesPush("{g down}{g up}")
toggle := !toggle
}
Return
~č::
If toggle
{
send č
ClonesPush("{č down}{č up}")
toggle := !toggle
}
Else
{
send g
ClonesPush("{g down}{g up}")
toggle := !toggle
}
Return
; *** Makes clones jump with main ***
~Space::ClonesPush("{Space down}{Space up}")
~Insert::ClonesPush("{Insert down}{Insert up}")
~PgDn::ClonesPush("{PgDn down}{PgDn up}")
~PgUp::ClonesPush("{PgUp down}{PgUp up}")
~NumpadSub::ClonesPush("{NumpadSub down}{NumpadSub up}")
~NumpadAdd::ClonesPush("{NumpadAdd down}{NumpadAdd up}")
; *****************************************************************************
; *** Move clones *** added ~ for moving also the main
; *****************************************************************************
~Up::ClonesPush("{Up down}")
~Up Up::ClonesPush("{Up up}")
~Down::ClonesPush("{Down down}")
~Down Up::ClonesPush("{Down up}")
~Left::ClonesPush("{Left down}")
~Left Up::ClonesPush("{Left up}")
~Right::ClonesPush("{Right down}")
~Right Up::ClonesPush("{Right up}")
; *****************************************************************************
; *** Hotbars Letters ***
; *****************************************************************************
~C::ClonesPush("{C down}{C up}")
; ~Q::ClonesPush("{Q down}{Q up}")
~T::ClonesPush("{T down}{T up}")
~G::ClonesPush("{G down}{G up}")
~F::ClonesPush("{F down}{F up}")
~Z::ClonesPush("{Z down}{Z up}")
~L::ClonesPush("{L down}{L up}")
~P::ClonesPush("{P down}{P up}")
~H::ClonesPush("{H down}{H up}")
~Y::ClonesPush("{Y down}{Y up}")
; ~E::ClonesPush("{E down}{E up}")
~V::ClonesPush("{V down}{V up}")
~K::ClonesPush("{K down}{K up}")
~J::ClonesPush("{J down}{J up}")
~[::ClonesPush("{[ down}{[ up}")
~]::ClonesPush("{] down}{] up}")
; *****************************************************************************
; *** Hotbars 1-0 ***
; *****************************************************************************
~+::ClonesPush("{+ down}{+ up}")
; ~ě::ClonesPush("{ě down}{ě up}")
; ~š::ClonesPush("{š down}{š up}")
; ~č::ClonesPush("{č down}{č up}")
~ř::ClonesPush("{ř down}{ř up}")
~ž::ClonesPush("{ž down}{ž up}")
~ý::ClonesPush("{ý down}{ý up}")
~á::ClonesPush("{á down}{á up}")
~í::ClonesPush("{í down}{í up}")
~é::ClonesPush("{é down}{é up}")
~=::ClonesPush("{= down}{= up}")
~´::ClonesPush("{´ down}{´ up}")
; *****************************************************************************
; *** Hotbars F's ***
; *****************************************************************************
~F1::ClonesPush("{F1 down}{F1 up}")
~F2::ClonesPush("{F2 down}{F2 up}")
~F3::ClonesPush("{F3 down}{F3 up}")
~F4::ClonesPush("{F4 down}{F4 up}")
~F5::ClonesPush("{F5 down}{F5 up}")
~F6::ClonesPush("{F6 down}{F6 up}")
~F7::ClonesPush("{F7 down}{F7 up}")
~F8::ClonesPush("{F8 down}{F8 up}")
~F9::ClonesPush("{F9 down}{F9 up}")
~F10::ClonesPush("{F10 down}{F10 up}")
~F11::ClonesPush("{F11 down}{F11 up}")
~F12::ClonesPush("{F12 down}{F12 up}")
; *****************************************************************************
; + SHIFT
; *****************************************************************************
; *** Numbers ***
~+1::ClonesPush("{Shift down}{1 down}{1 up}{Shift up}")
~+2::ClonesPush("{Shift down}{2 down}{2 up}{Shift up}")
~+3::ClonesPush("{Shift down}{3 down}{3 up}{Shift up}")
~+4::ClonesPush("{Shift down}{4 down}{4 up}{Shift up}")
~+5::ClonesPush("{Shift down}{5 down}{5 up}{Shift up}")
~+6::ClonesPush("{Shift down}{6 down}{6 up}{Shift up}")
~+7::ClonesPush("{Shift down}{7 down}{7 up}{Shift up}")
~+8::ClonesPush("{Shift down}{8 down}{8 up}{Shift up}")
~+9::ClonesPush("{Shift down}{9 down}{9 up}{Shift up}")
~+0::ClonesPush("{Shift down}{0 down}{0 up}{Shift up}")
~+=::ClonesPush("{Shift down}{= down}{= up}{Shift up}")
~+-::ClonesPush("{Shift down}{- down}{- up}{Shift up}")
; *** Letters ***
~+R::ClonesPush("{Shift down}{R down}{R up}{Shift up}")
~+S::ClonesPush("{Shift down}{S down}{S up}{Shift up}")
~+E::ClonesPush("{Shift down}{E down}{E up}{Shift up}")
~+F::ClonesPush("{Shift down}{F down}{F up}{Shift up}")
~+A::ClonesPush("{Shift down}{A down}{A up}{Shift up}")
~+D::ClonesPush("{Shift down}{D down}{D up}{Shift up}")
~+L::ClonesPush("{Shift down}{L down}{L up}{Shift up}")
~+H::ClonesPush("{Shift down}{H down}{H up}{Shift up}")
~+K::ClonesPush("{Shift down}{K down}{K up}{Shift up}")
~+Y::ClonesPush("{Shift down}{Y down}{Y up}{Shift up}")
~+P::ClonesPush("{Shift down}{P down}{P up}{Shift up}")
~+C::ClonesPush("{Shift down}{C down}{C up}{Shift up}")
~+V::ClonesPush("{Shift down}{V down}{V up}{Shift up}")
~+[::ClonesPush("{Shift down}{[ down}{[ up}{Shift up}")
~+]::ClonesPush("{Shift down}{] down}{] up}{Shift up}")
~+F2::ClonesPush("{Shift down}{F2 down}{F2 up}{Shift up}")
~+PgUp::ClonesPush("{Shift down}{PgUp down}{PgUp up}{Shift up}")
~+PgDn::ClonesPush("{Shift down}{PgDn down}{PgDn up}{Shift up}")
; *****************************************************************************
; *****************************************************************************
; ^ CTRL
; *****************************************************************************
; *** Numbers ***
~^1::ClonesPush("{Ctrl down}{1 down}{1 up}{Ctrl up}")
~^2::ClonesPush("{Ctrl down}{2 down}{2 up}{Ctrl up}")
~^3::ClonesPush("{Ctrl down}{3 down}{3 up}{Ctrl up}")
~^4::ClonesPush("{Ctrl down}{4 down}{4 up}{Ctrl up}")
~^5::ClonesPush("{Ctrl down}{5 down}{5 up}{Ctrl up}")
~^6::ClonesPush("{Ctrl down}{6 down}{6 up}{Ctrl up}")
~^7::ClonesPush("{Ctrl down}{7 down}{7 up}{Ctrl up}")
~^8::ClonesPush("{Ctrl down}{8 down}{8 up}{Ctrl up}")
~^9::ClonesPush("{Ctrl down}{9 down}{9 up}{Ctrl up}")
~^0::ClonesPush("{Ctrl down}{0 down}{0 up}{Ctrl up}")
~^-::ClonesPush("{Ctrl down}{- down}{- up}{Ctrl up}")
~^=::ClonesPush("{Ctrl down}{= down}{= up}{Ctrl up}")
; *** Letters ***
~^E::ClonesPush("{Ctrl down}{E down}{E up}{Ctrl up}")
~^F::ClonesPush("{Ctrl down}{F down}{F up}{Ctrl up}")
~^H::ClonesPush("{Ctrl down}{H down}{H up}{Ctrl up}")
~^L::ClonesPush("{Ctrl down}{L down}{L up}{Ctrl up}")
~^K::ClonesPush("{Ctrl down}{K down}{K up}{Ctrl up}")
~^W::ClonesPush("{Ctrl down}{W down}{W up}{Ctrl up}")
~^U::ClonesPush("{Ctrl down}{U down}{U up}{Ctrl up}")
~^J::ClonesPush("{Ctrl down}{J down}{J up}{Ctrl up}")
~^P::ClonesPush("{Ctrl down}{P down}{P up}{Ctrl up}")
~^C::ClonesPush("{Ctrl down}{C down}{C up}{Ctrl up}")
~^V::ClonesPush("{Ctrl down}{V down}{V up}{Ctrl up}")
~^[::ClonesPush("{Ctrl down}{[ down}{[ up}{Ctrl up}")
~^]::ClonesPush("{Ctrl down}{] down}{] up}{Ctrl up}")
~^F1::ClonesPush("{Ctrl down}{F1 down}{F1 up}{Ctrl up}")
~^F2::ClonesPush("{Ctrl down}{F2 down}{F2 up}{Ctrl up}")
~^F3::ClonesPush("{Ctrl down}{F3 down}{F3 up}{Ctrl up}")
~^F4::ClonesPush("{Ctrl down}{F4 down}{F4 up}{Ctrl up}")
~^F5::ClonesPush("{Ctrl down}{F5 down}{F5 up}{Ctrl up}")
~^F6::ClonesPush("{Ctrl down}{F6 down}{F6 up}{Ctrl up}")
~^F7::ClonesPush("{Ctrl down}{F7 down}{F7 up}{Ctrl up}")
~^F8::ClonesPush("{Ctrl down}{F8 down}{F8 up}{Ctrl up}")
~^F9::ClonesPush("{Ctrl down}{F9 down}{F9 up}{Ctrl up}")
~^F10::ClonesPush("{Ctrl down}{F10 down}{F10 up}{Ctrl up}")
~^F11::ClonesPush("{Ctrl down}{F11 down}{F11 up}{Ctrl up}")
~^F12::ClonesPush("{Ctrl down}{F12 down}{F12 up}{Ctrl up}")
Connect With Us