[Ajuda] OnPlayerKeyStateChange
#1

PHP код:
#define PRESSED(%0) \
    
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define HOLDING(%0) \
    
((newkeys & (%0)) == (%0))
#define RELEASED(%0) \
    
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
new 
tempo[3];
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    new 
str[100];
    if(
PRESSED(KEY_YES))
    {
        
tempo[0]++;
        
format(str,100,"PRESSED KEY_YES a %d",tempo[0]);
        
SendClientMessage(playerid, -1str);
    }
    if(
HOLDING(KEY_YES))
    {
        
tempo[1]++;
        
format(str,100,"HOLDING KEY_YES a %d",tempo[1]);
        
SendClientMessage(playerid, -1str);
    }
    if(
RELEASED(KEY_YES))
    {
        
tempo[2]++;
        
format(str,100,"RELEASED KEY_YES a %d",tempo[2]);
        
SendClientMessage(playerid, -1str);
    }
    return 
1;

Eu fiz este pequeno Debug, porйm o metodo que eu precisava nгo veio a funcionar.
enquanto a tecla estiver pressionada eu gostaria que acrecentasse a variavel, porйm ela ativa se so tocar na tecla... e caso o player segure ela nгo continua acrecentando a variavel so caso solte e reaperte
Reply
#2

tenta ai :

PHP код:
    if ((newkeys KEY_YES) && !(oldkeys KEY_YES))
    {
        
tempo[0]++;
        
format(str,100,"PRESSED KEY_YES a %d",tempo[0]);
        
SendClientMessage(playerid, -1str);
    } 
Reply
#3

Quote:
Originally Posted by adailtongamer
Посмотреть сообщение
tenta ai :

PHP код:
    if ((newkeys KEY_YES) && !(oldkeys KEY_YES))
    {
        
tempo[0]++;
        
format(str,100,"PRESSED KEY_YES a %d",tempo[0]);
        
SendClientMessage(playerid, -1str);
    } 
Й a msm coisa mais vlw .-.

Eu fiz algo como isto, e funcionou porйm quando o player segura a tecla e outra junta como KEY_SPRINT, nгo adiciona o valor na variavel
PHP код:
public OnGameModeInit()
{
    
SetTimer("Opa"10001);
    return 
1;
}
new var;
forward Opa();
public 
Opa()
{
    new 
Key[3];
    
GetPlayerKeys(0Key[0], Key[1], Key[2]);
    if(
Key[0] == KEY_FIRE)
    {
        var ++;
        new 
str[120];
        
format(str,120,"KEY_FIRE %d",var);
        
SendClientMessage(0, -1str);
    }
}
#define RELEASED(%0) \
    
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if(
RELEASED(KEY_FIRE))
    {
        if(var)
        {
            new 
str[120];
            
format(str,120,"KEY_FIRE parou de apertar %d",var);
            
SendClientMessage(0, -1str);
            var = 
0;
        }
    }
    return 
1;

Reply
#4

So postando pra avisar que resolvi de acordo com este post do kalcor
http://forum.sa-mp.com/showpost.php?...55&postcount=5
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)