UnbindKey: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
(Added note about annoying bug that causes an hour lost debugging.) |
||
(13 intermediate revisions by 8 users not shown) | |||
Line 2: | Line 2: | ||
{{Server client function}} | {{Server client function}} | ||
Removes an existing key bind from the specified player. | Removes an existing key bind from the specified player. | ||
{{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== | ||
<section name="Server" class="server" show="true"> | <section name="Server" class="server" show="true"> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
bool unbindKey ( player thePlayer, string key, [ string keyState, function handler ] ) | 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> | </syntaxhighlight> | ||
Line 12: | Line 17: | ||
*'''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. See [[Key names]] for a list of valid key names. | *'''key:''' The key you wish to unbind. See [[Key names]] for a list of valid key names. | ||
*'''keyState:''' Can be either: | *'''keyState:''' Can be either: | ||
**'''"up":''' If the bound key triggered a function when the key was released | **'''"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 | **'''"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 | **'''"both":''' If the bound key triggered a function when the key was pressed and released | ||
*'''handler:''' The function you wish to unbind. | *'''command :''' (Syntax 1) The command you wish to unbind. | ||
Note: If you do not specify | |||
===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=== | ||
Line 26: | Line 33: | ||
<section name="Client" class="client" show="true"> | <section name="Client" class="client" show="true"> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
bool unbindKey ( string key, [ string keyState, function handler ] ) | bool unbindKey ( string key, string keyState, string command ) | ||
</syntaxhighlight> | |||
<syntaxhighlight lang="lua"> | |||
bool unbindKey ( string key [, string keyState, function handler ] ) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
===Required Arguments=== | ===Required Arguments=== | ||
*'''key:''' The key you wish to unbind. See [[Key names]] for a list of valid key names. | *'''key:''' The key you wish to unbind. See [[Key names]] for a list of valid key names. | ||
*'''keyState:''' Can be either: | *'''keyState:''' Can be either: | ||
**'''"up":''' If the bound key triggered a function when the key was released | **'''"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 | **'''"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 | **'''"both":''' If the bound key triggered a function when the key was pressed and released | ||
*'''handler:''' The function you wish to unbind. | *'''command :''' (Syntax 1) The command you wish to unbind. | ||
Note: If you do not specify | |||
===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=== | ||
Line 49: | Line 61: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
-- define the function that will be called when F1 is pressed | -- define the function that will be called when F1 is pressed | ||
function goMoo( | function goMoo( player ) | ||
outputChatBox ( getPlayerName ( | outputChatBox ( getPlayerName ( player ) .. " says Mooooooo!" ) | ||
unbindKey ( | unbindKey ( player, "F1", "down", goMoo ) -- this function will no longer be triggered by the player, after removing the bind. | ||
end | end | ||
function playerSpawn ( ) | function playerSpawn ( ) | ||
bindKey ( source, "F1", "down | bindKey ( source, "F1", "down", goMoo ) -- bind the player's F1 key to the 'goMoo' function defined above | ||
end | end | ||
addEventHandler ( "onPlayerSpawn", | addEventHandler ( "onPlayerSpawn", root, playerSpawn ) -- make the playerSpawn function be called when a player spawns | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</section> | </section> | ||
Line 63: | Line 75: | ||
==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