Guest User

Gear Golimad [SAMP]

a guest
Feb 17th, 2014
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.90 KB | None | 0 0
  1. // SAMP THREAD : http://forum.sa-mp.com/showthread.php?p=2917301
  2. //Textdraws generated by Zamaroht's TextDraw Editor.
  3. // Wanna edit it, keep my name on it ;).
  4.  
  5. #include <a_samp>
  6.  
  7.  
  8. #define COLOR_RED 0xAA3333AA
  9. #define COLOR_INDIGO 0x4B00B0AA
  10. #define SpeedCheck(%0,%1,%2,%3,%4) floatround(floatsqroot(%4?(%0*%0+%1*%1+%2*%2):(%0*%0+%1*%1) ) *%3*1.6)
  11. // ^^ Made by someone ( I don't know who ) Thanks to him btw :D !
  12. #define FILTERSCRIPT
  13. #define TCangear 5000 // 5000 ms ( 5 s ) that you need to wait before gearing up.
  14. #define TDCangear 2000 // 2000 ms ( 2 s ) that you need to wait before gearing down.
  15.  
  16. new Text:Textdraw0;
  17. new Text:Textdraw1;
  18. new Text:Textdraw2;
  19. new Text:Textdraw3;
  20. new Text:Textdraw5;
  21. new Text:Textdraw6;
  22. new Text:Textdraw7;
  23. new Text:Textdraw8;
  24. new Text:Textdraw9;
  25.  
  26. new PlayerGear[MAX_PLAYERS] = 1;
  27. new PlayerCGear[MAX_PLAYERS] = 0;
  28. new PlayerCDGear[MAX_PLAYERS] = 0;
  29. public OnFilterScriptInit()
  30. {
  31.  
  32. print("[FS]Gear by golimad Loaded.");
  33. print("---------Enjoy.");
  34.  
  35. Textdraw0 = TextDrawCreate(567.000000, 280.000000, "1 2");
  36. TextDrawBackgroundColor(Textdraw0, 255);
  37. TextDrawFont(Textdraw0, 3);
  38. TextDrawLetterSize(Textdraw0, 0.500000, 2.200000);
  39. TextDrawColor(Textdraw0, -1);
  40. TextDrawSetOutline(Textdraw0, 1);
  41. TextDrawSetProportional(Textdraw0, 0);
  42. TextDrawUseBox(Textdraw0, 1);
  43. TextDrawBoxColor(Textdraw0, 255);
  44. TextDrawTextSize(Textdraw0, 620.000000, 0.000000);
  45.  
  46. Textdraw1 = TextDrawCreate(567.000000, 300.000000, "3 4");
  47. TextDrawBackgroundColor(Textdraw1, 255);
  48. TextDrawFont(Textdraw1, 3);
  49. TextDrawLetterSize(Textdraw1, 0.500000, 2.000000);
  50. TextDrawColor(Textdraw1, -1);
  51. TextDrawSetOutline(Textdraw1, 1);
  52. TextDrawSetProportional(Textdraw1, 0);
  53. TextDrawUseBox(Textdraw1, 1);
  54. TextDrawBoxColor(Textdraw1, 255);
  55. TextDrawTextSize(Textdraw1, 620.000000, 0.000000);
  56.  
  57. Textdraw2 = TextDrawCreate(567.000000, 318.000000, "5");
  58. TextDrawBackgroundColor(Textdraw2, 255);
  59. TextDrawFont(Textdraw2, 3);
  60. TextDrawLetterSize(Textdraw2, 0.500000, 2.000000);
  61. TextDrawColor(Textdraw2, -1);
  62. TextDrawSetOutline(Textdraw2, 0);
  63. TextDrawSetProportional(Textdraw2, 0);
  64. TextDrawSetShadow(Textdraw2, 0);
  65. TextDrawUseBox(Textdraw2, 1);
  66. TextDrawBoxColor(Textdraw2, 255);
  67. TextDrawTextSize(Textdraw2, 592.000000, 0.000000);
  68.  
  69. Textdraw3 = TextDrawCreate(571.000000, 265.000000, "GEAR");
  70. TextDrawBackgroundColor(Textdraw3, 255);
  71. TextDrawFont(Textdraw3, 1);
  72. TextDrawLetterSize(Textdraw3, 0.500000, 1.000000);
  73. TextDrawColor(Textdraw3, -1);
  74. TextDrawSetOutline(Textdraw3, 1);
  75. TextDrawSetProportional(Textdraw3, 1);
  76.  
  77. Textdraw5 = TextDrawCreate(571.000000, 286.000000, "°");
  78. TextDrawBackgroundColor(Textdraw5, 255);
  79. TextDrawFont(Textdraw5, 1);
  80. TextDrawLetterSize(Textdraw5, 0.500000, 1.000000);
  81. TextDrawColor(Textdraw5, 65535);
  82. TextDrawSetOutline(Textdraw5, 0);
  83. TextDrawSetProportional(Textdraw5, 1);
  84. TextDrawSetShadow(Textdraw5, 1);
  85.  
  86. Textdraw6 = TextDrawCreate(589.500000, 286.000000, "°");
  87. TextDrawBackgroundColor(Textdraw6, 255);
  88. TextDrawFont(Textdraw6, 1);
  89. TextDrawLetterSize(Textdraw6, 0.500000, 1.000000);
  90. TextDrawColor(Textdraw6, 65535);
  91. TextDrawSetOutline(Textdraw6, 0);
  92. TextDrawSetProportional(Textdraw6, 1);
  93. TextDrawSetShadow(Textdraw6, 1);
  94.  
  95. Textdraw7 = TextDrawCreate(271.000000, 305.000000, "°");
  96. TextDrawBackgroundColor(Textdraw7, 255);
  97. TextDrawFont(Textdraw7, 1);
  98. TextDrawLetterSize(Textdraw7, 0.500000, 1.000000);
  99. TextDrawColor(Textdraw7, 65535);
  100. TextDrawSetOutline(Textdraw7, 0);
  101. TextDrawSetProportional(Textdraw7, 1);
  102. TextDrawSetShadow(Textdraw7, 1);
  103.  
  104. Textdraw8 = TextDrawCreate(589.500000, 305.000000, "°");
  105. TextDrawBackgroundColor(Textdraw8, 255);
  106. TextDrawFont(Textdraw8, 1);
  107. TextDrawLetterSize(Textdraw8, 0.500000, 1.000000);
  108. TextDrawColor(Textdraw8, 65535);
  109. TextDrawSetOutline(Textdraw8, 0);
  110. TextDrawSetProportional(Textdraw8, 1);
  111. TextDrawSetShadow(Textdraw8, 1);
  112.  
  113. Textdraw9 = TextDrawCreate(571.000000, 323.000000, "°");
  114. TextDrawBackgroundColor(Textdraw9, 255);
  115. TextDrawFont(Textdraw9, 1);
  116. TextDrawLetterSize(Textdraw9, 0.500000, 1.000000);
  117. TextDrawColor(Textdraw9, 65535);
  118. TextDrawSetOutline(Textdraw9, 0);
  119. TextDrawSetProportional(Textdraw9, 1);
  120. TextDrawSetShadow(Textdraw9, 1);
  121.  
  122. return 1;
  123. }
  124.  
  125. public OnFilterScriptExit()
  126. {
  127. TextDrawHideForAll(Textdraw0);
  128. TextDrawDestroy(Textdraw0);
  129. TextDrawHideForAll(Textdraw1);
  130. TextDrawDestroy(Textdraw1);
  131. TextDrawHideForAll(Textdraw2);
  132. TextDrawDestroy(Textdraw2);
  133. TextDrawHideForAll(Textdraw3);
  134. TextDrawDestroy(Textdraw3);
  135. TextDrawHideForAll(Textdraw5);
  136. TextDrawDestroy(Textdraw5);
  137. TextDrawHideForAll(Textdraw6);
  138. TextDrawDestroy(Textdraw6);
  139. TextDrawHideForAll(Textdraw7);
  140. TextDrawDestroy(Textdraw7);
  141. TextDrawHideForAll(Textdraw8);
  142. TextDrawDestroy(Textdraw8);
  143. TextDrawHideForAll(Textdraw9);
  144. TextDrawDestroy(Textdraw9);
  145. return 1;
  146. }
  147. public OnPlayerDeath(playerid, killerid, reason)
  148. {
  149. TextDrawHideForPlayer(playerid, Textdraw0);
  150. TextDrawHideForPlayer(playerid, Textdraw1);
  151. TextDrawHideForPlayer(playerid, Textdraw2);
  152. TextDrawHideForPlayer(playerid, Textdraw3);
  153. TextDrawHideForPlayer(playerid, Textdraw5);
  154. TextDrawHideForPlayer(playerid, Textdraw6);
  155. TextDrawHideForPlayer(playerid, Textdraw7);
  156. TextDrawHideForPlayer(playerid, Textdraw8);
  157. TextDrawHideForPlayer(playerid, Textdraw9);
  158. return 1;
  159. }
  160. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  161. {
  162.  
  163. if (newkeys & KEY_YES)
  164. {
  165. if (IsPlayerInAnyVehicle(playerid) && !IsVehiclePlane(GetPlayerVehicleID(playerid)))
  166. {
  167. new vehicleid;
  168. vehicleid = GetPlayerVehicleID(playerid);
  169. if (PlayerGear[playerid] == 5 || IsVehicleDrivingBackwards(vehicleid) || PlayerCGear[playerid] == 0)
  170. {
  171. SendClientMessage(playerid, COLOR_RED, "You can't gear up.");
  172. return 1;
  173. }
  174. else if (PlayerGear[playerid] == 1)
  175. {
  176. PlayerCGear[playerid] = 0;
  177. SetTimerEx("PlayerCTGear", TCangear, false, "i", playerid);
  178. PlayerGear[playerid]++;
  179. hideallgears(playerid);
  180. TextDrawShowForPlayer(playerid, Textdraw6); //Gear 2
  181.  
  182. return 1;
  183. }
  184. else if (PlayerGear[playerid] == 2)
  185. {
  186. PlayerCGear[playerid] = 0;
  187. SetTimerEx("PlayerCTGear", TCangear, false, "i", playerid);
  188. PlayerGear[playerid]++;
  189. hideallgears(playerid);
  190. TextDrawShowForPlayer(playerid, Textdraw7); //Gear 3
  191. return 1;
  192. }
  193. else if (PlayerGear[playerid] == 3)
  194. {
  195. PlayerCGear[playerid] = 0;
  196. SetTimerEx("PlayerCTGear", TCangear, false, "i", playerid);
  197. PlayerGear[playerid]++;
  198. hideallgears(playerid);
  199. TextDrawShowForPlayer(playerid, Textdraw8); //Gear 4
  200. return 1;
  201. }
  202. else if (PlayerGear[playerid] == 4)
  203. {
  204. PlayerCGear[playerid] = 0;
  205. SetTimerEx("PlayerCTGear", TCangear, false, "i", playerid);
  206. PlayerGear[playerid]++;
  207. hideallgears(playerid);
  208. TextDrawShowForPlayer(playerid, Textdraw9); //Gear 5
  209. AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  210. SetTimerEx("Addnos", 2000, false, "i", playerid);
  211. return 1;
  212. }
  213. }
  214. }
  215. if (newkeys & KEY_NO)
  216. {
  217.  
  218. if (IsPlayerInAnyVehicle(playerid) && !IsVehiclePlane(GetPlayerVehicleID(playerid)))
  219. {
  220. new vehicleid;
  221. vehicleid = GetPlayerVehicleID(playerid);
  222. if (PlayerGear[playerid] == 1 || IsVehicleDrivingBackwards(vehicleid) || PlayerCDGear[playerid] == 0)
  223. {
  224. SendClientMessage(playerid, COLOR_INDIGO, "You can't gear down.");
  225. return 1;
  226. }
  227. else if (PlayerGear[playerid] == 2)
  228. {
  229.  
  230. SetTimerEx("PlayerCDTGear", TDCangear, false, "i", playerid);
  231. PlayerCDGear[playerid] = 0;
  232. PlayerGear[playerid]--;
  233. hideallgears(playerid);
  234. TextDrawShowForPlayer(playerid, Textdraw5); //Gear 1
  235. return 1;
  236. }
  237. else if (PlayerGear[playerid] == 3)
  238. {
  239. SetTimerEx("PlayerCDTGear", TDCangear, false, "i", playerid);
  240. PlayerCDGear[playerid] = 0;
  241. PlayerGear[playerid]--;
  242. hideallgears(playerid);
  243. TextDrawShowForPlayer(playerid, Textdraw6); //Gear 2
  244. return 1;
  245. }
  246. else if (PlayerGear[playerid] == 4)
  247. {
  248.  
  249. SetTimerEx("PlayerCDTGear", TDCangear, false, "i", playerid);
  250. PlayerCDGear[playerid] = 0;
  251. PlayerGear[playerid]--;
  252. hideallgears(playerid);
  253. TextDrawShowForPlayer(playerid, Textdraw7); //Gear 3
  254. return 1;
  255. }
  256. else if (PlayerGear[playerid] == 5)
  257. {
  258. SetTimerEx("PlayerCDTGear", TDCangear, false, "i", playerid);
  259. PlayerCDGear[playerid] = 0;
  260. PlayerGear[playerid]--;
  261. hideallgears(playerid);
  262. TextDrawShowForPlayer(playerid, Textdraw8); //Gear 4
  263. return 1;
  264. }
  265.  
  266. }
  267. }
  268. return 1;
  269. }
  270. forward PlayerCTGear(playerid);
  271. public PlayerCTGear(playerid)
  272. {
  273. PlayerCGear[playerid] = 1;
  274. }
  275. forward PlayerCDTGear(playerid);
  276. public PlayerCDTGear(playerid)
  277. {
  278. PlayerCDGear[playerid] = 1;
  279. }
  280. forward Addnos(playerid);
  281. public Addnos(playerid)
  282. {
  283. RemoveVehicleComponent(GetPlayerVehicleID(playerid),1010);
  284. }
  285.  
  286. stock hideallgears(playerid)
  287. {
  288. TextDrawHideForPlayer(playerid, Textdraw5);
  289. TextDrawHideForPlayer(playerid, Textdraw6);
  290. TextDrawHideForPlayer(playerid, Textdraw7);
  291. TextDrawHideForPlayer(playerid, Textdraw8);
  292. TextDrawHideForPlayer(playerid, Textdraw9);
  293. }
  294. IsVehiclePlane(vehicleid)
  295. {
  296. switch(GetVehicleModel(vehicleid)) {
  297. case 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513, 548, 425, 417, 487, 488, 497, 563, 447, 469: return 1;
  298. }
  299. return 0;
  300. }
  301. public OnPlayerUpdate(playerid)
  302. {
  303.  
  304. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !IsVehiclePlane(GetPlayerVehicleID(playerid)))
  305. {
  306. if(PlayerGear[playerid] == 5)
  307. {
  308. return 1;
  309. }
  310. if(GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) > (PlayerGear[playerid] * 35))
  311. {
  312. if(!IsVehicleDrivingBackwards(GetPlayerVehicleID(playerid)))
  313. {
  314. if(PlayerGear[playerid] == -1) return ModifyVehicleSpeed(GetPlayerVehicleID(playerid), - GetVehicleSpeed(GetPlayerVehicleID(playerid), 0));
  315. }
  316. new newspeed;
  317. newspeed = GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) - (PlayerGear[playerid] * 35);
  318. ModifyVehicleSpeed(GetPlayerVehicleID(playerid), -newspeed);
  319. }
  320.  
  321. }
  322. return 1;
  323. }
  324. public OnPlayerStateChange(playerid, newstate, oldstate)
  325. {
  326. if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER && !IsVehiclePlane(GetPlayerVehicleID(playerid))) // Player entered a vehicle as a driver
  327. {
  328. PlayerCGear[playerid] = 1;
  329. PlayerCDGear[playerid] = 1;
  330. PlayerGear[playerid] = 1;
  331. TextDrawShowForPlayer(playerid, Textdraw0);
  332. TextDrawShowForPlayer(playerid, Textdraw1);
  333. TextDrawShowForPlayer(playerid, Textdraw2);
  334. TextDrawShowForPlayer(playerid, Textdraw3);
  335. TextDrawShowForPlayer(playerid, Textdraw5);
  336. }
  337. else if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER)
  338. {
  339. PlayerCGear[playerid] = 1;
  340. PlayerCDGear[playerid] = 1;
  341. PlayerGear[playerid] = 1;
  342. TextDrawHideForPlayer(playerid, Textdraw0);
  343. TextDrawHideForPlayer(playerid, Textdraw1);
  344. TextDrawHideForPlayer(playerid, Textdraw2);
  345. TextDrawHideForPlayer(playerid, Textdraw3);
  346. TextDrawHideForPlayer(playerid, Textdraw5);
  347. TextDrawHideForPlayer(playerid, Textdraw6);
  348. TextDrawHideForPlayer(playerid, Textdraw7);
  349. TextDrawHideForPlayer(playerid, Textdraw8);
  350. TextDrawHideForPlayer(playerid, Textdraw9);
  351. }
  352. return 1;
  353. }
  354.  
  355. stock ModifyVehicleSpeed(vehicleid,mph) //Miles Per Hour
  356. {
  357. new Float:Vx,Float:Vy,Float:Vz,Float:DV,Float:multiple;
  358. GetVehicleVelocity(vehicleid,Vx,Vy,Vz);
  359. DV = floatsqroot(Vx*Vx + Vy*Vy + Vz*Vz);
  360. if(DV > 0) //Directional velocity must be greater than 0 (display strobes if 0)
  361. {
  362. multiple = ((mph + DV * 100) / (DV * 100)); //Multiplying DV by 100 calculates speed in MPH
  363. return SetVehicleVelocity(vehicleid,Vx*multiple,Vy*multiple,Vz*multiple);
  364. }
  365. return 0;
  366. }
  367.  
  368. stock IsVehicleDrivingBackwards(vehicleid) // By Joker
  369. {
  370. new
  371. Float:Float[3]
  372. ;
  373. if(GetVehicleVelocity(vehicleid, Float[1], Float[2], Float[0]))
  374. {
  375. GetVehicleZAngle(vehicleid, Float[0]);
  376. if(Float[0] < 90)
  377. {
  378. if(Float[1] > 0 && Float[2] < 0) return true;
  379. }
  380. else if(Float[0] < 180)
  381. {
  382. if(Float[1] > 0 && Float[2] > 0) return true;
  383. }
  384. else if(Float[0] < 270)
  385. {
  386. if(Float[1] < 0 && Float[2] > 0) return true;
  387. }
  388. else if(Float[1] < 0 && Float[2] < 0) return true;
  389. }
  390. return false;
  391. }
  392.  
  393. stock GetVehicleSpeed(vehicleid, get3d)
  394. {
  395. new Float:x, Float:y, Float:z;
  396. GetVehicleVelocity(vehicleid, x, y, z);
  397. return SpeedCheck(x, y, z, 100.0, get3d);
  398. }
Advertisement
Add Comment
Please, Sign In to add comment