Engine:CCMD bind: Difference between revisions

no edit summary
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 8: Line 8:


== Associations ==
== Associations ==
*Key bindings are global, and not a part of any context.
* Key bindings are global, and not a part of any context.


== Details ==
== Details ==
A 'bind' acts like a custom command for a key. It runs the assigned text as a script, which can contain a single-word command, statement, or script.
A 'bind' acts like a custom command for a key. It runs the assigned text as a script, which can contain a single-word command, statement, or script.


By default, binds do not work while input is in console or in text mode.  
By default, binds do not work while input focus is in console or in text mode.
 
Binds have a special relationship with commands and aliases, where specially named commands will get run during special key or device states. For example, if an alias is named '+bob' and is bound to a key, it will only get called when that key is pressed down, and if named '-bob' will get called when the key goes up.


== Examples ==
== Examples ==
Line 30: Line 32:
fred
fred
</kua>
</kua>
* Same as the first example, but now bind 'Z' exists and shows the value of the bind 'Z'
* Same as the first example, but now bind 'Z' exists and shows the value.
<kua>
<kua>
> alias bob
> alias bob
Line 36: Line 38:
</kua>
</kua>


=== To a variable ===
=== Key states ===
* 'bob' called without a value. No command, variable or alias named 'bob' exist.
* '+zoom' called without a value. No command, variable or alias named '+zoom' exist.
<kua>
> bob
Unknown: bob
</kua>
* Create an alias 'bob' and set to 'fred'.
<kua>
> alias bob fred
</kua>
* Same as the first example, but now alias 'bob' exists. The 'fred' command in the 'bob' alias script runs, and 'fred' doesn't exist.
<kua>
<kua>
> bob
> +zoom
Unknown: fred
Unknown: +zoom
</kua>
</kua>
* Create variable 'fred'.
* Create an alias for '+zoom' and '-zoom'.  
<kua>
<kua>
> var fred james
> alias +zoom "set fov 45; print 'zoom is 45'"
> alias -zoom "set fov 90; print 'zoom is 90'"
</kua>
</kua>
* Run 'bob'
* Create a binding for the 'Z' key.
<kua>
<kua>
> bob
> bind Z +zoom
'fred' is 'james'
</kua>
</kua>
* Try to set 'fred' through 'bob'. Value remains the same because 'bob' is only the statement "fred".
* Close console and press and release the 'Z' key. Zooms in and out and prints zoom messages.
<kua>
<kua>
> bob alan
zoom is 45
> bob
zoom is 90
'fred' is 'james'
</kua>
</kua>


== Notes ==
== Notes ==
*
*