• Welcome to hamsterserver.com :: demented rodent gaming.
 

News:

Monkey Walks Into Bar, Drinks Rum, Steals Knife, Attacks Patrons

Main Menu

What a bind

Started by Arathrael, October 31, 2005, 12:43:40 PM

Previous topic - Next topic

Arathrael

I've been playing with binds for my mastermind, to enable better control of psychotic ninjas.

I'll say how I do binds in general first. I prefer to be able to edit them in notepad, rather than type them in game. Makes them easier to change (I can do it on my laptop across the network while the game is running) and easier to transfer about. And it makes it easier to keep different binds for different characters separate. So I have a folder, c:/files/games/coh/binds, with separate files for all the characters, so there's a Huzzah.txt, a Muahahaha.txt, etc.

In order to load the different binds, because I'm lazy, I have a menu system.

In the main City of Heroes folder, there's a 'keybinds.txt' file. If you type /bind_load in the game, this is the file it loads. At the very bottom of that, I have:
NUMPAD0 "tell $name, Loading menu...$$bind_load_file c:\files\games\coh\binds\menu.txt"
DECIMAL "e clap$$s Congratulations!"


That binds NUMPAD0 to tell me ($name) that it's loading the menu. It then uses /bind_load_file to load the menu binds. (You can of course use /bind_load_file manually yourself - I can't be faffed to type in the filename every time I want to load or reload a character's binds though because, as already established, I'm too lazy). :)  In general, any binds you want all of your characters to use go in here - such as my Congratulations bind above.

menu.txt then consists of:
NUMPAD0 "tell $name, numpad1 Defiant Heroes, numpad 2 Defiant Villains, numpad3 Union Heroes, numpad4 Union Villains"
NUMPAD1 "tell $name, Loading Defiant Heroes menu...$$bind_load_file c:\files\games\coh\binds\DefiantHeroes.txt"
NUMPAD2 "tell $name, Loading Defiant Villains menu...$$bind_load_file c:\files\games\coh\binds\DefiantVillains.txt"
NUMPAD3 "tell $name, Loading Union Heroes menu...$$bind_load_file c:\files\games\coh\binds\UnionHeroes.txt"
NUMPAD4 "tell $name, Loading Union Villains menu...$$bind_load_file c:\files\games\coh\binds\UnionVillains.txt"


So NUMPAD0 tells me what the options are, the others tell me what they're doing and load the appropriate file. I'll just give DefiantVillains.txt as the next - the others are pretty much the same:

NUMPAD0 "tell $name, numpad1 Muahahaha, numpad2 Robbie Blackhat, numpad3 Temporarily Insane"
NUMPAD1 "tell $name, Loading Muahahaha binds...$$bind_load_file c:\files\games\coh\binds\Muahahaha.txt"
NUMPAD2 "tell $name, Loading Robbie Blackhat binds...$$bind_load_file c:\files\games\coh\binds\RobbieBlackhat.txt"
NUMPAD3 "tell $name, Loading Temporarily Insane binds...$$bind_load_file c:\files\games\coh\binds\TemporarilyInsane.txt"
NUMPAD4 "nop"


Same principle - NUMPAD0 lists the options, the other NUMPAD keys load the appropriate character's binds and tell me they're doing it. The NUMPAD4 "nop" bit is to unbind any bindings to that key. This is in case I set it in the menu - you don't want the binding hanging around for that, because it won't make sense. There's similar entries for NUMPAD5 to NUMPAD 9.

Finally, we have the specific binds for characters. Every character file has (at least) entries for NUMPAD0 - NUMPAD9 even if it's just "nop" to clear the menu entries. As a general example, I'll use AnarchyKitten.txt here - she's an empath defender and has binds accordingly:

NUMPAD0 "powexec_name Heal Other"
NUMPAD1 "team_select 1"
NUMPAD2 "team_select 2"
NUMPAD3 "team_select 3"
NUMPAD4 "team_select 4"
NUMPAD5 "team_select 5"
NUMPAD6 "team_select 6"
NUMPAD7 "team_select 7"
NUMPAD8 "team_select 8"
NUMPAD9 "powexec_name Clear Mind"


Pretty straight-forward. Numberpad keys 1-8 select the corresponding team member, numberpad 0 heals them, and number 9 clears mind. Makes it very quick to target and fire off a heal, or free someone from a hold or sleep.

So that's my bind menu system. The game remembers binds for each character once you've loaded them, but for the first time, or after I've made changes, all I have to do is type "/bind_load", hit NUMPAD0 twice, select, hit NUMPAD0 again, and select. Done.

