[Ajuda] Atualizar Progress Bar.
#1

Bom pessoal, estou com um problema para atualizar a progress bar enquanto o player segura a tecla N.
Exemplo:
PHP код:
        if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        if (
HOLDING(KEY_NO))
        {
              
ShowProgressBarForPlayer(playeridExemplo); 
            
Valor2 [playerid] += 25
               
SetProgressBarValue(ExemploValor2[playerid]);
             
UpdateProgressBar(Exemploplayerid);
             if (
Valor2[playerid] == 100)
             {
                  
HideProgressBarForPlayer(playeridExemplo); 
                  
SetProgressBarValue (Exemplo0) ;
                new 
GetNearestItemID(playerid);
                if(
!= -1)
                {
                    if(
IsPlayerInRangeOfPoint(playerid1.5DropInfo[i][dPosX], DropInfo[i][dPosY], DropInfo[i][dPosZ]))
                    {
                        new 
str[45],
                            
itemid DropInfo[i][DropItemID];
                        
format(strsizeof(str), "{FFFFFF}>> %s"ItemInfo[itemid][Item_Name]);
                        
ShowPlayerDialog(playerid9798DIALOG_STYLE_MSGBOX,"Looting"str"Pegar""Fechar");
                    }
                }
            }
        }
        else if (
RELEASED(KEY_NO))
        
HideProgressBarForPlayer(playeridExemplo);
        
Valor2[playerid] = 0;
    }
    return 
1;

Estб tudo do jeito o certo o problema й que enquanto seguro a tecla N a progress nгo atualiza. Fica apenas em 25%
Reply
#2

Recomendo que utilize GetPVarInt, Exemplo:
PHP код:
SetPVarInt(playerid"Fome"100); 
Tutorial da Wiki:
https://sampwiki.blast.hk/wiki/GetPVarInt
Reply
#3

Quote:
Originally Posted by PowerEvolve
Посмотреть сообщение
Bom pessoal, estou com um problema para atualizar a progress bar enquanto o player segura a tecla N.
Exemplo:
PHP код:
        if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        if (
HOLDING(KEY_NO))
        {
              
ShowProgressBarForPlayer(playeridExemplo); 
            
Valor2 [playerid] += 25
               
SetProgressBarValue(ExemploValor2[playerid]);
             
UpdateProgressBar(Exemploplayerid);
             if (
Valor2[playerid] == 100)
             {
                  
HideProgressBarForPlayer(playeridExemplo); 
                  
SetProgressBarValue (Exemplo0) ;
                new 
GetNearestItemID(playerid);
                if(
!= -1)
                {
                    if(
IsPlayerInRangeOfPoint(playerid1.5DropInfo[i][dPosX], DropInfo[i][dPosY], DropInfo[i][dPosZ]))
                    {
                        new 
str[45],
                            
itemid DropInfo[i][DropItemID];
                        
format(strsizeof(str), "{FFFFFF}>> %s"ItemInfo[itemid][Item_Name]);
                        
ShowPlayerDialog(playerid9798DIALOG_STYLE_MSGBOX,"Looting"str"Pegar""Fechar");
                    }
                }
            }
        }
        else if (
RELEASED(KEY_NO))
        
HideProgressBarForPlayer(playeridExemplo);
        
Valor2[playerid] = 0;
    }
    return 
1;

Estб tudo do jeito o certo o problema й que enquanto seguro a tecla N a progress nгo atualiza. Fica apenas em 25%
Em que callback este code estб inserido?
Reply
#4

Quote:
Originally Posted by JohnBlack
Посмотреть сообщение
Em que callback este code estб inserido?
Se quer ganhar post, procure outro tуpico cara.
Reply
#5

Quote:
Originally Posted by GuiKommander
Посмотреть сообщение
Recomendo que utilize GetPVarInt, Exemplo:
PHP код:
SetPVarInt(playerid"Fome"100); 
Tutorial da Wiki:
https://sampwiki.blast.hk/wiki/GetPVarInt
Nгo recomendo o uso de PVars para scripts desse porte, PVars sгo para comunicar um script com outro fora dele, ou seja, um FS com um gamemode e vice-versa, porйm sгo um pouco mais lentas e sгo apenas para estes casos, no seu caso, aconselharia usar variбveis normais.
Reply
#6

seria bom vocк utilizar um timer pra atualizar as bars
Reply
#7

Bom, vamos lб,
O macro "HOLDING" nгo faz exatamente oque a nomeclatura diz (verificar se o player estб pressionando uma tecla sem soltб-la), explicando de forma mais fбcil, ele faz a mesma coisa que o "PRESSED" mas com algumas mudanзas, caso queira testar, use o cуdigo abaixo e tente segurar o botгo KEY_FIRE, irб mostrar a mensagem apenas uma vez.
Код HTML:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	if(((newkeys & (KEY_FIRE)) == (KEY_FIRE))) // HOLDING MACRO
	{
		SendClientMessage(playerid, -1, "a");
	}
	return 1;
}
O ideal seria um timer, como o amigo acima disse.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)