Engine:CCMD bind: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
No edit summary
 
(3 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.
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.
Line 39: Line 39:


=== Key states ===
=== 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>
<kua>
> bob
> +zoom
Unknown: bob
Unknown: +zoom
</kua>
</kua>
* Create an alias 'bob' and set to 'fred'.  
* Create an alias for '+zoom' and '-zoom'.  
<kua>
<kua>
> alias bob fred
> alias +zoom "set fov 45; print 'zoom is 45'"
> alias -zoom "set fov 90; print 'zoom is 90'"
</kua>
</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.
* Create a binding for the 'Z' key.
<kua>
<kua>
> bob
> bind Z +zoom
Unknown: fred
</kua>
</kua>
* Create variable 'fred'.
* Close console and press and release the 'Z' key. Zooms in and out and prints zoom messages.
<kua>
<kua>
> var fred james
zoom is 45
</kua>
zoom is 90
* Run 'bob'
<kua>
> bob
'fred' is 'james'
</kua>
* Try to set 'fred' through 'bob'. Value remains the same because 'bob' is only the statement "fred".
<kua>
> bob alan
> bob
'fred' is 'james'
</kua>
</kua>


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

Latest revision as of 04:28, 15 October 2023

Console commands

Creates a new key binding, replacing existing key binding if any.

bind Z "echo fred"

Arguments[edit]

  • name - name of binding, which corresponds to a particular key, button, or other device.
  • value (optional) - script string or command to run. If not supplied, then prints the script or command value, if the binding exists.

Associations[edit]

  • Key bindings are global, and not a part of any context.

Details[edit]

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 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[edit]

Default values[edit]

  • Check bind 'Z' for script value. No bind exists for key 'Z'.
> bind Z
Unknown: Z
  • Create a bind for the 'Z' key.
> bind Z "echo fred"
  • Close console and press 'Z' key. Prints 'fred'.
fred
  • Same as the first example, but now bind 'Z' exists and shows the value.
> alias bob
'bob' is 'echo fred'

Key states[edit]

  • '+zoom' called without a value. No command, variable or alias named '+zoom' exist.
> +zoom
Unknown: +zoom
  • Create an alias for '+zoom' and '-zoom'.
> alias +zoom "set fov 45; print 'zoom is 45'"
> alias -zoom "set fov 90; print 'zoom is 90'"
  • Create a binding for the 'Z' key.
> bind Z +zoom
  • Close console and press and release the 'Z' key. Zooms in and out and prints zoom messages.
zoom is 45
zoom is 90

Notes[edit]