Further reading on binds in general can be found on the US forums here.

On to mastermind binds for pet controlling now!

I had a look to see if anyone had already done something worth using. First thing I found was this post on the CoH forums. That's the binds (with downloadable zip file) that someone's done for the robotics mastermind set.

The way it works is in combination with the alt key and the left-most keys on the keyboard. You hold down alt, and then, the top row selects the group of your pets, the next row sets their state, and the bottom row issues a specific order. You can also click on a spot to make them go there.

ALT with:
Q, W, E, R select your pets by power (first three) or all (R).
A, S, D select the state (Aggressive, Defensive, Passive).
Z, X, C give an order (Attack, Follow, Stay).

So, for example, to select all my pets, make them aggressive, and make them attack my target, I just hold down alt and hit R, A, Z. To make them be defensive and follow me, I hold down ALT and hit R, S, X.

I'll give the files I have here for Muahahaha and his ninjas based on that.

In Muahahaha.txt I have:
NUMPAD9 "petsay_all <em dance>"
lalt+q "bind_load_file c:\files\games\coh\binds\Muahahaha\Genin.txt"
lalt+w "bind_load_file c:\files\games\coh\binds\Muahahaha\Jounin.txt"
lalt+e "bind_load_file c:\files\games\coh\binds\Muahahaha\Oni.txt"
lalt+r "bind_load_file c:\files\games\coh\binds\Muahahaha\All.txt"
lctrl+a "petcom Aggressive"
lctrl+s "petcom Defensive"
lctrl+d "petcom Passive"
lctrl+z "petcom Attack"
lctrl+x "petcom Follow"
lctrl+c "petcom Stay"
lctrl+lbutton "petcom Goto"


That binds NUMPAD9 to make them all dance. :D  And more usefully, that sets up the alt+q/w/e/r keys to load the corresponding file (which is what lets you select different groups of pets), and it also binds the ctrl key with other keys to command an individual targetted pet. Here's Muahahaha\Genin.txt.

lalt+a "petcom_pow Genin Aggressive"
lalt+s "petcom_pow Genin Defensive"
lalt+d "petcom_pow Genin Passive"
lalt+z "petcom_pow Genin Attack"
lalt+x "petcom_pow Genin Follow"
lalt+c "petcom_pow Genin Stay"
lalt+lbutton "petcom_pow Genin Goto"


That should be pretty clear. The Jounin and Oni files are identical, except they have Jounin/Oni instead of Genin. You can do exactly the same thing with other powersets' pets by just substituting the names (e.g. Zombie for Genin). Muahahaha\All.txt looks like this:

lalt+a "petcom_all Aggressive"
lalt+s "petcom_all Defensive"
lalt+d "petcom_all Passive"
lalt+z "petcom_all Attack"
lalt+x "petcom_all Follow"
lalt+c "petcom_all Stay"
lalt+lbutton "petcom_all Goto"


So it just uses "petcom_all" instead of "petcom_pow Power".

I was using this system last night, and after a little bit of getting used to it, it worked very well. I'm not sure how useful it is to be able to select them by group - in practice, at this point, I almost always have everything attacking a single target. If that continues to be the case, I'd ditch the selection and just have the contents of All.txt in Muahahaha.txt.

There's also a few tweaks I want to make to it. I want to be able to target a specific pet easily and make just him dance... er, make him break out of combat, etc. There's a pet_select command, so I'm thinking of the following:

lctrl+NUMPAD1 "pet_select 0"
lctrl+NUMPAD2 "pet_select 1"
lctrl+NUMPAD3 "pet_select 2"
lctrl+NUMPAD4 "pet_select 3"
lctrl+NUMPAD5 "pet_select 4"
lctrl+NUMPAD6 "pet_select 5"
lctrl+NUMPAD7 "petsay <em dance>"


Then, assuming you can actually bind left ctrl and numberpad keys (not tried it yet), that should let me just hold down ctrl, hit a numberpad key, and hit (e.g. to make him follow me) x. Problem might be, it means not having my hand on the mouse. But I'll see how that goes, I manage ok with Anarchy Kitten.

On Muahahaha, btw, I don't have a targetted heal, just an AoE one. If I did have a targetted heal, I'd have pet_select binds either as above, or without the lctrl, and NUMPAD0 (or possibly lctrl+NUMPAD0) bound to the heal power (as with Anarchy Kitten above), to let me target and heal a specific pet quickly.

I hope someone finds some of that vaguely helpful at some point! :)
Cave Cricetum! :hammering: