BindKey: Difference between revisions
No edit summary |
mNo edit summary |
||
(14 intermediate revisions by 12 users not shown) | |||
Line 1: | Line 1: | ||
{{Server client function}} | {{Server client function}} | ||
__NOTOC__ | __NOTOC__ | ||
Binds a player's key to a handler function or command, which will be called when the key is pressed. | Binds a player's key to a handler function or command, which will be called when the key is pressed. | ||
{{Note|Using '''escape''' key or '''F8''' key will always return false. Use [[onClientKey]] event instead.}} | |||
{{Note|Handler function won't be triggered while focused in CEGUI editbox. You can use [[guiSetInputMode]] or [[onClientKey]] in order to fix that.}} | |||
==Syntax== | ==Syntax== | ||
<section name="Server - Syntax 1" class="server" show="true"> | <section name="Server - Syntax 1" class="server" show="true"> | ||
<syntaxhighlight lang="lua">bindKey ( player thePlayer, string key, string keyState, function handlerFunction, [ var arguments, ... ] )</syntaxhighlight> | <syntaxhighlight lang="lua">bool bindKey ( player thePlayer, string key, string keyState, function handlerFunction, [ var arguments, ... ] )</syntaxhighlight> | ||
===Required Arguments=== | ===Required Arguments=== | ||
Line 27: | Line 30: | ||
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. | ||
<syntaxhighlight lang="lua">bindKey ( player thePlayer, string key, string keyState, string commandName, [ string arguments ] )</syntaxhighlight> | <syntaxhighlight lang="lua">bool bindKey ( player thePlayer, string key, string keyState, string commandName, [ string arguments ] )</syntaxhighlight> | ||
===Required Arguments=== | ===Required Arguments=== | ||
Line 43: | Line 46: | ||
<section name="Client - Syntax 1" class="client" show="true"> | <section name="Client - Syntax 1" class="client" show="true"> | ||
<syntaxhighlight lang="lua">bindKey ( string key, string keyState, function handlerFunction, [ var arguments, ... ] ) </syntaxhighlight> | <syntaxhighlight lang="lua">bool bindKey ( string key, string keyState, function handlerFunction, [ var arguments, ... ] ) </syntaxhighlight> | ||
===Required Arguments=== | ===Required Arguments=== | ||
Line 64: | Line 67: | ||
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. | ||
<syntaxhighlight lang="lua">bindKey ( string key, string keyState, string commandName, [ string arguments ] )</syntaxhighlight> | <syntaxhighlight lang="lua">bool bindKey ( string key, string keyState, string commandName, [ string arguments ] )</syntaxhighlight> | ||
===Required Arguments=== | ===Required Arguments=== | ||
Line 81: | Line 84: | ||
*'''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. | *'''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. | ||
=== | ===Returns=== | ||
Returns ''true'' if the key was bound, ''false'' otherwise. | |||
==Example== | ==Example== | ||
Line 92: | Line 93: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function funcInput ( player, key, keyState ) | function funcInput ( player, key, keyState ) | ||
outputChatBox ( getPlayerName ( player) .. " " .. (keyState == "down" and "pressed" or "released") .. " the " .. key .. " key!" ) | |||
end | end | ||
Line 113: | Line 110: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function funcInput ( key, keyState ) | function funcInput ( key, keyState ) | ||
outputChatBox( "You " .. (keyState == "down" and "pressed" or "let go of") .. " the " .. key .. " key!" ) | |||
end | end | ||
function bindTheKeys () | function bindTheKeys ( commandName ) | ||
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 | end | ||
addCommandHandler ( "bindme", bindTheKeys ) | addCommandHandler ( "bindme", bindTheKeys ) | ||
Line 130: | Line 123: | ||
<section name="Server" class="server" show="true"> | <section name="Server" class="server" show="true"> | ||
This example says how cool | This example says how cool is the MTA:SA is if players wants to move. | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function fanFunction() | function fanFunction() | ||
bindKey (source,"forwards","down", | bindKey (source,"forwards","down", | ||
function(player,key,state) | function(player,key,state) | ||
outputChatBox (getPlayerName (player) .. "#FFFF00 thinks | outputChatBox (getPlayerName (player) .. "#FFFF00 thinks MTA:SA is so cool.",root,255,255,0,true) | ||
end | end | ||
) | ) | ||
end | end | ||
addEventHandler ("onPlayerLogin", | addEventHandler ("onPlayerLogin",root,fanFunction) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</section> | </section> | ||
Line 145: | Line 138: | ||
==See Also== | ==See Also== | ||
{{Input functions}} | {{Input functions}} | ||
[[pt-br:bindKey]] |
Latest revision as of 19:46, 19 March 2024
Binds a player's key to a handler function or command, which will be called when the key is pressed.
Syntax
bool 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).
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.
bool 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.
Optional Arguments
- arguments Space delimited arguments that are entered as if one was typing the command.
bool 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).
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.
bool 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.
Returns
Returns true if the key was bound, false otherwise.
Example
Example 1
This example will bind a player's 'F1' key and 'fire' control to 1 input function.
function funcInput ( player, key, keyState ) outputChatBox ( getPlayerName ( player) .. " " .. (keyState == "down" and "pressed" or "released") .. " 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
This example will bind a player's 'F1' key and 'fire' control to 1 input function, clientside.
function funcInput ( key, keyState ) outputChatBox( "You " .. (keyState == "down" and "pressed" or "let go of") .. " the " .. key .. " key!" ) end function bindTheKeys ( commandName ) 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 )
This example says how cool is the MTA:SA is if players wants to move.
function fanFunction() bindKey (source,"forwards","down", function(player,key,state) outputChatBox (getPlayerName (player) .. "#FFFF00 thinks MTA:SA is so cool.",root,255,255,0,true) end ) end addEventHandler ("onPlayerLogin",root,fanFunction)