Advertisement
Guest User

Fuel v1.3 By Cameltoe

a guest
Mar 10th, 2011
2,332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.46 KB | None | 0 0
  1. //********************* [ Credits ] ******************************************//
  2. /*
  3.  
  4.                 Car Fuel Script by Cameltoe
  5.                         Version 1.3
  6.                        
  7.         I do not demand to keep the credits but it is appreciated.
  8.  
  9. */
  10. //******************** [ Includes ] ******************************************//
  11. #include <a_samp>
  12. #include <zcmd>
  13.  
  14. //******************** [ Forwards ] ******************************************//
  15. forward FuelDown(playerid);
  16.  
  17. //******************** [ Defines ] ******************************************//
  18.  
  19. // Vehicles
  20.  
  21. #undef MAX_VEHICLES
  22.     #define MAX_VEHICLES 50
  23.  
  24. // Fuel
  25.  
  26. #define REFUEL_COST 100
  27. #define MAX_FUEL 100
  28. #define FUEL_DECREASE 1
  29.  
  30. // Colors
  31. #define COLOR_RED           0xFF000000
  32. #define COLOR_YELLOW        0xFFFF0000
  33. #define COLOR_BLUE          0x0000FF00
  34. #define COLOR_GREEN         0x00FF0000
  35.  
  36. //******************** [ Enums ] *********************************************//
  37. enum Car
  38. {
  39.     Float:Fuel,
  40. }
  41. //******************** [ Symbols ] *******************************************//
  42. new Carinfo[MAX_VEHICLES][Car];
  43. new Text:FuelText[MAX_PLAYERS];
  44. new FuelTimer[MAX_PLAYERS];
  45.  
  46. //******************** [ Callbakcs ] *****************************************//
  47.  
  48. public OnFilterScriptInit()
  49. {
  50.     printf("_____________________________________");
  51.     printf("|                                   |");
  52.     printf("|           Fuel FS v1.1            |");
  53.     printf("|               By                  |");
  54.     printf("|            Cameltoe               |");
  55.     printf("|___________________________________|");
  56.    
  57.     for(new vehicleid; vehicleid < MAX_VEHICLES; vehicleid++)
  58.     {
  59.         Carinfo[vehicleid][Fuel] = MAX_FUEL;
  60.     }
  61.     return 1;
  62. }
  63.  
  64. /*main()
  65. {
  66.     printf("_____________________________________");
  67.     printf("|                                   |");
  68.     printf("|           Fuel FS v1.1            |");
  69.     printf("|               By                  |");
  70.     printf("|            Cameltoe               |");
  71.     printf("|___________________________________|");
  72.     for(new vehicleid; vehicleid < MAX_VEHICLES; vehicleid++)
  73.     {
  74.         Carinfo[vehicleid][Fuel] = MAX_FUEL;
  75.     }
  76.     return 1;
  77. }*/
  78.  
  79. public OnPlayerConnect(playerid)
  80. {
  81.     FuelText[playerid] = TextDrawCreate(450.0, 405.0,"         ");
  82.     TextDrawHideForPlayer(playerid,FuelText[playerid]);
  83.     TextDrawAlignment(FuelText[playerid],0);
  84.     TextDrawSetProportional(FuelText[playerid],1);
  85.     TextDrawSetShadow(FuelText[playerid], 1);
  86.     TextDrawSetOutline(FuelText[playerid], 2);
  87.     TextDrawLetterSize(FuelText[playerid],0.60,2.0);
  88.     TextDrawFont(FuelText[playerid], 3);
  89.     return 1;
  90. }
  91.  
  92. public OnPlayerDisconnect(playerid, reason)
  93. {
  94.     TextDrawDestroy(FuelText[playerid]);
  95.     return 1;
  96. }
  97.  
  98.  
  99. public OnPlayerStateChange(playerid,newstate,oldstate)
  100. {
  101.     new string[128];
  102.     if(newstate == PLAYER_STATE_DRIVER)
  103.     {
  104.         if(floatround(Carinfo[GetPlayerVehicleID(playerid)][Fuel]) <= 0)
  105.         {
  106.             format(string,sizeof(string),"~g~ Fuel: ~w~ 0");
  107.             SendClientMessage(playerid, COLOR_RED, "This vehicle has ran out of fuel");
  108.             KillTimer(FuelTimer[playerid]);
  109.             ToggleVehicleEngine(GetPlayerVehicleID(playerid), false);
  110.             TextDrawSetString(FuelText[playerid], string);
  111.         }
  112.         else
  113.         {
  114.             FuelTimer[playerid] = SetTimerEx("FuelDown", 1000, true, "i", playerid); // Fueldown timer
  115.             TextDrawShowForPlayer(playerid, FuelText[playerid]);
  116.         }
  117.     }
  118.     else
  119.     {
  120.         TextDrawHideForPlayer(playerid,FuelText[playerid]);
  121.         TextDrawSetString(FuelText[playerid], "         ");
  122.     }
  123.     return 1;
  124. }
  125.  
  126. public OnPlayerCommandText(playerid, cmdtext[])
  127. {
  128.     return 0;
  129. }
  130.  
  131. //******************** [ Functions ] ********************************************//
  132. public FuelDown(playerid)
  133. {
  134.     new string[128];
  135.     new vehicleid = GetPlayerVehicleID(playerid);
  136.     if(IsPlayerInAnyVehicle(playerid))
  137.     {
  138.         if(floatround(Carinfo[vehicleid][Fuel]) <= 0 || Carinfo[vehicleid][Fuel] - GetPlayerSpeed(playerid) * FUEL_DECREASE / 100 < 0)
  139.         {
  140.             format(string,sizeof(string),"~g~ Fuel: ~w~ 0");
  141.             SendClientMessage(playerid, COLOR_RED, "This vehicle has ran out of fuel");
  142.             KillTimer(FuelTimer[playerid]);
  143.             ToggleVehicleEngine(vehicleid, false);
  144.             TextDrawSetString(FuelText[playerid], string);
  145.         }
  146.         else
  147.         {
  148.             Carinfo[vehicleid][Fuel] = Carinfo[vehicleid][Fuel] - GetPlayerSpeed(playerid) * FUEL_DECREASE / 100;
  149.             format(string,sizeof(string),"~g~ Fuel: ~w~ %d", floatround(Carinfo[vehicleid][Fuel]));
  150.             TextDrawSetString(FuelText[playerid], string);
  151.         }
  152.     }
  153.     else
  154.     {
  155.         format(string,sizeof(string),"~g~ Fuel: ~w~ ");
  156.         KillTimer(FuelTimer[playerid]);
  157.     }
  158. }
  159.  
  160. //******************** [ Stocks ] ********************************************//
  161.  
  162. stock ToggleVehicleEngine(vehicleid, bool: Mode)
  163. {
  164.     new engine,lights,alarm,doors,bonnet,boot,objective;
  165.     GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
  166.     if(Mode == false) SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
  167.     else SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
  168. }
  169.  
  170. stock GetPlayerSpeed(playerid)
  171. {
  172.     new Float:ST[4];
  173.     if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]); else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
  174.     ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 180;
  175.     return floatround(ST[3]);
  176. }
  177.  
  178. //******************** [ Commands ] ******************************************//
  179.  
  180. command(car, playerid, params[])
  181. {
  182.     new Float:Pos[4]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); GetPlayerFacingAngle(playerid, Pos[3]);
  183.     new vehicleid = CreateVehicle(411, Pos[0], Pos[1], Pos[2], Pos[3], 0, 0, 60*10000);
  184.     PutPlayerInVehicle(playerid, vehicleid, 0);
  185.     return 1;
  186. }
  187.  
  188. command(money, playerid, params[])
  189. {
  190.     GivePlayerMoney(playerid, 500);
  191.     return 1;
  192. }
  193.  
  194. command(refuel, playerid, params[])
  195. {
  196.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_YELLOW, "You to be inside an vehicle to refuel it.");
  197.     if(GetPlayerMoney(playerid) < REFUEL_COST) return SendClientMessage(playerid, COLOR_YELLOW, "You do not have enough money to refuel your vehicle.");
  198.     Carinfo[GetPlayerVehicleID(playerid)][Fuel] = MAX_FUEL;
  199.     KillTimer(FuelTimer[playerid]);
  200.     ToggleVehicleEngine(GetPlayerVehicleID(playerid), true);
  201.     FuelTimer[playerid] = SetTimerEx("FuelDown", 1000, true, "i", playerid); // Fueldown timer
  202.     GivePlayerMoney(playerid, -REFUEL_COST);
  203.     SendClientMessage(playerid, COLOR_YELLOW, "You refueled your vehicle.");
  204.     return 1;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement