PDA

View Full Version : Another macro/keybind idea...


Jade_Dragon
06-20-2005, 02:59 AM
I came up with this concept after reading the "Combat Chatter With The Widowed" thread, and like Widdy, I haven't the faintest idea of where to put it. I suppose it could go in the main forum, but since it's related to the previous post, I though that for the moment I'd put it in the same forum with it. I am not going to draw a picture. :D

At any rate, after reading over Widowed's ideas about using macros to customize taunts/battlecries, it suddenly occured to me that I could actually use the macros to set chatter for individual characters, and then use a generic keybind file to activate them. I'd thought of the idea before, but hadn't really figured out how to do it. After reading Widdy's post, though, everything just sort of clicked into place.

It's important to note, first of all, that I have some very complex keybinds defined, which I use to both activate my powers, and also make some common statements like "Thank you" and "Hello". Because I use a laptop with a touchpad, I use the keyboard primarily instead of the mouse interface. Also, because I don't like having more than one Power bar showing, I map most of the movement functions, like Sprint and flying, to keys. This way I don't have to have the Power buttons showing on the screen. Since each character has to have different keybinds, it's tough keeping track of all of them, in separate files, and I have to keep editing them as I add new powers.

Originally, I mapped most of my "chatter" to single keys, usually letters, although I also used the function keys, including F10. I found that I would hit letters accidently while trying to chat, though, without opening the Chat bar first, and so I remapped them to Alt+<letter>. F10 was mapped to a rotating taunt, which would output a different message and the use the Taunt power. I always wanted to use the random taunt program that was posted on the official board, but it was never usable since all of my characters had different taunts, and even used different Powers with them. (Or didn't have a Taunt Power at all)

Widdy's macros, however, solved my problem. I could assign a taunt with Power to a macro, and then have the random taunt program pick one of those macros at random. Each character would automatically use his own sayings, and could be set to activate Taunt or whatever during the macro, or just say the message with no Power at all. I could extend that to saying the "Thank you" and "Hello" messages, and each character would say different things. And I could even map the travel power keys to activate different travel powers for each character.

Here is my keybinds file: keybinds (http://www.phan.org/coh/keybinds.txt)

Most of this file, of course, is just a standard keybinds file, but you will notice a number of binds mapped to "powexec_tray x x", which are all macro binds. The macros I put in trays 3 through 8, and they're arranged in a particular order, so that the location of the macro in the trays will always remain the same, for all characters. I left 9 empty, because I had already defined that tray for costume change macros, and 1 and 2 are used for my main powers.

For simplicity, I wrote a keybind file to load the macros, there are three examples here: macros1 (http://www.phan.org/coh/macros1.txt) macros2 (http://www.phan.org/coh/macros2.txt) macros3 (http://www.phan.org/coh/macros3.txt)

I still have to define a different macro file for each of my heroes, but once I have them loaded into the trays I don't need them any more, so I can move them to another directory to get them out of the way. Each of the files is set up to load a different macro when you press the keys 1 through 0, and you have to select the tray to load first. The way I have them defined, macros1 is for tray 8, macros2 is for tray 7 and so on. I don't have examples for 4, 5 and 6 because 4 and 5 are the Taunts, and 6 is a special bind for activating toggles, and those macros can all be left undefined if you don't want to use them.

The keybinds also make reference to some "rotating" keybind files. One of these is the so-called "teambind" file. This bind is mapped to key E, and loads the next file in the sequence with each press, thus going to teambind1, teambind2, teambind3, and so on, up to teambind 8. Each file selects one teammate, so it essentially works like "target_friend_next" but cycles through team members. I didn't make it skip myself because that was too much hassle. Here is an example of the first file: teambind1 (http://www.phan.org/coh/teambind1.txt) it can be edited to give the other 7 files.

The other main rotating file is the "travel" binding. This set of bind files actually controls two keys, Left Control and Right Shift. I chose these two keys because of their position on my laptop, someone with a full keyboard might want to use different keys. Letter keys such as "F" for fly could also be used. However, the purpose of my map was to allow DIFFERENT travel powers to be activated for different characters. Thus, when Jade Dragon hits Left Control it just toggles Sprint off and on, but when Blue Diamond hit it, it turns on first Sprint, then Super Speed. And for Sandy pressing it twice turns on Super Jump.

Right Shift is mapped to Hover (or Fly) and all three of the above can fly, so for them it deactivates Sprint or the other travel power automatically. Pressing Left Control while flying drops the flier back to the ground and turns on Sprint. The way it does this is by cycling through five files, travel1 through travel5. These files can be found here: travel1 (http://www.phan.org/coh/travel1.txt) travel2 (http://www.phan.org/coh/travel2.txt) travel3 (http://www.phan.org/coh/travel3.txt)travel4 (http://www.phan.org/coh/travel4.txt) travel5 (http://www.phan.org/coh/travel5.txt)

The first three files are for no travel Power, Sprint, and then Super Speed or Super Jump. File travel4 is for flying. The macros that are called by the file are supposed to turn on the appropriate Powers, and then load the file. The reason the macros load the file is so, for instance, Jade Dragon can skip the second Right Shift step and just go straight back to travel1 from travel2, after turning off Sprint. Bloodwolf also uses these binds to turn on and off Sprint with Right Shift, and switch between Sprint and Focused Fighting with Left Shift. Travel5 actually isn't used, but allows you to toggle between three settings with the "fly" side, as well as the "ground" side.

Finally, there is also the rotating "taunt" file, which originally used the teambind type of interface to change every time I pressed the key. Since I can now use the random sayings generator now, I'll use that instead. I won't go into detail about it in this post, but may add on another post later.

Now that I've probably completely confused everyone :D I'll go and describe what the macros are and what they are supposed to do. If the macros are defined in the right order, then the above keybind should use them correctly. If you decide to use it as is, though, there may be some things that will take time to get used to, such as my using Tab to select the nearest enemy and Q to toggle through them, and that I have Enter to activate chat mode disabled. (I got tired of saying "wwwwwaaaaassssswwww". Alt-Enter works)

I will start with tray 8 and work my way down, since that's the order I consider them defined in. Also, while I use macro names here that I use in the macro files, in fact they are unimportant since the keybinds don't make reference to them, only position. But the name makes it easy to remember the purpose of the macro.

Tray 8: I use this tray for the travel powers, and the keybind files travel1-travel5.

1) CJOn - This macro is used to turn Combat Jumping on, if the hero has it. It should be set to powexec_toggleon Combat Jumping, or nop. It is called when the space bar is pressed, and there's no way to turn it off, so I essentially use it to keep CJ on at all times.
2) Travel1 - The first of three macros called by travel1, it is called by LControl. It should toggle on Sprint and load travel2.
3) Travel2 - Called by RShift, this is in travel1, but it is also called by travel2 and travel3. In other words, it turns OFF all the powers that are toggled by LControl, and turns on Hover, or some other travel power that you want to have separate from Sprint. In addition to travel2, Jade Dragon also uses this macro to load the flying part of the Hover/Fly bind.
4) Travel3 - Similar to Travel3, but this macro is activated by the up arrow. I use it for a "fast takeoff" while running. For Jade Dragon, the Hover/Fly bind means that I have to turn on FLY, instead of Hover, or it breaks the bind. So it's separate. You can set this to nop if you don't want up arrow to activate a Power.
5) Travel4 - The LControl macro called by travel2, it turns on the next power in the sequence and then loads travel3.
6) Travel5 - The LControl macro called by travel3, it should turn OFF all the powers turned on (Sprint and some other travel power) and go back to travel1. However, for Sandy and Blue Diamond I like to turn on Combat Jumping to make sure it's on. Sandy actually has to turn it back on, since Super Jump turned it off.
7) Travel6 - LControl called by travel4, this is a "landing" macro that deactivates fly (or whatever the secondary travel power is) so you can go back to running. Although Blue Diamond just goes back to travel1 (toggling on CJ to make sure) Jade Dragon turns on Sprint and jumps straight to travel2. (He also loads the second part of the Hover/Fly bind, to reset the movement keys to normal) Sandy turns on Super Jump and goes to travel3, so if she drops out of Hover, she can make a quick escape by jumping. (She cannot Fly, only Hover)
8) Travel7 - This is the macro in travel4 that is called if you press RShift again. One thing to do is simply turn Hover or Fly back off, and go back to travel1. (This is what Sandy does) Jade Dragon, however, calls toggleon on Hover AGAIN, to ensure it's on, and doesn't load a file. This is in case the Hover/Fly bind gets out of synch. Blue Diamond turns off Flying and turns on Super Speed, for fast travelling. This takes him to travel3, so as you can see, you can create very different effects just with the same macros.
9) Travel8 - LControl in travel5, I don't currently use this macro. However, it can be used as a toggle from travel4 by having the Travel6 macro load it. This macro would then turn off the Power or Powers and go back to travel1 or travel4. I may use this for Group Fly for Jade Dragon, when and if I get it.
10) Travel9 - Again, this is in travel5, and is the RShift macro. This could also be used to go back to travel4, or to ensure the Power is on in case of a bind that can mess up, like Hover/Fly, or to recover from a toggle drop.

