[Ajuda] Nгo tб salvando sistema de gasolina
#1

Pq serб nгo Salva? Quando eu desligo o server fica setado mais quando eu logo eu vou na pasta ta Gasolina = 0, e quando eu seto gasolina pra mim Nгo vai ficando negativo no /Litros. tipo quando perde 1 й pra mostrar que perdeu 1 kkk.
PHP код:
#include <a_samp>
#include <DOF2>
#include <sscanf2>
#include <streamer>
#include <zcmd>
enum PlayerGasolina
{
    
Gasolina
}
new 
pGasolina[MAX_PLAYERS][PlayerGasolina];
new 
MostrarLitros[256];
public 
OnPlayerConnect(playerid)
{
    if(!
DOF2_FileExists(GasolinaPlayer(playerid)))
    {
        
SendClientMessage(playerid, -1"| INFO | Vocк nгo й registrado, mais jб se registrou");
        
DOF2_CreateFile(GasolinaPlayer(playerid));
        
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"100);
    }
    else
    {
        
format(MostrarLitrossizeof(MostrarLitros), "| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
        
SendClientMessage(playerid, -1MostrarLitros);
        return 
1;
    }
    
CarregarGasolina(playerid);
    return 
1;
}
forward ContarGasolina(playerid);
public 
ContarGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] --;
    
SendClientMessage(playerid, -1"| INFO | Estб Comeзando a contar os gastos da Gasolina.");
    return 
1;
}
forward NaoContarGasolina(playerid);
public 
NaoContarGasolina(playerid)
{
    
SendClientMessage(playerid, -1"| ERRO | Vocк saiu do Veнculo e parou de contar a gasolina.");
    
SetTimer("ContarGasosa"1000false);
    return 
1;
}
public 
OnFilterScriptExit()
{
    for(new 
iMAX_PLAYERSi++)
    {
    
SalvarGasolina(i);
    
DOF2_Exit();
    }
    return 
1;
}
public 
OnPlayerStateChangeplayeridnewstateoldstate )
{
    if(
newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
      
SetTimer("ContarGasosa"1000true);
      
SendClientMessage(playerid, -1"| INFO | Contar Gasolina On!");
    }
    else
    {
      
SetTimer("NContarGasolina"1000false);
      
SendClientMessage(playerid, -1"| INFO | Parar de Contar Gasolina On");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
SalvarGasolina(playerid);
    return 
1;
}
public 
OnPlayerUpdate(playerid)
{
    
SetTimer("UpdateGasolina"5000true);
    return 
1;
}
forward UpdateGasolina(playerid);
public 
UpdateGasolina(playerid)
{
       
SalvarGasolina(playerid);
    return 
1;
}
stock SalvarGasolina(playerid)
{
    
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
    
DOF2_SaveFile();
    return 
1;
}
stock CarregarGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] = DOF2_GetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
    
pGasolina[playerid][Gasolina] = pGasolina[playerid][Gasolina];
    return 
