UnbindKey: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Added note about annoying bug that causes an hour lost debugging.) |
||
(27 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
{{Server client function}} | |||
Removes an existing key bind from the specified player. | Removes an existing key bind from the specified player. | ||
Note | {{Note|unbindKey will only work on binds that were added by the same resource}} | ||
{{Note|unbindKey on the server may return ''true'' on failure}} | |||
{{Note|If you call unbindKey twice, it will break other scripts: [https://github.com/multitheftauto/mtasa-blue/issues/497 Issue 497]}} | |||
==Syntax== | ==Syntax== | ||
<syntaxhighlight lang="lua">unbindKey ( player thePlayer, string key, | <section name="Server" class="server" show="true"> | ||
<syntaxhighlight lang="lua"> | |||
bool unbindKey ( player thePlayer, string key, string keyState, string command ) | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="lua"> | |||
bool unbindKey ( player thePlayer, string key [, string keyState, function handler ] ) | |||
</syntaxhighlight> | |||
===Required Arguments=== | ===Required Arguments=== | ||
*'''thePlayer:''' The player you wish to unbind the key of. | *'''thePlayer:''' The player you wish to unbind the key of. | ||
*'''key:''' The key you wish to unbind. | *'''key:''' The key you wish to unbind. See [[Key names]] for a list of valid key names. | ||
*'''keyState:''' Can be either: | |||
**'''"up":''' If the bound key triggered a function when the key was released | |||
**'''"down":''' If the bound key triggered a function when the key was pressed | |||
**'''"both":''' If the bound key triggered a function when the key was pressed and released | |||
*'''command :''' (Syntax 1) The command you wish to unbind. | |||
===Optional Arguments=== | ===Optional Arguments=== | ||
*'''keyState:''' | *'''keyState:''' is optional in Syntax 2. | ||
*''' | *'''handler:''' (Syntax 2) The function you wish to unbind. | ||
Note: If you do not specify ''handler'', any instances of ''key'' being bound will be unbound, whatever function they are bound to. | |||
== | ===Returns=== | ||
Returns '''true'' if the key was unbound, ''false'' if it was not previously bound or invalid arguments were passed to the function. | |||
</section> | |||
<section name="Client" class="client" show="true"> | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
bool unbindKey ( string key, string keyState, string command ) | |||
function | </syntaxhighlight> | ||
<syntaxhighlight lang="lua"> | |||
bool unbindKey ( string key [, string keyState, function handler ] ) | |||
</syntaxhighlight> | |||
===Required Arguments=== | |||
*'''key:''' The key you wish to unbind. See [[Key names]] for a list of valid key names. | |||
*'''keyState:''' Can be either: | |||
**'''"up":''' If the bound key triggered a function when the key was released | |||
**'''"down":''' If the bound key triggered a function when the key was pressed | |||
**'''"both":''' If the bound key triggered a function when the key was pressed and released | |||
*'''command :''' (Syntax 1) The command you wish to unbind. | |||
===Optional Arguments=== | |||
*'''keyState:''' is optional in Syntax 2. | |||
*'''handler:''' (Syntax 2) The function you wish to unbind. | |||
Note: If you do not specify ''handler'', any instances of ''key'' being bound will be unbound, whatever function they are bound to. | |||
===Returns=== | |||
Returns '''true'' if the key was unbound, ''false'' if it was not previously bound or invalid arguments were passed to the function. | |||
</section> | |||
==Example== | |||
<section name="Server" class="server" show="true"> | |||
This function binds the player's ''F1'' key to a function ''goMoo'' which outputs a chat message when pressed. The key is then unbound so that it can effectively only be used once per life. | |||
<syntaxhighlight lang="lua"> | |||
-- define the function that will be called when F1 is pressed | |||
function goMoo( player ) | |||
outputChatBox ( getPlayerName ( player ) .. " says Mooooooo!" ) | |||
unbindKey ( player, "F1", "down", goMoo ) -- this function will no longer be triggered by the player, after removing the bind. | |||
end | end | ||
function playerSpawn ( ) | |||
function | bindKey ( source, "F1", "down", goMoo ) -- bind the player's F1 key to the 'goMoo' function defined above | ||
end | end | ||
addEventHandler ( "onPlayerSpawn", root, playerSpawn ) -- make the playerSpawn function be called when a player spawns | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</section> | |||
==See Also== | ==See Also== | ||
{{Input functions}} | {{Input functions}} | ||
[[pt-br:unbindKey]] |
Latest revision as of 17:42, 29 July 2021
Removes an existing key bind from the specified player.
Syntax
Click to collapse [-]
Serverbool unbindKey ( player thePlayer, string key, string keyState, string command )
bool unbindKey ( player thePlayer, string key [, string keyState, function handler ] )
Required Arguments
- thePlayer: The player you wish to unbind the key of.
- key: The key you wish to unbind. See Key names for a list of valid key names.
- keyState: Can be either:
- "up": If the bound key triggered a function when the key was released
- "down": If the bound key triggered a function when the key was pressed
- "both": If the bound key triggered a function when the key was pressed and released
- command : (Syntax 1) The command you wish to unbind.
Optional Arguments
- keyState: is optional in Syntax 2.
- handler: (Syntax 2) The function you wish to unbind.
Note: If you do not specify handler, any instances of key being bound will be unbound, whatever function they are bound to.
Returns
Returns 'true if the key was unbound, false if it was not previously bound or invalid arguments were passed to the function.
Click to collapse [-]
Clientbool unbindKey ( string key, string keyState, string command )
bool unbindKey ( string key [, string keyState, function handler ] )
Required Arguments
- key: The key you wish to unbind. See Key names for a list of valid key names.
- keyState: Can be either:
- "up": If the bound key triggered a function when the key was released
- "down": If the bound key triggered a function when the key was pressed
- "both": If the bound key triggered a function when the key was pressed and released
- command : (Syntax 1) The command you wish to unbind.
Optional Arguments
- keyState: is optional in Syntax 2.
- handler: (Syntax 2) The function you wish to unbind.
Note: If you do not specify handler, any instances of key being bound will be unbound, whatever function they are bound to.
Returns
Returns 'true if the key was unbound, false if it was not previously bound or invalid arguments were passed to the function.
Example
Click to collapse [-]
ServerThis function binds the player's F1 key to a function goMoo which outputs a chat message when pressed. The key is then unbound so that it can effectively only be used once per life.
-- define the function that will be called when F1 is pressed function goMoo( player ) outputChatBox ( getPlayerName ( player ) .. " says Mooooooo!" ) unbindKey ( player, "F1", "down", goMoo ) -- this function will no longer be triggered by the player, after removing the bind. end function playerSpawn ( ) bindKey ( source, "F1", "down", goMoo ) -- bind the player's F1 key to the 'goMoo' function defined above end addEventHandler ( "onPlayerSpawn", root, playerSpawn ) -- make the playerSpawn function be called when a player spawns