[Tutorial] Tutorial sobre OnPlayerKeyStateChange
#1

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
Reply
#2

Aeee!! valeu mano
Reply
#3

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.
Reply
#4

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

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.
Reply
#6

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

bom tutorial!.
Reply
#8

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


Forum Jump:


Users browsing this thread: 2 Guest(s)