1;
}
stock GasolinaPlayer(playerid)
{
    new 
gasolina[44], nome[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnome44);
    
format(gasolina44"Gasolina/%s.ini"nome);
    return 
gasolina;
}
CMD:litros(playeridparams[])
{
    new 
litros[256];
    
format(litrossizeof(litros), "| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
    
SendClientMessage(playerid, -1litros);
    return 
1;
}
CMD:abastecer(playeridparams[])
{
    new 
gasolinastg[256], veiculo;
    if(
sscanf(params"d"gasolina)) return SendClientMessage(playerid, -1"/Abastecer [litros]");
    if(
IsPlayerInVehicle(playeridveiculo)) return SendClientMessage(playerid, -1"| ERRO | Vocк nгo estб em um Veнculo");
    
pGasolina[playerid][Gasolina] = gasolina;
    
format(stgsizeof(stg), "| INFO | Vocк abasteceu %d de Litros!"gasolina);
    
SendClientMessage(playerid, -1stg);
    return 
1;

Reply
#2

PHP код:
#include <a_samp>
#include <dof2>
#include <sscanf2>
#include <Pawn.CMD>
enum PlayerGasolina
{
    
Gasolina
}
new 
pGasolina[MAX_PLAYERS][PlayerGasolina];
new 
gstring[256];
new 
gasolinaa;
//-----------------------------------------------------------------------
#define DiretorioGasolina "Gasolina/%s.ini"
#define fuction
#define mensagem(%0,%1,%2) format(gstring, sizeof(gstring),%1,%2), SendClientMessageToAll(%0, gstring)
#define mensagemp(%0,%1,%2,%3) format(gstring, sizeof(gstring),%2,%3), SendClientMessage(%0,%1, gstring)
#define publico%0(%1) forward %0(%1); public %0(%1)
//------------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
    if(!
DOF2_FileExists(GasolinaPlayer(playerid)))
    {
        
SendClientMessage(playerid, -1"| INFO | Vocк nгo й registrado, mais jб se registrou");
        
DOF2_CreateFile(GasolinaPlayer(playerid));
        
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"100);
    }
    else
    {
        
SetTimerEx("SalvarGasolina",5000,true,"d",playerid);
        
pGasolina[playerid][Gasolina] = DOF2_GetInt(GasolinaPlayer(playerid), "Gasolina");
        
mensagemp(playerid,-1,"| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
        return 
1;
    }
    
CarregarGasolina(playerid);
    return 
1;
}
publico ContarGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] --;
    
//SendClientMessage(playerid, -1, "| INFO | Estб Comeзando a contar os gastos da Gasolina.");
    
return 1;
}
public 
OnFilterScriptExit()
{
    
// for(new i = 0; i < MAX_PLAYERS; ++i) if(IsPlayerConnected(i)) SalvarGasolina(i); Isso nгo funciona
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerStateChangeplayeridnewstateoldstate )
{
    if(
newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
        
gasolinaa SetTimerEx("ContarGasolina",20000,true,"d",playerid);
        
SendClientMessage(playerid, -1"| INFO | Contar Gasolina On!");
    }
    else
    {
        
KillTimer(gasolinaa);
        
SendClientMessage(playerid, -1"| INFO | Parar de Contar Gasolina On");
        
SendClientMessage(playerid, -1"| ERRO | Vocк saiu do Veнculo e parou de contar a gasolina.");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason) return SalvarGasolina(playerid);
public 
OnPlayerUpdate(playerid) return 1;
publico SalvarGasolina(playerid)
{
    
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
    
DOF2_SaveFile();
    return 
1;
}
fuction CarregarGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] = DOF2_GetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
    
pGasolina[playerid][Gasolina] = pGasolina[playerid][Gasolina];
    return 
