BindKey: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (→‎Optional Arguments: arguments may not be functions !!?)
m (all collapses shown until collapse is fixed.)
Line 24: Line 24:


{{New feature|3|1.0|
{{New feature|3|1.0|
<section name="Server - Syntax 2" class="server" show="false">
<section name="Server - Syntax 2" class="server" show="true">
This alternative syntax allows you to bind a key with a command.  This will also allow users to customize the control in their Settings menu.  Use in conjunction with [[addCommandHandler]] to add handler functions to the keybind.
This alternative syntax allows you to bind a key with a command.  This will also allow users to customize the control in their Settings menu.  Use in conjunction with [[addCommandHandler]] to add handler functions to the keybind.


Line 60: Line 60:


{{New feature|3|1.0|
{{New feature|3|1.0|
<section name="Client - Syntax 2" class="client" show="false">
<section name="Client - Syntax 2" class="client" show="true">
This alternative syntax allows you to bind a key with a command.  This will also allow users to customize the control in their Settings menu.  Use in conjunction with [[addCommandHandler]] to add handler functions to the keybind.
This alternative syntax allows you to bind a key with a command.  This will also allow users to customize the control in their Settings menu.  Use in conjunction with [[addCommandHandler]] to add handler functions to the keybind.



Revision as of 06:30, 1 December 2010

Binds a player's key to a handler function or command, which will be called when the key is pressed.

Syntax

Click to collapse [-]
Server - Syntax 1
bindKey ( player thePlayer, string key, string keyState, function handlerFunction,  [ var arguments, ... ] )

Required Arguments

  • thePlayer: The player you wish to bind the key of.
  • key: The key or control you wish to bind to the command. See key names for a list of possible keys and control names for a list of possible controls.
  • keyState: A string that has one of the following values:
    • "up": If the bound key should trigger the function when the key is released
    • "down": If the bound key should trigger the function when the key is pressed
    • "both": If the bound key should trigger the function when the key is pressed or released
  • handlerFunction: The function that will be triggered when the player's key is pressed. This function should have the form:
function functionName ( player keyPresser, string key, string keyState, [ var arguments, ... ] )
The values passed to this function are:
  • keyPresser: The player who pressed the key
  • key: The key that was pressed
  • keyState: The state of the key that was pressed, down if it was pressed, up if it was released.
  • arguments The optional arguments you specified when calling bindKey (see below).
Click to collapse [-]
Server - Syntax 2

This alternative syntax allows you to bind a key with a command. This will also allow users to customize the control in their Settings menu. Use in conjunction with addCommandHandler to add handler functions to the keybind.

bindKey ( player thePlayer, string key, string keyState, string commandName, string arguments )

Required Arguments

  • thePlayer: The player you wish to bind the key of.
  • key: The key or control you wish to bind to the command. See key names for a list of possible keys.
  • keyState: A string that has one of the following values:
    • "up": If the bound key should trigger the function when the key is released
    • "down": If the bound key should trigger the function when the key is pressed
    • "both": If the bound key should trigger the function when the key is pressed or released
  • commandName: The name of the command that the key should be binded to.
  • arguments Space delimited arguments that are entered as if one was typing the command.
Click to collapse [-]
Client - Syntax 1
bindKey ( string key, string keyState, function handlerFunction,  [ var arguments, ... ] ) 

Required Arguments

  • key: The key or control you wish to bind to the command. See key names for a list of possible keys and control names for a list of possible controls.
  • keyState: A string that has one of the following values:
    • "up": If the bound key should trigger the function when the key is released
    • "down": If the bound key should trigger the function when the key is pressed
    • "both": If the bound key should trigger the function when the key is pressed or released
  • handlerFunction: The function that will be triggered when the player's key is pressed. This function should have the form:
function functionName ( string key, string keyState, [ var arguments, ... ] )
The values passed to this function are:
  • key: The key that was pressed
  • keyState: The state of the key that was pressed, down if it was pressed, up if it was released.
  • arguments The optional arguments you specified when calling bindKey (see below).
Click to collapse [-]
Client - Syntax 2

This alternative syntax allows you to bind a key with a command. This will also allow users to customize the control in their Settings menu. Use in conjunction with addCommandHandler to add handler functions to the keybind.

bindKey ( string key, string keyState, string commandName, string arguments )

Required Arguments

  • key: The key or control you wish to bind to the command. See key names for a list of possible keys.
  • keyState: A string that has one of the following values:
    • "up": If the bound key should trigger the function when the key is released
    • "down": If the bound key should trigger the function when the key is pressed
    • "both": If the bound key should trigger the function when the key is pressed or released
  • commandName: The name of the command that the key should be binded to.
  • arguments Space delimited arguments that are entered as if one was typing the command.

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • arguments: Any arguments you may want to pass to the function when the key is pressed by the user. Any number of arguments of can be specified, each being passed to the designated function. You may not pass functions.

Example

Example 1

Click to collapse [-]
Server

This example will bind a player's 'F1' key and 'fire' control to 1 input function.

function funcInput ( player, key, keyState )
  local state = "let go of"
  if ( keyState == "down" ) then
    state = "pressed"
  end
  outputChatBox ( getPlayerName ( player) .. " " .. state .. " the " .. key .. " key!" )
end

function bindTheKeys ( player, commandName )
  bindKey ( player, "F1", "down", funcInput )   -- bind the player's F1 down key
  bindKey ( player, "F1", "up", funcInput )     -- bind the player's F1 up key
  bindKey ( player, "fire", "both", funcInput ) -- bind the player's fire down and up control
end
addCommandHandler ( "bindme", bindTheKeys )

Example 2

Click to collapse [-]
Client

This example will bind a player's 'F1' key and 'fire' control to 1 input function, clientside.

function funcInput ( key, keyState )
  local state = "let go of"
  if ( keyState == "down" ) then
    state = "pressed"
  end
  outputChatBox ( "You " .. state .. " the " .. key .. " key!" )
end

function bindTheKeys ()
  bindKey ( "F1", "down", funcInput )   -- bind the player's F1 down key
  bindKey ( "F1", "up", funcInput )     -- bind the player's F1 up key
  bindKey ( "fire", "both", funcInput ) -- bind the player's fire down and up control
end
addCommandHandler ( "bindme", bindTheKeys )

See Also