Well i have been trying by my self this is what i have
In my PlayerStats enum
pawn Код:
Car1Fuel,
Car2Fuel,
Car3Fuel,
OnGameModeInIt
pawn Код:
for(new i=0;i<MAX_VEHICLES;i++)
{
fuel[i] = 100; //sets every car's fuel to 100 in a loop
}
pawn Код:
public timer_fuel_lower()
{
new engine, lights, alarm, doors, bonnet, boot, objective;
for(new i=0;i<MAX_PLAYERS;i++) { //loop for all players
if (isrefuelling[i]) continue; //stop when a player is already refuelling
new vid = GetPlayerVehicleID(i); //getting vehicle ID
if (GetPlayerVehicleSeat(i) == 0 && EngineOn[vid] == 1) { //if the player is a driver (it should only lower the fuel when theres an driver!)
fuel[vid] = fuel[vid] -1; //lowering fuel value
if(IsPlayerInVehicle(i, Player[i][CarLinkID]))
{
Player[i][Car1Fuel] = -1;
SavePlayerData(i);
}
if (fuel[vid]<1) //if fuel is empty
{
fuel[vid] = 0; //setting fuel to 0 (else the timer will set it to -1 -2 -3 etc before removing player)
RemovePlayerFromVehicle(i); //remove player out of vehicle
GameTextForPlayer(i,"~r~You are out of ~w~fuel~r~!",5000,4); //show text
}
}
new string[125];format(string,sizeof string,"Fuel:%i",fuel[vid]); //preparing string with next fuel value
TextDrawSetString(td_fuel[i],string); //updating textdraw
}
return 1;
}
pawn Код:
public timer_refuel(playerid)
{
new vid = GetPlayerVehicleID(playerid);
fuel[vid] = fuel[vid] = 100; //restoring fuel to 100
isrefuelling[playerid] = 0;//resetting anti-spam thingy :3
TextDrawSetString(td_fuel[playerid],"Fuel:100"); //small update on textdraw
TogglePlayerControllable(playerid,1); //unfreeze player
}
SavePlayerData
pawn Код:
dini_IntSet(string, "Car1Fuel", Player[playerid][Car1Fuel]);
dini_IntSet(string, "Car2Fuel", Player[playerid][Car2Fuel]);
dini_IntSet(string, "Car3Fuel", Player[playerid][Car3Fuel]);
Register Player
pawn Код:
dini_IntSet(string, "Car1Fuel", Player[playerid][Car1Fuel]);
dini_IntSet(string, "Car2Fuel", Player[playerid][Car2Fuel]);
dini_IntSet(string, "Car3Fuel", Player[playerid][Car3Fuel]);
On Player Login Attempt
pawn Код:
Player[playerid][Car1Fuel] = dini_Int(string, "Car1Fuel");
Player[playerid][Car2Fuel] = dini_Int(string, "Car2Fuel");
Player[playerid][Car3Fuel] = dini_Int(string, "Car3Fuel");
On Player State Change
pawn Код:
if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
new vid = GetPlayerVehicleID(playerid);
new string[125];format(string,sizeof string,"Fuel:%i",fuel[vid]); //quickly doing a small update on fuel (so it wont jump from 100 to its real value)
TextDrawSetString(td_fuel[playerid],string);
TextDrawShowForPlayer(playerid,td_fuel[playerid]); //showing if an player is a driver or passenger of the ar
}
else
{
TextDrawHideForPlayer(playerid,td_fuel[playerid]); //hiding if a player isnt driving/or an passenger
}
Thank You
Help Is Appreciated