1;
}
fuction GasolinaPlayer(playerid)
{
    static 
nome[MAX_PLAYER_NAME],bug[35];
    
GetPlayerName(playeridnome44);
    
format(bugsizeof(bug), DiretorioGasolinanome);
    return 
bug;
}
CMD:litros(playeridparams[])
{
    
mensagemp(playerid,-1,"| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
    return 
1;
}
CMD:abastecer(playeridparams[])
{
    new 
gasolina;
    if(
sscanf(params"d"gasolina)) return SendClientMessage(playerid, -1"/Abastecer [litros]");
    if(!
IsPlayerInVehicle(playeridGetPlayerVehicleID(playerid))) return SendClientMessage(playerid, -1"| ERRO | Vocк nгo estб em um Veнculo");
    if(
gasolina 100 || gasolina 0) return SendClientMessage(playerid, -1,"XXX");
    
pGasolina[playerid][Gasolina] =gasolina;
    
mensagemp(playerid,-1,"| INFO | Vocк abasteceu %d de Litros!"gasolina);
    return 
1;

Reply
#3

Quote:
Originally Posted by Marllun
Посмотреть сообщение
PHP код:
#include <a_samp>
#include <dof2>
#include <sscanf2>
#include <Pawn.CMD>
enum PlayerGasolina
{
    
Gasolina
}
new 
pGasolina[MAX_PLAYERS][PlayerGasolina];
new 
gstring[256];
new 
gasolinaa;
//-----------------------------------------------------------------------
#define DiretorioGasolina "Gasolina/%s.ini"
#define fuction
#define mensagem(%0,%1,%2) format(gstring, sizeof(gstring),%1,%2), SendClientMessageToAll(%0, gstring)
#define mensagemp(%0,%1,%2,%3) format(gstring, sizeof(gstring),%2,%3), SendClientMessage(%0,%1, gstring)
#define publico%0(%1) forward %0(%1); public %0(%1)
//------------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
    if(!
DOF2_FileExists(GasolinaPlayer(playerid)))
    {
        
SendClientMessage(playerid, -1"| INFO | Vocк nгo й registrado, mais jб se registrou");
        
DOF2_CreateFile(GasolinaPlayer(playerid));
        
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"100);
    }
    else
    {
        
SetTimerEx("SalvarGasolina",5000,true,"d",playerid);
        
pGasolina[playerid][Gasolina] = DOF2_GetInt(GasolinaPlayer(playerid), "Gasolina");
        
mensagemp(playerid,-1,"| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
        return 
1;
    }
    
CarregarGasolina(playerid);
    return 
1;
}
publico ContarGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] --;
    
//SendClientMessage(playerid, -1, "| INFO | Estб Comeзando a contar os gastos da Gasolina.");
    
return 1;
}
public 
OnFilterScriptExit()
{
    
// for(new i = 0; i < MAX_PLAYERS; ++i) if(IsPlayerConnected(i)) SalvarGasolina(i); Isso nгo funciona
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerStateChangeplayeridnewstateoldstate )
{
    if(
newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
        
gasolinaa SetTimerEx("ContarGasolina",20000,true,"d",playerid);
        
SendClientMessage(playerid, -1"| INFO | Contar Gasolina On!");
    }
    else
    {
        
KillTimer(gasolinaa);
        
SendClientMessage(playerid, -1"| INFO | Parar de Contar Gasolina On");
        
SendClientMessage(playerid, -1"| ERRO | Vocк saiu do Veнculo e parou de contar a gasolina.");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason) return SalvarGasolina(playerid);
public 
OnPlayerUpdate(playerid) return 1;
publico SalvarGasolina(playerid)
{
    
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
    
DOF2_SaveFile();
    return 
1;
}
fuction CarregarGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] = DOF2_GetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
    
pGasolina[playerid][Gasolina] = pGasolina[playerid][Gasolina];
    return 
