[Ajuda] Sistema de Combustнvel
#1

Alguйm poderia me dizer por que meu sistema de combustнvel nгo estб pegando ?

PHP код:
stock UpdateGas(vehicleid)
{
    new 
_s[40];
    foreach(
Playerplayerid)
    {
        if(
IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleID(playerid) == vehicleid)
        {
            if(
IsAPlane(GetPlayerVehicleID(playerid)))
            {
                
_s[0] = EOS;
                for(new 
0;Gas[vehicleid]/4g++)
                    
strcat(_s"100%");
                
PlayerTextDrawSetString(playerid,Textaviao9[playerid], _s);
                if(
Gas[vehicleid] <= 0)
                    
PlayerTextDrawSetString(playerid,Textaviao9[playerid], "Sem Gasolina");
                else if(
Gas[vehicleid] <= 10)
                    
PlayerTextDrawSetString(playerid,Textaviao9[playerid], "~y~Reserva");
            }
            else
            {
                
_s[0] = EOS;
                for(new 
0;Gas[vehicleid]/4g++)
                    
strcat(_s"i");
                
PlayerTextDrawSetString(playerid,TextGasolina[playerid], _s);
                if(
Gas[vehicleid] <= 0)
                    
PlayerTextDrawSetString(playerid,TextGasolina[playerid], "Sem Gasolina");
                else if(
Gas[vehicleid] <= 10)
                    
PlayerTextDrawSetString(playerid,TextGasolina[playerid], "~y~Reserva");
            }
        }
    }
    return 
0;

Simplesmente nгo abaixa a gasolina, fica sempre os mesmos quadradinhos, desde jб agradeзo.
Reply
#2

Onde vocк chama essa stock?
Reply
#3

PHP код:
stock UpdateGas(vehicleid)
{
    new 
_s[40];
    foreach(
Playerplayerid)
    {
        if(
IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleID(playerid) == vehicleid)
        {
            if(
Gas[vehicleid] > 0Gas[vehicleid]--; //Verifica se a variavel e maior que 0, se sim seta ela no valor anterior - 1.
            
            
if(IsAPlane(GetPlayerVehicleID(playerid)))
            {
                
_s[0] = EOS//
                
for(new 0;Gas[vehicleid]/4g++) //
                    
strcat(_s"100%"); // Nao entendi a necessidade dessas tres linhas que assinalei
                
PlayerTextDrawSetString(playerid,Textaviao9[playerid], _s);
                if(
Gas[vehicleid] <= 0)
                    
PlayerTextDrawSetString(playerid,Textaviao9[playerid], "Sem Gasolina");
                else if(
Gas[vehicleid] <= 10)
                    
PlayerTextDrawSetString(playerid,Textaviao9[playerid], "~y~Reserva");
            }
            else
            {
                
_s[0] = EOS//
                
for(new 0;Gas[vehicleid]/4g++) //
                    
strcat(_s"i"); // Tanto la, quanto aqui.
                
PlayerTextDrawSetString(playerid,TextGasolina[playerid], _s);
                if(
Gas[vehicleid] <= 0)
                    
PlayerTextDrawSetString(playerid,TextGasolina[playerid], "Sem Gasolina");
                else if(
Gas[vehicleid] <= 10)
                    
PlayerTextDrawSetString(playerid,TextGasolina[playerid], "~y~Reserva");
            }
        }
    }
    return 
0;

Se ajudei, rep++
Reply
#4

Quote:
Originally Posted by MorteAmerica
Посмотреть сообщение
PHP код:
stock UpdateGas(vehicleid)
{
    new 
_s[40];
    foreach(
Playerplayerid)
    {
        if(
IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleID(playerid) == vehicleid)
        {
            if(
Gas[vehicleid] > 0Gas[vehicleid]--; //Verifica se a variavel e maior que 0, se sim seta ela no valor anterior - 1.
            
            
if(IsAPlane(GetPlayerVehicleID(playerid)))
            {
                
_s[0] = EOS//
                
for(new 0;Gas[vehicleid]/4g++) //
                    
strcat(_s"100%"); // Nao entendi a necessidade dessas tres linhas que assinalei
                
PlayerTextDrawSetString(playerid,Textaviao9[playerid], _s);
                if(
Gas[vehicleid] <= 0)
                    
PlayerTextDrawSetString(playerid,Textaviao9[playerid], "Sem Gasolina");
                else if(
Gas[vehicleid] <= 10)
                    
PlayerTextDrawSetString(playerid,Textaviao9[playerid], "~y~Reserva");
            }
            else
            {
                
_s[0] = EOS//
                
for(new 0;Gas[vehicleid]/4g++) //
                    
strcat(_s"i"); // Tanto la, quanto aqui.
                
PlayerTextDrawSetString(playerid,TextGasolina[playerid], _s);
                if(
Gas[vehicleid] <= 0)
                    
PlayerTextDrawSetString(playerid,TextGasolina[playerid], "Sem Gasolina");
                else if(
Gas[vehicleid] <= 10)
                    
PlayerTextDrawSetString(playerid,TextGasolina[playerid], "~y~Reserva");
            }
        }
    }
    return 
0;

Se ajudei, rep++
Certo amigo, mais agora nгo aparece nem " 100 % " ou algum quadradinho mostrando o combustнvel, poderia me ajudar?
Reply
#5

PHP код:
stock UpdateGas(vehicleid)
{
    new 
str[40]; //Nova variavel.
    
for(new 0MAX_PLAYERSi++) //Faz um loop de 0 atй o valor definido em MAX_PLAYERS.
    
{
        if(
IsPlayerConnected(i)) //Verifica se o id estб connectado, se nгo tiver pula tudo que tiver dentro das { chaves }.
        
{
            if(
IsPlayerInAnyVehicle(i) && GetPlayerVehicleID(i) == vehicleid//Verifica se o player estб em um veiculo e se o veiculo que ele estб tem o mesmo id do veiculo cujo foi chamado junto com a stock.
            
{
                if(
Gas[vehicleid] > 0//Verifica se a variavel e maior que 0.
                
{
                    
Gas[vehicleid]--; //Subtrai 1 do valor da variavel.
                    
if(Gas[vehicleid] < 11//Verifica se o valor for menor que 11(de 10 atй depois de 0, se necessario)
                    
{
                        
format(strsizeof(str), "~y~Reserva"); // Formata a variavel.
                    
}
                    else 
//Caso nгo estiver menor que 11.
                    
{
                        
format(strsizeof(str), "%d %%"Gas[vehicleid]); // Formata a variavel.
                    
}
                }
                else 
//Caso o valor nгo for maior que 0.
                
{
                    
format(strsizeof(str), "~r~Sem Combustivel"); //Formata a variavel.
                
}
                
PlayerTextDrawSetString(playerid,Textaviao9[i], str); //Geta o texto da variavel na textdraw.
            
}
        }
    }

Codigo bem basico, feito sem muita frescura. Sу colocar que irб funcionar perfeitamente.
Se foi util, da rep++ irmгo
Reply
#6

Quote:
Originally Posted by MorteAmerica
Посмотреть сообщение
PHP код:
stock UpdateGas(vehicleid)
{
    new 
str[40]; //Nova variavel.
    
for(new 0MAX_PLAYERSi++) //Faz um loop de 0 atй o valor definido em MAX_PLAYERS.
    
{
        if(
IsPlayerConnected(i)) //Verifica se o id estб connectado, se nгo tiver pula tudo que tiver dentro das { chaves }.
        
{
            if(
IsPlayerInAnyVehicle(i) && GetPlayerVehicleID(i) == vehicleid//Verifica se o player estб em um veiculo e se o veiculo que ele estб tem o mesmo id do veiculo cujo foi chamado junto com a stock.
            
{
                if(
Gas[vehicleid] > 0//Verifica se a variavel e maior que 0.
                
{
                    
Gas[vehicleid]--; //Subtrai 1 do valor da variavel.
                    
if(Gas[vehicleid] < 11//Verifica se o valor for menor que 11(de 10 atй depois de 0, se necessario)
                    
{
                        
format(strsizeof(str), "~y~Reserva"); // Formata a variavel.
                    
}
                    else 
//Caso nгo estiver menor que 11.
                    
{
                        
format(strsizeof(str), "%d %%"Gas[vehicleid]); // Formata a variavel.
                    
}
                }
                else 
//Caso o valor nгo for maior que 0.
                
{
                    
format(strsizeof(str), "~r~Sem Combustivel"); //Formata a variavel.
                
}
                
PlayerTextDrawSetString(playerid,Textaviao9[i], str); //Geta o texto da variavel na textdraw.
            
}
        }
    }

Codigo bem basico, feito sem muita frescura. Sу colocar que irб funcionar perfeitamente.
Se foi util, da rep++ irmгo
PHP код:
C:\Users\luizg\Desktop\Brasil PlayLife RPG V2.0a\gamemodes\BPL.pwn(86939) : error 017undefined symbol "playerid" 
Deu esse erro irmгo

E analisando o cуdigo parece que estб aparecendo o gas apenas pra carros e nгo para ambos ( carros e avioes )
Reply
#7

Quote:
Originally Posted by fsDaley
Посмотреть сообщение
PHP код:
C:\Users\luizg\Desktop\Brasil PlayLife RPG V2.0a\gamemodes\BPL.pwn(86939) : error 017undefined symbol "playerid" 
Deu esse erro irmгo

E analisando o cуdigo parece que estб aparecendo o gas apenas pra carros e nгo para ambos ( carros e avioes )
Substitua a palavra "playerid" pela letra "i" nessa linha, ficando assim:
PHP код:
PlayerTextDrawSetString(i,Textaviao9[i], str); //Geta o texto da variavel na textdraw. 
Em relaзгo a nгo estar setando o valor no TextDraw й pelo simples fato de que toda vez que vocк for setar um valor em um TextDraw terб que usar novamente a funзгo para mostrб-lo, como no seu caso й PlayerTextDraw, tu vai usar a funзгo:
PHP код:
PlayerTextDrawShow(playeridTextID[playerid]); 
E nгo esqueзa do "playerid" pelo "i"...
Reply
#8

Quote:
Originally Posted by GuilhermeW
Посмотреть сообщение
Substitua a palavra "playerid" pela letra "i" nessa linha, ficando assim:
PHP код:
PlayerTextDrawSetString(i,Textaviao9[i], str); //Geta o texto da variavel na textdraw. 
Em relaзгo a nгo estar setando o valor no TextDraw й pelo simples fato de que toda vez que vocк for setar um valor em um TextDraw terб que usar novamente a funзгo para mostrб-lo, como no seu caso й PlayerTextDraw, tu vai usar a funзгo:
PHP код:
PlayerTextDrawShow(playeridTextID[playerid]); 
E nгo esqueзa do "playerid" pelo "i"...
Tudo estб arrumado, mais ainda continua nгo mostrando, e jб estб com a playertextdrawshow ativa

PHP код:
TextGasolina[playerid] = CreatePlayerTextDraw(playerid136.500000288.060058" ");
    
PlayerTextDrawLetterSize(playeridTextGasolina[playerid], 0.3194990.820667);
    
PlayerTextDrawAlignment(playeridTextGasolina[playerid], 1);
    
PlayerTextDrawColor(playeridTextGasolina[playerid], -1);
    
PlayerTextDrawSetOutline(playeridTextGasolina[playerid], 1);
    
PlayerTextDrawBackgroundColor(playeridTextGasolina[playerid], 287323647);
    
PlayerTextDrawFont(playeridTextGasolina[playerid], 2);
    
PlayerTextDrawSetProportional(playeridTextGasolina[playerid], 1); 
Esse ai й o text da gasolina, e o drawshow estб encima
Reply
#9

Amigo, o que eu quis dizer foi que, independentemente de ela jб estб sendo mostrada, toda vez que vocк setar um valor nela (PlayerTextDrawSetString), vocк irб ter que mostrб-la de novo, como uma forma de "update", ou seja, a atualizaзгo dela...

Exemplo:
PHP код:
new var = 10//Criei uma variбvel com um determinado valor
new string[128]; //string
format(stringsizeof(string), "Valor: %d", var); //Formatando a string
PlayerTextDrawSetString(playeridTextID[playerid], string); //Imprimindo o valor no TextDraw 
Viu o code acima? Porйm ainda nгo setou o valor na TD por um motivo, essa simples funзгo:
PHP код:
PlayerTextDrawShow(playeridTextID[playerid);
// Й isso daqui que vai fazer que a TextDraw atualize o valor dela... 
Reply
#10

Quote:
Originally Posted by fsDaley
Посмотреть сообщение
PHP код:
C:\Users\luizg\Desktop\Brasil PlayLife RPG V2.0a\gamemodes\BPL.pwn(86939) : error 017undefined symbol "playerid" 
Deu esse erro irmгo

E analisando o cуdigo parece que estб aparecendo o gas apenas pra carros e nгo para ambos ( carros e avioes )
Sobre o erro e so substituir playerid, por i como dito a cima.

Sobre nгo aparecer para aviхes, seria um problema na exibiзгo da textdraw que deve ter uma verificaзгo como IsAPlane
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)