Guest User

Untitled

a guest
Jan 25th, 2016
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.22 KB | None | 0 0
  1. /* Credits to SA:MP team for Dev package, Y_Less for SSCANF, Jeff for function to get closest vehicle, Zeex for ZCMD & Twinki for making this script*/
  2. /* Special credits to Crayder for helping out & providing his code for the Vehicle damage updates */
  3.  
  4. #include <a_samp>
  5.  
  6. #if !defined COLOR_RED
  7. #define COLOR_RED 0xAA3333AA
  8. #endif
  9.  
  10. #if !defined IsValidVehicle
  11. native IsValidVehicle(vehicleid);
  12. #endif
  13.  
  14. forward OnVehicleStop(vehicleid);
  15. forward OnVehicleStart(vehicleid);
  16. forward OnVehicleLock(vehicleid);
  17. forward OnVehicleUnlock(vehicleid);
  18.  
  19.  
  20. new v_EngineStatus[MAX_VEHICLES],
  21. v_VehicleLights[MAX_VEHICLES],
  22. v_TrunkStatus[MAX_VEHICLES],
  23. v_VehicleLock[MAX_VEHICLES];
  24.  
  25.  
  26.  
  27. /* Vehicle Engine */
  28. stock ToggleVehicleEngine(vehicle, status) {
  29. new engine, lights, alarm, doors, bonnet, boot, objective;
  30. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  31.  
  32. switch(status) {
  33. case 0: { v_EngineStatus[vehicle] = 0; SetVehicleParamsEx(vehicle, 0, lights, alarm, doors, bonnet, boot, objective); CallLocalFunction("OnVehicleStop", "i", vehicle); }
  34. case 1: { v_EngineStatus[vehicle] = 1; SetVehicleParamsEx(vehicle, 1, lights, alarm, doors, bonnet, boot, objective); CallLocalFunction("OnVehicleStart", "i", vehicle); }
  35. }
  36. return true;
  37. }
  38.  
  39. stock GetVehicleEngineStatusString(vehicle) {
  40. new StatusString[4];
  41. switch(v_EngineStatus[vehicle]) {
  42. case 0: StatusString = "Off";
  43. case 1: StatusString = "On";
  44. }
  45. return StatusString;
  46. }
  47.  
  48. stock GetVehicleEngineStatus(vehicle) return v_EngineStatus[vehicle];
  49.  
  50. stock AutomaticEngineSwitch(vehicle) {
  51. new engine, lights, alarm, doors, bonnet, boot, objective;
  52. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  53. switch(v_EngineStatus[vehicle]) {
  54. case 0: { v_EngineStatus[vehicle] = 1; SetVehicleParamsEx(vehicle, 1, lights, alarm, doors, bonnet, boot, objective); CallLocalFunction("OnVehicleStart", "i", vehicle); }
  55. case 1: { v_EngineStatus[vehicle] = 0; SetVehicleParamsEx(vehicle, 0, lights, alarm, doors, bonnet, boot, objective); CallLocalFunction("OnVehicleStop", "i", vehicle); }
  56. }
  57. return true;
  58. }
  59.  
  60.  
  61.  
  62.  
  63.  
  64. /* Lights */
  65. stock ToggleVehicleLights(vehicle, status) {
  66. new engine, lights, alarm, doors, bonnet, boot, objective;
  67. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  68. switch(status) {
  69. case 0: { v_VehicleLights[vehicle] = 0; SetVehicleParamsEx(vehicle, engine, 0, alarm, doors, bonnet, boot, objective); }
  70. case 1: { v_VehicleLights[vehicle] = 1; SetVehicleParamsEx(vehicle, engine, 1, alarm, doors, bonnet, boot, objective); }
  71. }
  72. return true;
  73. }
  74.  
  75. stock GetVehicleLightsStatusString(vehicle) {
  76. new LightsStatus[4];
  77. switch(v_VehicleLights[vehicle]) {
  78. case 0: LightsStatus = "Off";
  79. case 1: LightsStatus = "On";
  80. }
  81. return LightsStatus;
  82. }
  83.  
  84. stock GetVehicleLightsStatus(vehicle) return v_VehicleLights[vehicle];
  85.  
  86. stock AutomaticLightSwitch(vehicle) {
  87. new engine, lights, alarm, doors, bonnet, boot, objective;
  88. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  89. switch(v_VehicleLights[vehicle]) {
  90. case 0: { v_VehicleLights[vehicle] = 1; SetVehicleParamsEx(vehicle, engine, 1, alarm, doors, bonnet, boot, objective); }
  91. case 1: { v_VehicleLights[vehicle] = 0; SetVehicleParamsEx(vehicle, engine, 0, alarm, doors, bonnet, boot, objective); }
  92. }
  93. return true;
  94. }
  95.  
  96.  
  97.  
  98.  
  99. /* Trunk system */
  100. stock ToggleVehicleTrunk(vehicle, status) {
  101. new engine, lights, alarm, doors, bonnet, boot, objective;
  102. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  103. switch(status) {
  104. case 0: { v_TrunkStatus[vehicle] = 0; SetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, 0, objective); }
  105. case 1: { v_TrunkStatus[vehicle] = 1; SetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, 1, objective); }
  106. }
  107. return true;
  108. }
  109.  
  110. stock GetVehicleTrunkStatus(vehicle) return v_TrunkStatus[vehicle];
  111.  
  112. stock GetVehicleTrunkStatusString(vehicle) {
  113. new TrunkStatus[7];
  114. switch(v_TrunkStatus[vehicle]) {
  115. case 0: TrunkStatus = "Closed";
  116. case 1: TrunkStatus = "Open";
  117. }
  118. return TrunkStatus;
  119. }
  120.  
  121.  
  122. stock ToggleNearestPlayerTrunk(playerid,status) {
  123. new sCar = GetClosestVehicleForPlayer(playerid);
  124. new engine, lights, alarm, doors, bonnet, boot, objective;
  125. GetVehicleParamsEx(sCar, engine, lights, alarm, doors, bonnet, boot, objective);
  126. switch(status) {
  127. case 0: { v_TrunkStatus[sCar] = 0; SetVehicleParamsEx(sCar, engine, lights, alarm, doors, bonnet, 0, objective); }
  128. case 1: { v_TrunkStatus[sCar] = 1; SetVehicleParamsEx(sCar, engine, lights, alarm, doors, bonnet, 1, objective); }
  129. }
  130. return true;
  131. }
  132.  
  133. stock ToggleAutomaticNearestTrunk(playerid) {
  134. new sCar = GetClosestVehicleForPlayer(playerid);
  135. new engine, lights, alarm, doors, bonnet, boot, objective;
  136. GetVehicleParamsEx(sCar, engine, lights, alarm, doors, bonnet, boot, objective);
  137. switch(v_TrunkStatus[sCar]) {
  138. case 0: { v_TrunkStatus[sCar] = 1; SetVehicleParamsEx(sCar, engine, lights, alarm, doors, bonnet, 1, objective); }
  139. case 1: { v_TrunkStatus[sCar] = 0; SetVehicleParamsEx(sCar, engine, lights, alarm, doors, bonnet, 0, objective); }
  140. }
  141. return true;
  142. }
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149. /* Lock system */
  150.  
  151. stock ToggleVehicleLock(vehicle, status) {
  152. new engine, lights, alarm, doors, bonnet, boot, objective;
  153. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  154. switch(status) {
  155. case 0: { v_VehicleLock[vehicle] = 0; SetVehicleParamsEx(vehicle, engine, lights, alarm, 0, bonnet, boot, objective); CallLocalFunction("OnVehicleUnlock", "i", vehicle); }
  156. case 1: { v_VehicleLock[vehicle] = 1; SetVehicleParamsEx(vehicle, engine, lights, alarm, 1, bonnet, boot, objective); CallLocalFunction("OnVehicleLock", "i", vehicle); }
  157. }
  158. return true;
  159. }
  160.  
  161. stock GetVehicleLockStatus(vehicle) return v_VehicleLock[vehicle];
  162.  
  163.  
  164. stock GetVehicleLockStatusString(vehicle) {
  165. new LockStatus[10];
  166. switch(v_VehicleLock[vehicle]) {
  167. case 0: LockStatus = "Unlocked";
  168. case 1: LockStatus = "Locked";
  169. }
  170. return LockStatus;
  171. }
  172.  
  173. stock AutomaticLockSwitch(vehicle) {
  174. new engine, lights, alarm, doors, bonnet, boot, objective;
  175. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  176. switch(v_VehicleLock[vehicle]) {
  177. case 0: { v_VehicleLock[vehicle] = 1; SetVehicleParamsEx(vehicle, engine, lights, alarm, 1, bonnet, boot, objective); CallLocalFunction("OnVehicleLock", "i", vehicle); }
  178. case 1: { v_VehicleLock[vehicle] = 0; SetVehicleParamsEx(vehicle, engine, lights, alarm, 0, bonnet, boot, objective); CallLocalFunction("OnVehicleUnlock", "i", vehicle); }
  179. }
  180. return true;
  181. }
  182.  
  183. stock ToggleNearestVehicleLock(playerid) {
  184. new sCar = GetClosestVehicleForPlayer(playerid);
  185. new engine, lights, alarm, doors, bonnet, boot, objective;
  186. GetVehicleParamsEx(sCar, engine, lights, alarm, doors, bonnet, boot, objective);
  187. switch(v_VehicleLock[sCar]) {
  188. case 0: { v_VehicleLock[sCar] = 1; SetVehicleParamsEx(sCar, engine, lights, alarm, 1, bonnet, boot, objective); CallLocalFunction("OnVehicleLock", "i", sCar); }
  189. case 1: { v_VehicleLock[sCar] = 0; SetVehicleParamsEx(sCar, engine, lights, alarm, 0, bonnet, boot, objective); CallLocalFunction("OnVehicleUnlock", "i", sCar); }
  190. }
  191. return true;
  192. }
  193.  
  194. stock GetNearCarLockString(playerid) {
  195. new sCar = GetClosestVehicleForPlayer(playerid);
  196. new LockStatus[10];
  197. switch(v_VehicleLock[sCar]) {
  198. case 0: LockStatus = "Unlocked";
  199. case 1: LockStatus = "Locked";
  200. }
  201. return LockStatus;
  202. }
  203.  
  204. stock GetNearCarLock(playerid) {
  205. new sCar = GetClosestVehicleForPlayer(playerid);
  206. return v_VehicleLock[sCar];
  207. }
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220. stock GetClosestVehicleForPlayer(playerid) //credits to Jeff
  221. {
  222. new vehicleid = INVALID_VEHICLE_ID;
  223. new Float:distance = 10.0;
  224. new Float:X, Float:Y, Float:Z;
  225. GetPlayerPos(playerid, X, Y, Z);
  226. for(new i = 0; i < MAX_VEHICLES; i++) {
  227. if(!IsValidVehicle(i)) continue;
  228. new Float: tmp = GetVehicleDistanceFromPoint(i, X, Y, Z);
  229. if(tmp > distance) continue;
  230. vehicleid = i;
  231. distance = tmp;
  232. }
  233. if(vehicleid != INVALID_VEHICLE_ID) return vehicleid;
  234. else return SendClientMessage(playerid,0xAA3333AA,"There are no vehicle near to you!");
  235. }
Add Comment
Please, Sign In to add comment