Guest User

Untitled

a guest
Sep 4th, 2015
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.63 KB | None | 0 0
  1. // [FS] Engine System v3
  2. // Made by Joe Torran C
  3. // Credits to JeNkStA for helping me fix some stuff
  4. // DO NOT REMOVE THESE CREDITS
  5.  
  6. #include <a_samp>
  7. #include <zcmd>
  8.  
  9. #define colorRed 0xFF0000FF
  10. #define colorYellow 0xFFFF00FF
  11.  
  12. forward StartEngine(playerid);
  13. forward DamagedEngine(playerid);
  14.  
  15. new vehEngine[MAX_VEHICLES];
  16.  
  17. public OnPlayerStateChange(playerid, newstate, oldstate)
  18. {
  19. new vehicleid = GetPlayerVehicleID(playerid);
  20.  
  21. if(newstate == PLAYER_STATE_DRIVER)
  22. {
  23. if(vehEngine[vehicleid] == 0)
  24. {
  25. TogglePlayerControllable(playerid, 0);
  26. SendClientMessage(playerid, colorYellow, "Vehicle engine NOT started");
  27. SendClientMessage(playerid, colorYellow, "To start the vehicle's engine press \"Shift\" or type \"/engine\"");
  28. }
  29. else if(vehEngine[vehicleid] == 1)
  30. {
  31. TogglePlayerControllable(playerid, 1);
  32. SendClientMessage(playerid, colorYellow, "Vehicle engine running");
  33. }
  34. }
  35. return 1;
  36. }
  37.  
  38. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  39. {
  40. new vehicleid = GetPlayerVehicleID(playerid);
  41.  
  42. if(IsPlayerInAnyVehicle(playerid))
  43. {
  44. if(vehEngine[vehicleid] == 0)
  45. {
  46. if(newkeys == KEY_JUMP)
  47. {
  48. vehEngine[vehicleid] = 2;
  49. SetTimerEx("StartEngine", 3000, 0, "i", playerid);
  50. SendClientMessage(playerid, colorYellow, "Vehicle engine starting");
  51. }
  52. }
  53. if(newkeys == KEY_SECONDARY_ATTACK)
  54. {
  55. RemovePlayerFromVehicle(playerid);
  56. TogglePlayerControllable(playerid, 1);
  57. }
  58. }
  59. return 1;
  60. }
  61.  
  62. public StartEngine(playerid)
  63. {
  64. new vehicleid = GetPlayerVehicleID(playerid);
  65. new Float:health;
  66. new rand = random(2);
  67.  
  68. GetVehicleHealth(vehicleid, health);
  69.  
  70. if(IsPlayerInAnyVehicle(playerid))
  71. {
  72. if(vehEngine[vehicleid] == 2)
  73. {
  74. if(health > 300)
  75. {
  76. if(rand == 0)
  77. {
  78. vehEngine[vehicleid] = 1;
  79. TogglePlayerControllable(playerid, 1);
  80. SetTimerEx("DamagedEngine", 1000, 1, "i", playerid);
  81. SendClientMessage(playerid, colorYellow, "Vehicle engine started");
  82. new veh = GetPlayerVehicleID(playerid);
  83. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  84. SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
  85. }
  86. if(rand == 1)
  87. {
  88. vehEngine[vehicleid] = 0;
  89. TogglePlayerControllable(playerid, 0);
  90. SendClientMessage(playerid, colorYellow, "Vehicle engine failed to start");
  91. }
  92. }
  93. else
  94. {
  95. vehEngine[vehicleid] = 0;
  96. TogglePlayerControllable(playerid, 0);
  97. SendClientMessage(playerid, colorYellow, "Vehicle engine failed to start due to damage");
  98. }
  99. }
  100. }
  101. return 1;
  102. }
  103.  
  104. public DamagedEngine(playerid)
  105. {
  106. new vehicleid = GetPlayerVehicleID(playerid);
  107. new Float:health;
  108.  
  109. GetVehicleHealth(vehicleid, health);
  110.  
  111. if(IsPlayerInAnyVehicle(playerid))
  112. {
  113. if(vehEngine[vehicleid] == 1)
  114. {
  115. if(health < 300)
  116. {
  117. vehEngine[vehicleid] = 0;
  118. TogglePlayerControllable(playerid, 0);
  119. SendClientMessage(playerid, colorYellow, "Vehicle engine stopped due to damage");
  120. }
  121. }
  122. }
  123. return 1;
  124. }
  125.  
  126. public OnPlayerExitVehicle(playerid, vehicleid)
  127. {
  128. TogglePlayerControllable(playerid, 1);
  129. return 1;
  130. }
  131.  
  132. CMD:engine(playerid, params[])
  133. {
  134. new vehicleid = GetPlayerVehicleID(playerid);
  135.  
  136. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, colorRed, "You need to be in a vehicle to use this command");
  137.  
  138. if(vehEngine[vehicleid] == 0)
  139. {
  140. vehEngine[vehicleid] = 2;
  141. SetTimerEx("StartEngine", 3000, 0, "i", playerid);
  142. SendClientMessage(playerid, colorYellow, "Vehicle engine starting");
  143. }
  144. else if(vehEngine[vehicleid] == 1)
  145. {
  146. vehEngine[vehicleid] = 0;
  147. TogglePlayerControllable(playerid, 0);
  148. SendClientMessage(playerid, colorYellow, "Vehicle engine stopped");
  149. SendClientMessage(playerid, colorYellow, "To re-start the vehicle's engine press \"Shift\" or type \"/engine\"");
  150. new veh = GetPlayerVehicleID(playerid);
  151. GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
  152. SetVehicleParamsEx(veh,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
  153. }
  154. return 1;
  155. }
  156.  
  157. public OnFilterScriptInit()
  158. {
  159. print("\n [FS] Engine System v3 by Joe Torran C \n");
  160. return 1;
  161. }
Advertisement
Add Comment
Please, Sign In to add comment