SA-MP Forums Archive
[Tutorial] Tutorial sobre OnPlayerKeyStateChange - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tutorial] Tutorial sobre OnPlayerKeyStateChange (/showthread.php?tid=257076)



Tutorial sobre OnPlayerKeyStateChange - deregudegu - 23.05.2011

Tutorial sobre OnPlayerKeyStateChange
Olб pessoal, estou de volta aqui para ajudar com o OnPlayerKeyStateChange.
Bom, primeiro vocк tem que saber para o que ela serve, basicamente essa funзгo й chamada assim que o Player troca de tecla.

Como assim?
Por exemplo, vocк estб correndo usando o W ai vocк vai virar para a direita e usa o D, assim vocк acaba de chamar esse funзгo.
Simples, nгo?
Agora vamos aos testes preticos, mas antes uma OBs.: Todos os exemplos foram tirados do SA-MP Wiki.

Exemplos:
pawn Код:
#define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
// /\ define o PRESSED :D

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(PRESSED(KEY_FIRE))//se precionar a KEY_FIRE
    {
        if (IsPlayerInAnyVehicle(playerid)) //se estiver num veiculo
        {
            AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); //adiciona nitro :D
        }
    }
    return 1;
}
Na funзгo acima quando o player clicar no botгo direito do mouse e estiver dentro de um carro, serб adicionado nitro.

pawn Код:
#define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
// /\ define o PRESSED :D

new Float:gPlayerHealth[MAX_PLAYERS]; //define esse float como global para a vida
 
#define INFINITY (Float:0x7F800000) //define a vida infinita
 
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(PRESSED(KEY_CROUCH)) //se precionar o H
    {
        GetPlayerHealth(playerid, gPlayerHealth[playerid]); //pega a vida
        SetPlayerHealth(playerid, INFINITY); //seta a vida infinita
    }
    else if(RELEASED(KEY_CROUCH)) //se precionar o H
    {
        SetPlayerHealth(playerid, gPlayerHealth[playerid]);//seta a vida ao normal :D
    }
    return 1;
}
Na funзгo acima quando o player apertar o botгo que busina vai setar a vida infinita e quando apertar de novo a vida voltarб ao normal.


Agradecimentos
Eu - Por ter feito o tutorial
Pessoal do SA-MP Wiki - Pelos exemplos e por ajudar muito os scripters

Se precisar estudar mais acesse:
https://sampwiki.blast.hk/wiki/OnPlayerKeyStateChange
https://sampwiki.blast.hk/wiki/GetPlayerKeys

Obrigado


Re: Tutorial sobre OnPlayerKeyStateChange - lucas24101 - 24.05.2011

Aeee!! valeu mano


Re: Tutorial sobre OnPlayerKeyStateChange - Josma_cmd - 24.05.2011

Tб mais pra uma explicaзгo, mas parabйns pelo tutorial.
Poderia editar colocando a lista de keys, e explocando pra que serve o newkeys & oldkeys mas enfim... Bom tutorial.


Re: Tutorial sobre OnPlayerKeyStateChange - Chefгo - 24.05.2011

nгo gostei.
isso aki ta parecendo codigo util!
poe a lista de todas as key e esplica oq й newkeys e oldkeys


Re: Tutorial sobre OnPlayerKeyStateChange - DartakousLien - 24.05.2011

Quote:
Originally Posted by Josma_cmd
Посмотреть сообщение
Tб mais pra uma explicaзгo, mas parabйns pelo tutorial.
Poderia editar colocando a lista de keys, e explocando pra que serve o newkeys & oldkeys mas enfim... Bom tutorial.
Quote:
Originally Posted by Chefгo
Посмотреть сообщение
nгo gostei.
isso aki ta parecendo codigo util!
poe a lista de todas as key e esplica oq й newkeys e oldkeys
pode fazer melhor, estб bem, mas explique mais.


Re: Tutorial sobre OnPlayerKeyStateChange - yiakin - 24.05.2011

Boa explicaзгo, ainda mais pra quem comeзou a "codar" agora, bela iniciativa...


Re: Tutorial sobre OnPlayerKeyStateChange - TheGarfield - 24.05.2011

bom tutorial!.


Re: Tutorial sobre OnPlayerKeyStateChange - deregudegu - 25.05.2011

Em breve mais tutoriais!
Quero fazer parte do SAMP Wiki *-*