SA-MP Forums Archive
[Ajuda] Problema com Variaveis - 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)
+---- Thread: [Ajuda] Problema com Variaveis (/showthread.php?tid=576431)



Problema com Variaveis - Ever_SH - 04.06.2015

Estou criando o comando /ajustar no meu GM, para ajustar o tempo de prisгo, funciona da seguinte forma:
O player jб estб preso e quero adicionar 5 minutos:
/ajustar ID 5

E se eu quiser reduzir 5 minutos:
/ajustar ID -5

O comando estб quase completo, mas to com um problema simples, se o player tiver 4 minutos de prisгo restante, e eu reduzir 5 minutos, quero que de erro, retornando uma mensagem que o player nгo tem todo esse tempo de prisгo, jб tentei de varias formas, vou deixar abaixo somente a parte do comando onde estб o problema.

PHP код:
if(Tempo 0//Fiz isso para verificar se o o tempo digitado й negativo
    
{
        if((
Player[id][Preso] - (Tempo 60)) < 0//Essa foi a ultima forma que tentei comparar o Tempo.
        
{
            
SendClientMessage(playeridCOR_VERMELHO"O Player nгo tem todo esse tempo de prisгo");
            return 
1;
        }
        else 
//A partir daki estб tudo Ok
        
{
            
format(Strsizeof(Str), "O Admin %s Reduziu o Tempo de Prisгo de %s em %d Minutos."NickPlayer(playerid), NickPlayer(id), Tempo * -1);
            
SendClientMessageToAll(COR_VERMELHOStr);
            
SendClientMessage(idCOR_VERMELHO"Seu tempo de prisгo foi reduzido!");
            
Tempo Tempo 60;
            
Player[id][Preso] = Player[id][Preso] + Tempo;
            return 
1;
        }
    } 



Re: Problema com Variaveis - Felipe_Freeze - 04.06.2015

pawn Код:
if(Tempo < 0) //Fiz isso para verificar se o o tempo digitado й negativo
    {
        Tempo = Tempo * 60;
        printf("Tempo: %d", Tempo);
        if((Player[id][Preso] - Tempo) <= 0)
        {
            SendClientMessage(playerid, COR_VERMELHO, "O Player nгo tem todo esse tempo de prisгo");
            return 1;
        }
        else if((Player[id][Preso] - Tempo) > 0)
        {
            format(Str, sizeof(Str), "O Admin %s reduziu Tempo de Prisгo de %s em %d Minutos.", NickPlayer(playerid), NickPlayer(id), Tempo * -1);
            SendClientMessageToAll(COR_VERMELHO, Str);
            SendClientMessage(id, COR_VERMELHO, "Seu tempo de prisгo foi reduzido!");
            Player[id][Preso] = Player[id][Preso] + Tempo;
            return 1;
        }
        else
       {
          SendClientMessage(id, COR_VERMELHO, "Erro P.3");//Sу pra teste
        }
    }
Coloca assim e vк o que acontece, e posta aqui o valor que printou do Printf Tempo e pra qual If foi


Re: Problema com Variaveis - JonathanFeitosa - 04.06.2015

Muito ruim seu estilo de manipular variбveis. Nгo й atoa que nem vocк entende ele. Nesse caso, a melhor forma, й vocк tirando o valor negativo da variбvel para positivo. Ai vocк faz a verificaзгo simplesmente: Tempo < Player[id][Preso], e depois deixa o valor negativo da variбvel novamente para setar o tempo.


Re: Problema com Variaveis - Ever_SH - 04.06.2015

Felipe_Freeze, botei -1 minuto, no printf saiu os -60 certinho, mas nгo funcionou.

JonathanFeitosa, fiz como vocк falou, agora estб funcionando.

Obrigado e +rep para os 2.