View Full Version : Leaderless setup with HotKeyNet
Anemo
10-22-2008, 05:02 PM
With a lot of help from Freddie I have managed to get a Focusless/Targetless/Leaderless setup working using Hotkeynet. All the theory and macros behind it are the same as the original FTL setup which can be found here. ('http://www.dual-boxing.com/wiki/index.php/Focusless_Targetless_Leaderless_Setup') so I won't go into too much detail apart from the hotkeynet setup.
For those that don't use hotkeynet already I'll give a few examples on the initial setup required for launching your WoW clients, setting window sizes and locations etc. This same setup can be used on any number of WoW client's even spread over various PC's. One thing to keep in mind is that you will always need to use the same wow account on specific wow windows. ie username 'anemo' is linked to wow1 and this setup wont function correctly if 'anemo' ever logs onto another wow window.
The theory behind it is that you can press any normal hotkey ie '1' on any window or PC and it will send a different keypress to initiate a macro which determines which character needs to be assisted.
Any window presses '1' > Hidden key + modifiers sent to all other windows > Macro assists active window's character
Initial setup and launching
All hotkeynet functions are programmed through a hotkey file which is generally just a plain text file. All the below code can be pasted into notepad and saved anywhere and loaded into hotkeynet. If you are using multiple PC's like me you will need to load the same hotkey file on each of your PC's.
This is the code I use to launch my 5 WoW clients on their respective computers and have the windows renamed to wowx when the hotkey combination of Shift + Esc is pressed.
<Hotkey Lshift ESC>
<sendpc Local>
<Run "C:\Users\Public\Games\World of Warcraft\wow.exe">
<RenameTargetWin wow1>
<sendpc 192.168.1.12>
<Run "c:\Program Files\World of Warcraft\wow.exe">
<RenameTargetWin wow2>
<sendpc 192.168.1.2>
<Run "c:\Program Files\World of Warcraft3\wow.exe">
<RenameTargetWin wow3>
<RemoveWinFrame>
<SetWinPos 960 0>
<SetWinSize 960 600>
<Run "c:\Program Files\World of Warcraft4\wow.exe">
<RenameTargetWin wow4>
<RemoveWinFrame>
<SetWinPos 0 600>
<SetWinSize 960 600>
<Run "c:\Program Files\World of Warcraft5\wow.exe">
<RenameTargetWin wow5>
<RemoveWinFrame>
<SetWinPos 960 600>
<SetWinSize 960 600>
This sends the open and rename commands to each computer and for the 3 clients on 1 PC also sets window size and positions them accordingly. For those running all cients on 1 PC the only adjustments required would be to change the <sendpc IP> to <SendPC Local> and add the <SetWinSize> etc functions to all clients with different sizes/positions.
Broadcasting mouse clicks
Hotkeynet is also able to broadcast mouse clicks. I have mine setup so alt + left/middle/right mouse button will broadcast left/right/middle clicks. I use this mostly for healing using
Clique but it also works perfectly for mass clicking on NPC's and Quest text/reward selections. The only real requirement is that all your WoW windows are in the same ratio. My main window
is 1920x1200 and slave windows are generally 960x600 and it remains super accurate.
<Hotkey LAlt RButton>
<SendPC local>
<SendWinm "wow2">
<ClickMouse RButton>
<SendWinm "wow3">
<ClickMouse RButton>
<SendWinm "wow4">
<ClickMouse RButton>
<SendWinm "wow5">
<ClickMouse RButton>
Picture in Picture (window swapping)
Coming soon
Leaderless PC setup
Here is the hotkey file I'm using for my leaderless setup. It is setup with the exact same modifier combination as the wiki post and can use all the same macros.
<command main1>
<SendPC Local>
<SendwinM wow1>
<Key %all%>
<command assist1>
<SendPC Local>
<SendWinM wow2>
<Key ctrl shift %1%>
<SendWinM wow3>
<Key ctrl shift %1%>
<SendWinM wow4>
<Key ctrl shift %1%>
<SendWinM wow5>
<Key ctrl shift %1%>
<command main2>
<SendPC Local>
<SendWin wow2>
<Key %all%>
<command assist2>
<SendPC Local>
<SendWin wow1>
<Key ctrl alt %1%>
<SendWinM wow3>
<Key ctrl alt %1%>
<SendWinM wow4>
<Key ctrl alt %1%>
<SendWinM wow5>
<Key ctrl alt %1%>
<command main3>
<SendPC Local>
<SendWin wow3>
<Key %all%>
<command assist3>
<SendWin wow1>
<Key alt shift %1%>
<SendWin wow2>
<Key alt shift %1%>
<SendWinM wow4>
<Key alt shift %1%>
<SendWinM wow5>
<Key alt shift %1%>
<command main4>
<SendPC Local>
<SendWin wow4>
<Key %all%>
<command assist4>
<SendWin wow1>
<Key ctrl alt shift %2%>
<SendWin wow2>
<Key ctrl alt shift %2%>
<SendWinM wow3>
<Key ctrl alt shift %2%>
<SendWinM wow5>
<Key ctrl alt shift %2%>
<command main5>
<SendPC Local>
<SendWin wow5>
<Key %all%>
<command assist5>
<SendPC Local>
<SendWin wow1>
<Key ctrl %2%>
<SendWin wow2>
<Key ctrl %2%>
<SendWinM wow3>
<Key ctrl %2%>
<SendWinM wow4>
<Key ctrl %2%>
This probably looks a bit daunting at first but you don't actually have to pay too much attention to this part of the code. If you run all your wow clients on the one PC you can just copy this code and forget it.
Setting up your hotkeys and hidden macro keys
The second party of the code is what links your main button press with the 'hidden' macro key of your choice. This example is setup so if the button '1' is pressed on any WoW window it will send the keypress '1' to itself and send the 'hidden' macro key of 't' to all other windows + the modifiers used to tell each client which character to assist. With my current setup you can uses modifiers on your 'main' keys like shift + 1 but it will require its own hidden macro key.
<Hotkey 1>
<If ActiveWinIs wow1> <Main1 %trigger%><Assist1 t>
<Else If ActiveWinIs wow2> <Main2 %trigger%><Assist2 t>
<Else If ActiveWinIs wow3> <Main3 %trigger%><Assist3 t>
<Else If ActiveWinIs wow4> <Main4 %trigger%><Assist4 t>
<Else If ActiveWinIs wow5> <Main5 %trigger%><Assist5 t>
<Hotkey shift 1>
<If ActiveWinIs wow1> <Main1 %trigger%><Assist1 u>
<Else If ActiveWinIs wow2> <Main2 %trigger%><Assist2 u>
<Else If ActiveWinIs wow3> <Main3 %trigger%><Assist3 u>
<Else If ActiveWinIs wow4> <Main4 %trigger%><Assist4 u>
<Else If ActiveWinIs wow5> <Main5 %trigger%><Assist5 u>
You can repeat this code for any other keys you wish to have broadcast. The only parts you will need to edit in each line are the <hotkey x> and the hidden key of t or u in the examples.
Macros
This is an example macro taken from the wiki with the wow window names instead of character names. In this case this macro would be bound to 't' on all clients and the normal Lightning Bolt spell would be bound to '1'.
/assist
[mod:ctrl,mod:shift,nomod:alt]wow1;
[mod:ctrl,mod:alt,nomod:shift]wow2;
[mod:alt,mod:shift,nomod:ctrl]wow3;
[mod:ctrl,mod:alt,mod:shift]wow4;
[mod:ctrl,nomod:alt,nomod:shift]wow5
/cast [harm] Lightning Bolt
/targetlasttarget
No hidden key version
I just found out you can actually do away with a lot of the hidden key idea (still need for shift + mod on main keys). You would put this macro on your '1' key for all characters as it will still function as a non assisted cast on whichever window has focus.
/assist [mod:ctrl,mod:shift,nomod:alt]CharA;
[mod:ctrl,mod:alt,nomod:shift]CharB;
[mod:alt,mod:shift,nomod:ctrl]CharC;
[mod:ctrl,mod:alt,mod:shift]CharD;
[mod:ctrl,nomod:alt,nomod:shift]CharE
/cast [nomod, harm] Lightning Bolt; [mod:shift, harm] Chain Lightning
You would have to edit your hotkey code to be:
<Hotkey 1>
<If ActiveWinIs wow1> <Main1 %trigger%><Assist1 1>
<Else If ActiveWinIs wow2> <Main2 %trigger%><Assist2 1>
<Else If ActiveWinIs wow3> <Main3 %trigger%><Assist3 1>
<Else If ActiveWinIs wow4> <Main4 %trigger%><Assist4 1>
<Else If ActiveWinIs wow5> <Main5 %trigger%><Assist5 1>
You will still require the previous code with a modifier for the shift + 1 hotkey. The macro on your hidden kill would only contain the /cast Chain Lightning, none of the [nomod] part.
I'm not sure how well I have explained all of this, I mainly wanted to show that it is possible to do with hotkeynet. I haven't done extensive testing with the wow maintenance last night so there may well be mistakes. I will update this post as much as I can, I'm currently editing it inbetween phone calls at work so hopefully I haven't missed anything major.
olipcs
10-22-2008, 05:45 PM
Congrats mate for the effort and the good explaining! (Much mor better than my in the wiki...)
Very promising to see an implementation of the ftl with another broadcasting software than keyclone.
(although I like keyclone, but more options is allways god to spread the word ;) )
One little question i had, when i read it (because i never realy have used hotkeynet) is the following:
When you use the following to define your modifier combination:
<command assist1>
<SendPC Local>
<Sendwin wow1>
<Key %1%>
<SendPC 192.168.1.12>
<SendWin wow2>
<Key ctrl shift %2%>
...
Are the %1% and %2% variables of the assist command (like in a batchfile)?
So that when you call the assist-command like:
<Hotkey 1>
<If ActiveWinIs wow1> <Assist1 %trigger% t>
..
..it substitutes %1% with the trigger '1' and %2% with 't'?
- if this is the case, its so much beauty, that i have to try it ;)
Because what this realy means is, that the definition of your modifier combination would be independent from the definition of the master and slave keys, which in my opinion would lead to a simpler setup of the system. beautiful :thumbup:
So you only need to define 5 new lines for a a new master - slave -comnination :) I like it!
Again, thank you for your good work!
I was so free and added a short note to the wiki, with a link to this thread. Hope this is ok for you?
(Perhaps I will also include the basics in the wiki, but this would mean to change the structure of the wiki thread a little..)
Vyndree
10-22-2008, 05:46 PM
Moved to the software forum (though it's debatable whether it should be in the addons & macros forum).
I'd be very interested in seeing this thread get migrated to a page in our wiki ('http://www.dual-boxing.com/wiki'). ;) *hint hint, nudge nudge*
Tasty
10-22-2008, 05:52 PM
*hint hint, nudge nudge*
I could be wrong but I think Vyn's asking if its okay if she migrates this to the wiki for you... again I could be wrong
Anemo
10-22-2008, 06:10 PM
The %1% and %2% actually just call the 1st and 2nd value after the assist1 command
So <Assist1 "firstvalue" "secondvalue" will replace any %1% with 'firstvalue' and so on.
In my case the first value is always %trigger% which just fills in which hotkey was pressed to save writting it out each time. For button #1 <assist1 1 t> actually does the same thing.
This is what broke my setup when using a shift + key modifier since it would then read <assist1 shift 1 t> ends up attempting to send only shift to the main window and mods + 1 to the others rather than t. I have got this working fine but is a little messy, I had to create <assistmod> commands to use instead and including a %3% variable.
This explains it better than I can (http://hotkeynet.com/ref/command.html)
I'm more than happy for anyone to link this or put it on the wiki, I'll even do it myself if needed :P
olipcs
10-22-2008, 06:10 PM
Thank you Anemo, than i understood the %1% and %2% correctly (sorry i'm so an HotKeyNet-Noob)
...the more i read about it, i want to try it :)
..another great thing, which should be possible with this (and not with keyclone) is to differentiate between ingoing and outgoing hotstrings (like requested here: [Keyclone] Feature Request: differentiation of ingoing and outgoing hotstrings ('http://www.dual-boxing.com/forums/index.php?page=Thread&threadID=13197'))
..argh, its a shame i can't test it till thursday evening, cause i have to work and tonight is my ad&d-night :(
@the wiki-veterans: Would you support a new category on the frontpage for different targeting system (like ftl, focus-based ...), as discussed here: Wiki Category - Targeting setups. ('http://www.dual-boxing.com/forums/index.php?page=Thread&threadID=14690') ?
Freddie
10-22-2008, 07:42 PM
I'm not sure how well I have explained all of this...
Holy smokes, Anemo, you did a phenomenal job! Thanks so much! :D I'm really blown away by the amount of work you did and how excellent it is.
HotkeyNet is almost finished but one of the things I need to do before the beta ends is improve its ability to send ctrl, alt, and shift to WoW when it's in a background window. That may affect this kind of script, so if anyone has problems, please let me know and I'll try to finish this last bit of work right away.
..another great thing, which should be possible with this (and not with keyclone) is to differentiate between ingoing and outgoing hotstrings
I'm not sure about the terminology, but with HotkeyNet, the trigger (the keys you press with your fingers) and the resulting action (in this case, keystrokes that get sent to WoW) are completely independent. They can be the same or different -- it's up to you. And the action can be any sort of action or combination of actions or conditionally executed actions, not just sending keystrokes. This is a general-purpose program, not just a multiboxing program, so you can tell it to do a lot of different things.
..Are the %1% and %2% variables of the assist command (like in a batchfile)?
They are very much like variables in a function call, and you can think of them that way. (But the values of these variables are always a piece of text that you wrote in your script, so really they are text-substitution macros.)
- if this is the case, its so much beauty, that i have to try it
I'm glad to hear it strikes you that way. During the course of HotkeyNet's beta test, as the program grew, I tried to keep the script language simple but powerful. Sometimes I think I tried too hard to hide the program's complexity from the user, which paradoxically can make things harder, but I guess it's normal to look back when a project is almost finished and feel doubtful about some of the decisions that got made. :)
olipcs
10-23-2008, 01:58 AM
Couldn't resist and squeeze 1h of from work, to give it a go...
..first of all, a big thank you,Freddie, for the massive informations on the hotkey.net website, i could get hotkey working, with almost every function i use (maximizer, switching-regions, do-not-pass-list, and the ftl-setup) in under an hour, and there are only some little features i must transistion from my keyclone-behavior to hotkeynet. (But as i see the power of the scripting language, this should no problem..)
So i logged on, and testet simple following and targeting, and all worked great! -I had no problems at all, and will for (atleat an 2weeks testing period) use it in the future (which means for you, that i might have some specific questions ;) ).
So again, big thanks for your effort Anemo!
-Sorry, I have to go to my ad&d session, so more testing will be done tomorrow...
PS: Only thing i noticed is, that keclone was a little bit faster in region-switching, but this could be because i simply hacked the one i used together from the hotkeynet reference.
Anemo
10-23-2008, 03:20 AM
I looks like I might have to get around to putting it on the wiki, I've exceeded the 10k character limit :(
I'll post a few more changes in here for now.
Broadcasting mouse clicks
Hotkeynet is also able to broadcast mouse clicks. I have mine setup so alt + left/middle/right mouse button will broadcast left/right/middle clicks. I use this mostly for healing using
Clique but it also works perfectly for mass clicking on NPC's and Quest text/reward selections. The only real requirement is that all your WoW windows are in the same ratio. My main window
is 1920x1200 and slave windows are generally 960x600 and it remains super accurate.
<Hotkey LAlt RButton>
<SendPC local>
<SendWinm "wow2">
<ClickMouse RButton>
<SendWinm "wow3">
<ClickMouse RButton>
<SendWinm "wow4">
<ClickMouse RButton>
<SendWinm "wow5">
<ClickMouse RButton>
Just copy and replace Rbutton with Lbutton or Mbutton for left/middle mouse clicks where required.
Using modifiers
To allow the use of modifiers on your broadcasting keys like 1 a bit more code is required. This is how mine is setup which will allow use of any single modifier (ctrl, alt or shift). Keep in mind that each modifier combination will need its own hidden macro key.
<command assistmod1>
<SendPC Local>
<Sendwin wow1>
<Key %1% %2%>
<SendPC 192.168.1.12>
<SendWin wow2>
<Key ctrl shift %3%>
<SendPC 192.168.1.2>
<SendWinM wow3>
<Key ctrl shift %3%>
<SendPC 192.168.1.2>
<SendWinM wow4>
<Key ctrl shift %3%>
<SendPC 192.168.1.2>
<SendWinM wow5>
<Key ctrl shift %3%>
<command assistmod2>
<SendPC 192.168.1.11>
<SendWin wow1>
<Key ctrl alt %3%>
<SendPC Local>
<SendWin wow2>
<Key %1% %2%>
<SendPC 192.168.1.2>
<SendWinM wow3>
<Key ctrl alt %3%>
<SendPC 192.168.1.2>
<SendWinM wow4>
<Key ctrl alt %3%>
<SendPC 192.168.1.2>
<SendWinM wow5>
<Key ctrl alt %3%>
<command assistmod3>
<SendPC 192.168.1.11>
<SendWin wow1>
<Key alt shift %3%>
<SendPC 192.168.1.12>
<SendWin wow2>
<Key alt shift %3%>
<SendPC Local>
<SendWin wow3>
<Key %1% %2%>
<SendPC Local>
<SendWinM wow4>
<Key alt shift %3%>
<SendPC Local>
<SendWinM wow5>
<Key alt shift %3%>
<command assistmod4>
<SendPC 192.168.1.11>
<SendWin wow1>
<Key ctrl alt shift %3%>
<SendPC 192.168.1.12>
<SendWin wow2>
<Key ctrl alt shift %3%>
<SendPC Local>
<SendWinM wow3>
<Key ctrl alt shift %3%>
<SendPC Local>
<SendWin wow4>
<Key %1% %2%>
<SendPC Local>
<SendWinM wow5>
<Key ctrl alt shift %3%>
<command assistmod5>
<SendPC 192.168.1.11>
<SendWin wow1>
<Key ctrl %3%>
<SendPC 192.168.1.12>
<SendWin wow2>
<Key ctrl %3%>
<SendPC Local>
<SendWinM wow3>
<Key ctrl %3%>
<SendPC Local>
<SendWinM wow4>
<Key ctrl %3%>
<SendPC Local>
<SendWin wow5>
<Key %1% %2%>
The keys are setup individually in the same way only using AssistModx instead.
<<Hotkey shift 1>
<If ActiveWinIs wow1> <Assistmod1 %trigger% g>
<Else If ActiveWinIs wow2> <Assistmod2 %trigger% g>
<Else If ActiveWinIs wow3> <Assistmod3 %trigger% g>
<Else If ActiveWinIs wow4> <Assistmod4 %trigger% g>
<Else If ActiveWinIs wow5> <Assistmod5 %trigger% g>
Movement keys and formations
Movement keys are handled a bit differently in Hotkeynet as they are required to be held down rather than a simple single press.
This is how I have setup my formation at the moment. It will send 1 character forward, 1 backward, 1 left and 1 right depending on who is the leader (leader remains stationary)
<hotkey r>
<If ActiveWinIs wow1>
<SendPC 192.168.1.12>
<SendWinM wow2>
<Keydown left>
<SendPC 192.168.1.2>
<SendWinM wow3>
<Keydown right>
<SendPC 192.168.1.2>
<SendWinM wow4>
<Keydown up>
<SendPC 192.168.1.2>
<SendWinM wow5>
<Keydown down>
<Else If ActiveWinIs wow2>
<SendPC 192.168.1.11>
<sendwinM wow1>
<Keydown left>
<SendPC 192.168.1.2>
<sendwinM wow3>
<Keydown right>
<SendPC 192.168.1.2>
<sendwinM wow4>
<Keydown up>
<SendPC 192.168.1.2>
<sendwinM wow5>
<Keydown down>
<Else If ActiveWinIs wow3>
<SendPC 192.168.1.11>
<sendwinM wow1>
<Keydown left>
<SendPC 192.168.1.12>
<sendwinm wow2>
<Keydown right>
<SendPC 192.168.1.2>
<sendwinm wow4>
<Keydown up>
<SendPC 192.168.1.2>
<sendwinm wow5>
<Keydown down>
<Else If ActiveWinIs wow4>
<SendPC 192.168.1.11>
<sendwinm wow1>
<Keydown left>
<SendPC 192.168.1.12>
<sendwinm wow2>
<Keydown right>
<SendPC 192.168.1.2>
<sendwinm wow3>
<Keydown up>
<SendPC 192.168.1.2>
<sendwinm wow5>
<Keydown down>
<Else If ActiveWinIs wow5>
<SendPC 192.168.1.11>
<sendwinm wow1>
<Keydown left>
<SendPC 192.168.1.12>
<sendwinm wow2>
<Keydown right>
<SendPC 192.168.1.2>
<sendwinm wow3>
<Keydown up>
<SendPC 192.168.1.2>
<sendwinm wow4>
<Keydown down>
<hotkeyup r>
<If ActiveWinIs wow1>
<SendPC 192.168.1.12>
<SendWinm wow2>
<Keyup left>
<SendPC 192.168.1.2>
<SendWinM wow3>
<Keyup right>
<SendPC 192.168.1.2>
<SendWinM wow4>
<Keyup up>
<SendPC 192.168.1.2>
<SendWinM wow5>
<Keyup down>
<Else If ActiveWinIs wow2>
<SendPC 192.168.1.11>
<sendwinm wow1>
<Keyup left>
<SendPC 192.168.1.2>
<sendwinm wow3>
<Keyup right>
<SendPC 192.168.1.2>
<sendwinm wow4>
<Keyup up>
<SendPC 192.168.1.2>
<sendwinm wow5>
<Keyup down>
<Else If ActiveWinIs wow3>
<SendPC 192.168.1.11>
<sendwinm wow1>
<Keyup left>
<SendPC 192.168.1.12>
<sendwinm wow2>
<Keyup right>
<SendPC 192.168.1.2>
<sendwinm wow4>
<Keyup up>
<SendPC 192.168.1.2>
<sendwinm wow5>
<Keyup down>
<Else If ActiveWinIs wow4>
<SendPC 192.168.1.11>
<sendwinm wow1>
<Keyup left>
<SendPC 192.168.1.12>
<sendwinm wow2>
<Keyup right>
<SendPC 192.168.1.2>
<sendwinm wow3>
<Keyup up>
<SendPC 192.168.1.2>
<sendwinm wow5>
<Keyup down>
<Else If ActiveWinIs wow5>
<SendPC 192.168.1.11>
<sendwinm wow1>
<Keyup left>
<SendPC 192.168.1.12>
<sendwinm wow2>
<Keyup right>
<SendPC 192.168.1.2>
<sendwinm wow3>
<Keyup up>
<SendPC 192.168.1.2>
<sendwinm wow4>
<Keyup down>
As you can see it really is very similar to all the other hotkeys just seperated into keydown and keyup. The other difference is I'm using specific keys rather than the 'macros' (%x%) since
I will only ever have one formation key and its unlikely to change.
The same principles could be used for functions like having all slave characters turn while a button is held or plenty of other formation types using walk etc
A lot of my code may be a bit bloated but hopefully it is enough of an example for people with more experience to improve on (not hard since I have no coding knowledge at all)
Freddie
10-23-2008, 04:33 AM
..first of all, a big thank you,Freddie, for the massive informations on the hotkey.net website, i could get hotkey working, with almost every function i use (maximizer, switching-regions, do-not-pass-list, and the ftl-setup) in under an hour, and there are only some little features i must transistion from my keyclone-behavior to hotkeynet. (But as i see the power of the scripting language, this should no problem..)
That's excellent news! I'm delighted to hear that.
..So i logged on, and testet simple following and targeting, and all worked great! -I had no problems at all, and will for (atleat an 2weeks testing period) use it in the future (which means for you, that i might have some specific questions ;) ).
I really appreciate that you're willing to spend two weeks testing. That's terrific. Of course, any suggestions or problems or questions, fire away.
..PS: Only thing i noticed is, that keclone was a little bit faster in region-switching, but this could be because i simply hacked the one i used together from the hotkeynet reference.
I'm very glad you told me this. Now that I know, I'd like to speed this up before the beta ends. Maybe, if you get a chance, you could help me figure out the cause. A little background:
The commands used in the sample script (SetWinRegion, SetWinSize, etc.) are just wrappers for operating system functions. For example, when you write "SetWinRegion" in a script, you're just calling the operating system function SetWindowRgn. When you write "SetWinPos," you're calling the operating system function MoveWindow. And so forth. Programmers sometimes call this "exposing" features to the user. HotkeyNet "exposes" the operating system functions to you.
Now, I can think of two reasons why Keyclone is faster:
1. The sample script uses a less-than-optimal set of commands or uses them in a less-than-optimal order. This is quite possible since I wrote the sample script very fast and didn't experiment very much.
2. Keyclone may use a method that isn't exposed by the set of wrappers I implemented. For example, there's a "mirroring" API in Windows that could possibly be used for this purpose.
It would be great if you could help me figure out which of these is the explanation, and then I'll improve the program.
One other thing. There are two relevant commands (i.e. wrapped operating system functions) in HotkeyNet that might be useful here which I didn't use in the sample. They're called SetWinRedraw ('http://www.hotkeynet.com/ref/setwinredraw.html') and UpdateWin ('http://www.hotkeynet.com/ref/updatewin.html'). I think maybe region changes might be faster if (a) you turn screen redrawing off for the affected windows, (b) resize and reposition and re-region them, (c) turn redrawing back on, and (d) redraw all the windows to reflect the new state.
Freddie
10-23-2008, 05:08 AM
I looks like I might have to get around to putting it on the wiki, I've exceeded the 10k character limit :(
Sounds like a good idea.
A lot of my code may be a bit bloated but hopefully it is enough of an example for people with more experience to improve on (not hard since I have no coding knowledge at all)
It's my fault it's bloated because you asked me in the HotkeyNet forum if you could use If-statements with MovementHotkey and I said I couldn't remember. But I just tested, and yes you can. (My bad memory is due to the fact that I've changed the syntax of movement hotkeys twice during the beta and I forgot how I finalized it.) You can also use labels. So your movement hotkey could be condensed as shown below.
Btw I think you'd be an excellent programmer. Imho you have the knack. :)
// DEFINE MAILING LABELS, ONE FOR EACH WOW
<Label w1 192.168.1.11 SendWinM wow1>
<Label w2 192.168.1.12 SendWinM wow2>
<Label w3 192.168.1.2 SendWinM wow3>
<Label w4 192.168.1.2 SendWinM wow4>
<Label w5 192.168.1.2 SendWinM wow5>
// DEFINE A MOVEMENT HOTKEY FOR FORMATION
<MovementHotkey R>
<If ActiveWinIs wow1>
<SendLabel w2> <Key Left>
<SendLabel w3> <Key Right>
<SendLabel w4> <Key Up>
<SendLabel w5> <Key Down>
<Else If ActiveWinIs wow2>
<SendLabel w1> <Key Left>
<SendLabel w3> <Key Right>
<SendLabel w4> <Key Up>
<SendLabel w5> <Key Down>
<Else If ActiveWinIs wow3>
<SendLabel w1> <Key Left>
<SendLabel w2> <Key Right>
<SendLabel w4> <Key Up>
<SendLabel w5> <Key Down>
<Else If ActiveWinIs wow4>
<SendLabel w1> <Key Left>
<SendLabel w2> <Key Right>
<SendLabel w3> <Key Up>
<SendLabel w5> <Key Down>
<Else If ActiveWinIs wow5>
<SendLabel w1> <Key Left>
<SendLabel w2> <Key Right>
<SendLabel w3> <Key Up>
<SendLabel w4> <Key Down>
Anemo
10-23-2008, 12:58 PM
Thats one thing I really should have tried. Just wondering with labels if I use IP's for all the labels will it cause any problem? ie wow1 is on 192.168.1.1 can I use that even on 192.168.1.1 and it will send as if it were <SendPC local> ?
I think i tried using labels within commands without any success but that would make things a lot neater too.
Looks like another unproductive day at work :)
olipcs
10-23-2008, 06:13 PM
Hi, thanks for all the help!
I could squeeze a little time yesterday and did my daily-routine, while using HotKeyNet with the FTL-Setup, and still no problems at all :)
..i also implementet my line formation (like described in the ftl-wiki) with hotkeynet, it worked perfectly and was much more intuitive to setup (because keyclone can not differentiate between ingoing and outgoing hotkeys, and HotKeyNet does it more naturly).
As far as the region-switching, one thing i like to add: I did say, keyclone seemed faster, but only a little (so its not that big of a deal). It feels with keyclone like a second and with HotKeyNet more like 2-3 seconds.
But honestly I think, its more because of the way i'm doing it, and not your fault Freddy! I will try your suggestion about stopping the redraw, resizing, positioning, activating the redraw, this afternoon.
Some other things I like to test, when I'm back at home (cause I'm not using them in my variatioon of the ftl), are:
- using ftl for my casts (@ the moment i only use it for follow and promote target changes of my leader with a seperate keypress, mainly because i want my leader (which is normaly my tank) to be able to target other targets than my dpser are focusing down)
- using it together with the /click - Method
- using modifiers (like shift+2) for the master-keys
- perhaps use the power of mouse-broadcasting for clique healing (alhough this has nothing to do with the ftl)
Did I miss something to test? -Any suggestions?
I think i tried using labels within commands without any success but that would make things a lot neater too. Funny you mentioned that, because as I set it up yesterday, I tryed exactly the same thing (to shorten the procedure), with the same result, that I could use a phrase like:
<Hotkey 1>
<If ActiveWinIs WoW1>
<SendLabel w1>
<Key %trigger%>
<SendLabel w2,w3,w4,w5>
<Key ctrl shift u>
where the <SendLabel> is embedded in the Hotkey itself, but not a phrase where the <SendLabel> is defined in the <command>, which is called in a hotkey, like the following:
<command assist1>
<SendLabel w1>
<Key %1%>
<SendLabel w2,w3,w4,w5>
<Key ctrl shift %2%>
Or is there a possibility to embed a <SendLabel> in an <command>, and i'm doing it wrong?
Another question for the general HotKeyNet-usage (sorry if i'm derailing the thread):
Is there a possibility to save custom variables?
-This would be neat, because for region-swapping it would mean, that i actually only have to resize/position up to 3 region, which are affected by the region-switch and not all 5 ;)
-But perhaps this is too much hassle, as i'm not hinking it is implemented at the moment...
Anemo
10-23-2008, 07:40 PM
Would you happen to be using windows Vista olipcs? I'm trying to work out if that is causing one of my problems or if it is some other factor.
Clique for healing is fun but does require some UI changes to get party list in same order and placement on all clients or something similar with Grid etc. With my tank setup I ended up recreating a heal tank button as clicking got a bit old but its perfect for emergency healing of other party members (or raid with grid)
Sounds like you have pretty much everything covered. The only thing I've been meaning to play with a bit more is a roundrobin setup using toggles. It should be a lot easier now I realise I can use IP's instead of <local> making it work from any of my PCs (why oh why didnt I try that at first)
A simple roundrobin is pretty straightforward but a FTL one for skills that require /assist might be a bit more of a challenge.
olipcs
10-23-2008, 08:01 PM
Would you happen to be using windows Vista olipcs? I'm trying to work out if that is causing one of my problems or if it is some other factor. Yep, I'm using Vista 64 (I think Business Edition), so if I should test some things for you, name it! ;)
Well, right, about round-robin I haven't thought, mainly because i'm not realy using it (or when i do, i mostly do it with /castsequneces).
But I will put some thoughts in it ;)
Freddie
10-23-2008, 08:06 PM
Just wondering with labels if I use IP's for all the labels will it cause any problem? ie wow1 is on 192.168.1.1 can I use that even on 192.168.1.1 and it will send as if it were <SendPC local> ?
Up until today this was impossible but since you're asking (and other people have asked before) I just added it in build 149 which can be downloaded now ('http://hotkeynet.com/p/download.html').
This change may cause a problem with IP addresses in commands. If so, please let me know and I'll fix it. If that happens, you can disable the change immediately by unchecking "Translate local IP address" on the settings panel.
It may also cause a problem on PCs that have more than one IP address (there are such things, and that's why I didn't implement it originally) but if that happens, that same checkbox will fix things.
olipcs
10-23-2008, 08:33 PM
All from scratch, and simple hacked together, and untested (cause i should be working ;) ), but can't round-robin be done like this:
What this hopefully should do:
Do a roundrobin with master key '2' and slave-key 'u', on all five wow-instances.
<command SendAssistToSpecificWindow>
<SendPC Local>
<If ActiveWinIs %3%>
<SendWin %3%>
<Key %1%>
<Else If ActiveWinIs WoW1>
<SendWinM %3%>
<Key ctrl shift %2%>
<Else If ActiveWinIs WoW2>
<SendWinM %3%>
<Key ctrl alt %2%>
<Else If ActiveWinIs WoW3>
<SendWinM %3%>
<Key alt shift %2%>
<Else If ActiveWinIs WoW4>
<SendWinM %3%>
<Key ctrl alt shift %2%>
<Else If ActiveWinIs WoW5>
<SendWinM %3%>
<Key ctrl %2%>
<Hotkey 2>
<Toggle>
<SendAssistToSpecificWindow %trigger% u WoW1>
<Toggle>
<SendAssistToSpecificWindow %trigger% u WoW2>
<Toggle>
<SendAssistToSpecificWindow %trigger% u WoW3>
<Toggle>
<SendAssistToSpecificWindow %trigger% u WoW4>
<Toggle>
<SendAssistToSpecificWindow %trigger% u WoW5>
What i think this should do is the following:
The definition of the <Hotkey 2 ..> does the toggeling, and calls in each toggle the command <SendAssistToSpecificWindow> with the following parameters:
1st parameter: The original pressed hotkey ('master-key')
2nd parameter: The key, which should be pished to the windows which are not active ('slave-key')
3rd paramter: The window, which should the Key be send
..in the Toggle, the last parameter is changed, to simulate round-robin.
<SendAssistToSpecificWindow> does the following:
1. checks if the Window which should the keystroke be send, is the Active window, when this is the case, it sends the unmodified key to it.
When condition 1. is not met, it checks the following for all other windows:
- checks which is the active Window (to know, which modifier combination to send)
- After the active Window is found, send the 'slave-key' with the corresponding modifier to identify the active window, to the Window which is specified by the 3rd paramter
...from pure logic this should work, but as nearly in all software projects, the devil is in the details, so if you chave any thoughts on this, your welcome :)
Some Flaw might be, that I don't know if this is possible: <If ActiveWinIs %3%> ?!
Anemo
10-23-2008, 08:51 PM
I've been messing around with this so much over the last 3 days I keep forgetting what did and didn't work. I do seem to recall If and Else statements having issues within a command though.
My issue is that i cant seem to get the mods to broadcast to my vista PC but my two XP computers work fine. I thought it might just be vista issues but since yours is OK i'm lost. The only thing that came to mind while I was at work was that I use ctrl + alt as my mouse4 and 5 buttons using the logitech software, this shouldn't be the cause but who knows.
I've tried running wow and hotkey as admin and turning off UAC.
Thank you so much Freddie for that change, it is going to make my life a lot easier with switching between PC's.
Freddie
10-23-2008, 08:55 PM
Hi, thanks for all the help!
Not a problem! Thanks for the feedback and testing.
I could squeeze a little time yesterday and did my daily-routine, while using HotKeyNet with the FTL-Setup, and still no problems at all :)
I'm truly delighted to hear that.
..i also implementet my line formation (like described in the ftl-wiki) with hotkeynet, it worked perfectly and was much more intuitive to setup (because keyclone can not differentiate between ingoing and outgoing hotkeys, and HotKeyNet does it more naturly).
It's interesting that it seems intuitive to you. It seems intuitive to me too (not a surprise, since I designed it). But many people (many!) come to HotkeyNet thinking ingoing and outgoing are the same, and they have trouble understanding the difference. They are thinking, "this program will broadcast (mirror, copy) my actions from one window to another." They are bewildered by the idea of trigger and result, even thought it's exactly the same as the difference between a trigger (on a gun) and a bullet. In the beginning I was astonished by this. Now I'm used to it.
..As far as the region-switching, one thing i like to add: I did say, keyclone seemed faster, but only a little (so its not that big of a deal). It feels with keyclone like a second and with HotKeyNet more like 2-3 seconds.
I looked at my sample script again, and I think maybe I wrote it in a silly way. It calls SetForegroundWin twice, which is a very slow thing to do -- it's the same as Alt-Tabbing. I don't know why I did that. I wrote that script quickly as a sample and never looked at it again. If SetForegroundWin is removed it will probably be much faster.
Did I miss something to test? -Any suggestions?
That's a really nice offer. Thanks. Since we're almost at the end of a nine-month beta test, I think the existing code is pretty well tested at this point. I'm going to add four more features before the end of the beta, and those will need to be tested.
To save yourself work, here's the list of known bugs and incomplete features. There's no need to test these things since they are already known.
Known Bugs and Incomplete Features ('http://www.hotkeynet.com/p/bugs.html')
Or is there a possibility to embed a <SendLabel> in an <command>, and i'm doing it wrong?
Sorry, it's not possible to put SendLabel in a command. Maybe if I get time I'll change this before the end of the beta. By the way this is more complicated than it seems because SendLabel is more than a fast way to write the IP and window in one statement, because you can write multiple arguments like this:
<SendLabel w1, w2, w3, w4>
When HotkeyNet loads that statement, it expands the SendPC block into two unrolled loops like this. (You can see the expansion by pressing "Show loaded hotkeys."):
for each PC in the list of labels
{
for ( each window in that PC in the label )
{
do whatever instructions follow that label, adjusting for the IP and window name
}
}
I was concerned that the expansion might be more complicated for commands than for hotkeys (because hotkeys always load on the machine where they get triggered, but commands don't), so I postponed trying to implement labels for commands until they were fully debugged in hotkeys.
Is there a possibility to save custom variables? -This would be neat, because for region-swapping it would mean, that i actually only have to resize/position up to 3 region, which are affected by the region-switch and not all 5 ;)
No, sorry. I agree that it would be a very nice feature, but at the beginning I made a decision that the program would not have user-defined variables because I wanted to make the program as easy and non-technical as possible for non-programmers. (At that time I hoped that the program would be much simpler than it turned out to be.)
Freddie
10-23-2008, 09:13 PM
<command SendAssistToSpecificWindow>
<SendPC Local>
<If ActiveWinIs %3%>...
Unfortunately you can't use If-Else-EndIf in commands. Here's why. Commands can be loaded on a remote PC. In other words, you might press the hotkey on one PC and that PC sends a message to a second PC saying, "execute this command." The first PC knows only the name of the command. The instructions for the command exist only on the remote PC.
"IfActiveWinIs" applies to the active window on the local PC -- the one where you pressed the trigger. When the command executes on the remote PC, it sees the statement "<If ActiveWinIs ...>." In order to evalute that statement, the remote command has to know which window is active on a different PC. How can it know? Either --
(a) It sends a query to the local PC asking for the name of the active window, or
(b) Every single time the local PC sends instructions to a remote PC, it has to include the name of the local window.
The second option gets ruled out because it doesn't work for "IfWinExists". So I would have to implement (a). There were two drawbacks to this:
1. It would be slightly slow (round trip ping times are about 1.5 milliseconds on my network, which I'm guessing is typical).
2. It would take me probably a day's work to implement it and maybe more to debug, and by the time I implemented If-Else-EndIf I had decided to limit my time on the program because I want to get it finished and move on to the next one.
Another option -- this is occuring to me now for the first time -- is make If-Else-Endif apply to whichever PC the definition was loaded on instead of the PC where you press the trigger. This would make the implementation easier for me, but it might be confusing for users.
Freddie
10-23-2008, 09:21 PM
IMy issue is that i cant seem to get the mods to broadcast to my vista PC but my two XP computers work fine. I thought it might just be vista issues but since yours is OK i'm lost. The only thing that came to mind while I was at work was that I use ctrl + alt as my mouse4 and 5 buttons using the logitech software, this shouldn't be the cause but who knows.
If you can't figure it out, let me know. There are very definitely problems with HotkeyNet sending modifiers in background mode. (As I keep saying, it's one of the last things that remain to be done before the beta ends.) I'm surprised you two haven't had more problems with it.
Thank you so much Freddie for that change, it is going to make my life a lot easier with switching between PC's.
You're welcome. It's largely your own doing. When people have a lot of interest and energy about the program, that inspires me to do stuff. :)
olipcs
10-23-2008, 09:48 PM
Unfortunately you can't use If-Else-EndIf in commands.... Thank you for the quick comment, and the detailed explanation, why it isn't possible.
As someone, who also has a little xperience in programming, its quite interresting to read the details :)
and by the time I implemented If-Else-EndIf I had decided to limit my time on the program because I want to get it finished and move on to the next one. ..hey, no problem with that, in my opinion you have done a wonderful job, and knowing, that you put your time in another project (programW I think), which sounds very promising is perfectly ok with me (although the scripting seems to be gone, which i realy like about hkn, but the masses will kiss you for simple graphic interfaces, so its ok! ;) ).
Btw. if you need more alpha-testers therefor, tell me...
But back to topic:
..when the only problem, why the above wouldn't work is, that the iF-Else-Endif is defined in a command, it basicly should work, if i "hard code" it in the hotkey, which only would result in a longer, more redundant hotkeydefinition, but shouldn't be a problem.
Especialy, i think i read somewhere, that you can include other hotkeyfiles, so that for better readability the definitions could be spread around more than one file.
Hardcoded, the above would look like:
<Hotkey 2>
<Toggle>
<SendLabel w1>
<If ActiveWinIs WoW1>
<Key %trigger%>
<Else If ActiveWinIs WoW2>
<Key ctrl alt u>
<Else If ActiveWinIs WoW3>
<Key alt shift u>
<Else If ActiveWinIs WoW4>
<Key ctrl alt shift u>
<Else If ActiveWinIs WoW5>
<Key ctrl u>
<Toggle>
<SendLabel w2>
<If ActiveWinIs WoW2>
<Key %trigger%>
<Else If ActiveWinIs WoW1>
<Key ctrl shift u>
<Else If ActiveWinIs WoW3>
<Key alt shift u>
<Else If ActiveWinIs WoW4>
<Key ctrl alt shift u>
<Else If ActiveWinIs WoW5>
<Key ctrl u>
<Toggle>
<SendLabel w3>
<If ActiveWinIs WoW3>
<Key %trigger%>
<Else If ActiveWinIs WoW1>
<Key ctrl shift u>
<Else If ActiveWinIs WoW2>
<Key ctrl alt u>
<Else If ActiveWinIs WoW4>
<Key ctrl alt shift u>
<Else If ActiveWinIs WoW5>
<Key ctrl u>
<Toggle>
<SendLabel w4>
<If ActiveWinIs WoW4>
<Key %trigger%>
<Else If ActiveWinIs WoW1>
<Key ctrl shift u>
<Else If ActiveWinIs WoW2>
<Key ctrl alt u>
<Else If ActiveWinIs WoW3>
<Key alt shift u>
<Else If ActiveWinIs WoW5>
<Key ctrl u>
<Toggle>
<SendLabel w5>
<If ActiveWinIs WoW5>
<Key %trigger%>
<Else If ActiveWinIs WoW1>
<Key ctrl shift u>
<Else If ActiveWinIs WoW2>
<Key ctrl alt u>
<Else If ActiveWinIs WoW3>
<Key alt shift u>
<Else If ActiveWinIs WoW4>
<Key ctrl alt shift u>
..it looses its understandability a little, but should work ;)
Freddie
10-23-2008, 10:24 PM
Yep, I think that will work.
Freddie
10-23-2008, 10:44 PM
As someone, who also has a little xperience in programming, its quite interresting to read the details :)
I figured you were a programmer. :) I'm glad I wasn't boring you with the explanation -- I like explaining things but this is often a burden on the audience. :)
and by the time I implemented If-Else-EndIf I had decided to limit my time on the program because I want to get it finished and move on to the next one. ..hey, no problem with that, in my opinion you have done a wonderful job, and knowing, that you put your time in another project (programW I think), which sounds very promising is perfectly ok with me (although the scripting seems to be gone, which i realy like about hkn, but the masses will kiss you for simple graphic interfaces, so its ok! ;) ).
Btw. if you need more alpha-testers therefor, tell me...
Thanks for the kind words. Yes, the new project is ProgramW ('http://www.programw.com/'). Maybe I'll add scripting to the new program after everything else is finshed in it, or even merge it with HotkeyNet, I don't know. The basic idea is to make it extremely easy for everybody to use, not just programmerish people like you and me. Thanks for the offer to alpha test, and I'll take you up on it. The program isn't ready to test yet, but I'll let you know.
David
10-24-2008, 04:44 AM
Correct me if I`m wrong, but this setup is made to be able to use every one of your chars as a main right?
Because if that`s so, I think I did it with less work(script), haven`t gone trough all your scripting yet so I`m not 100% sure. But the way I did it I can change to any char to set it as a main, just by one keyclick and I can still use the same follow and assist macro.
olipcs
10-24-2008, 04:57 AM
So, did some testing and here are the results:
Region-Switching
As Freddie suggested canceling the redraw before resizing/positioning and a better order of my commands results in a performance gain.
I optimized my script, so that the following is done if I want the Window of WoWX on my big main region (region1):
1. Resize and Reposition WoWX in region1, and give it the focus
2. Turn redraw off, for all other windows (without focusing them)
3. Resize and Reposition all windows that ar not WoWX (without focusing them)
4. Turn redraw on and update all windows that ar not WoWX (without focusing them)
Thie result of this order is, that the Window i want to play activ, which should be displayed in region1 is switched very fast (first), so you can move with the active toon leading, and after that the other 'slaves' are configured.
The result is, that it feels more like only a second, till you can play the active toon instead of the 2-3 seconds i mentioned before.
For the interrested here the hotkeynet code:
<Command ResizeAndPosition>
<SendPC Local>
<SendWin %1%>
<SetWinRedraw off>
<SetWinSize 1280 980>
<SetWinPos 0 0>
<SetWinRedraw on>
<UpdateWin>
<SendWinM %2%><SetWinRedraw off>
<SendWinM %3%><SetWinRedraw off>
<SendWinM %4%><SetWinRedraw off>
<SendWinM %5%><SetWinRedraw off>
<SetWinSize 640 512>
<SetWinPos 1920 512>
<SendWinM %2%>
<SetWinSize 640 512>
<SetWinPos 1280 0>
<SendWinM %3%>
<SetWinSize 640 512>
<SetWinPos 1280 512>
<SendWinM %4%>
<SetWinSize 640 512>
<SetWinPos 1920 0>
<SetWinRedraw on>
<UpdateWin>
<SendWinM %2%><SetWinRedraw on><UpdateWin>
<SendWinM %3%><SetWinRedraw on><UpdateWin>
<SendWinM %5%><SetWinRedraw on><UpdateWin>
<Hotkey F1><ResizeAndPosition WoW1 WoW2 WoW3 WoW4 WoW5>
<Hotkey F2><ResizeAndPosition WoW2 WoW1 WoW3 WoW4 WoW5>
<Hotkey F3><ResizeAndPosition WoW3 WoW2 WoW1 WoW4 WoW5>
<Hotkey F4><ResizeAndPosition WoW4 WoW2 WoW3 WoW1 WoW5>
<Hotkey F5><ResizeAndPosition WoW5 WoW2 WoW3 WoW4 WoW1>
olipcs
10-24-2008, 05:11 AM
Round Robin
The Solution I suggested here ('http://www.dual-boxing.com/forums/index.php?page=Thread&postID=138610#post138610') works perfectly for me.
The order in which the roundrobin is done is independend from the active window, which was the main goal to accomplish.So mission accomplished...
..honestly, only half of the mission, because the round robin only works, if you multibox on only one PC.
If you use more than one pc, the problem is, that every instance of HotKeyNet has its own 'Toggle-list', so what happen if you use the above on 3 different pcs and do the first round-robin-key-press on pc1, the second on pc2 and the third on pc3 is that on all three hkn instances the first toggle item would be selected and so the same char would try to cast the round-robin action.
You might permutate the order of the toggle a little on the three instances, but this would not neccessary result in a correct result because you can never know how often a round-robin key was pressed on another instance :(
..on the currnt version I see no fix for this, sorry (but maybe i'm wrong ;) )
olipcs
10-24-2008, 05:31 AM
Correct me if I`m wrong, but this setup is made to be able to use every one of your chars as a main right?
Because if that`s so, I think I did it with less work(script), haven`t gone trough all your scripting yet so I`m not 100% sure. But the way I did it I can change to any char to set it as a main, just by one keyclick and I can still use the same follow and assist macro. In general you are correct, it is a way of using every char as you're main.
The paradigma of the ftl-setup is, that whatever WoW-window has the focus, is your 'main','master','active-played' toon (or how you wan't to call it).
The beauty of a 'true' ftl-setup is that you have not to press any special button you wouldn't press in your gameplay to promote the 'leaderchange'.
Instead of pressing a special button, the 'leader-change' is simply promoted by the action itself (like casting a Lightning bolt), using hotstrings and appropriate macros.
This means, that you can do the following (image the typical 5-shaman group for simlicity):
1. On your ToonA, target an enemy (enemyA)
2. Press '2' on ToonA, which is bound to Lightning Bolt on all Toons => all Toons fire a LB on EnemyA
3. Click in the window of ToonC (so ToonC is now you 'active played)
4. Target an enemy with ToonC (say EnemyB)
5. Press '2' => All cast LB on EnemyB
6. Click in the window of ToonA
4. Press '2' => All cast LB on EnemyA (because As Target remains)
...
..so you see, you have never directly 'promote' someone to the leader, its all done implicit.
This allows very intuitive and fast leader switching, in addition with not using target und focus for defining who the leader is.
For the general idea and more infos on the ftl, you can look at: http://www.dual-boxing.com/wiki/index.php/Focusless_Targetless_Leaderless_Setup
If you have a better/simpler solution, feel free to share it, I would be very interrested!
olipcs
10-24-2008, 09:19 AM
Quick updates on the things i wanted to test:
Using the ftl-setup for /cast...
No problems at all, as expected, cause it works for follow and assist.
Using the ftl-setup with /click...
Also, no problems (as expected cause its more a wow matter,than the matter of hotkeys, but you never know...).
Works perfectly and is a big help in cutting macro configuration time in half :)
ToDo:
- test modifiers (and perhaps redifie my standard modifier order)
- test mouse broadcasting (low priority, as it has nothing to do with ftl)
Vyndree
10-24-2008, 09:36 AM
*hint hint, nudge nudge*
I could be wrong but I think Vyn's asking if its okay if she migrates this to the wiki for you... again I could be wrong
Hehe I don't need my name all over any additional software. I already get enough PMs thinking that I'm some sort of developer for AHK/Keyclone thanks to that accidental sticky-deletion fiasco.
I would most certainly cross-link it in other guides, though. :)
Anemo
10-24-2008, 12:04 PM
So, did some testing and here are the results:
Region-Switching
As Freddie suggested canceling the redraw before resizing/positioning and a better order of my commands results in a performance gain.
I optimized my script, so that the following is done if I want the Window of WoWX on my big main region (region1):
1. Resize and Reposition WoWX in region1, and give it the focus
2. Turn redraw off, for all other windows (without focusing them)
3. Resize and Reposition all windows that ar not WoWX (without focusing them)
4. Turn redraw on and update all windows that ar not WoWX (without focusing them)
Thie result of this order is, that the Window i want to play activ, which should be displayed in region1 is switched very fast (first), so you can move with the active toon leading, and after that the other 'slaves' are configured.
The result is, that it feels more like only a second, till you can play the active toon instead of the 2-3 seconds i mentioned before.
For the interrested here the hotkeynet code:
<Command ResizeAndPosition>
<SendPC Local>
<SendWin %1%>
<SetWinRedraw off>
<SetWinSize 1280 980>
<SetWinPos 0 0>
<SetWinRedraw on>
<UpdateWin>
<SendWinM %2%><SetWinRedraw off>
<SendWinM %3%><SetWinRedraw off>
<SendWinM %4%><SetWinRedraw off>
<SendWinM %5%><SetWinRedraw off>
<SetWinSize 640 512>
<SetWinPos 1920 512>
<SendWinM %2%>
<SetWinSize 640 512>
<SetWinPos 1280 0>
<SendWinM %3%>
<SetWinSize 640 512>
<SetWinPos 1280 512>
<SendWinM %4%>
<SetWinSize 640 512>
<SetWinPos 1920 0>
<SetWinRedraw on>
<UpdateWin>
<SendWinM %2%><SetWinRedraw on><UpdateWin>
<SendWinM %3%><SetWinRedraw on><UpdateWin>
<SendWinM %5%><SetWinRedraw on><UpdateWin>
<Hotkey F1><ResizeAndPosition WoW1 WoW2 WoW3 WoW4 WoW5>
<Hotkey F2><ResizeAndPosition WoW2 WoW1 WoW3 WoW4 WoW5>
<Hotkey F3><ResizeAndPosition WoW3 WoW2 WoW1 WoW4 WoW5>
<Hotkey F4><ResizeAndPosition WoW4 WoW2 WoW3 WoW1 WoW5>
<Hotkey F5><ResizeAndPosition WoW5 WoW2 WoW3 WoW4 WoW1>
Thats similar to what I was trying to do with 3 of my windows but I was trying to use If's so it would fullscreen the focus window and shrink the other 2.
Something like this:
<Hotkey x>
<If ActiveWinIs wow1><ResizeAndPosition WoW1 WoW2 WoW3 WoW4 WoW5>
<Else If ActiveWinIs wow2><ResizeAndPosition WoW2 WoW1 WoW3 WoW4 WoW5>
<Else If ActiveWinIs wow3><ResizeAndPosition WoW3 WoW2 WoW1 WoW4 WoW5>
<Else If ActiveWinIs wow4><ResizeAndPosition WoW4 WoW2 WoW3 WoW1 WoW5>
<Else If ActiveWinIs wow5><ResizeAndPosition WoW5 WoW2 WoW3 WoW4 WoW1>
Correct me if I`m wrong, but this setup is made to be able to use every one of your chars as a main right?
Because if that`s so, I think I did it with less work(script), haven't gone trough all your scripting yet so I`m not 100% sure. But the way I did it I can change to any char to set it as a main, just by one keyclick and I can still use the same follow and assist macro.
Please let me know if this is the case :) I'm waiting before updating any wiki pages since other people keep coming up with new and better ways of doing these things.
Tanntyn
10-24-2008, 10:21 PM
Ok, my brain hurts. I've been trying to follow what you all are saying and tossing around, but I cann't get it straight. Please, for those of us who don't know the first thing about what your throwing about, can you post or update the code that does this for us? I copied it and plunked it into my setup and nada. I even tried to figure out what went wrong, followed the logic path and stuff, but still nada.
Oh, thanx for figureing out this awsomn setup. I'm sure I'll love it if and when I get it working :D
EDIT: Ok I got it working, Sorta. it only works about 50% of the time though. I'm running 2 (atm, don't want to be trying to debug 4 or 5 yet) locks on the same machine. my first problem was the name of the windows. now...
BW~Merlin
10-24-2008, 10:46 PM
/head explodes
Anemo
10-25-2008, 02:33 AM
Ok, my brain hurts. I've been trying to follow what you all are saying and tossing around, but I cann't get it straight. Please, for those of us who don't know the first thing about what your throwing about, can you post or update the code that does this for us? I copied it and plunked it into my setup and nada. I even tried to figure out what went wrong, followed the logic path and stuff, but still nada.
Oh, thanx for figureing out this awsomn setup. I'm sure I'll love it if and when I get it working :D
EDIT: Ok I got it working, Sorta. it only works about 50% of the time though. I'm running 2 (atm, don't want to be trying to debug 4 or 5 yet) locks on the same machine. my first problem was the name of the windows. now...
Hopefully two clients on same PC will be a bit easier. It should go something like this:
<command assist1>
<SendPC Local>
<SendwinM wow1>
<Key %1%>
<SendWin wow2>
<Key ctrl shift %2%>
<command assist2>
<SendPC local>
<SendWinM wow1>
<Key ctrl alt %2%>
<SendWinM wow2>
<Key %1%>
<Hotkey 1>
<If ActiveWinIs wow1> <Assist1 %trigger% t>
<Else If ActiveWinIs wow2> <Assist2 %trigger% t>
You would then need to put your normal skill on hotbar '1' and the corresponding macro on 't' on both clients.
For the macros you would want:
/assist [mod:ctrl,mod:shift,nomod:alt]Characternameforwow1;[mod:ctrl,mod:alt,nomod:shift]Characternameforwow2
/cast [harm] Lightning Bolt
My multi PC setup is what makes it look so complicated. When I get around to writing it all up correctly I will probably just use a single PC setup for all the examples.
olipcs
10-25-2008, 04:30 AM
Hi, did some more extensive testing today.
Modifiers
My goal with modifiers is, that i wanted to be able to create leaderless-hotstring like I suggested to Freedy here ('http://hotkeynet.com/phpBB3/viewtopic.php?f=8&t=617&st=0&sk=t&sd=a&start=40#p4300') and revisioned here ('http://hotkeynet.com/phpBB3/viewtopic.php?f=8&t=617&st=0&sk=t&sd=a&start=50#p4332').
To cut it short, i wanted to be able to define not a single key as master- and slave-key, but a hole key-modifier combination.
To give an example, what is possibe :
Say your ModifierOrder, to identify a Toon, for TonnC is 'alt' + 'shift' .
I define 'shift + 2' as the master-key and 'ctrl + u' as the slave key.
What happens when I press 'shift +2' on ToonC is:
1. 'shift+2' is send to ToonC (the leader)
2. 'ctrl + alt + shift + u' is send to the slaves (ToonA,ToonB,ToonD,ToonE)
Why this is very usefull I will explain after I descriebed how it is done.
Basic Idea to make this possible is very simple:
- Instead of defining 1 command like 'assistX', which must have as parameter the master-key combination and the slave-key combination ..
- ...simply define 2 seperate command:
- one to assistX if you are the leader (assistXMaster), which only sends the master-key-combination to ToonX
- another to assistX if you are a slave (assistXSlave), which sends the slave-key-combination to all slvaes (all but ToonX)
This can be accomplished with HotKeyNet for example Toon3 with:
<command assist3Master>
<SendPC Local>
<SendWin WoW3>
<Key %all%>
<command assist3Slave>
<SendPC Local>
<SendWinM WoW1>
<Key alt shift %all%>
<SendWinM WoW2>
<Key alt shift %all%>
<SendWinM WoW4>
<Key alt shift %all%>
<SendWinM WoW5>
<Key alt shift %all%>
.. to make it work for all five, you have to add such a template for all 5 by changing the modifier-combination (here 'alt + shift) to the one of the corresponding Toon, and changing to which window the master and slave-keys are sent.
So, now i have defined all five <assistXMaster> and <assistXSlave>, how do i define a master-slvae-key-combination like mentioned above?
(Master-Key: 'shift + 2' / Slave-Key: 'ctrl + u')
like the following:
<Hotkey shift 2>
<If ActiveWinIs WoW1> <Assist1Master %trigger%><Assist1Slave ctrl u>
<Else If ActiveWinIs WoW2> <Assist2Master %trigger%><Assist2Slave ctrl u>
<Else If ActiveWinIs WoW3> <Assist3Master %trigger%><Assist3Slave ctrl u>
<Else If ActiveWinIs WoW4> <Assist4Master %trigger%><Assist4Slave ctrl u>
<Else If ActiveWinIs WoW5> <Assist5Master %trigger%><Assist5Slave ctrl u>
Yeah, quit 'simple' and jet so powerfull :)
So, the goal for modifiers are accomplished :thumbsup: .
Using modifiers directly in your /cast macro
or: Why the hassle, above?
One major problem/misunderstanding of the ftl-setup is that a macro, which should activate on '2', like:
/cast [mod:alt,harm] Corruption; [harm] Shadowbolt can normaly only be achived in a ftl setup, by seperatly define a hotkey for '2' and a hotkey for 'alt + 2' which lead to 2 different slavekeys.
For more information see: http://www.dual-boxing.com/wiki/index.php/Focusless_Targetless_Leaderless_Setup#Modifiers
This is only half of the truth, as it is possible to use the same slave-key as long as you are not using the modifier which is used in the macro (here: alt) as part of your modifier-order which defines your leading Toon.
Ok, in theory this is possible, but when i want to define a modifier-order for a 5-Toon-Team i have to use at leats 3 different modifiers.
You might ask: "So what are you telling me here? It is possible, but becasue i need 3 different modifiers for my order its inpractical! -So shut up, don't waste my time!"
You were right, if there are only 3 modifiers!
But I shortly realized, that there are indeed 6 (!) modifiers not only 3, if you differentiate between left + right shift,alt,ctrl :thumbsup:
So the basic idea:
Simply use ralt, rshift and rctrl to define the modifier-order and voila, lalt,lshift and lctrl can be used in your macros! jipi!
so instead of using:
‘Ctrl + Shift + key’ ---> ‘command.ToonA’
‘Ctrl + Alt + key’ ---> ‘command.ToonB’
‘Alt + Shift + key’---> ‘command.ToonC’
‘Ctrl + Alt + Shift + key’ ---> ‘command.ToonD’
‘Ctrl + key’ ---> ‘command.ToonE’
as your modifier combination, use:
‘rCtrl + rShift + key’ ---> ‘command.ToonA’
‘rCtrl + rAlt + key’ ---> ‘command.ToonB’
‘rAlt + rShift + key’---> ‘command.ToonC’
‘rCtrl + rAlt + rShift + key’ ---> ‘command.ToonD’
‘rCtrl + key’ ---> ‘command.ToonE’
and by doing so you can use a macro like the following on your slave key:
/assist
[mod:rctrl,mod:rshift,nomod:ralt]ToonA;
[mod:rctrl,mod:ralt,nomod:rshift]ToonB;
[mod:ralt,mod:rshift,nomod:rctrl]ToonC;
[mod:rctrl,mod:ralt,mod:rshift]ToonD;
[mod:rctrl,nomod:ralt,nomod:rshift]ToonE
/cast [harm,mod:shift]Chain Lightning;[harm]Lightning Bolt
Horray :)
Metalocalypse
10-25-2008, 12:39 PM
Wow, great thread, thanks for making me aware of this one.
I got a few questions though, as I understand it, you would have to have an alternative (hidden) macro for each button that you want to use.
Casting a lightning bolt on your main will hit the macro to assist whoever is your main and cast a lightning bolt at his target.
That's an awful lot of hidden macros to me. I'm used to (I started with ahk) hitting an assist button before casting the normal spell. Isn't it just easier to have an assist macro and call upon it for every button you use, this will leave you with only one hidden macro (or 2 if you want a follow one).
Something like what you suggested:
/assist
[mod:rctrl,mod:rshift,nomod:ralt]ToonA;
[mod:rctrl,mod:ralt,nomod:rshift]ToonB;
[mod:ralt,mod:rshift,nomod:rctrl]ToonC;
[mod:rctrl,mod:ralt,mod:rshift]ToonD;
[mod:rctrl,nomod:ralt,nomod:rshift]ToonE
would be the 'assist macro' say you put this under T.
And then your hotkeynet file would look like this:
<Hotkey 1>
<Passthrough>
<If ActiveWinIs wow1>
<SendLabel Alt1, Alt2, Alt3, Alt4>
<Key %Trigger%><Key rctrl rshift T>
<Else If ActiveWinIs wow2>
<SendLabel Main, Alt2, Alt3, Alt4>
<Key %Trigger%><Key rctrl ralt T>
<Else If ActiveWinIs wow3>
<SendLabel Main, Alt1, Alt3, Alt4>
<Key %Trigger%><Key ralt rshift T>
<Else If ActiveWinIs wow4>
<SendLabel Main, Alt1, Alt2, Alt4>
<Key %Trigger%><Key rctrl ralt rshift T>
<Else If ActiveWinIs wow5>
<SendLabel Main, Alt1, Alt2, Alt3>
<Key %Trigger%><Key rctrl T>
Or maybe better would be to put an /assist toon1 under t, /assist toon2 under y, /assist toon3 under u etc.. you'd get this:
<Hotkey 1>
<Passthrough>
<If ActiveWinIs wow1>
<SendLabel Alt1, Alt2, Alt3, Alt4>
<Key %Trigger%><Key T>
<Else If ActiveWinIs wow2>
<SendLabel Main, Alt2, Alt3, Alt4>
<Key %Trigger%><Key Y>
<Else If ActiveWinIs wow3>
<SendLabel Main, Alt1, Alt3, Alt4>
<Key %Trigger%><Key U>
<Else If ActiveWinIs wow4>
<SendLabel Main, Alt1, Alt2, Alt4>
<Key %Trigger%><Key I>
<Else If ActiveWinIs wow5>
<SendLabel Main, Alt1, Alt2, Alt3>
<Key %Trigger%><Key O>
The last one will leave you open to use alt/shift/ctrl (one w/e side you want) as you please. But yea..it'll require 5 hidden macros (10 if you include follow).
olipcs
10-25-2008, 03:19 PM
would be the 'assist macro' say you put this under T. yes it would be. But you can't (or better shouldm't) use the way you did it, presented above.
Simple reason why:
<Hotkey 1>
<Passthrough>
<If ActiveWinIs wow1>
<SendLabel Alt1, Alt2, Alt3, Alt4>
<Key %Trigger%><Key rctrl rshift T>
..this comes down to 1 userkeypressing resulting in 2 different client-keypresses, and this is seen as automation. So never ever do that!
What you can do instead, to simplify setup time is:
-use '/click ActionButton' in your macros instead of the hole '/asist [mod....]'-sequence and also the general setup uses different master and slave keys, this is not mandatory, you can use the same, so that you for every targetet spell only need one macro..
For me this comes down to round about 5-6 macros per toon, which is not so much :)
If you have any questions fell free to ask!
I think, Anemo (or perhaps I, if he doesn't want to) will in the future write the hole concept and variations up in the wiki, so take a look there (in some days).
Or if it helps, i could also send you my hkn-file, which you then can customize...
Anemo
10-25-2008, 06:09 PM
I'm beginning to wonder wether the hidden keys are even required. I had no experience with a leaderless setup before this so I'm learning a lot too but I gather the idea is so you can still use your main keys on any window. Something gives me a feeling this could be possible without using any hidden keys at all, I will have to look into it.
Is there a way to just include [nomod] into the macros for normal spell casts?
olipcs
10-25-2008, 07:14 PM
Anemo, you don't need to use 'hidden-keys' in an ftl at all, as long, as you make sure, that your macros on the (then only) one key, can handle, if the toon is the leading toon or a slave.
In fact, in the version of the ftl i'm using, i use the same key as master and slave key since 2 month...
and, yes [nomod] is the thing which makes it possible :)
olipcs
10-25-2008, 07:54 PM
I got a few questions though, as I understand it, you would have to have an alternative (hidden) macro for each button that you want to use.
Casting a lightning bolt on your main will hit the macro to assist whoever is your main and cast a lightning bolt at his target.
Good description, basicly 'yes' this is how it works. (the 'true'-ftl from Deceased and Pocalypse)
That's an awful lot of hidden macros to me. I'm used to (I started with ahk) hitting an assist button before casting the normal spell. Isn't it just easier to have an assist macro and call upon it for every button you use, this will leave you with only one hidden macro (or 2 if you want a follow one). And again: Yes. If you are ok, with anouncing a targetchange by pressing an 'assist-button' and that the setup is not targetless, this is a very quick way to setup an leaderless sytem without using focus.If you do it this way, you only hab´ve to setup two keys in the ftl-way, one for follow one for assist.
It's quite funny you mentioned this miethod here, as its mainly the method i was using for the last two month and described here:
Focusless, targetless, 'leaderless' setup. ('http://www.dual-boxing.com/forums/index.php?page=Thread&postID=107654#post107654')
..let me say, it works perfectly, and if you running a setup where you want to be able to target different things with your main, as with your slave its also a simpler and better way to go..
Metalocalypse
10-25-2008, 10:31 PM
..this comes down to 1 userkeypressing resulting in 2 different client-keypresses, and this is seen as automation. So never ever do that!
I'm not sure if I understand this correctly:
1) you're saying the way I'm doing it is automation and therefor bad, however it only works when I push the button. That's not automation as far as I can find out, I'm not using waits/sleeps or by one press a whole bunch of cogs n wheels start turning and I can go watch a movie.
I'm not doing this, all I'm doing is letting my alts hit an 'assist' macro in conjunction with the key I pressed and only then when I actually hit the key (like /click ActionButton).
2) if what I'm doing is wrong, how is sending shift/ctrl/alt keypresses (in various combinations of these buttons no less) to alts any different, you are sending 1 userkeypress to one screen and different clientkeypresses (which can be any combination usually 1/2 or even 3 other keypresses)to other screens. I don't understand how modifier keys (shift/ctrl/alt) could not be considered keypresses, because these keys definitely need to be pressed (or the alt windows need to think they are pressed) in order for the ftl setup to even function.
As you say, you can even use a '/click ActionButton' in a macro, which would mean that my 1 userkeypress results in 1 keypress that then is followed by another keypress because of it (making it 2 client keypresses). Of course this is being picky and taking the comparing of 2 different ways of doing things to an extreme.
Again, I'm not sure why the way of doing would be automation when the ones suggested are similar to what I'm doing.
Anemo
10-25-2008, 11:43 PM
I think the general rule is 1 key 1 action. From a quick look at yours it would be 1 action to run the assist macro and 1 action to run the spell macro.
The difference with the usual FTL setup is you press 1 key and 1 macro is activated even though its sending through multiple keypresses.
Olipcs can you please give me an example of a macro with the nomod thing? Not quite sure of the best way of doing it. That could well solve your problem too Metalocalypse.
I've also updated my first post to change the examples to all being local PC since my setup really sucks. Also using a variation of olipcs code to allow for modifiers but requires hidden keys still.
Edit: I got home and tested it, works fine. Is there a real reason people use hidden keys then?
/assist [mod:ctrl,mod:shift,nomod:alt]CharA;[mod:ctrl,mod:alt,nomod:shift]CharB;[mod:alt,mod:shift,nomod:ctrl]CharC;[mod:ctrl,mod:alt,mod:shift]CharD;[mod:ctrl,nomod:alt,nomod:shift]CharE
/cast [nomod, harm] Lightning Bolt; [mod:shift, harm] Chain Lightning
Will still need hidden keys for the shift modifier but sure makes life a lot easier overall.
olipcs
10-26-2008, 06:49 AM
Olipcs can you please give me an example of a macro with the nomod thing? Not quite sure of the best way of doing it. That could well solve your problem too Metalocalypse. ..well, its hard for me to give an example why using different slave and master-keys, because although it was in the original ftl-setup developed from Pcalypse an Deceased, i never realy used different.
I think the reason why they introduced different key for it was:
1. More solo-playability, meaning that, when you have different master and slave-keys, you can infact let the toon do another thing, if hes the master as he would do as he is a slave. Although it is a great concept, in my multi-class group i can not think of a situation where this comes in handy.
An (perhaps inpractical) example where you perhaps could use this might be in the typical 5-shaman group, if you say 'well, i want the main to allway be the heaer, and the slaves to allway dps. Then you can bind a macro which casts f.e. Healing Wave on the master-key and Lightning Bolt on the slave-key.
2. At the time the system was introduced, different master and slave keys were neccassary for having modifiers in the macros, like the one above.
So yes, if you don't need different master and slave keys, get rid of them! The concept is so generic, that it allows it :)
And btw.:
You don't need different master and slave keys for a macro like:
/assist [mod:ctrl,mod:shift,nomod:alt]CharA;[mod:ctrl,mod:alt,nomod:shift]CharB;[mod:alt,mod:shift,nomod:ctrl]CharC;[mod:ctrl,mod:alt,mod:shift]CharD;[mod:ctrl,nomod:alt,nomod:shift]CharE
/cast [nomod, harm] Lightning Bolt; [mod:shift, harm] Chain Lightning
you can do it, with one key (ok, technically its still 2 but its mor key and key+modfier like in the macro) if you modifiy your modifier-order to use the right version of shift,alt,ctrl (rshift,rctrl,ralt), and lshift for differentiating betwwen LB and CL.
This would look like:
/assist [mod:rctrl,mod:rshift,nomod:ralt]CharA;[mod:rctrl,mod:ralt,nomod:rshift]CharB;[mod:ralt,mod:rshift,nomod:rctrl]CharC;[mod:rctrl,mod:ralt,mod:rshift]CharD;[mod:rctrl,nomod:ralt,nomod:rshift]CharE
/cast [nomod:lshift, harm] Lightning Bolt; [mod:lshift, harm] Chain Lightning
for more info on that see: [HotKeyNet] Leaderless setup with HotKeyNet ('http://www.dual-boxing.com/forums/index.php?page=Thread&postID=139395#post139395')
..for me this works perfect and is intuitive to setup.
Tanntyn
10-26-2008, 09:21 PM
Ok, I got it working ok. thanx for the help. I really appreciate it.
When you say it's a "hidden macro" what do you mean? I have macaroon and have the macro sitting on a hidden button with the key bound to it atm. Is this what you mean or am I REALLY missing something?
Again, thanx for all the help
Tann
Anemo
10-26-2008, 10:09 PM
That is all I mean by a hidden macro. Just a macro on a button which you will never actually press yourself, only have it activated by hotkeynet.
Glad to hear you got it working :)
Anemo,
Do you need a special "add-in" to do the hidden macro? I still dont understand how you can attach a keystroke to a macro.
Anemo
10-29-2008, 02:27 AM
No addons required, just drag the macro onto a hotbar and set that button to a key using the keybinding menu in WoW.
IE show right action bar 2 in interface options then go to keybinding menu and find right actionbar 2 and set whichever slot you have macro on to 't' or whatever hidden key is.
olipcs
10-29-2008, 04:19 AM
Yes in generall you don't need an addon for the keybinding, simple drag the macro to an actionbar/button and assign a key to it.
If you prefer to never put it on an actionbutton in the firstplace you can use a addon like 'Bindpad' I think...
Tanntyn
10-30-2008, 10:51 AM
I had a thought while setting up for 3 toons. In the macros, could I use party1, party2, etc instead of toon names? Wouldn't this make it easier to swap toons in and out of a group and not have any resetup to do?
olipcs
10-30-2008, 12:00 PM
you could use party2, party3, but since normaly the order of your party members is different from each client i wouldn't do that.
Another problem you can run into with this is: what to do in bgs where your not in the same group..
..i would rather suggest to use the '/click' method (explained f.e. here ('http://www.dual-boxing.com/wiki/index.php/Focusless_Targetless_Leaderless_Setup#Shorten_macr ospace_.2F_simplify_group_changes') ) to ease group changes.
By doing this you normaly only have 2 macros to change, the 'follwo'macro and the '/assist'-macro
Tanntyn
10-30-2008, 12:10 PM
..i would rather suggest to use the '/click' methodDoes this work with macaroon? Alternately, can I still call a button on the WoW bars, if I have them turned off and use macaroon instead?
Edit: Just tried this and it does work with macaroon and the WoW normal bars. Since I don't use the WoW standard bars, I cleared bar 1 of all it's stuff and will use it for this purpose. Nice and neat. Of course, I'm going to have to rebind those keys so that I don't accidently use the abilities on the old bars :thumbsup:
vBulletin® v4.2.2, Copyright ©2000-2025, Jelsoft Enterprises Ltd.