PT-BR/bindKey: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 32: | Line 32: | ||
*'''oJogador:''' O jogador que você vai vincular a tecla. | *'''oJogador:''' O jogador que você vai vincular a tecla. | ||
*'''Tecla:''' A tecla ou controle que você quer vincular ao comando. Veja [[Key_names/PT-BR|nomes de teclas]] para uma lista de possíveis teclas. | *'''Tecla:''' A tecla ou controle que você quer vincular ao comando. Veja [[Key_names/PT-BR|nomes de teclas]] para uma lista de possíveis teclas. | ||
*'''Estado:''' Uma [[string]] que tem um dos seguintes valores: | *'''Estado:''' Uma [[String/PT-BR|string]] que tem um dos seguintes valores: | ||
**'''"up":''' Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada) | **'''"up":''' Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada) | ||
**'''"down":''' Se a tecla vinculada deve acionar a função quando ela é pressionada | **'''"down":''' Se a tecla vinculada deve acionar a função quando ela é pressionada | ||
Line 38: | Line 38: | ||
*'''NomeComando:''' O nome do comando em que a tecla deverá ser vinculada. | *'''NomeComando:''' O nome do comando em que a tecla deverá ser vinculada. | ||
===Argumentos Opcionais=== | ===Argumentos Opcionais=== | ||
*'''Argumentos:''' Argumentos ([[string]]) que serão usados no comando como se estivesse digitando este comando com estes argumentos. Ex.: ''/comando argumento1 argumento2 etc'' | *'''Argumentos:''' Argumentos ([[String/PT-BR|string]]) que serão usados no comando como se estivesse digitando este comando com estes argumentos. Ex.: ''/comando argumento1 argumento2 etc'' | ||
</section> | </section> | ||
}} | }} | ||
Line 47: | Line 47: | ||
===Argumentos Necessários=== | ===Argumentos Necessários=== | ||
*'''Tecla:''' A tecla ou controle que será vinculado à função. Veja [[Key_names/PT-BR|nomes de teclas]] para uma lista de possíveis teclas e [[Control_names/PT-BR|nomes de controles]] para uma lista de possíveis controles. | *'''Tecla:''' A tecla ou controle que será vinculado à função. Veja [[Key_names/PT-BR|nomes de teclas]] para uma lista de possíveis teclas e [[Control_names/PT-BR|nomes de controles]] para uma lista de possíveis controles. | ||
*'''Estado:''' Uma [[string]] que tem um dos seguintes valores: | *'''Estado:''' Uma [[String/PT-BR|string]] que tem um dos seguintes valores: | ||
**'''"up":''' Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada) | **'''"up":''' Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada) | ||
**'''"down":''' Se a tecla vinculada deve acionar a função quando ela é pressionada | **'''"down":''' Se a tecla vinculada deve acionar a função quando ela é pressionada | ||
Line 68: | Line 68: | ||
===Argumentos Necessários=== | ===Argumentos Necessários=== | ||
*'''Tecla:''' A tecla ou controle que será vinculado ao comando. Veja [[Key_names/PT-BR|nomes de teclas]] para uma lista de possíveis teclas. | *'''Tecla:''' A tecla ou controle que será vinculado ao comando. Veja [[Key_names/PT-BR|nomes de teclas]] para uma lista de possíveis teclas. | ||
*'''Estado:''' Um [[string]] que tem um dos seguintes valores: | *'''Estado:''' Um [[String/PT-BR|string]] que tem um dos seguintes valores: | ||
**'''"up":''' Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada) | **'''"up":''' Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada) | ||
**'''"down":''' Se a tecla vinculada deve acionar a função quando ela é pressionada | **'''"down":''' Se a tecla vinculada deve acionar a função quando ela é pressionada | ||
**'''"both":''' Se a tecla vinculada deve acionar a função quando ela é pressionada e liberada | **'''"both":''' Se a tecla vinculada deve acionar a função quando ela é pressionada e liberada | ||
*'''NomeComando:''' Nome do comando em que a tecla será vinculada. | *'''NomeComando:''' Nome do comando em que a tecla será vinculada. | ||
*'''Argumentos:''' Argumentos ([[string]]) que serão usados no comando como se estivesse digitando este comando com estes argumentos. Ex.: ''/comando argumento1 argumento2 etc'' | *'''Argumentos:''' Argumentos ([[String/PT-BR|string]]) que serão usados no comando como se estivesse digitando este comando com estes argumentos. Ex.: ''/comando argumento1 argumento2 etc'' | ||
</section> | </section> | ||
}} | }} |
Revision as of 04:34, 21 May 2020
Esta função vincula uma tecla do jogador para uma função ou comando, que será acionado quando a tecla for pressionada.
Sintaxe
bool bindKey ( player oJogador, string Tecla, string Estado, function Funcao, [ var Argumentos, ... ] )
Argumentos Necessários
- oJogador: O jogador que você quer vincular a tecla.
- Tecla: A tecla ou controle que você quer vincular à função. Veja nomes de teclas para uma lista de possíveis teclas e nomes de controles para uma lista de possíveis controles.
- Estado: Uma string que tem um dos seguintes valores:
- "up": Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada)
- "down": Se a tecla vinculada deve acionar a função quando ela é pressionada
- "both": Se a tecla vinculada deve acionar a função quando ela é pressionada e liberada
- Funcao: A função que vai ser acionada quando a tecla do jogador for pressionada/liberada. Esta função deve ter o seguinte formato(parâmetros):
function functionName ( player Pressionador, string Tecla, string Estado, [ var Argumentos, ... ] )
- Os valores passados para esta função são:
- Pressionador: O jogador que pressionou a tecla
- Tecla: A tecla que foi pressionada
- Estado: O estado da tecla que foi pressionada (down, up ou both)
- Argumentos: Os argumentos opcionais que você especificou quando usou bindKey.
Esta sintaxe alternativa permite você vincular uma tecla à um comando. Isto também vai permitir que os usuários modifiquem os controles em seus menus de configurações. Use em conjunção com addCommandHandler para adicionar o vínculo da tecla (que é um comando) à uma função.
bool bindKey ( player oJogador, string Tecla, string Estado, string NomeComando, [ string Argumentos, ... ] )
Argumentos Necessários
- oJogador: O jogador que você vai vincular a tecla.
- Tecla: A tecla ou controle que você quer vincular ao comando. Veja nomes de teclas para uma lista de possíveis teclas.
- Estado: Uma string que tem um dos seguintes valores:
- "up": Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada)
- "down": Se a tecla vinculada deve acionar a função quando ela é pressionada
- "both": Se a tecla vinculada deve acionar a função quando ela é pressionada e liberada
- NomeComando: O nome do comando em que a tecla deverá ser vinculada.
Argumentos Opcionais
- Argumentos: Argumentos (string) que serão usados no comando como se estivesse digitando este comando com estes argumentos. Ex.: /comando argumento1 argumento2 etc
bool bindKey ( string Tecla, string Estado, function Funcao, [ var Argumentos, ... ] )
Argumentos Necessários
- Tecla: A tecla ou controle que será vinculado à função. Veja nomes de teclas para uma lista de possíveis teclas e nomes de controles para uma lista de possíveis controles.
- Estado: Uma string que tem um dos seguintes valores:
- "up": Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada)
- "down": Se a tecla vinculada deve acionar a função quando ela é pressionada
- "both": Se a tecla vinculada deve acionar a função quando ela é pressionada e liberada
- Funcao: A função que será acionada quando a tecla for pressionada. Esta função deve ter o seguinte formato(parâmetros):
function functionName ( string Tecla, string Estado, [ var Argumetnos, ... ] )
- Os valores passados para esta função são:
- Tecla: A tecla que foi pressionada
- Estado: O estado da tecla que foi pressionada (down, up ou both)
- Argumentos: Os argumentos opcionais que você especificou quando usou bindKey.
Esta sintaxe alternativa permite você vincular uma tecla à um comando. Isto também vai permitir que os usuários modifiquem os controles em seus menus de configurações. Use em conjunção com addCommandHandler para adicionar o vínculo da tecla (que é um comando) à uma função.
bool bindKey ( string Tecla, string Estado, string NomeComando, [ string Argumentos, ...] )
Argumentos Necessários
- Tecla: A tecla ou controle que será vinculado ao comando. Veja nomes de teclas para uma lista de possíveis teclas.
- Estado: Um string que tem um dos seguintes valores:
- "up": Se a tecla vinculada deve acionar a função quando ela é liberada(desapertada)
- "down": Se a tecla vinculada deve acionar a função quando ela é pressionada
- "both": Se a tecla vinculada deve acionar a função quando ela é pressionada e liberada
- NomeComando: Nome do comando em que a tecla será vinculada.
- Argumentos: Argumentos (string) que serão usados no comando como se estivesse digitando este comando com estes argumentos. Ex.: /comando argumento1 argumento2 etc
Argumentos Opcionais
NOTA: Ao usar argumentos opcionais, pode ser necessário fornecer todos os argumentos anteriores ao que você deseja usar. Para obter mais informações sobre argumentos opcionais, consulte Argumentos Opcionais.
- Argumentos: Qualquer argumento que você queira passar para a função quando a tecla for pressionada pelo usuário. Qualquer número de argumentos pode ser especificado, cada um sendo passado para a função designada. Você não pode passar funções.
Retorna
Retorna true se a tecla foi vinculada, senão retorna false.
Exemplos
Exemplo 1
Este exemplo vai vincular a tecla 'F1' do jogador e o controle 'fire' à uma função que mostra no chat alguns status.
function funcInput ( player, key, keyState ) outputChatBox ( getPlayerName ( player) .. " " .. (keyState == "down" and "pressionado" or "liberado") .. " a tecla " .. key .. " !" ) end function bindTheKeys ( player, commandName ) bindKey ( player, "F1", "down", funcInput ) bindKey ( player, "F1", "up", funcInput ) bindKey ( player, "fire", "both", funcInput ) end addCommandHandler ( "bindme", bindTheKeys )
Exemplo 2
Este exemplo vai vincular a tecla 'F1' do jogador e o controle 'fire' à uma função que mostra no chat alguns status, no lado cliente.
function funcInput ( key, keyState ) outputChatBox( "Você " .. (keyState == "down" and "pressionou" or "liberou") .. " a tecla " .. key .. " !" ) end function bindTheKeys ( commandName ) bindKey( "F1", "down", funcInput ) bindKey( "F1", "up", funcInput ) bindKey( "fire", "both", funcInput ) end addCommandHandler ( "bindme", bindTheKeys )
Exemplo 3
Este exemplo diz quão legal é o MTA se o jogador se mover para frente.
function fanFunction() bindKey (source,"forwards","down", function(player,key,state) outputChatBox (getPlayerName (player) .. "#FFFF00 acha o MTA muito legal.",getRootElement(),255,255,0,true) end ) end addEventHandler ("onPlayerLogin",getRootElement(),fanFunction)
Exemplo 4
Este exemplo cria um input personalizado no chatbox e vincula a tecla para os jogadores que estiverem no grupo da ACL Admin quando logam e também quando o resource inicia, e somente quem estiver neste grupo poderá ver a mensagem.
addCommandHandler('AdminChat', function (player, cmd, ...) local conta = getPlayerAccount(player) if isGuestAccount(conta) then return end if not (isObjectInACLGroup('user.'..getAccountName(conta), aclGetGroup('Admin'))) then return end for _, v in ipairs(getElementsByType('player')) do local conta = getPlayerAccount(v) if not isGuestAccount(conta) then if (isObjectInACLGroup('user.'..getAccountName(conta), aclGetGroup('Admin'))) then outputChatBox('#FFFFFF[Chat Admin] '..getPlayerName(player)..'#FFFFFF: '..tostring(table.concat(arg, " ")), v, 0, 0, 0, true) end end end end ) addEventHandler('onResourceStart', resourceRoot, function () for i, v in ipairs(getElementsByType('player')) do local conta = getPlayerAccount(v) if not isGuestAccount(conta) then if (isObjectInACLGroup('user.'..getAccountName(conta), aclGetGroup('Admin'))) then bindKey(v, 'U', 'down', 'chatbox', 'AdminChat') end end end end ) addEventHandler('onPlayerLogin', root, function (_, acc) if (isObjectInACLGroup('user.'..getAccountName(acc), aclGetGroup('Admin'))) then bindKey(source, 'U', 'down', 'chatbox', 'AdminChat') end end )
Agradecimento ao Developer(nick na imagem) por ter testado o código*
Veja também
- addCommandHandler
- bindKey
- executeCommandHandler
- getCommandHandlers
- getFunctionsBoundToKey
- getKeyBoundToFunction
- isControlEnabled
- removeCommandHandler
- toggleAllControls
- toggleControl
- unbindKey