1;
}
fuction GasolinaPlayer(playerid)
{
    static 
nome[MAX_PLAYER_NAME],bug[35];
    
GetPlayerName(playeridnome44);
    
format(bugsizeof(bug), DiretorioGasolinanome);
    return 
bug;
}
CMD:litros(playeridparams[])
{
    
mensagemp(playerid,-1,"| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
    return 
1;
}
CMD:abastecer(playeridparams[])
{
    new 
gasolina;
    if(
sscanf(params"d"gasolina)) return SendClientMessage(playerid, -1"/Abastecer [litros]");
    if(!
IsPlayerInVehicle(playeridGetPlayerVehicleID(playerid))) return SendClientMessage(playerid, -1"| ERRO | Vocк nгo estб em um Veнculo");
    if(
gasolina 100 || gasolina 0) return SendClientMessage(playerid, -1,"XXX");
    
pGasolina[playerid][Gasolina] =gasolina;
    
mensagemp(playerid,-1,"| INFO | Vocк abasteceu %d de Litros!"gasolina);
    return 
1;

Tб contando o Litro nos /Litros..
Mais ainda nгo tб salvando. kkkk
Reply
#4

Quote:
Originally Posted by GuiKommander
Посмотреть сообщение
Pq serб nгo Salva? Quando eu desligo o server fica setado mais quando eu logo eu vou na pasta ta Gasolina = 0, e quando eu seto gasolina pra mim Nгo vai ficando negativo no /Litros. tipo quando perde 1 й pra mostrar que perdeu 1 kkk.
PHP код:
#include <a_samp>
#include <DOF2>
#include <sscanf2>
#include <streamer>
#include <zcmd>
enum PlayerGasolina
{
    
Gasolina
}
new 
pGasolina[MAX_PLAYERS][PlayerGasolina];
new 
MostrarLitros[256];
public 
OnPlayerConnect(playerid)
{
    if(!
DOF2_FileExists(GasolinaPlayer(playerid)))
    {
        
SendClientMessage(playerid, -1"| INFO | Vocк nгo й registrado, mais jб se registrou");
        
DOF2_CreateFile(GasolinaPlayer(playerid));
        
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"100);
    }
    else
    {
        
format(MostrarLitrossizeof(MostrarLitros), "| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
        
SendClientMessage(playerid, -1MostrarLitros);
        return 
1;
    }
    
CarregarGasolina(playerid);
    return 
1;
}
forward ContarGasolina(playerid);
public 
ContarGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] --;
    
SendClientMessage(playerid, -1"| INFO | Estб Comeзando a contar os gastos da Gasolina.");
    return 
1;
}
forward NaoContarGasolina(playerid);
public 
NaoContarGasolina(playerid)
{
    
SendClientMessage(playerid, -1"| ERRO | Vocк saiu do Veнculo e parou de contar a gasolina.");
    
SetTimer("ContarGasosa"1000false);
    return 
1;
}
public 
OnFilterScriptExit()
{
    for(new 
iMAX_PLAYERSi++)
    {
    
SalvarGasolina(i);
    
DOF2_Exit();
    }
    return 
1;
}
public 
OnPlayerStateChangeplayeridnewstateoldstate )
{
    if(
newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
      
SetTimer("ContarGasosa"1000true);
      
SendClientMessage(playerid, -1"| INFO | Contar Gasolina On!");
    }
    else
    {
      
SetTimer("NContarGasolina"1000false);
      
SendClientMessage(playerid, -1"| INFO | Parar de Contar Gasolina On");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
SalvarGasolina(playerid);
    return 
1;
}
public 
OnPlayerUpdate(playerid)
{
    
SetTimer("UpdateGasolina"5000true);
    return 
1;
}
forward UpdateGasolina(playerid);
public 
UpdateGasolina(playerid)
{
       
SalvarGasolina(playerid);
    return 
1;
}
stock SalvarGasolina(playerid)
{
    
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
    
DOF2_SaveFile();
    return 
1;
}
stock CarregarGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] = DOF2_GetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
    
pGasolina[playerid][Gasolina] = pGasolina[playerid][Gasolina];
    return 
