30.06.2015, 20:34
I have a command to fill car fuel.
If I leave the pump while filling fuel it starts spamming the debug message.
It should kill the timer but it does'nt. Then i exit the vehicle and it still spams me.
Even tho on Vehicle exit there is a kill time for this.
Please help me i am very confused why this happens.
If I leave the pump while filling fuel it starts spamming the debug message.
It should kill the timer but it does'nt. Then i exit the vehicle and it still spams me.
Even tho on Vehicle exit there is a kill time for this.
Please help me i am very confused why this happens.
pawn Код:
CMD:refuel(playerid, params[])
{
#pragma unused params
if(!IsPlayerInAnyVehicle(playerid)) return SystemMsg(playerid, "You must be in a vehicle.");
if(!NearGasStation(playerid)) return SystemMsg(playerid, "You must be at a gas station to use this command.");
if(RFuel[playerid] == true) return SystemMsg(playerid, "Your vehicle is already being refueled.");
RFuel[playerid] = true;
RefuelTimer[playerid] = SetTimerEx("RefuelPlayer", 2000, true, "i", playerid);
return 1;
}
public RefuelPlayer(playerid)
{
if(!IsPlayerInAnyVehicle(playerid))
{
KillTimer(RefuelTimer[playerid]);
RFuel[playerid] = false;
new string[128];
format(string, sizeof(string), "ID %i, KillTimer ID : %i, RFuel : %i", playerid, KillTimer(RefuelTimer[playerid]), RFuel[playerid]);
SystemMsg(playerid ,string);
return SystemMsg(playerid, "[DEBUG] Not in vehicle. Killing timer.");
}
if(!NearGasStation(playerid))
{
KillTimer(RefuelTimer[playerid]);
RFuel[playerid] = false;
KillTimer(RefuelTimer[playerid]);
return SystemMsg(playerid, "[DEBUG] Not near gas station. Killing timer.");
}
if(TakeMoney(playerid, 20))
{
KillTimer(RefuelTimer[playerid]);
RFuel[playerid] = false;
KillTimer(RefuelTimer[playerid]);
return SendClientMessage(playerid, COLOR_LIME, "You do not have enough money! Gas costs $20 per 10 units.");
}
new vid = GetPlayerVehicleID(playerid);
if(CarFuel[vid] > 90.000000)
{
KillTimer(RefuelTimer[playerid]);
RFuel[playerid] = false;
KillTimer(RefuelTimer[playerid]);
CarFuel[vid] = 100.000000;
if(IsVehicleOwned(vid))
{
new fileid = FileID[vid];
new Lol1[25];
format(Lol1, sizeof(Lol1), "/Vehicles/%i.ini", fileid);
dini_FloatSet(Lol1, "Fuel", CarFuel[vid]);
}
return SystemMsg(playerid, "You vehicle has been refueled.");
}
CarFuel[vid] = CarFuel[vid] + 10.000000;
new string[40];
//format(string, sizeof(string), "[DEBUG] Your current fuel is: %f", CarFuel[vid]);
SystemMsg(playerid, string);
if(IsVehicleOwned(vid))
{
new fileid = FileID[vid];
new Lol1[25];
format(Lol1, sizeof(Lol1), "/Vehicles/%i.ini", fileid);
dini_FloatSet(Lol1, "Fuel", CarFuel[vid]);
}
return 1;
}