-
Posts
3904 -
Joined
-
USING "TOGGLE BINDS"
/bind is designed to tie a specific command to a specific key. The command might be fairly elaborate, involving an action, speech, a remapping of auto-attack, and a few combinations of slash commands, but each time you press the key it always invokes the same command. "One key, one command" is the way /bind was intended to work.
There is, however, a way around this.
Let's say that you want to bind some text to your character's taunt power, so that your character will actually taunt the villian when the power is activated. But you don't want to use the same text time after time after time, because you don't want your group to get annoyed. So you come up with five different taunts:
"Get over here!"
"You're next."
"Who wants some?"
"C'mere, ya pansy."
"Let's see what you've got."
These taunts will add a little variety to your character's taunting power, and because it's not the same thing over and over again may be a little tolerable for your teammates.
Now, you could go ahead and bind each taunt with your taunt power, each to a different key, but that would be wasteful. Wouldnt' it be more convenient if you hit one taunt key, and each time you did so it called up a different taunt? It is possible to configure a key to "toggle" through a set of different keybindings, but it's a little complicated. The way you do this is by constantly replacing your current keybinding with a new one, using the command /bind_load_file
a brief tangent: a recap of /bind_load_file
The /bind_load slash command tells City of Heroes to load the keybinds.txt file in the root directory of your C: drive. The /bind_load_file slash command allows you to specify the name and location of the keybinding file you want to load. Thus, I use the following commands:
/bind_load_file c:\keybinds\curveball.txt
/bind_load_file c:\keybinds\stormhaven.txt
/bind_load_file c:\keybinds\judge.txt
and the game would go into my c:\keybinds directory and load whatever file name I specified.
The curveball.txt, stormhaven.txt and judge.txt files have a few commands specific to those characters -- Stormhaven is a storm/electric defender, and the key I use to bring up his hurricane power is the same key I use to bring up Curveball's teleport foe power. The key I use to bring up The Judge's temporary invulnerability power is the same I use to bring up Curveball's force field power. When I create a new character that has a similar archetype to one of these, I first use /bind_load to bring in my basic command set, then I use /bind_load_file c:\keybinds\curveball.txt (or stormhaven.txt, or judge.txt) to bring in archetype-specific keybindings.
And because these files only require a few deviations from my default keybinds.txt file, I only need to include a few commands in each:
curveball.txt
e "powexec_name Personal Force Field"
w "nop"
q "powexec_name Teleport Foe"
f "nop"
t "nop"
stormhaven.txt
e "powexec_name Steamy Mist"
w "powexec_name Freezing Rain"
q "powexec_name Hurricane"
f "powexec_name Hover"
t "nop"
judge.txt
e "powexec_name Temp Invulnerability"
w "nop"
q "nop"
f "nop"
t "powexec_name Combat Jumping"
Each of these files only import five keybinds. Some of those keybinds are simply commands that overwrite what was originally there and replace it with nothing (nop) and others are specific powers.
If I wanted, in my default keybinds.txt I could create commands that automatically loaded these:
numpad1 "bind_load_file c:\keybinds\curveball.txt"
numpad2 "bind_load_file c:\keybinds\stormhaven.txt"
numpad3 "bind_load_file c:\keybinds\judge.txt"
then by hitting the numbers 1-3 on my number pad I could automatically load a custom bind set.
putting the tangent back on course: creating a toggle bind
To set up a key that toggles between the five taunts I listed earlier in this section, you need to create custom keybind files for each of them. These keybind files need to contain three things:
- the command to speak the taunt,
- the command to activate the taunt command, and
- the command to load the next taunt binding
The first thing you need to do is to create five keybind files:
taunt1.txt
taunt2.txt
taunt3.txt
taunt4.txt
taunt5.txt
In each taunt file, you need to put in the /bind command that gets executed. So each file would look like this:
--taunt1.txt--
t "local Get over here!$$powexec_name Taunt$$bind_load_file c:\keybinds\taunt2.txt"
--taunt2.txt--
t "local You're next.$$powexec_name Taunt$$bind_load_file c:\keybinds\taunt3.txt"
--taunt3.txt--
t "local Who wants some?$$powexec_name Taunt$$bind_load_file c:\keybinds\taunt4.txt"
--taunt4.txt--
t "local C'mere, ya pansy.$$powexec_name Taunt$$bind_load_file c:\keybinds\taunt5.txt"
--taunt5.txt--
t "local Let's see what you've got.$$powexec_name Taunt$$bind_load_file c:\keybinds\taunt1.txt"
When taunt 1 is active, pressing t will cause the character to say "Get over here! and activate the taunt power. At the same time, City of Heroes loads the taunt2.txt file and (since the bind command is for the same key) overwrites the t key with the new binding. So the next time t is pressed the character says "You're next." and the taunt power is launched again -- and this time, taunt3.txt is loaded, and THAT binding replaces the current one, and so forth and so on until finally taunt5.txt rebinds the key to load taunt1.txt, and the cycle starts over again.
Because the toggle bind is only loading and replacing one keybinding at a time, the process takes place very quickly.
Now the only thing left to do is to actually bind t to the first toggle command. You can either do this manually or you can add it to your keybinds.txt file:
t "local Let's see what you've got.$$powexec_name Taunt$$bind_load_file c:\keybinds\taunt1.txt"
when you use the slash command /bind_load, then t will be bound to emulate the taunt5.txt binding, and the next time t is pressed the first taunt binding will activate.
As long as you are willing to be patient and set up your files before you get into the game, you can create toggle binds for just about everything. I was able to create a toggle bind for my mouse: pressing a key loaded one set of binds to my mouse (to put it in "movement mode") and pressing it again loaded another set of binds (to put it in "default mode").
-
SAVING AND LOADING YOUR KEYBINDS
If you want to save your keybindings to your hard drive, use the slash command /bind_save. This saves your keybinds in a file called keybinds.txt, located in the root directory of your c: drive.
If you want to load the keybinds.txt file, use the slash command /bind_load. As long as the keybinds.txt file is still in the root directory of your c: drive, it will load automatically.
It is possible to load other text files with keybinding commands in it simply by specifing the file name and location. The full command is
/bind_load_file [path]
So, for example,
/bind_load_file c:\coh\textfiles\judge.txt
would load the judge.txt file from the c:\coh\textfiles directory.
When a bind file is loaded using either /bind_load or /bind_load_file, the new file does not REPLACE the old file, it is MERGED with it. If a keybinding conflicts between the current file and the file being loaded, the binding in the file being loaded is used... but any key binding mentioned in the current file that is not present in the file being loaded is left alone.
Thus you can use /bind_load_file to load a keybinds file that has only two entries in it, and only those two entries will be changed. This is useful in the toggle keybindings section of the "Neat things you can do with /bind" chapter.
Understanding Keybinds.txt
The keybinds.txt file is the file that is created when you use the /bind_save slash command. It contains a list of all the triggers and commands you have defined for the character you saved it from.
This is a sample of what keybinds.txt looks like:
[ QUOTE ]
Q "powexec_name Hurricane"
R "powexec_name Sprint"
RALT "alttraysticky"
RBUTTON "+forward$$+mouse_look"
SHIFT+RBUTTON "+backward$$+mouse_look"
ALT+RBUTTON "nop"
RIGHT "+turnright"
[/ QUOTE ]
Notice the /bind command is not used at all. All you see is the trigger and the command. If you want to make custom keybind files (that can be loaded with the slash command /bind_load_file) then you need to follow this format. Use the /bind command in the chat window, not in the keybinds.txt file. -
USING /BIND WITH YOUR MOUSE
Mouse buttons are trigger keys just like your standard keyboard keys are, so you can assign /bind commands to them in pretty much the same manner.
The trigger key names for each of the mouse buttons are listed below.
lbutton -- the left mouse button on a right-handed mouse. It is usually referred to as "Mouse Button 1" when used in the context of both left and right handed mice.
rbutton -- the right mouse button on a right-handed mouse. It is usually referred to as "Mouse Button 2" when used in the context of both left and right handed mice.
mbutton -- the button between Mouse Button 1 and Mouse Button 2. In modern mice it usually doubles as the scroll wheel. It is usually referred to as "Mouse Button 3."
button4
button5
button6
button7
button8
Buttons 4 through 8 are used to describe extra buttons your mouse may have. At present (29 March 2004) it does not seem possible to successfully use button5, button 6, button 7 or button 8 in key bindings. Button4 seems to work just fine.
lbutton/button 1
Button 1 is used in-game when you select targets (friendly, unfriendly and neutral) and click on items in the user interface (or certain objects in game). It seems to resist being overridden. You cannot, for example, attempt to REPLACE its default "click" binding with another command. Attempts to do so cause both commands to execute.
For example:
/bind lbutton "+forward"
Does not replace button 1's default functionality with "forward" -- instead, when you press down on button 1, a "click" is triggered AND your character moves forward. This could have some awkward consequences -- if your mouse was resting over a power icon in the power tray, for example, and you clicked on the button to move forward you would also click on that power.
rbutton/button 2
Button 2 is used in-game to "right click" on objects in order to see the options on their cascading menu. This is extremely important because it gives you access to the complete descriptions of powers, or the ability to trade with other characters.
Button 2 is easier to override than button 1, but it still retains the ability to pop up a right-click menu, no matter what you do to it. For example, I currently have my mouse set so that pressing button 2 puts it in a permanent mouse look mode until I hit another key to bring it out of it. If I do this when hovering over a button on the power bar, the popup menu appears even though the mouse has disappeared and there's no way to access anything on it. I have to hit the escape key to make the menu disappear before I can continue playing the game.
mbutton/button 3
Button 3 is a weird button. It seems to be permanently bound to +camrotate, which allows you to rate the camera around your character. I have been able to override this key command for short periods of time, but eventually +camrotate suddenly re-attches itself to mbutton, while retaining the functionality of whatever else is bound to it. I can't figure out exactly why this happens or why it sometimes happens immediately and why it sometimes doesn't happen for an hour. -
USING VARIABLES IN /BIND
Sometimes you will want to create a binding that will require the use of information that you won't necessarily have at the moment. You may not have it because you don't know it, or because that information changes, or because that information will be different depending on which character you're playing (and you want a common set of key bindings for all your characters). City of Heroes currently supports six variables that you can use as placeholders, which will be substituted with the actual information when it is available.
Five of the variables are placeholders for information about your own character:
$name -- your character's name
$origin -- your character's origin
$archetype -- your character's archetype
$level -- your character's level
$battlecry -- your character's batlecry
It is possible to supply this information yourself, but then the /bind command would be specific to that character only, and if you ever exported the key bindings and imported them into another character you would have redo those /binds. Besides, your level changes throughout the game.
With these variables, it is possible to have a /bind command like this:
/bind v "local Hello, I am $name, a level $level $origin $archetype. $battelcry"
This bind would cause whichever character you were using at the time to fill in those variables with information specific to their individual builds. If we were to use my characters, for example:
Curveball
"Hello, I am Curveball, a level 10 magic defender. You have GOT to be kidding me!"
The Judge
"Hello, I am Judge, a level 11 mutant tanker. You are... guilty."
Stormhaven
"Hello, I am Stormhaven, a level 12 mutant defender. "
Note that if the battlecry has its own punctuation (as both Curveball's and the Judge's do) it will be included in the battlecry string (which is why I did not include any in my bind.) Stormhaven, who has not battlecry, says nothing -- but there is still a trailing space between the period at the end of the first sentence and where the battlecry would start.
The last variable is $target, which acts as a placeholder for the name of any OTHER character you are currently selecting -- what that character be another hero, a civilian, or a villian. This variable can be very useful when you want to identify whoever you've targeted.
For example, you could create a /bind command that would call out a specific villian whenever your tanker uses taunt:
/bind t "local C'mere, $target!$$powexec_name Taunt"
If you had selected a Hellion Gunner and selected the t key, your character would say "C'mere, Hellion Gunner!" and activate the Taunt power.
This can be used in benign ways as well. I recently teamed up with a character who used the teleport friend power, and had a key binding set up to inform group members when this was happening. I believe he used a key binding similiar to
/bind t "group $target, prepare to be teleported to my location.$$powexec_name Recall Friend"
This sent a message across the group channel letting everyone know that a character was about to teleported to the hero using the power, and then activated the Recall Friend power. If he had wanted the message to be more private, he could have done it this way:
/bind t "tell $target, Prepare to be teleported to my location.$$powexec_name Recall Friend"
In this example, the variable $target is actually part of the command -- remember, tell needs a character name (followed by a comma) in order to know who to send the message to. -
BINDING MULTIPLE COMMANDS TO THE SAME KEY
The previous example was the simplest form of a /bind command: a key triggered a single action. Sometimes you might want to do something a little more complicated, set up a binding so that when a single key is pressed, multiple things happen simultaneously.
In keeping with our previous example, let's say that when the Temporary Invulnerability power is triggered you want to have your character say "I am invincible!" Well, that is actually two slash commands:
/powerexec_name Temp Invulnerability
/local I am invincible!
To do this, you need a way to tell /bind "but wait, I want you to do something else." You do this by inserting "$$" between the two commands:
/bind e "local I am invincible!$$powerexec_name Temp Invulnerability"
"$$" can be thought of as "and then" -- you are telling the game "say 'I am invincible!' AND THEN trigger the Temporary Invulnerability power." The game will do just that -- in that order -- though it will happen so quickly it will appear to occur simultaneously.
You could do this with just about any power you want. A popular keybinding is to add a message to the taunt power, like
/bind t "local C'mere, ya pansy! Who wants some?$$powerexec_name Taunt"
You can even do this to trigger more than one power with the same key:
/bind e "powerexec_name Temp Invulnerability$$powerexec_name Hover"
This turns on the the Temporary Invulnerability power and then turns on the Hover power. (Unless Hover is already on, in which case it turns Hover off.)
Things to consider when using $$
Some developers have recommended omitting spaces between the commands that appear before and after the $$ symbols. All of the examples in this guide adhere to that "standard," but some of the examples the developers have used in various threads do not. However, placing a space between $$ and your commands can cause things to break. For example:
/bind h "powexec_name Healing Aura $$ local You are healed!"
will not work. Why? Because the /bind command is not being read as "execute 'Healing Aura'," it's being read as "execute 'Healing Aura '" -- note there is a space after Aura. Since there is no such power as Healing-space-Aura-space, nothing happens.
Strangely enough, you CAN use
/bind h "local You are healed! $$ powexec_name Healing Aura"
and it WILL work. This is because the first command is a text message, and City of Heroes doesn't care if a text message ends in an exclamation point or a space.
At any rate, I suggest leaving no spaces at all between your first command, the $$, and the second command... and third command... and fourth command... etc.
What you CANNOT do with multiple actions
The one thing you can't do when you bind multiple actions to the same key is set up a macro that will execute one attack, then a second attack, then a third attack, and so on. If you tried to do the following:
/bind 1 "powexec_name Punch$$powexec_name Jab$$powexec_name Haymaker"
then the game would immediately try to set up punch, an instant later be told to execute a jab instead, and finally be overridden a third time and be told to perform a haymaker. And the only thing it would do is perform a haymaker.
There is an intesting trick you can use to get around this to an extent -- it's covered in "Neat things you can do with /bind." -
USING /BIND: THE BASICS
Before you can understand how to use /bind properly, you need to know how to use "slash commands." Slash commands are commands that you send to the game while using the chat window. /bind is a slash command, so understanding how they work in general will help you understand how to use /bind specifically.
Tangent: a brief guide to slash commands
While you are in-game, press your ENTER key. You'll see a flashing prompt in your chat window. You've probably used this any number of times to say something to other players in game, either through the local, team, broadcast or query channels. You may also know that if you append a slash ("/") to certain words they will be interpreted as in-game commands. For example, if you have ever fallen through the city and find yourself standing in the middle of a big blue void, with the ghostly image of the city hanging above your head, you might press the ENTER key and type
/stuck
and voila! You re-appear at the entrance to the zone you were just in. City of Heroes saw the slash in front of "stuck" and realized that you were sending it a command. It then looked up "stuck" and saw that it needed to return you to the proper zone, and *poof* -- it was done.
Any time you put a slash in front of text in your chat window, City of Heroes interprets the word that follows as though it were a command, whether the command exists or not. For example, /g tells CoH that all of the text following the "g" should be send to the group channel (or the team channel).
So if I typed
/g I'd really like a ham sandwich.
Anyone in my team would see the following message
I'd really like a ham sandwich.
Some commands are a little more complicated -- not only will the game need to know the general command to tell it what to do, it will need a few pointers to show it how or where to do it. For example, /t or /tell informs the game that you want to send a single character on the server a private message. But which character?
The proper way to send a tell is to type the following:
/t [character name], Hey! Want to group?
[character name] in this case represents someone's actual name. So what you have to do is use the /t commend, then enter the character's name, then use a comma to separate the instructions from the message, then type the message. So
/t Curveball, Hey! Want to group?
Would cause the message "Hey! Want to group?" to show up in my text window. Which, by the way, is not necessarily a great idea because he's not the best defender ever made. Caveat Emptor...
All this really means is that when you're using a complicated slash command you often have to be very specific in telling City of Heroes what you want to happen, and that often you have to give it that information in a very specific way. For example, if you typed
/t Curveball Hey! Want to group?
City of Heroes wouldn't know what to do. For all it knows, the character you're trying to send a message to is named "Curveball Hey! Want to group?" which is impossible, since the name field doesn't allow exclamation points or question marks. The comma after the name is very, very important, because it tells the game "I've told you who to send the message to, now I'm going to tell you the message."
Bringing the tangent back on-topic
That's all well and good, you ask, but what does that have to do with /bind? Well, two things:
- First, /bind is a slash command (as I've already said) and you need to know how slash commands work in general
- Second, /bind is a slash command that can TRIGGER OTHER SLASH COMMANDS.
You'll see what I'm talking about later.
Parsing a /bind command
/bind, like /t or /tell, requires that you parse (format) your command very specifically. The basic layout of a properly constructed /bind command is
/bind [trigger] "[command]"
First you identify the slash command (/bind). Then you identify what key will start the command ([trigger]) and then you place quotes around what the /bind actually does ([command]).
Of course, none of that makes any sense unless you know what a trigger is and what a command is.
Triggers
A trigger is either a:
- single key
- combination of keys
- mouse click, or
- key and mouse click combination
that activates the /bind command. A trigger can be pressing the e key, or clicking mouse button 1, or pressing the left shift key in combination with either the e or mouse button 1. Combinations of keys and mouse buttons allow you to map a lot of very specific commands to a limited number of keyboards, provided you can keep track of all of them in your head.
Each key has a name that /bind uses to differentiate it from other keys. The majority of the names are pretty easy to figure out -- for example, the e key is "e", and the F1 key is "F1." But because some keys on your keyboard share the same name, City of Heroes has assigned them unique, more complex names to set them apart. For example:
lshift -- the shift key on the left side of your keyboard
rshift -- the shift key on the right side of your keyboard
numpad1 -- the "1" key on your number pad (as opposed to the row of numbers at the top of your keyboard)
lbutton -- the left mouse button on a right-handed mouse (more commonly known as mouse button 1)
mbutton -- the middle button on a three-button mouse (more commonly known as mouse butotn 3, often the scroll wheel on modern mice)
button4 -- usually the thumb button on modern mice
Some special keys can be used in combination with other keys and mouse buttons. These keys are called chord keys -- they do not act as triggers themselves, but can be used with trigger keys to make new triggers.
For example, suppose you've set up the e key to trigger your tanker's Temporary Invulnerability power. In this case, E is a trigger -- when you press it, it causes the Temporary Invulnerability power to activate. So the /bind command might look like
/bind e "[power activation command]"
(The specifics of the command are not important at the moment. It will be dealt with in the next section. )
The e key is very convenient to access in combat, and if you want you can combine it with a chord key in order assign another command to it. So you could have
/bind lshift+e "[another power activation command]"
which would tell the game "when the left shift chord key key is pressed, and then (while the left shift key is still pressed down) the e trigger key is pressed, execute the following command."
In the first example, pressing the e key allows you to trigger a power. In the second example, pressing the left shift key and e key together allows you to trigger another power entirely -- the shift key is essentially making the e key a completely new trigger.
When you are setting up a chord key and trigger key combination you separate them with the "+" symbol. This tells the game that you are using both keys together. /bind commands are read from left to right, so if you are using chords in a trigger you must always use the chord key FIRST. If you typed
/bind e+lshift "[another power activation command]"
the game would read it as
/bind e "[another power activation command]"
and OVERWRITE your original e binding. It does this because e is a trigger key, and cannot chord -- so it sees "oh, there's an e, I can't do anything else" and skips right to the command in quotation marks.
Commands
A command is the instructions the game follows when a trigger is pressed. Commands are usually other slash commands -- in fact, most of the time when you create a /bind you are assigning a slash command to a key or mouse button.
But what are these commands, you ask? Well there are a lot of them, and they're scattered around the forums, but the most important ones can be found in these two locations:
- APPENDIX A (which can be found at the end of this guide) provides a list of all the default keybindings -- which keys trigger which navigation and combat actions, that sort of thing
- APPENDIX B (which can be found at the end of this guide) provides a list of all the slash commands that existed as of the time of the posting. It may or may not be up to date -- there may be new slash commands, and some of the listed commands may no longer work.
Putting it all together
Now that you know what triggers are, what types of things those triggers can make happen, let's look at a simple /bind command:
/bind e "powexec_name Temp Invulnerability"
This tells the game that whenever the e key is pressed, the power "Temporary Invulnerability" should activate.
Now, powexec_name is a slash command. If you were to activate Temporary Invulnerability in your chat window, you'd type
/powexec_name Temp Invulnerability
and the power would trigger (assuming you had it). By binding that command to the e key, you save a lot of time, especially in combat.
One of the things you will notice in the /bind example is that the slash command was called out without the actual "/." /bind assumes that you are going to send it a slash command, so the slash is unnecessary (and I believe that if you use the slash it will not work.) -
UNDERSTANDING WHAT /BIND IS
City of Heroes comes with a set of predefined in-game navigation and control commands. Pressing the W key moves your character forward, pressing the A key rotates your character to the left, pressing the D key rotates your character to the right, and so on. If you're not happy with these commands, you can open up the options panel, press the controls button, and replace some of them with key strokes our mouse button clicks of your own choosing. But you can't do this with every single key in the game. If you want more control over how the in-game commands are assigned to keys, you must use /bind.
In it's simplest form, /bind tells the game "from now on, when this button is pressed I want you to trigger that action." That action could be anything -- start a power, bring up a UI panel, send a message to another player. It's even possible to assign multiple actions to the same bind, though there are limits, and the more complex your /bind the greater a chance that something unexpected (and perhaps unwanted) will happen. That button can be almost any button on your keyboard or mouse, though again there are some limits. But essentially, /bind is telling the game that when you press the F key you want to activate the Hover power.
What /bind is not
/bind is NOT a macro language, and it cannot be used to automate your actions. In some games it is popular to write macros or shortcuts that allow you to queue up a number of attacks: for example, to start out with jab, then punch, then haymaker, and then to repeat until you no longer have a target. This is not possible using /bind, though it is possible to do some interesting things with it that come close.
There are in fact macros in the game, but they are slightly different than macros in other games. Macros will also be covered at the end of this guide, since they share many similiarities to /bind (and enough differences to make them important). -
THE WHOLLY UNOFFICIAL AND FAIRLY INCOMPLETE GUIDE TO /BIND
Version 1.1
Updated in this version:
- Slash commands Appendix edited and updated (thanks to Jason Brannen for his initial work on this, and to Grotus for adding a LOT of new information and adding syntax references to many of the entries)
- New Appendix for Named keys
INTRODUCTION
Welcome to the Wholly Unofficial and Fairly Incomplete Guide to /bind, an attempt to collect all the information we know about the bind command and organize it in a way that will make using it a lot easier to understand. Bind is a very powerful tool for customising the way you play your game, and while it's a little confusing to use when you first get into it, it gets easier the more you play with it.
This guide will (hopefully) make it easier for you to:
- Understand what the /bind command does
- Get a solid grasp on how it works, so you can play around with it on your own, and
- Immediately start using /bind to remap your keyboard and mouse in ways that the basic options in-game will now allow
This guide was written by me (Curveball) in my spare time. It was written based on my experiments during the beta program, and based on the tests and observations of others. I am not a developer and I am not a programmer, which means that this guide may contain inaccurate information. I will attempt to update it, and I'm sure other people in the community with more in-depth knowledge of /bind will make corrections as they find them. However, while going through this guide please understand that it reflects my personal understanding of what /bind is and how it works. No developer oversaw or authorised the creation of this guide, and there is always the off-chance that on any given subject I have no idea what I'm talking about.
Why this guide exists
I have been playing around with /bind since my second week of testing, and one of the things that made it difficult to figure out what to do was that all the information you need exists in multiple locations. There is a list of official keybinds, a /bind FAQ, a /bind FAQ comments thread, a list of unofficial slash commands, my own thread on binding commands to your mouse, El_Presidente's thread on creating "toggle binds," various threads on keybinds.txt files, and more. All of these threads are useful and worth reading, but it helps if you go into any one of those threads with a general knowledge of all of them. This guide is an attempt to give you a fairly basic understanding of /bind so that you can read those threads and understand what everyone is talking about.
This guide also exists because the /bind commands can make the game more accessible to people who otherwise would not be able to play it. One of the first threads that I remember following with interest on the beta testing forums was started by a man who was disabled and had limited motor functions -- he could use either the keyboard or a mouse, but not both. This is exactly the kind of situation where the /bind command can shine -- while it can't solve his problem (both the mouse and keyboard are needed in this game, and you can't do away with either) it is possible to use /bind to make the game vastly easier to play and to minimize the awkward spots.
Acknowledgements
Back in the beta testing days I searched through threads gathering all the information I could find on /bind, and I took lots of useful info from a lot of people. There are a few people, however, who I want to acknowledge specifically, either because they were developers who were very accessible and helpful when it came to talking about the subject or because they were other testers who loved playing around with this stuff and talking about it as much as I did.
poz
pohsyb
SaberCat
Weap0nX
El_Presidente
Jason Brannen
and since release there have been a few others who have been invaluable resources:
Grotus
Vapors
I know there are more people who should be on this list, but at the moment I can't remember any of them (and alas, I only saved two threads from the old boards). I apologize if I left you off that list, and I thank you for your help. -
Look for Illustrare (myself, a Technological Blaster) and Obscurus (my husband, a Scientific Defender) on Virtue, good luck to you, and have fun playing the un-Dorian Gray (at least in name) We will be looking for you
-
Yeah the time is perfect for me. I'll try to find you in the game. My heroes name is Cousken (couldyn't set my forum name as the same for some reason.)
-
I'd be willing to pay, but i don't think it would work. I haven't met a single roleplayer in Paragon yet..
-
Hey all! What is the "/bind" you have to type to change the colors in your text balloon? I asked someone in-game but it didn't work for me.
Thanks.
O.K.... I found out how to do it. Thanks guys. -
Chapter 5
It was Saturday morning; Allen woke up and got himself a bowl of cereal. Two weeks have passed since he met The Avengers. Every day after school he would go for a few hours of training in their secret headquarters. Of course his parents didn't know about it, and he wasn't about to tell them any time soon.
He would visit Cellest each time, though since the incident in the kitchen there was always someone watching them.
After his breakfast, Allen told his parents he's going to his friend's house. Obviously it was a lie he went to The Avengers' HQ.
When he arrived at the compound, Blackspade waited for him at the training room.
"Hey" said David, "ready for some *** kicking?"
"Nah" Allen replied with a wink, "I'll let you down easy today"
David wasn't wearing his magical armor, but he was still a very rough adversary.
They both faced each other and bowed. After a two-second pause of staring at each other, wondering what they will do next, David swinged at Allen's face. Allen used to fall for that, but he was quicker and more trained than he was when they started.
Allen ducked, sending a powerful punch at David's chin. David fell off his feet, hitting the mattress that was all over the room.
"You ok?" said Allen, chuckling. It was actually the first time he had managed to knock David out.
"Yeah, yeah. Nice one." David replied, while getting up.
"How'bout we try it ag..." Allen started saying, though David had kicked him in the stomach, making him fly a few feet off the ground. Luckily he managed to grab one of the ladders that were stationed around the gym.
"Always be on your guard, kid" David laughed.
"Shut up " Allen said, climbing down the ladder.
Suddenly, the alarm went off.
"Damn it!" David shouted, "the guys aren't here, they went to one of the hazard zones to catch someone. You need to come with me"
"But I can't use my powers in public people would recognize me!"
"Don't you worry about that, Nelson had our tailor make you an extra-special suit. It was supposed to be a surprise, but this is an emergency"
They both went out of the gym. David went into one of the doors in the corridor. Allen could see several suits of each of the members. After a few seconds David went out of the room with a carton box.
"Go put it on" he said.
Allen took the box and went to his room.
After a few minutes he came out. He had a chitin armor-suit. It was mostly Navy blue, though it had four sky blue stripes on the shoulders and on the bottom of the stomach. He wore a mask that covered his face, excluding eyes and mouth. On top of everything, he also had spikes on the angles of his metallic boots and gloves.
David also handed him some device to put on his mouth Ever since he got his powers, each time he used them he felt breathing difficulties, like an asthma attack, only a bit harsher So he could breath normally even when using his powers.
Above the suit, he had a belt with a special shiny blue stone on it. This stone was given to him by David (Allen couldn't figure out where David could have found such a thing) to lower the temperature around him, so he won't feel like being in a hot stew all the time.
David waited for him wearing his costume and armor.
They ran in the aisle, till they got to a door at the end of it. This door led to a situation room. It had a lot of monitors and police scanners. Chu, their secretary, was sitting there.
"There's a report of some maniac burning homeless people" Chu explained, "He is doing that for weeks now, but now a police chopper spotted him on a roof of a 20-story building with a person".
"Alright" said David, "We're heading there"
They ran out of the complex. David leaped a superhuman jump onto a tall house. He was about to continue running when he remembered Allen can't do that. He jumped down, grabbed Allen and jumped back up.
Eventually they got to the sky scraper Vulcan was standing on, holding a homeless man hostage. They went up the elevator, ignoring the SWAT team on the ground floor.
David told Allen to stay put, while he was climbing the stairs to the roof, to check it out.
Vulcan was standing there laughing like a madman shouting slurs towards the police who were down on the sidewalk, trying to reason with him. The hostage was sitting scared as hell right beside Vulcan.
"Ok" whispered David to Allen, "This guy's dangerous, especially to you".
"So what do we do?"
"We don't do anything" snapped David, "I will take care of him".
David climbed to the roof quietly, leaving Allen peeking from the entrance.
David advanced swiftly, unnoticed. Eventually he reached a boiler, which he hid behind. He whispered to the hostage to quietly come to him, while Vulcan is busy shouting on the helpless police.
The man started crawling towards Blackspade, though on his way he tumbled enough for Vulcan to notice.
Vulcan was furious. He sent a fireball on the hostage, though David managed to jump and save him. Vulcan was getting more and more angry.
Suddenly a police chopper was drawing near the edge of the building, to land a tactical team. Vulcan fired a massive fireball on it, blowing it up with all the people inside.
Blackspade leaped on Vulcan, and they both rolled like that until they reached the edge of the roof. Vulcan was lucky enough to be on the bottom at the moment, so he kicked David over from the building. Luckily, David managed to grab the edge.
Vulcan got up feeling triumphal, and was just about to step on Blackspade's fingers forcing him to fall. His plan was terminated as quickly as it was thought of Allen hit him with frost, knocking him to the ground.
Allen quickly ran to David and helped him up. Vulcan recovered from the blow, and stood up in rage. He then sent a fireball on Allen, though he managed to get out of the way.
Vulcan decided he was outnumbered, but he swore to himself he will kill Allen.
"We will meet again, Icy wimp!"
Vulcan lifted to the air. Allen wasn't going to give up, he ran as hard as he could and grabbed Vulcan's feet. Wayne was getting a kick out of it, he flew as fast as he could upwards, while trying to shake Allen off him. Allen knew he would surely die if he'd let go.
Eventually, though, he slipped off Vulcan's feet. Vulcan laughed crazily, watching Allen fall to his death.
To be continued...
----------------
Thanks for reading(if you have)
-
5 Dollars for a better gameplay experience is money well spent.
Yes -
Hey, i have been looking for a RP group now for a while.. I live in the US on the East Coast and the only time i get to play is late at night here, like midniight, so thats like 5 or 6 am for you. Let me know if this time is good for you and maybe we can start a team which could turn into a SG.
-
first I thought you were pretty lame, but you actually sort of convinced me that you're just bored.
-
Crystal Saier, aka. "Cry", was born in the low income housing district of The Gish, in Kings Row. She was the daughter of a single mother. Her mother was always drunk or "high" on one drug or another. Either way, Sober or drunk, her mother was weird. Always talking about an old world religion called "Wicca"; speaking in riddles about spells, voodoo, and curses. Cry's father abandoned the family when she was 2 months old. Cry never knew her dad and didn't particularly care. Some of the other kids knew their father, lived with him, and didn't appear particularly too happy about it. A father would have brought extra income into the household, which would have bought much needed clothing and food, but she figured that's all a father would bring in her life.
Cry's mother was sort of around. She worked 8 hours a day, and then partied for another 12 or more. When her mother did finally come home there wasn't exactly a "love bond" and after buying the drugs and alcohol, there wasn't exactly much money for food either. Life was hard, growing up in one of the crappiest neighborhoods in Paragon City. Cry would shoplift food, clothes, personal hygiene items, anything; whenever she needed them. Shoplifting was far better then not brushing your teeth or eating food from dumpsters.
Being essentially raised on the streets afforded Cry the luxury (?) of witnessing Darwins Law in action. Many of Cry's "friends" died in front of her; from a drug overdose, or by being shot by a rival gang, did it really matter how a person died? Did it even matter how they lived?
The Gish was the home turf of a gang called, The Skulls. Cry befriended a lot of them because of naivety, lack of caring about life in general or maybe because they always ate. They had a lot of money. Not a lot by the standards of an Athens park lawyer... but a lot of money as far as Cry was concerned. Really she didn't have a choice. She lived in Kings Row, what was she going to do? Befriend a hellion? Run off with one of the Nazis? That would quickly and surely sign her death warrant and assure another fresh corpse on the Streets of The Gish.
At the age of 16, Cry met David. He was an up and coming Skull member that was rising through the ranks. He was known to have little patience and a lust for violence. Looking back on it, she supposed that he was attracted to her at first sight. She had been sitting on a bench at a dilapidated playground and he had sat next to her and started talking incessantly to her. When he asked her out, Cry said "Yes", she really had nowhere else to go and nothing else to do anyways; in fact if David had wanted to, he could have just forcefully taken her. In The Gish, girls really had little say over their fate.
In a week, Cry was officially the property of David; which was a very good thing. Cry would go to a spot for David to wait for a courier to drop off money or she would run to the store to get him something and he would giver her a small wad of cash and he NEVER asked for the change. She finally started eating regularly and because she was David's property, any Skull off the street couldn't just take her and do what they wanted. She was protected. David had a vicious temper, but surprisingly he never really beat her too badly. Maybe he really loved her, or maybe he figured that he couldn't beat her any worse then she had previously been beaten... without killing her.
A year later and Cry was miraculously pregnant for the first time. She had actually thought she couldn't bare offspring, which honestly would have suited her just fine. Bringing someone into this life was a moral dilemma. David on the other hand, pleaded, prodded and threatened her into having the baby. David looked at it as having a second life, a chance to right the wrong decisions he had made in his. A baby was a fresh start. Cry figured the baby would be ruined by the age of 7, but deep down, a part of her really wanted the baby too.
Samantha Alexandria Saier was born on a bright winter morning and Cry fell in love instantly. She held Samantha for hours until the nurses made her give the baby to them so it could be changed and bathed. Immediately when Samantha was gone, Cry felt a dark pit in her stomach. The next two hours while they gave the baby vaccines and a checkup were torture for Cry. When Samantha was placed back in her arms, it felt like she was whole again. Cry decided then and there that she would do everything in her power to assure Samantha had a good life. No, she couldn't leave David and the Skulls, or The Gish; but she could maintain vigilance over everything her daughter did and everywhere she went. For five years, that's exactly what she did. In the Gish, very few kids go to school, which Cry figured was actually good, because Samantha would stay near her mom and learn how life really was. In small doses, of course.
Samantha always wanted candy. She loved the sweetness of the sugar, or the bitterness of the chocolate, or the texture of the confection. Cry laughed and swore to herself that Samantha was getting addicted to candy but she decided to take her beloved daughter to the corner market for a treat. It would be a day that would haunt Cry for the rest of her life (and possibly afterlife).
The streets were clear, there were no sounds of gunshots, and everything looked great. A beautiful day in the ruins of The Gish. Samantha scurried into the store as fast as she could to make her way to the candy section. Cry followed her in and went to the counter to get ready to pay and make small talk with the cashier. It was at this point that Cry saw, through the corner of her eye, a figure in white enter the store and approach the counter. She didn't look at the person, she knew the white outfit was a tell-tale sign it was a Skull. She heard him **** his shotgun and watched as the cashiers face went white. He was in a hurry (or maybe he was new to crime and the Skulls), he quickly stammered "Give me the money or you die b(^$%". "Hurry!" he commanded. At this point, Samantha ran up and yelled "Mommy! she had found the treat she wanted. The skull turned and shot her in the chest. As Samantha fell she gasped loudly. Cry screamed and ran over to her but she knew it was too late. Blood was everywhere and Cry could see the floor through the hole in her daughter. The Skull ran out of the store.
The world went black for Cry. She stopped eating and drinking. She cried or slept almost non-stop for an entire year. Cry went down a dark hole in her soul. When she started eating and drinking, and could carry on a conversation without sobbing uncontrollably, they let her out of the institution. She was going to go home to David but decided to see her mother first, if she was home. When Cry got to her mothers place she noticed that inside everything was dark and dusty. Cry guessed her mother had moved but apparently the landlord had seen her walk up to the door. He came out and explained how Cry's mother had died from a drug overdose last month and they were waiting for contractors to come and clean the place out. Without thinking, Cry said she would rent the place and clean it instead. The landlord agreed and took Cry's welfare card to debit the rent. He returned with her card and keys. Cry let herself in.
She wandered around looking at everything. Reminders of an ugly and sad past, but reminders of her life nonetheless. She went into her mothers room and for some reason stopped to look at and read the books on the shelf. Cry didn't read very well but she could make out most of the words. What started as curiosity soon turned into an obsession. Cry methodically and completely read every book. Most of her mothers books described spells for making someone fall in love with you, or making yourself rich, but one book in particular was different. Cry hadn't found it right away. In fact, she had guessed her mother never actually read it. It was an average size black tomb, filled with small writing. It had fallen behind the other books and halfway down the shelf. When Cry blew the dust off of the book, she blew the dust off of her old life. Her reading improved from the other books, she sat and read, memorizing each page of this strange book. It didn't talk of spells for love or money. It discussed revenge, violence, misery and pain.
Cry wasn't sure if she had changed from reading the book, or if she had changed from her experience. Cry could, ironically no longer cry. She couldn't feel pain. She could fake smiles and fake all sorts of emotions, but deep down she didn't feel anything except anger for the Skulls. It was time for her to return to David. When she entered his apartment there was a girl there. Cry figured the girl was maybe 18, maybe younger. Regardless, the girl died quickly. Cry hadn't meant to return here for vengeance or murder... but something dark inside of her had been released. When David came home and found his girlfriend dead, he was outraged. Cry watched him turn red, shocked at her insolence and surprised at her return home.
Cry's pupils blackened with the weight of misery and slowly she began chanting. David looked for something to beat her mercilessly with, but it was too late. As the final word escaped Cry's lips, a dark vaporous skull leapt from her hand and hit him squarely in the chest. He fell to the floor instantly dead... it almost reminded her of Samantha.
"Now, to find Samantha's killer" Cry thought. "I will have my revenge!" Cry screamed at the top of her lungs, "I will damn you all to torment!"
Many Skulls died that day, and the days after, but not the one Cry was seeking.
Cry wasn't sure where he was but she had a lifetime to find him... -
Most Girls - CoH Style-
Credit:-The Legendary- Voice (ME) and -The Magnificant- Jenna arcane (friend)
http://img10.imageshack.us/my.php?lo...indisguise.JPG -
[ QUOTE ]
First rule of roleplaying!!! You must be comfortable with your character. If you are uncomfortable with things he would do or say, then you are roleplaying the wrong type of toon.
[/ QUOTE ]
Well, it's not that I'm not comfortable with him, but I also don't want to inflict anything on others both because I just don't like to do that personally, and because I don't want to open myself to disciplinary action from someone who decides to petition me rather than speaking to me about it.
The language filter is there, true, but it's not perfect. Anyone with any kind of "proficiency" in swearing can get around it easy and often, especially by using slang or trying to spek with some sort of "accent." For instance, it fits my character to say [censored] or [censored]' instead of [censored]. I doubt the first two are on the filter, whereas the last one certainly is. And I'm sure using the first two could offend someone, and could potentially lead to a complaint being filed.
Sexual harrassment and such are along the same lines. There's really no way for someone to filter out that my guy is a lecherous objectifier of women ().
I think for now I'll just go ahead with putting a little "disclaimer" in my bio, and maybe the keybound one also for grouping, and go from there. If I get complaints, I can adjust accordingly.
PigLick -
Hi! I'm looking for a roleplaying supergroup on the freedom server. I'm european, so i'd prefere one where most people are as well from europe, or play late at night
-
First rule of roleplaying!!! You must be comfortable with your character. If you are uncomfortable with things he would do or say, then you are roleplaying the wrong type of toon.
-
Trying to gather his bearings after coming out of his rage, Lobe stumbles over the dropped idol, sending it into the wall of a nearby building. "Oops!" he says and runs over to the wall. He grasps the portion of the idol protruding from its surface and begins to twist. A look of suprise, which turns into concentration, crosses Lobe's face as a simple application of casual strength doesn't suffice to remove the implanted object. Soon Lobe's enourmous muscles are visibly straining and beads of sweat start to form on his forehead. Then, as his grunts of effort grab the attention of the nearest heroes, the idol turns. Lobe, surprised by the sudden release of the embedded idol, didn't try pulling it out but kept turning it.
When the Idol had turned 90 degrees the wall it was stuck in, blinked out with an audible *POP!* and Lobe was left with the idol in his hands, free, staring at a bustling street complete with cars driving by and pedestrians dealing with vendors. "Oops," was all he could think to say. -
-
Quick addenda....
Screenshots in the character creation only go to your clipboard.
For the folks out there who have no problem with passing command parameters, here are the commands as a dev posted back in beta:
[ QUOTE ]
In game commands:
/demorecord <demoname>
/demostop
Saves your demo to cityofheroes/client_demos/<demoname.cohdemo>
Quitting the game or changing maps will force demostop to get run.
Playback commands:
These commands all run from the command line when you start the game. So you would (for instance) make a shortcut to cityofheroes.exe and add these to the target
-demoplay <demoname>
plays back the demo. Loops forever, writing performance data to cityofheroes/client_demos/results/demo_name. (It has min,max,avg and time for each frame)
-demopause <msecs>
This is for videocard performance debug. Runs until it gets the the frame given (in milliseconds) then redraws that frame forever.
-demodump
Dumps a .tga file of each frame rendered to client_demos/screens/<demoname>/*.tga
-demofps <frames per second>
Forces the player to simulate a fixed frame per second. This works well with demodump to get a smooth movie.
-fullscreen
Put game in fullscreen mode (overrides the registry key)
-screen <xsize> <ysize>
Set the screensize. Ex: -screen 1024 768
[/ QUOTE ]
Fullscreen actually takes a parameter. Fullscreen 0 will turn off fullscreen mode even if your game is set up to play in fullscreen. Handy, given that demos in full screen mode typically have to be stopped by doing control-alt-delete and killing the game with task manager.
As of this writing, demos are having major playback problems. Try to keep the demos short and you'll have better luck.