Log in

View Full Version : Using clicks and not hotKeys to control the "enslave"?



flep
06-07-2008, 08:41 PM
Hey guys.

Im new on this multi-boxing thing, and I read a lot of wikis and faqs, and i want to do something here and dont find out if is possible.

My main is a warlock and i want to use my alt druid as a healer for the warlock. But, im totally a "keybinder" guy on my lock, dont use the mouse for nothing and have all possible keys with some action.
So, I dont wanna put cloneKeys to work all the time, like the druid spam LB every time i cast a SB on the lock, so i was thinking about something like putting a bar on my lock screen with actions directly for the druid.
But, i will need use the mouse to click on this actions, so, no cloneKeys.

There is a possible way to do that? I was thinking about the bar have macros to execute a KeyPress comand [so AutoHotkey/KeyClone will be enough], but i think this is not possible on WoW.

Any ideia?

Thy for the help, and sorry about my bad english.

dRiN
06-07-2008, 09:00 PM
You can use AHK to make a transparant always on top form with buttons. And use those buttons to send keys to the secondary character. I have posted it in some thread a while ago. Too sleepy to find it now, but search / press my nick and you should be able te find it. I don't post that much since my posts mostly don't get replied on ;)

flep
06-07-2008, 09:12 PM
You can use AHK to make a transparant always on top form with buttons. And use those buttons to send keys to the secondary character. I have posted it in some thread a while ago. Too sleepy to find it now, but search / press my nick and you should be able te find it. I don't post that much since my posts mostly don't get replied on ;)I found your post, and will try this to see if works! But tell me, how I use that source code on your post?
Ah, the post btw is this: [Keyclone] 1 PC, 1 mouse, 1 monitor, 2 WoW instances, making click healing work! ('http://www.dual-boxing.com/forums/index.php?page=Thread&postID=69319&highlight=#post69319')

Thanks!

dRiN
06-08-2008, 05:11 AM
You can use AHK to make a transparant always on top form with buttons. And use those buttons to send keys to the secondary character. I have posted it in some thread a while ago. Too sleepy to find it now, but search / press my nick and you should be able te find it. I don't post that much since my posts mostly don't get replied on ;)I found your post, and will try this to see if works! But tell me, how I use that source code on your post?
Ah, the post btw is this: [Keyclone] 1 PC, 1 mouse, 1 monitor, 2 WoW instances, making click healing work! ('http://www.dual-boxing.com/forums/index.php?page=Thread&postID=69319&highlight=#post69319')

Thanks!

CustomColor = EEAA99 ; Can be any RGB color (it will be made transparent below).
Gui +LastFound +AlwaysOnTop -Caption +ToolWindow ; +ToolWindow avoids a taskbar button and an alt-tab menu item.
Gui, Color, %CustomColor%
Gui, Add, Button, x6 y9 w20 h20 , 1

; Gui, Font, s32 ; Set a large font size (32-point).
; Gui, Add, Text, vMyText cLime, XXXXX YYYYY ; XX & YY serve to auto-size the window.
; Make all pixels of this color transparent and make the text itself translucent (150):
WinSet, TransColor, %CustomColor% 150
; SetTimer, UpdateOSD, 200
; Gosub, UpdateOSD ; Make the first update immediate rather than waiting for the timer.
Gui, Show, x20 y20 NoActivate ; NoActivate avoids deactivating the currently active window.
WinSet AlwaysOnTop, On, WoW
WinSet, Style, -0xC00000, A
return

Button1:
ControlSend,,1,test.ahk
Return

GuiClose:
ExitApp


The way you use the code is you open up an AHK script and paste the code in there. After you wil load this script you will have a transparant form in the top-left of you screen (not sure how it will work on multiplescreens) on that form one semi-transparent button will appear.



CustomColor = EEAA99 ; Can be any RGB color (it will be made transparent below).
Gui +LastFound +AlwaysOnTop -Caption +ToolWindow ; +ToolWindow avoids a taskbar button and an alt-tab menu item.
Gui, Color, %CustomColor%


With this part of the code you get the form itself.



Gui, Add, Button, x6 y9 w20 h20 , 1


This is where button1 is added.



; Gui, Font, s32 ; Set a large font size (32-point).
; Gui, Add, Text, vMyText cLime, XXXXX YYYYY ; XX & YY serve to auto-size the window.
; Make all pixels of this color transparent and make the text itself translucent (150):
WinSet, TransColor, %CustomColor% 150
; SetTimer, UpdateOSD, 200
; Gosub, UpdateOSD ; Make the first update immediate rather than waiting for the timer.
Gui, Show, x20 y20 NoActivate ; NoActivate avoids deactivating the currently active window.


Is self commenting at what it does. Makes the form transparent and places the form at a certain position (x20 y20 are the coordinates).



WinSet AlwaysOnTop, On, WoW
WinSet, Style, -0xC00000, A
return
[code]

Set the window on top of all (so make sure you use WoW in a windowed way, settings found in the WoW options) windowed forms. And the return is for the part where it stops doing things on the form itself.

[code]
Button1:
ControlSend,,1,test.ahk
Return


This is where the button event is handled. Button1 corresponds with "Gui, Add, Button, x6 y9 w20 h20 , 1" this part of the code. the x and y are coordinates. the w and h are size (height en with). And the 1 is the name of the button.

So Button1 will use ControlSend function to send a key to the window named test.ahk in this case (change it to World of Warcraft or the window handle). This I don't use this solution at the moment and I have lost my old code with a hdd crash. What you need is to find the function that get it's AHK code send keys captured by keyclone / octopus / etc.. And with AHK you can force what form (session / process) you want to send a key. SendRaw / SendKeys / Send .. not sure what function to use anymore. I hope this will get you to find out how to use this code for your ideas. There are plenty of other scripts interacting with wow. And all on this board are just keyplexers without delays.



GuiClose:
ExitApp


This is the exit event for the form, but since it is transparant you probably want to kill the traysession of the script.

If you want to add a button add it in the form section. "Gui, Add, Button, x6 y9 w20 h20 , NameOfButton"




...
Gui, Add, Button, x6 y20 w20 h20 , NameOfButton
...
ButtonNameOfButton:
SendKey,,1,World of Warcraft
Return
...


Fil the ... with the other code suplied and you will have a second button.

What I did was match the button x and y with my wow interface so they are behind the characters from my party.

Make sure if you click the button to do something you dont mash any other buttons because it might not work as expected.

If you have any questions just ask them, I will try to answer them when I have the time.

flep
06-08-2008, 12:30 PM
Yeah, I tried last night and the button works, but when i click on the button, i lose the focus on the main wow window, the focus stay on the button after the click.
Im trying do find a way to put the focus back on my wow1 window.

Ty for the explanations!

Freddie
06-08-2008, 01:03 PM
But, im totally a "keybinder" guy on my lock, dont use the mouse for nothing...
Then why not do this with the keyboard instead of the mouse? You could define keys that send keystrokes only to the healer (even when the healer is in the background).


and have all possible keys with some action.
You can make more key combinations with custom modifiers. For example, you could define F1 to be a modifier (like a shift key) and define the combination <F1 F2> so it sends F2 to the healer but not the lock.

Or you can use toggles as modifiers. When ScrollLock is on, F2 goes to the healer but not the lock. Etc.

keyclone
06-08-2008, 01:39 PM
i usually just map the mouse action to the key i use for /follow

in my case, i set control+left button triggering ctrl+= (which is my /follow focus)

flep
06-08-2008, 03:07 PM
But, im totally a "keybinder" guy on my lock, dont use the mouse for nothing...
Then why not do this with the keyboard instead of the mouse? You could define keys that send keystrokes only to the healer (even when the healer is in the background).


and have all possible keys with some action.
You can make more key combinations with custom modifiers. For example, you could define F1 to be a modifier (like a shift key) and define the combination <F1 F2> so it sends F2 to the healer but not the lock.

Or you can use toggles as modifiers. When ScrollLock is on, F2 goes to the healer but not the lock. Etc.I already use "1 to =" and "f1 to f12" keys for the lock, and some modifiers with CTRL and SHIFT for my pet's macros. Will be very hard control my lock with this all keybinds and control the healer with modifiers, press CTRL or SHIFT with numbers or "f" keys is not fast enough, cuz i will need to stop press something for the lock to press for the healer. Im looking for something more fast, to not drecrease the skill of my play style.

Of course, for farm or solo some instance is ok, but im thinking about hard PvP play, like Arena 2v2 controling the two chars.
Maybe when i finally buy my G11 or G15 I'll have more keys to press and can put the healer on the macro keyboard keys.

But some solution for mouse functions, like i saw on some sugestion post here about Keyclone, will be very nice and will improve the multi-boxing players skill.

For example, with the HotkeyNet i can send a "mouse click" for the background wow, using a keybind [got the example on the site and works fine]. If this can be done simple with the MouseClick as a hotkey, sending the exactly mouseclick for the background wow, i can just create a fake buttons on my wow1 and put the functions on the same X,Y on the wow2, so, when i click on my wow1 fake bar, will duplicate the click on the wow2.

Freddie
06-08-2008, 03:12 PM
Okay then, I'll make just one more suggestion, because you want to go fast and for most people, moving the mouse is slower than pressing keys. You could define one of the mouse buttons (Button 4, for example) as a modifier. Then you hold that button with one hand and press single keys (1, 2, 3, F1, F2, etc.) with the other hand to send commands to the healer.

For me that would be faster than moving the mouse, but everybody is different.

flep
06-08-2008, 03:16 PM
Okay then, I'll make just one more suggestion, because you want to go fast and for most people, moving the mouse is slower than pressing keys. You could define one of the mouse buttons (Button 4, for example) as a modifier. Then you hold that button with one hand and press single keys (1, 2, 3, F1, F2, etc.) with the other hand to send commands to the healer.

For me that would be faster than moving the mouse, but everybody is different.Its a good suggestion, but i already use my mouse button3,4,5 for warlock actions. Maybe changing the button4 action I can use this as a modifier.

Freddie
06-08-2008, 03:26 PM
For example, with the HotkeyNet i can send a "mouse click" for the background wow, using a keybind [got the example on the site and works fine]. If this can be done simple with the MouseClick as a hotkey, sending the exactly mouseclick for the background wow, i can just create a fake buttons on my wow1 and put the functions on the same X,Y on the wow2, so, when i click on my wow1 fake bar, will duplicate the click on the wow2.
Sorry I forgot to answer this. Yes you can do this now with HotkeyNet. I added mouse triggers to HotkeyNet in build 103 a couple of days ago. If you put the windows on the same X,Y you should also write "NoMove" in <MouseClick> to make the execution very fast. Or you can put the windows on different X,Y's and HKN will move and scale the cursor position, but that adds a little bit of latency. You can also send the click to only the background window if you want even though you're clicking on the top one.

flep
06-08-2008, 05:25 PM
For example, with the HotkeyNet i can send a "mouse click" for the background wow, using a keybind [got the example on the site and works fine]. If this can be done simple with the MouseClick as a hotkey, sending the exactly mouseclick for the background wow, i can just create a fake buttons on my wow1 and put the functions on the same X,Y on the wow2, so, when i click on my wow1 fake bar, will duplicate the click on the wow2.
Sorry I forgot to answer this. Yes you can do this now with HotkeyNet. I added mouse triggers to HotkeyNet in build 103 a couple of days ago. If you put the windows on the same X,Y you should also write "NoMove" in <MouseClick> to make the execution very fast. Or you can put the windows on different X,Y's and HKN will move and scale the cursor position, but that adds a little bit of latency. You can also send the click to only the background window if you want even though you're clicking on the top one.Really?? Can you put an example of the mouseclick1? I have the 103 build but dont know how to put the mouse click on the script.

Ty

Freddie
06-08-2008, 05:53 PM
Sure. The button names changed in build 104. I'll use the new names from 104 in these examples.

To start off, here's a hotkey that does what you described. Your two WoW's are the same size, at the same location. You press the left button and both windows get clicked.


<Hotkey LButton>
<SendWinM wow1>
<MouseClick NoMove LButton>
<SendWinM wow2>
<MouseClick NoMove LButton>
Like I said earlier, you don't need to have the windows in the same place. They don't even have to be the same size. If you move them or resize them, take "NoMove" out of the second <MouseClick> like this:


<Hotkey LButton>
<SendWinM wow1>
<MouseClick NoMove LButton>
<SendWinM wow2>
<MouseClick LButton>
Those hotkeys work okay but they might be annoying because they *always* click both windows when you press the mouse button. It might be better to make a hotkey that does that only sometimes. Here's one way to do that. Pick a key on your keyboard that's easy to find, but doesn't get used much. On US-English keyboards, the Grave key (upper left corner) is a good choice. Declare that as a custom modifier (a shift key). Then define the hotkey so it gets triggered only when Grave is held down simultaneously with the left button. The result looks like this:


<UseKeyAsModifier Grave>
<Hotkey LButton>
<SendWinM wow1>
<MouseClick LButton>
<SendWinM wow2>
<MouseClick LButton>
And that leads up to Katharsis's example from this other thread:

HotkeyNet + AOE! ('http://www.dual-boxing.com/forums/index.php?page=Thread&threadID=8118')