Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma unused ret_memcpy
- new
- VehicleFuel[MAX_VEHICLES],
- IsFueling[MAX_PLAYERS]=0,
- Text:DisplayFuel[MAX_PLAYERS],
- RefuelTimer[MAX_PLAYERS];
- forward VehicleLowerFuel();
- forward RefuelingTimer(playerid);
- #define DROPTIME 4
- #define FUELTIME 1
- #define COLOR_GREEN 0x33AA33AA
- #define COLOR_RED 0xFF0000FF
- public OnFilterScriptInit()
- {
- print(" Fuel Module loaded. ");
- for(new i=0; i < MAX_VEHICLES; i++)
- {
- VehicleFuel[i] = random(100);
- }
- SetTimer("VehicleLowerFuel",(1000*DROPTIME),true);
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- new
- fstring[128];
- format(fstring,sizeof fstring,"~w~Fuel: ~g~%%");
- DisplayFuel[playerid] = TextDrawCreate(320.00, 450.00,fstring); //create the textdraw at position
- TextDrawFont(DisplayFuel[playerid],2); //font type of textdraw
- TextDrawLetterSize(DisplayFuel[playerid],0.699999,1.700000); //size...
- TextDrawSetShadow(DisplayFuel[playerid],3);
- TextDrawAlignment(DisplayFuel[playerid], 2);
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
- {
- new vid = GetPlayerVehicleID(playerid);
- if(VehicleFuel[vid] > 20)
- {
- new
- fstring[128];
- format(fstring,sizeof fstring,"~w~Fuel: ~g~%i%%",VehicleFuel[vid]);
- TextDrawSetString(DisplayFuel[playerid],fstring);
- TextDrawShowForPlayer(playerid,DisplayFuel[playerid]);
- }
- else if(VehicleFuel[vid] <= 20)
- {
- new
- fstring[125];
- format(fstring,sizeof fstring,"~w~Fuel: ~r~%i%%",VehicleFuel[vid]);
- TextDrawSetString(DisplayFuel[playerid],fstring);
- TextDrawShowForPlayer(playerid,DisplayFuel[playerid]);
- }
- }
- else
- {
- TextDrawHideForPlayer(playerid,DisplayFuel[playerid]); //hiding if a player isnt driving/or an passenger
- }
- return 1;
- }
- CMD:refuel(playerid, params[])
- {
- if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"You are not in an vehicle!");
- if (IsFueling[playerid]) return SendClientMessage(playerid,COLOR_RED,"You are already refuelling!");
- TogglePlayerControllable(playerid,0);
- SetCameraBehindPlayer(playerid);
- IsFueling[playerid] = 1;
- RefuelTimer[playerid] = SetTimerEx("RefuelingTimer",(FUELTIME*1000),1,"i",playerid); //setting refueltimer
- return 1;
- }
- public VehicleLowerFuel()
- {
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if (IsFueling[i]) continue; //stop when a player is already refuelling
- new vid = GetPlayerVehicleID(i); //getting vehicle ID
- if (GetPlayerVehicleSeat(i) == 0)
- {
- VehicleFuel[vid]--; //lowering fuel value
- if (VehicleFuel[vid]<1) //if fuel is empty
- {
- VehicleFuel[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
- TextDrawHideForPlayer(i,DisplayFuel[i]);
- }
- if(VehicleFuel[vid] > 20)
- {
- new
- fstring[128];
- format(fstring,sizeof fstring,"~w~Fuel: ~g~%i%%",VehicleFuel[vid]);
- TextDrawSetString(DisplayFuel[i],fstring);
- TextDrawShowForPlayer(i,DisplayFuel[i]);
- }
- else if(VehicleFuel[vid] <= 20)
- {
- new
- fstring[125];
- format(fstring,sizeof fstring,"~w~Fuel: ~r~%i%%",VehicleFuel[vid]);
- TextDrawSetString(DisplayFuel[i],fstring);
- TextDrawShowForPlayer(i,DisplayFuel[i]);
- }
- }
- else
- TextDrawHideForPlayer(i,DisplayFuel[i]);
- }
- return 1;
- }
- public RefuelingTimer(playerid)
- {
- new vid = GetPlayerVehicleID(playerid);
- VehicleFuel[vid]++; //restoring fuel to 100
- new
- fstring[128];
- format(fstring,sizeof fstring,"~g~Refueling: ~y~%i%%",VehicleFuel[vid]);
- TextDrawSetString(DisplayFuel[playerid],fstring); //small update on textdraw
- if(VehicleFuel[vid] == 100)
- {
- TogglePlayerControllable(playerid,1); //unfreeze player
- IsFueling[playerid]=0;
- KillTimer(RefuelTimer[playerid]);
- return 1;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment