Advertisement
Guest User

Untitled

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