Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate

AUTO HOT KEY / WOW (Vith's script)


  • Please log in to reply
37 replies to this topic
tom
  • Guests
  • Last active:
  • Joined: --
ive been looking for a good program and script and this is the perfect one, NO COST.. THANKS!!!

kapowcow
  • Guests
  • Last active:
  • Joined: --
I'd like to start off by thanking you for sharing your code with us :)

I'm just having one problem though. When I have the script loaded and I changed the code to have F1 through F12 be hotkeys instead of 1 through = it still does the spell i have on my main that is hotkeyed through wow with the 1 key.

eg. I have my 1 key on my mage set to blink
on my priest which im just using to heal me it is set to /target me then /cast flash heal or w/e spell it is. When i click F1 it casts flash heal aswell as cast blink on my mage. When I'm on my priest the keys are on a different bar and are all binded to F1 through F12 aswell as the main bar is unbinded just to make sure. And on my mage the spells are on the main bar and binded with 1 through =. Why is it casting blink when its binded to a different key? Any help on this would be greatly appreciated :)

Thanks again

wowfan
  • Guests
  • Last active:
  • Joined: --
does ne one know how to get ne movement from this cause i tried auto hotkeying w,a,s,and d and then i keybinded them and it doesnt make them move at all

VxE
  • Moderators
  • 3622 posts
  • Last active: Dec 24 2015 02:21 AM
  • Joined: 07 Oct 2006

does ne one know how to get ne movement from this cause i tried auto hotkeying w,a,s,and d and then i keybinded them and it doesnt make them move at all

Try a general-purpose multiboxing script:
; Generic multiboxing script, by [VxE].
   ; To use:
   ; First, open all of the windows that you're going to be using.
   ; Then use the hotkey [Win]+[PgUp] to activate the script.
   ; You may deactivate the script at any time using the hotkey [win]+[PgDn].
	; Make sure to double-check your window title! It is case sensitive.
WindowTitle = World of Warcraft
   ; Define hotkeys to use for multiboxing.
   ; Undefined keys will behave normally.
Hotkeys = ; a list of names of keyboard keys
(
   w
   a
   s
   d
)

#UseHook
#Persistent
SetKeyDelay, -1
SetBatchLines, -1
Hotkey, IfWinActive, %WindowTitle%
Hotkey, #PgUp, Toggle, on
Hotkey, #PgDn, Toggle, on
return
Toggle:
onoff := (A_ThisHotkey = "#PgUp") ? "on" : "off"
WinGet, id, List, %WindowTitle%
Hotkey, IfWinActive, %WindowTitle%
Loop, Parse, Hotkeys, `n, `r%A_Space%%A_Tab%
{
   IfInString, A_LoopField, Button, Continue
   IfInString, A_LoopField, Wheel, Continue
   Hotkey, %A_LoopField%, HandleKeys, %onoff%
   Hotkey, %A_LoopField% Up, HandleKeys, %onoff%
}
return

HandleKeys:
thk := StripModifiers(A_ThisHotkey)
updown := InStr(A_ThisHotkey, " Up") ? " up}" : " down}"
Loop, %id%
ControlSend,, {blind}{%thk%%updown%, % "ahk_id " id%A_Index%
return

StripModifiers(keyname) {
   Loop, Parse, keyname, %A_Space%, ~!#$^&*+<>
      return A_LoopField
}
[edit] added "#persistent" to the script.

wowfan
  • Guests
  • Last active:
  • Joined: --
i added that to my script i had and it still wont let me move with w,s,d,a my guys wont even take one step with those and i checked my key bindings and they are right i just dont get y it wont work

  • Guests
  • Last active:
  • Joined: --
thats because you copy-pasted vxe's script without noticing there are no tabs there.

according to: Loop, Parse, Hotkeys, `n, `r%A_Space%%A_Tab%

it indicates that the script requires tab,
the problem is, the forum script converts tab to space.

VxE
  • Moderators
  • 3622 posts
  • Last active: Dec 24 2015 02:21 AM
  • Joined: 07 Oct 2006

according to: Loop, Parse, Hotkeys, `n, `r%A_Space%%A_Tab%

Actually, that part indicates that the parsing loop should ignore spaces and tabs around the loop item members. I'm guessing that wowfan's problem is that he added the code to another script, which naturally causes it to not work at all.

wowfan
  • Guests
  • Last active:
  • Joined: --
ok so does ne one know what i could add to the original program on this page to make it work cause im kind of clueless about this program

adam15926
  • Members
  • 14 posts
  • Last active: Jan 22 2009 05:41 PM
  • Joined: 03 Sep 2008
Okay I posted my WASD script on another thread... and it works, but here's what I found. If you simply bind the WASD keys like any other keys, (I.E. number keys) then holding down the key will have the same effect as holding down a letter key in microsoft word (example: s -pause- ssssssss) basically, you're repeating the keystroke in auto-repeat mode like a word processor. (I figured this out by watching my 2nd char. if you look REALLY closely at the char, he sort of hiccups in his standing pose, which is what clued me in to the fact that AHK wasn't "holding" the key, but repeating it so fast that my char wouldn't actually move.)

My script solves this problem, but as stated in the Vith post, it is exceedingly hard to steer, and AHK sometimes won't register each key separately as quickly as you would like. I've had instances where I'm holding up+left to turn my char while running forward, but when I let go of left to continue on in a straight line, my first char does as told, but the 2nd one goes on running in a circle because AHK hasn't registered the release of the left key.

I only have this problem when holding multiple keys at the same time, but let me tell you, it is extremely frustrating when trying to navigate ledges, etc (I HATE YOU BFD). Anyway, I only use them to make small (and I mean SMALL) adjustments to my second chars' facing. such as for times when I'm fighting something and I get an add casting on me from behind and need to turn my alt around to keep firing.

Anyway, with that being said, here's a clip of my script, which you can see what I did to accomplish the key hold functions.

~Up:: 
IfWinActive, World of Warcraft 
{ 
ControlSend,, {w DOWN}, wow2 
KeyWait Up, U 
ControlSend,, {w UP}, wow2 
Return 
}

Disclaimer
PLEASE notice in my script I use the text "wow2" as my passive window name instead of the oh so popular variable list. this is because I have a keybind in my script to change the window ID of the second wow window to "wow2" thus allowing me to send keystrokes to individual windows by name, as opposed to sending them via a list of variables. YOU MUST adapt this code to coincide with the rest of your script or it WILL NOT WORK.

P.S.

if anyone has a more efficient way to do this that allows for multiple keypresses without the AHK hiccups I described, please let me know.

Kalikiano
  • Guests
  • Last active:
  • Joined: --
Is it possible to use 1-= buttons as well as add more like alt+1-=


thanks

Wingates
  • Members
  • 1 posts
  • Last active: Apr 17 2009 07:21 PM
  • Joined: 17 Apr 2009

Is it possible to use 1-= buttons as well as add more like alt+1-=


thanks


Not a problem. Now, my approach is different again to the ones taken by most other people on the forums. I found it was easier to identify the WoW windows as mains/clones, then send keystrokes. It is currently set up to only work with 2 instances. With some tweaking I'm sure you could get the idea to work with multiple instances. :twisted:

; 
; 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 suggestions 
; 
; Script Function: 
; Allows you to play two copies of WOW at the same time 
; 

;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 %idClone% 
WinActivate, ahk_id %idMain% 


;*** 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 *** 
^=:: 
ControlSend,,{= down}{= up}, ahk_id %idClone% 
return 

;--------------------------------------------------------------------------------

ClonesPush(strKeys)
{
	global idMain
	global idClone
	IfWinNotActive, ahk_id %idMain%
		ControlSend, , %strKeys%, ahk_id %idMain%
	IfWinNotActive, ahk_id %idClone%
		ControlSend, , %strKeys%, ahk_id %idClone%
}

; *** Jump ***
~Space::ClonesPush("{Space down}")
~Space Up::ClonesPush("{Space up}")

; *******************
; *** Hotbars 1-0 ***
; *******************
~1::ClonesPush("{= down}{= up}{1 down}{1 up}")
~2::ClonesPush("{= down}{= up}{2 down}{2 up}")
~3::ClonesPush("{= down}{= up}{3 down}{3 up}")
~4::ClonesPush("{= down}{= up}{4 down}{4 up}")
~5::ClonesPush("{= down}{= up}{5 down}{5 up}")
~6::ClonesPush("{= down}{= up}{6 down}{6 up}")
~7::ClonesPush("{= down}{= up}{7 down}{7 up}")
~8::ClonesPush("{= down}{= up}{8 down}{8 up}")
~9::ClonesPush("{= down}{= up}{9 down}{9 up}")
~0::ClonesPush("{= down}{= up}{0 down}{0 up}")

; ****************************
; *** Hotbars SHIFT(+) 1-0 ***
; ****************************
~+1::ClonesPush("{Shift down}{= down}{= up}{1 down}{1 up}{Shift up}")
~+2::ClonesPush("{Shift down}{= down}{= up}{2 down}{2 up}{Shift up}")
~+3::ClonesPush("{Shift down}{= down}{= up}{3 down}{3 up}{Shift up}")
~+4::ClonesPush("{Shift down}{= down}{= up}{4 down}{4 up}{Shift up}")
~+5::ClonesPush("{Shift down}{= down}{= up}{5 down}{5 up}{Shift up}")
~+6::ClonesPush("{Shift down}{= down}{= up}{6 down}{6 up}{Shift up}")
~+7::ClonesPush("{Shift down}{= down}{= up}{7 down}{7 up}{Shift up}")
~+8::ClonesPush("{Shift down}{= down}{= up}{8 down}{8 up}{Shift up}")
~+9::ClonesPush("{Shift down}{= down}{= up}{9 down}{9 up}{Shift up}")
~+0::ClonesPush("{Shift down}{= down}{= up}{0 down}{0 up}{Shift up}")

; ***************************
; *** Hotbars CTRL(^) 1-0 ***
; ***************************
~^1::ClonesPush("{Ctrl down}{= down}{= up}{1 down}{1 up}{Ctrl up}")
~^2::ClonesPush("{Ctrl down}{= down}{= up}{2 down}{2 up}{Ctrl up}")
~^3::ClonesPush("{Ctrl down}{= down}{= up}{3 down}{3 up}{Ctrl up}")
~^4::ClonesPush("{Ctrl down}{= down}{= up}{4 down}{4 up}{Ctrl up}")
~^5::ClonesPush("{Ctrl down}{= down}{= up}{5 down}{5 up}{Ctrl up}")
~^6::ClonesPush("{Ctrl down}{= down}{= up}{6 down}{6 up}{Ctrl up}")
~^7::ClonesPush("{Ctrl down}{= down}{= up}{7 down}{7 up}{Ctrl up}")
~^8::ClonesPush("{Ctrl down}{= down}{= up}{8 down}{8 up}{Ctrl up}")
~^9::ClonesPush("{Ctrl down}{= down}{= up}{9 down}{9 up}{Ctrl up}")
~^0::ClonesPush("{Ctrl down}{= down}{= up}{0 down}{0 up}{Ctrl up}")

; **************************
; *** Hotbars Alt(!) 1-0 ***
; **************************
~!1::ClonesPush("{Alt down}{= down}{= up}{1 down}{1 up}{Alt up}")
~!2::ClonesPush("{Alt down}{= down}{= up}{2 down}{2 up}{Alt up}")
~!3::ClonesPush("{Alt down}{= down}{= up}{3 down}{3 up}{Alt up}")
~!4::ClonesPush("{Alt down}{= down}{= up}{4 down}{4 up}{Alt up}")
~!5::ClonesPush("{Alt down}{= down}{= up}{5 down}{5 up}{Alt up}")
~!6::ClonesPush("{Alt down}{= down}{= up}{6 down}{6 up}{Alt up}")
~!7::ClonesPush("{Alt down}{= down}{= up}{7 down}{7 up}{Alt up}")
~!8::ClonesPush("{Alt down}{= down}{= up}{8 down}{8 up}{Alt up}")
~!9::ClonesPush("{Alt down}{= down}{= up}{9 down}{9 up}{Alt up}")
~!0::ClonesPush("{Alt down}{= down}{= up}{0 down}{0 up}{Alt up}")

; *******************************
; *** Hotbars Numpad1-Numpad0 ***
; *******************************
~Numpad1::ClonesPush("{Ctrl down}{Alt down}{= down}{= up}{1 down}{1 up}{Ctrl up}{Alt Up}")
~Numpad2::ClonesPush("{Ctrl down}{Alt Down}{= down}{= up}{2 down}{2 up}{Ctrl up}{Alt Up}")
~Numpad3::ClonesPush("{Ctrl down}{Alt Down}{= down}{= up}{3 down}{3 up}{Ctrl up}{Alt Up}")
~Numpad4::ClonesPush("{Ctrl down}{Alt Down}{= down}{= up}{4 down}{4 up}{Ctrl up}{Alt Up}")
~Numpad5::ClonesPush("{Ctrl down}{Alt Down}{= down}{= up}{5 down}{5 up}{Ctrl up}{Alt Up}")
~Numpad6::ClonesPush("{Ctrl down}{Alt Down}{= down}{= up}{6 down}{6 up}{Ctrl up}{Alt Up}")
~Numpad7::ClonesPush("{Ctrl down}{Alt Down}{= down}{= up}{7 down}{7 up}{Ctrl up}{Alt Up}")
~Numpad8::ClonesPush("{Ctrl down}{Alt Down}{= down}{= up}{8 down}{8 up}{Ctrl up}{Alt Up}")
~Numpad9::ClonesPush("{Ctrl down}{Alt Down}{= down}{= up}{9 down}{9 up}{Ctrl up}{Alt Up}")
~Numpad0::ClonesPush("{Ctrl down}{Alt Down}{= down}{= up}{0 down}{0 up}{Ctrl up}{Alt Up}")

; **********************************
; *** Move clones (not reliable) ***
; **********************************
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}")

;************************************************************************************************
;**********************************    SETTINGS    **********************************************
;************************************************************************************************
;Some of the settings you'll need to change.
;
;Under "Key Bindings" of the main menu you'll find "MultiAction Bar Bindings"
;By default they have no key binding.
;Set "BottomLeft Action Button 1-12" to "Shift 1-="
;Set "BottomRight Action Button 1-12" to "Ctrl 1-="
;Set "Right Action Button 1-12" to "Alt 1-="
;Set "Right ActionBar 2 Button 1-12" to "Ctrl-Alt 1-=" (For use with Numpad 1-0)
;
;Under "Interface" of the main menu you'll find "ActionBars"
;Click to show "Bottom Left Bar," "Bottom Right Bar," "Right Bar," and "Right Bar 2."
;
;Under "Macros" of the main menu, create a few new macros.
;Here's where things get creative. If you've noticed, I haven't made any
;"ClonesPush" for the "=" as that is your targetting macro on each bar.
;Simply put who you want to target with the spells on said bar.
;For heal classes I suggest you make a /target self for a healing bar.
;The other bars are for things like: /assist, /target leader, and consumables.


podx
  • Members
  • 3 posts
  • Last active: Jul 14 2009 08:14 PM
  • Joined: 14 Jul 2009
The WASD comments in this thread seem to not be on topic. Just messing the thread up.

dougdoug
  • Guests
  • Last active:
  • Joined: --
Sorry if it's already been asked... but is there anyway to make it so that if I click my left mouse button or right mouse button or both at the same time that it does it in the same place on the other window? I'd prefer to stand my guys on top of each other and use the mouse to move around instead of the arrow keys.... thanks!

hack plz
  • Guests
  • Last active:
  • Joined: --
CAN THIS HACK WOW AND GO TO ITS MAIN FRAME AND DO JAVASCRIPT TERMINATION AND STUFF LIKE THAT AND ACTIVE SERVER PAGES AND CASCADING STYLE SHEETS AND DOMAIN NAME SYSTEM FILE TRANSFR PROTOCL STUFF?!?! (LOL) IF IT DOES, I WILL MAKE 1 MIL COINS FOR MY SELF!!!1

ryuichi
  • Members
  • 1 posts
  • Last active: Aug 22 2009 06:58 AM
  • Joined: 22 Aug 2009
I am having an issue getting this to work with WoW. I have created my file, which is very simple.

F1::Loop{
Send, =
Sleep, 500
If X = 1
break
}return

F2::
X := 1
return

I double click it which is creating an instance of AHK in the system tray, and then I am going to WoW. I have tried in both windowed mode or full screen. One I press F1, nothing happens in WoW. But if I go to the file and edit it, the '=' character is repeatedly being typed for me, as I expect. So the question is, why is it not sending this process to WoW? Would someone, please, tell me what I am doing wrong? Thank you.