Tray 7: This is the first of two "chatter" macros. Note that in the keybinds file, there are usually "generic" versions of these macros in Shift-<whatever>. This can help you remember what they are.

1) Clap - Mapped to a clapping emote, it's a "congrats" macro. Called by ALT-C
2) Back - A macro I figured out I needed some time ago, it says, "Get back" or "Get behind me". Called by F11.
3) AFK - The old newspaper emote. Called by F12.
4) Hold - Another much needed macro, it says, "Hold your ground!" (Or for JD, "stay under my bubble!") Called by Alt-F6. F6, of course, is "RUN!", the exact opposite.
5) Ready - The "Ready!" emote/tell, usually mapped to F7.
6) Help - Yep, "HELP!", mapped to F8.
7) NeedHelp - Mapped to Alt-F8, asks another player if he needs help. I like to include "(Press F8 to call for help)" so people know about this.
8) Intro1 - Mapped to F9, by default this was the "Hi, I'm $name, a $origin $archetype" message. (Don't know if this is still the case) At any rate, it makes a good introduction message macro.
9) Intro2 - Mapped to Alt-F9, just in case one line isn't enough.
0) Intro3 - Mapped to Shift-F9, just in case two lines isn't enough.

Tray 6: More "chatter" macros

1) GoAhead1 - Mapped to Alt-G, it's a useful anti-kill stealing macro. It says, "Go ahead", in case you and someone else come across a spawn at the same time.
2) GoAhead2 - Mapped to F7. While similar to GoAhead1, it includes a statement that you'll help out.
3) Hi - Mapped to Alt-H. Your standard "hello".
4) KSOkay - Mapped to Alt-I. Another anti-KS macro, that asks if it's okay for you to help out.
5) KSSorry - Mapped to Alt-J. For those time when you really didn't notice the guy.
6) KSBye - Mapped to Alt-K. Just a quick thanks and a goodbye for when you've been in one of those KS situations. Could be used on its own as a generic goodbye.
7) Thanks1 - Simple "Thanks", mapped to Alt-T.
8) Thanks2 - A bit more complex thank you, mapped to O. It's another anti-KS, to (non-sarcastially) thank someone who steps in to help.
9) NoProb - "No Problem". Mapped to Alt-P. Possible response when someone unintentionally kill steals you, although I like to leave it with that same basic meaning since it's a common enough phrase.
0) UWelcome - "You're welcome". Mapped to Alt-U. (W is taken)

Tray 5: Taunt macros. All ten of these are basically mapped to the F10 key. If I didn't have the random taunt program, the keybind would call one of the macros, and then load the next macro into the keybind.

Tray 4: These taunt macros are mapped to Alt-F10 and Shift-F10. (I used the name ATaunt and STaunt, 5 of each) This allows me to customize the taunt to the situation.

Tray 3: I won't go into great detail about these macros, but I basically use them to activate additional defenses that I don't have in my tray. They are mapped to the + and - keys. (Overriding the default tray selection function) That gives me two additional Power activation buttons. Sandy uses one of them for Acrobatics, and JD uses them for his Leadership Powers.

1) Def1 - Mapped to Alt--
2) Def2 - Mapped to -
3) Def3 - Mapped to + (EQUALS)
7) Def7 - Mapped to Alt-+

You can use Def4-Def6, in slots 4-6, if you want to define them to be loaded by a bind file. It would probably have made more sense to map the last one to Def4 (in slot 4) but usually there won't be more than one Power to be mapped to each key, so Def2 and Def3 should be sufficient.