Portal SAMP
[Ajuda] Como detectar teclas - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Como detectar teclas (/showthread.php?tid=2615)



Como detectar teclas - uyk - 31/07/2022

Quero saber como posso fazer para detectar a utilização de uma tecla?


RE: Como detectar - White_Blue - 31/07/2022

Código PHP:
public OnPlayerKeyStateChange(playeridnewkeysoldkeys) {
 if(
newkeys == KEY_SECONDARY_ATTACK) { // Se o player apertar a tecla 'F'
 
SendClientMessage(playerid, -1"Você apertou 'F'!");
 }
 return 
1;

Assim dá pra detectar se o player apertou uma tecla, e você também pode adicionar teclas além das nativas definindo o valor(BIN) delas.


RE: Como detectar - uyk - 31/07/2022

é possível nativamente fazer isto com a tecla T? Procurei na lista de teclas e não encontrei


RE: Como detectar - White_Blue - 31/07/2022

(31/07/2022 15:34)uyk Escreveu: é possível nativamente fazer isto com a tecla T? Procurei na lista de teclas e não encontrei


Não nativamente, mas há como você utilizar Virtual Keys(VK).


RE: Como detectar - uyk - 31/07/2022

Desculpe-me a ignorância, mas como posso fazer isso?


RE: Como detectar - DM110 - 31/07/2022

https://github.com/CyberMor/sampvoice

Tente usar essa include Atraves das funcoes SvAddKey
EXEMPLO:

Código PHP:
public OnPlayerConnect(playerid)
{
    
SvAddKey(playerid0x54);//T
}
public 
SV_VOID:OnPlayerActivationKeyPress(SV_UINT:playeridSV_UINT:keyid)
{
    if(keyid == 0x54 )
    {
        SendClientMessage(playerid, -1"Você apertou 'T'!");
    }




RE: Como detectar - Dr Editor - 01/08/2022

(31/07/2022 16:40)DM110 Escreveu: https://github.com/CyberMor/sampvoice

Tente usar essa include Atraves das funcoes SvAddKey
EXEMPLO:

Código PHP:
public OnPlayerConnect(playerid)
{
    SvAddKey(playerid0x54);//T
}
public 
SV_VOID:OnPlayerActivationKeyPress(SV_UINT:playeridSV_UINT:keyid)
{
    if(keyid == 0x54 )
    {
        SendClientMessage(playerid, -1"Você apertou 'T'!");
    }


O mesmo criador criou um plugin exatamente para este propósito, no entanto vale ressaltar que assim como o sevidor, o cliente precisa possuir os arquivos desta biblioteca.