03/12/2023 19:29
Você pode pegar alguns macros que a própria equipe do SA-MP fez para deixar seu código mais limpo.
Basicamente tudo isso você pode ler nas documentações que o nosso amigo White_Blue deixou acima também.
Código PHP:
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
/*
- Detecta a tecla é pressionada
if (PRESSED( KEY_FIRE ))
{
}
*/
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
/*
- Detecta se tecla é mantida pressionada (segurando)
if (HOLDING( KEY_FIRE ))
{
}
*/
#define PRESSING(%0,%1) \
(%0 & (%1))
/*
- Detecta se o jogador está pressionando uma tecla atualmente
if (PRESSING( newkeys, KEY_FIRE | KEY_CROUCH ))
{
}
*/
#define RELEASED(%0) \
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
/*
- Detecta se uma tecla parou se pressionada
if (RELEASED( KEY_FIRE ))
{
}
*/
/*
Você pode fazer múltiplas verificações usandos os macros acima, exemplos:
if (HOLDING( KEY_FIRE | KEY_CROUCH ))
if (PRESSED( KEY_FIRE | KEY_CROUCH ))
if (PRESSING( newkeys, KEY_FIRE | KEY_CROUCH ))
if (RELEASED( KEY_FIRE | KEY_CROUCH ))
*/
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_SECONDARY_FIRE))
{
// Tecla F pressionada
}
return 1;
}
Basicamente tudo isso você pode ler nas documentações que o nosso amigo White_Blue deixou acima também.