1;
}
stock GasolinaPlayer(playerid)
{
    new 
gasolina[44], nome[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnome44);
    
format(gasolina44"Gasolina/%s.ini"nome);
    return 
gasolina;
}
CMD:litros(playeridparams[])
{
    new 
litros[256];
    
format(litrossizeof(litros), "| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
    
SendClientMessage(playerid, -1litros);
    return 
1;
}
CMD:abastecer(playeridparams[])
{
    new 
gasolinastg[256], veiculo;
    if(
sscanf(params"d"gasolina)) return SendClientMessage(playerid, -1"/Abastecer [litros]");
    if(
IsPlayerInVehicle(playeridveiculo)) return SendClientMessage(playerid, -1"| ERRO | Vocк nгo estб em um Veнculo");
    
pGasolina[playerid][Gasolina] = gasolina;
    
format(stgsizeof(stg), "| INFO | Vocк abasteceu %d de Litros!"gasolina);
    
SendClientMessage(playerid, -1stg);
    return 
1;

Moзo, minha dica para vocк й comeзar tudo de novo... Esse cуdigo TБ CHEIO de bugs. E eu estou tentando entender porque vocк tб guardando o tanto de gasolina no ID do jogador em vez de ser no ID do veнculo... Fica parecendo que quando uma pessoa sai do veнculo, ela carrega toda a gasolina dele e quando vai usar outro veнculo, esvazia o tanque todo e coloca a gasolina que estava carregando.

Preste atenзгo:

1. Nos SetTimer vocк estб chamando "ChamarGasosa", mas...
PHP код:
forward ContarGasolina(playerid); 
2. Se й algo particular para cada jogador, o ideal seria usar SetTimerEx ou, ao menos, fazer umas manipulaзхes para poder usar o SetTimer. Da forma que estб, irб bugar.

3. Considerando que o SetTimer estб com a repetiзгo ativa (true) e que estб se repetindo a cada 1 segundo, irб floodar na tela do jogador essa mensagem:
PHP код:
SendClientMessage(playerid, -1"| INFO | Estб Comeзando a contar os gastos da Gasolina."); 
4. Isso aqui nгo funciona:
PHP код:
public NaoContarGasolina(playerid)
{
    
SendClientMessage(playerid, -1"| ERRO | Vocк saiu do Veнculo e parou de contar a gasolina.");
    
SetTimer("ContarGasosa"1000false);
    return 
1;

Colocar false no SetTimer, vai fazer com que ele execute apenas uma vez. Isso nгo й usado para fazer o Timer parar. Para interromper um Timer em repetiзгo use: KillTimer

5. Migo, o que й isso??
PHP код:
stock CarregarGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] = DOF2_GetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
    
pGasolina[playerid][Gasolina] = pGasolina[playerid][Gasolina];
    return 
1;

Isso nгo faz sentido algum!


6. Nгo tem necessidade de usar params aqui:

PHP код:
CMD:litros(playeridparams[])
{
    new 
litros[256];
    
format(litrossizeof(litros), "| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
    
SendClientMessage(playerid, -1litros);
    return 
1;

7. Esse comando estб errado tambйm:

PHP код:
CMD:abastecer(playeridparams[])
{
    new 
gasolinastg[256], veiculo;
    if(
sscanf(params"d"gasolina)) return SendClientMessage(playerid, -1"/Abastecer [litros]");
    if(
IsPlayerInVehicle(playeridveiculo)) return SendClientMessage(playerid, -1"| ERRO | Vocк nгo estб em um Veнculo");
    
pGasolina[playerid][Gasolina] = gasolina;
    
format(stgsizeof(stg), "| INFO | Vocк abasteceu %d de Litros!"gasolina);
    
SendClientMessage(playerid, -1stg);
    return 
1;

'new veнculo', 'IsPlayerInVehicle(playerid, veiculo)' ? Jб ouviu falar de IsPlayerInAnyVehicle? Й dessa funзгo que vocк precisa.

PHP код:
pGasolina[playerid][Gasolina] = gasolina
Toda gasolina que ele tinha antes foi ignorada? Ela se sentiu ofendida. Se o veнculo foi abastecido, o interessante й essa nova gasolina SOMAR e nгo SUBSTITUIR o valor antigo!

O certo seria:
PHP код:
pGasolina[playerid][Gasolina] += gasolina
8. Esse else estб sendo usado de maneira errada:

PHP код:
public OnPlayerStateChangeplayeridnewstateoldstate )
{
    if(
newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
      
SetTimer("ContarGasosa"1000true);
      
SendClientMessage(playerid, -1"| INFO | Contar Gasolina On!");
    }
    else
    {
      
SetTimer("NContarGasolina"1000false);
      
SendClientMessage(playerid, -1"| INFO | Parar de Contar Gasolina On");
    }
    return 
1;

Enfim... Tem muita coisa para corrigir. Minha sugestгo й procurar um sistema pronto, estudar, entender e tentar fazer o seu. Ou seguir minhas dicas e tentar refazer. Pois se usar o seu, irб bugar tudo.
Reply
#5

@GuiKommander aqui funcionou certinho vocк criou a pasta Gasolina?
Reply
#6

Parabйns ao autor do tуpico por pelo menos ter tentado!
Mais disso e menos [Pedido].
Reply
#7

Quote:
Originally Posted by Marllun
Посмотреть сообщение
@GuiKommander aqui funcionou certinho vocк criou a pasta Gasolina?
Criei sim, Mais quando eu saio e entro dnv Seta na pasta 0, Pq isso mano? Rs.
Reply
#8

Quote:
Originally Posted by GuiKommander
Посмотреть сообщение
Criei sim, Mais quando eu saio e entro dnv Seta na pasta 0, Pq isso mano? Rs.
Tente:

PHP код:
#include <a_samp>
#include <DOF2>
#include <sscanf>
#include <streamer>
#include <zcmd>
enum PlayerGasolina
{
    
Gasolina,
    
Timer
}
new 
pGasolina[MAX_PLAYERS][PlayerGasolina];
new 
MostrarLitros[256];
public 
OnFilterScriptExit()
{
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    if(!
DOF2_FileExists(GasolinaPlayer(playerid)))
    {
        
SendClientMessage(playerid, -1"| INFO | Vocк acabou de ser registrado.");
        
DOF2_CreateFile(GasolinaPlayer(playerid));
        
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"100);
        
DOF2_SaveFile();
        
pGasolina[playerid][Gasolina] = 100;
    }
    else if(
DOF2_FileExists(GasolinaPlayer(playerid)))
    {
        
pGasolina[playerid][Gasolina] = DOF2_GetInt(GasolinaPlayer(playerid), "Gasolina");
        
format(MostrarLitrossizeof(MostrarLitros), "| INFO | Vocк tem %d de Litros de Gasolina."pGasolina[playerid][Gasolina]);
        
SendClientMessage(playerid, -1MostrarLitros);
        return 
1;
    }
    return 
1;
}
forward DiminuirGasolina(playerid);
public 
DiminuirGasolina(playerid)
{
    
pGasolina[playerid][Gasolina] --;
    
SalvarGasolina(playerid);
    return 
1;
}
public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
          
pGasolina[playerid][Timer] = SetTimerEx("DiminuirGasolina"1000true"d"playerid);
          
SendClientMessage(playerid, -1"| INFO | Contar Gasolina On!");
          return 
1;
    }
    if(
oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
    {
        if(
newstate == PLAYER_STATE_ONFOOT)
        {
            
KillTimer(pGasolina[playerid][Timer]);
            
SendClientMessage(playerid, -1"| INFO | Parou de diminuir a gasolina.");
        }
        return 
1;
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
SalvarGasolina(playerid);
    return 
1;
}
SalvarGasolina(playerid)
{
    if(
DOF2_FileExists(GasolinaPlayer(playerid)))
    {
        
DOF2_SetInt(GasolinaPlayer(playerid), "Gasolina"pGasolina[playerid][Gasolina]);
        
DOF2_SaveFile();
    }
    return 
1;
}
GasolinaPlayer(playerid)
{
    new 
gasolina[44], nome[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnome44);
    
format(gasolina44"Gasolina/%s.ini"nome);
    return 
gasolina;
}
CMD:litros(playerid)
{
    new 
litros[256];
    
format(litrossizeof(litros), "| INFO | Vocк tem %d de litros de gasolina."pGasolina[playerid][Gasolina]);
    
SendClientMessage(playerid, -1litros);
    return 
1;
}
CMD:abastecer(playeridparams[])
{
    new 
gasolinastg[256];
    if(
sscanf(params"d"gasolina)) return SendClientMessage(playerid, -1"/Abastecer [litros]");
    if(!
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1"| ERRO | Vocк nгo estб em um veнculo");
    
pGasolina[playerid][Gasolina] += gasolina;
    
format(stgsizeof(stg), "| INFO | Vocк abasteceu %d litros! Total agora: %d"gasolinapGasolina[playerid][Gasolina]);
    
SendClientMessage(playerid, -1stg);
    return 
1;

Sugiro que leia meu post anterior e estude para que possa aprender!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)