Advertisement
Guest User

Gear System ( First version )

a guest
Feb 18th, 2015
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.13 KB | None | 0 0
  1. // Credits : Golimad ( Wanna edit it, keep my name on it ;) )
  2. // Textdraws generated by Zamaroht's TextDraw Editor.
  3.  
  4. #include <a_samp>
  5. #include <zcmd>
  6.  
  7. //--------------------------------------------------------------------------------------------------------
  8. #define SpeedCheck(%0,%1,%2,%3,%4) floatround(floatsqroot(%4?(%0*%0+%1*%1+%2*%2):(%0*%0+%1*%1) ) *%3*1.6)
  9. // ^^ Made by someone ( I don't know who ) Thanks to him btw :D ! ----------------------------------------
  10.  
  11. // Variables: ----------------------------------------------------------------
  12. #define COLOR_RED 0xAA3333AA
  13. #define COLOR_INDIGO 0x4B00B0AA
  14. #define FILTERSCRIPT
  15. #define TCangear 5000 // 5000 ms ( 5 s ) that you need to wait before gearing up.
  16. #define TDCangear 2000 // 2000 ms ( 2 s ) that you need to wait before gearing down.
  17. #define GearOnBoats 1// 0 : enable gear on boats , 1 : disable it.
  18. #define GearOnPlanes 1// 0 : enable gear on planes , 1 : disable it.
  19. #define GearOnMotorbikes 1// 0 : enable gear on motorbikes , 1 : disable it.
  20. #define CanGearUp (PlayerGear[playerid] == 5 || IsVehicleDrivingBackwards(vehicleid) || PlayerCUGear[playerid] == false || IsVehiculeDiving(playerid) || IsVehicleFlipped(playerid) || IsVehiculeTilted(playerid))
  21. #define CanGearDown (PlayerGear[playerid] == 1 || IsVehicleDrivingBackwards(vehicleid) || PlayerCDGear[playerid] == false || IsVehiculeDiving(playerid) || IsVehicleFlipped(playerid)|| IsVehiculeTilted(playerid))
  22.  
  23. new Text:TextdrawGear0,Text:TextdrawGear1,Text:TextdrawGear2,Text:TextdrawGear3,Text:TextdrawGear5,
  24. Text:TextdrawGear6,Text:TextdrawGear7,Text:TextdrawGear8,Text:TextdrawGear9,Text:TextdrawCGear;
  25.  
  26. new PlayerGear[MAX_PLAYERS] = 1, bool:PlayerCUGear[MAX_PLAYERS] = true,
  27. bool:PlayerCDGear[MAX_PLAYERS] = true;
  28.  
  29. new bool:DebugGearSystem[MAX_PLAYERS] = false;
  30. new
  31. Debug_Diving[MAX_PLAYERS],
  32. Debug_Velocity[MAX_PLAYERS];
  33.  
  34. // Functions : ----------------------------------------------------------------
  35. public OnFilterScriptInit()
  36. {
  37. print("|----------------------------------------|");
  38. print("| Gear filterscript successfully Loaded. |");
  39. print("|>>> Enjoy. (By Golimad) <<<|");
  40. print("|----------------------------------------|");
  41. LoadAllTextdraws();
  42. return 1;
  43. }
  44.  
  45. public OnFilterScriptExit()
  46. {
  47. UnloadAllTextdraws();
  48. return 1;
  49. }
  50.  
  51. public OnPlayerDeath(playerid, killerid, reason)
  52. {
  53. HideAllTextdraws(playerid);
  54. return 1;
  55. }
  56.  
  57. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  58. {
  59.  
  60. if (newkeys & KEY_YES)
  61. {
  62. if (IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !IsVehicleHasNOGear(GetPlayerVehicleID(playerid)))
  63. {
  64. new vehicleid;
  65. vehicleid = GetPlayerVehicleID(playerid);
  66. if(CanGearUp)
  67. {
  68. DebugGearUp(playerid);
  69. TextDrawSetString(TextdrawCGear, "Cant Gear UP");
  70. TextDrawColor(TextdrawCGear, COLOR_RED);
  71. TextDrawShowForPlayer(playerid, TextdrawCGear);
  72. SetTimerEx("TextdrawCantGear", 2000, false, "i", playerid);
  73. return 1;
  74. }
  75. else if (PlayerGear[playerid] == 1)
  76. {
  77. GearUp(playerid);
  78. TextDrawShowForPlayer(playerid, TextdrawGear6); //Gear 2
  79.  
  80. return 1;
  81. }
  82. else if (PlayerGear[playerid] == 2)
  83. {
  84. GearUp(playerid);
  85. TextDrawShowForPlayer(playerid, TextdrawGear7); //Gear 3
  86. return 1;
  87. }
  88. else if (PlayerGear[playerid] == 3)
  89. {
  90. GearUp(playerid);
  91. TextDrawShowForPlayer(playerid, TextdrawGear8); //Gear 4
  92. return 1;
  93. }
  94. else if (PlayerGear[playerid] == 4)
  95. {
  96. GearUp(playerid);
  97. TextDrawShowForPlayer(playerid, TextdrawGear9); //Gear 5
  98. return 1;
  99. }
  100. }
  101. }
  102. if (newkeys & KEY_NO)
  103. {
  104.  
  105. if (IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !IsVehicleHasNOGear(GetPlayerVehicleID(playerid)))
  106. {
  107. new vehicleid;
  108. vehicleid = GetPlayerVehicleID(playerid);
  109. if (CanGearDown)
  110. {
  111. DebugGearDown(playerid);
  112. TextDrawSetString(TextdrawCGear, "Cant Gear Down");
  113. TextDrawColor(TextdrawCGear, COLOR_INDIGO);
  114. TextDrawShowForPlayer(playerid, TextdrawCGear);
  115. SetTimerEx("TextdrawCantGear", 2000, false, "i", playerid);
  116. return 1;
  117. }
  118. else if (PlayerGear[playerid] == 2)
  119. {
  120.  
  121. GearDown(playerid);
  122. TextDrawShowForPlayer(playerid, TextdrawGear5); //Gear 1
  123. return 1;
  124. }
  125. else if (PlayerGear[playerid] == 3)
  126. {
  127. GearDown(playerid);
  128. TextDrawShowForPlayer(playerid, TextdrawGear6); //Gear 2
  129. return 1;
  130. }
  131. else if (PlayerGear[playerid] == 4)
  132. {
  133. GearDown(playerid);
  134. TextDrawShowForPlayer(playerid, TextdrawGear7); //Gear 3
  135. return 1;
  136. }
  137. else if (PlayerGear[playerid] == 5)
  138. {
  139. GearDown(playerid);
  140. TextDrawShowForPlayer(playerid, TextdrawGear8); //Gear 4
  141. return 1;
  142. }
  143.  
  144. }
  145. }
  146. return 1;
  147. }
  148.  
  149.  
  150. public OnPlayerUpdate(playerid)
  151. {
  152. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !IsVehicleHasNOGear(GetPlayerVehicleID(playerid)))
  153. {
  154. if(PlayerGear[playerid] == 5 || IsVehiculeDiving(playerid) || IsVehiculeTilted(playerid) || IsVehiculeDiving(playerid))
  155. {
  156. return 1;
  157. }
  158.  
  159. if(GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) > (PlayerGear[playerid] * 35))
  160. {
  161. if(!IsVehicleDrivingBackwards(GetPlayerVehicleID(playerid)))
  162. {
  163. if(PlayerGear[playerid] == -1) return ModifyVehicleSpeed(GetPlayerVehicleID(playerid), - GetVehicleSpeed(GetPlayerVehicleID(playerid), 0));
  164. }
  165. new newspeed;
  166. newspeed = GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) - (PlayerGear[playerid] * 35);
  167. ModifyVehicleSpeed(GetPlayerVehicleID(playerid), -newspeed);
  168. }
  169. }
  170. return 1;
  171. }
  172. public OnPlayerStateChange(playerid, newstate, oldstate)
  173. {
  174. if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER && !IsVehicleHasNOGear(GetPlayerVehicleID(playerid))) // Player entered a vehicle as a driver
  175. {
  176. PlayerCUGear[playerid] = true;
  177. PlayerCDGear[playerid] = true;
  178. PlayerGear[playerid] = 1;
  179. TextDrawShowForPlayer(playerid, TextdrawGear0);
  180. TextDrawShowForPlayer(playerid, TextdrawGear1);
  181. TextDrawShowForPlayer(playerid, TextdrawGear2);
  182. TextDrawShowForPlayer(playerid, TextdrawGear3);
  183. TextDrawShowForPlayer(playerid, TextdrawGear5);
  184. }
  185. else if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER)
  186. {
  187. PlayerCUGear[playerid] = true;
  188. PlayerCDGear[playerid] = true;
  189. PlayerGear[playerid] = 1;
  190. TextDrawHideForPlayer(playerid, TextdrawGear0);
  191. TextDrawHideForPlayer(playerid, TextdrawGear1);
  192. TextDrawHideForPlayer(playerid, TextdrawGear2);
  193. TextDrawHideForPlayer(playerid, TextdrawGear3);
  194. TextDrawHideForPlayer(playerid, TextdrawGear5);
  195. TextDrawHideForPlayer(playerid, TextdrawGear6);
  196. TextDrawHideForPlayer(playerid, TextdrawGear7);
  197. TextDrawHideForPlayer(playerid, TextdrawGear8);
  198. TextDrawHideForPlayer(playerid, TextdrawGear9);
  199. TextDrawHideForPlayer(playerid, TextdrawCGear);
  200. }
  201. return 1;
  202. }
  203.  
  204.  
  205. // Textdraws :----------------------------------------------------------------
  206. LoadAllTextdraws()
  207. {
  208.  
  209. TextdrawGear0 = TextDrawCreate(567.000000, 280.000000, "1 2");
  210. TextDrawBackgroundColor(TextdrawGear0, 255);
  211. TextDrawFont(TextdrawGear0, 3);
  212. TextDrawLetterSize(TextdrawGear0, 0.500000, 2.200000);
  213. TextDrawColor(TextdrawGear0, -1);
  214. TextDrawSetOutline(TextdrawGear0, 1);
  215. TextDrawSetProportional(TextdrawGear0, 0);
  216. TextDrawUseBox(TextdrawGear0, 1);
  217. TextDrawBoxColor(TextdrawGear0, 255);
  218. TextDrawTextSize(TextdrawGear0, 620.000000, 0.000000);
  219.  
  220. TextdrawGear1 = TextDrawCreate(567.000000, 300.000000, "3 4");
  221. TextDrawBackgroundColor(TextdrawGear1, 255);
  222. TextDrawFont(TextdrawGear1, 3);
  223. TextDrawLetterSize(TextdrawGear1, 0.500000, 2.000000);
  224. TextDrawColor(TextdrawGear1, -1);
  225. TextDrawSetOutline(TextdrawGear1, 1);
  226. TextDrawSetProportional(TextdrawGear1, 0);
  227. TextDrawUseBox(TextdrawGear1, 1);
  228. TextDrawBoxColor(TextdrawGear1, 255);
  229. TextDrawTextSize(TextdrawGear1, 620.000000, 0.000000);
  230.  
  231. TextdrawGear2 = TextDrawCreate(567.000000, 318.000000, "~r~5");
  232. TextDrawBackgroundColor(TextdrawGear2, 255);
  233. TextDrawFont(TextdrawGear2, 3);
  234. TextDrawLetterSize(TextdrawGear2, 0.500000, 2.000000);
  235. TextDrawColor(TextdrawGear2, -1);
  236. TextDrawSetOutline(TextdrawGear2, 0);
  237. TextDrawSetProportional(TextdrawGear2, 0);
  238. TextDrawSetShadow(TextdrawGear2, 0);
  239. TextDrawUseBox(TextdrawGear2, 1);
  240. TextDrawBoxColor(TextdrawGear2, 255);
  241. TextDrawTextSize(TextdrawGear2, 592.000000, 0.000000);
  242.  
  243. TextdrawGear3 = TextDrawCreate(571.000000, 265.000000, "GEAR");
  244. TextDrawBackgroundColor(TextdrawGear3, 255);
  245. TextDrawFont(TextdrawGear3, 1);
  246. TextDrawLetterSize(TextdrawGear3, 0.500000, 1.000000);
  247. TextDrawColor(TextdrawGear3, -1);
  248. TextDrawSetOutline(TextdrawGear3, 1);
  249. TextDrawSetProportional(TextdrawGear3, 1);
  250.  
  251. TextdrawCGear = TextDrawCreate(597.000000, 343.000000, "Cant Gear");
  252. TextDrawBackgroundColor(TextdrawCGear, 255);
  253. TextDrawFont(TextdrawCGear, 1);
  254. TextDrawLetterSize(TextdrawCGear, 0.4000, 0.8500);
  255. TextDrawColor(TextdrawCGear, 65535);
  256. TextDrawSetOutline(TextdrawCGear, 1);
  257. TextDrawSetProportional(TextdrawCGear, 1);
  258. TextDrawUseBox(TextdrawCGear, 1);
  259. TextDrawBoxColor(TextdrawCGear, 0xFFFFFF00);
  260. TextDrawTextSize(TextdrawCGear, 100.000000, 80.000000);
  261. TextDrawAlignment(TextdrawCGear, 2);
  262.  
  263. TextdrawGear5 = TextDrawCreate(571.000000, 286.000000, "°");
  264. TextDrawBackgroundColor(TextdrawGear5, 255);
  265. TextDrawFont(TextdrawGear5, 1);
  266. TextDrawLetterSize(TextdrawGear5, 0.500000, 1.000000);
  267. TextDrawColor(TextdrawGear5, 65535);
  268. TextDrawSetOutline(TextdrawGear5, 0);
  269. TextDrawSetProportional(TextdrawGear5, 1);
  270. TextDrawSetShadow(TextdrawGear5, 1);
  271.  
  272. TextdrawGear6 = TextDrawCreate(589.500000, 286.000000, "°");
  273. TextDrawBackgroundColor(TextdrawGear6, 255);
  274. TextDrawFont(TextdrawGear6, 1);
  275. TextDrawLetterSize(TextdrawGear6, 0.500000, 1.000000);
  276. TextDrawColor(TextdrawGear6, 65535);
  277. TextDrawSetOutline(TextdrawGear6, 0);
  278. TextDrawSetProportional(TextdrawGear6, 1);
  279. TextDrawSetShadow(TextdrawGear6, 1);
  280.  
  281. TextdrawGear7 = TextDrawCreate(571.000000, 305.000000, "°");
  282. TextDrawBackgroundColor(TextdrawGear7, 255);
  283. TextDrawFont(TextdrawGear7, 1);
  284. TextDrawLetterSize(TextdrawGear7, 0.500000, 1.000000);
  285. TextDrawColor(TextdrawGear7, 65535);
  286. TextDrawSetOutline(TextdrawGear7, 0);
  287. TextDrawSetProportional(TextdrawGear7, 1);
  288. TextDrawSetShadow(TextdrawGear7, 1);
  289.  
  290. TextdrawGear8 = TextDrawCreate(589.500000, 305.000000, "°");
  291. TextDrawBackgroundColor(TextdrawGear8, 255);
  292. TextDrawFont(TextdrawGear8, 1);
  293. TextDrawLetterSize(TextdrawGear8, 0.500000, 1.000000);
  294. TextDrawColor(TextdrawGear8, 65535);
  295. TextDrawSetOutline(TextdrawGear8, 0);
  296. TextDrawSetProportional(TextdrawGear8, 1);
  297. TextDrawSetShadow(TextdrawGear8, 1);
  298.  
  299. TextdrawGear9 = TextDrawCreate(571.000000, 323.000000, "°");
  300. TextDrawBackgroundColor(TextdrawGear9, 255);
  301. TextDrawFont(TextdrawGear9, 1);
  302. TextDrawLetterSize(TextdrawGear9, 0.500000, 1.000000);
  303. TextDrawColor(TextdrawGear9, 65535);
  304. TextDrawSetOutline(TextdrawGear9, 0);
  305. TextDrawSetProportional(TextdrawGear9, 1);
  306. TextDrawSetShadow(TextdrawGear9, 1);
  307. }
  308. UnloadAllTextdraws()
  309. {
  310. TextDrawHideForAll(TextdrawGear0);
  311. TextDrawDestroy(TextdrawGear0);
  312. TextDrawHideForAll(TextdrawGear1);
  313. TextDrawDestroy(TextdrawGear1);
  314. TextDrawHideForAll(TextdrawGear2);
  315. TextDrawDestroy(TextdrawGear2);
  316. TextDrawHideForAll(TextdrawGear3);
  317. TextDrawDestroy(TextdrawGear3);
  318. TextDrawHideForAll(TextdrawGear5);
  319. TextDrawDestroy(TextdrawGear5);
  320. TextDrawHideForAll(TextdrawGear6);
  321. TextDrawDestroy(TextdrawGear6);
  322. TextDrawHideForAll(TextdrawGear7);
  323. TextDrawDestroy(TextdrawGear7);
  324. TextDrawHideForAll(TextdrawGear8);
  325. TextDrawDestroy(TextdrawGear8);
  326. TextDrawHideForAll(TextdrawGear9);
  327. TextDrawDestroy(TextdrawGear9);
  328. TextDrawHideForAll(TextdrawCGear);
  329. TextDrawDestroy(TextdrawCGear);
  330.  
  331. }
  332. HideAllTextdraws(playerid)
  333. {
  334. TextDrawHideForPlayer(playerid, TextdrawCGear);
  335. TextDrawHideForPlayer(playerid, TextdrawGear0);
  336. TextDrawHideForPlayer(playerid, TextdrawGear1);
  337. TextDrawHideForPlayer(playerid, TextdrawGear2);
  338. TextDrawHideForPlayer(playerid, TextdrawGear3);
  339. TextDrawHideForPlayer(playerid, TextdrawGear5);
  340. TextDrawHideForPlayer(playerid, TextdrawGear6);
  341. TextDrawHideForPlayer(playerid, TextdrawGear7);
  342. TextDrawHideForPlayer(playerid, TextdrawGear8);
  343. TextDrawHideForPlayer(playerid, TextdrawGear9);
  344. }
  345. hideallgears(playerid)
  346. {
  347. TextDrawHideForPlayer(playerid, TextdrawCGear);
  348. TextDrawHideForPlayer(playerid, TextdrawGear5);
  349. TextDrawHideForPlayer(playerid, TextdrawGear6);
  350. TextDrawHideForPlayer(playerid, TextdrawGear7);
  351. TextDrawHideForPlayer(playerid, TextdrawGear8);
  352. TextDrawHideForPlayer(playerid, TextdrawGear9);
  353. }
  354. // GEAR UP / DOWN ) : -------------------------------------------------
  355. GearUp(playerid){
  356. PlayerCUGear[playerid] = false;
  357. SetTimerEx("PlayerCUTGear", TCangear, false, "i", playerid);
  358. PlayerGear[playerid]++;
  359. hideallgears(playerid);
  360. }
  361. GearDown(playerid){
  362. PlayerCDGear[playerid] = false;
  363. SetTimerEx("PlayerCDTGear", TDCangear, false, "i", playerid);
  364. PlayerGear[playerid]--;
  365. hideallgears(playerid);
  366. }
  367. // Checking vehicle type ( Plane, helicopter, boat, ... ) --------------
  368.  
  369. IsVehicleFlipped(playerid)
  370. {
  371. new Float:Quat[2];
  372. GetVehicleRotationQuat(GetPlayerVehicleID(playerid), Quat[0], Quat[1], Quat[0], Quat[0]);
  373. return (Quat[1] >= 0.60 || Quat[1] <= -0.60);
  374. }
  375. IsVehiculeTilted(playerid)
  376. {
  377. new Float:Quat[2];
  378. GetVehicleRotationQuat(GetPlayerVehicleID(playerid), Quat[0], Quat[0], Quat[1], Quat[0]);
  379. return (Quat[1] >= 0.20 || Quat[1] <= -0.20);
  380. }
  381. IsVehicleHasNOGear(vehicleid)
  382. {
  383. switch(GetVehicleModel(vehicleid)) {
  384. //Planes:
  385. case 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513, 548, 425,
  386. 417, 487, 488, 497, 563, 447, 469: return GearOnPlanes;
  387. //Motorbikes:
  388. case 581,421,462,463,522,461,448,586,468,521,471,523: return GearOnMotorbikes;
  389. //Bikes:
  390. case 509,481,510: return 1;
  391. //Boats:
  392. case 472,473,595,493,430,453,484,446,452,454: return GearOnBoats;
  393. }
  394. return 0;
  395. }
  396. IsVehiculeDiving(playerid)
  397. {
  398. new Float:Float[3];
  399. GetVehicleVelocity(GetPlayerVehicleID(playerid), Float[0], Float[1], Float[2]);
  400. if(Float[2]<0.2 && Float[2]>-0.2)
  401. {
  402. return false;
  403. }
  404. return true;
  405. }
  406. stock ModifyVehicleSpeed(vehicleid,mph) //Miles Per Hour
  407. {
  408. new Float:Vx,Float:Vy,Float:Vz,Float:DV,Float:multiple;
  409. GetVehicleVelocity(vehicleid,Vx,Vy,Vz);
  410. DV = floatsqroot(Vx*Vx + Vy*Vy + Vz*Vz);
  411. if(DV > 0) //Directional velocity must be greater than 0 (display strobes if 0)
  412. {
  413. multiple = ((mph + DV * 100) / (DV * 100)); //Multiplying DV by 100 calculates speed in MPH
  414. return SetVehicleVelocity(vehicleid,Vx*multiple,Vy*multiple,Vz*multiple);
  415. }
  416. return 0;
  417. }
  418.  
  419. stock IsVehicleDrivingBackwards(vehicleid) // Thanks to Joker ( SA-MP forums ) for the driving backwards function.
  420. {
  421. new
  422. Float:Float[3]
  423. ;
  424. if(GetVehicleVelocity(vehicleid, Float[1], Float[2], Float[0]))
  425. {
  426. GetVehicleZAngle(vehicleid, Float[0]);
  427. if(Float[0] < 90)
  428. {
  429. if(Float[1] > 0 && Float[2] < 0) return true;
  430. }
  431. else if(Float[0] < 180)
  432. {
  433. if(Float[1] > 0 && Float[2] > 0) return true;
  434. }
  435. else if(Float[0] < 270)
  436. {
  437. if(Float[1] < 0 && Float[2] > 0) return true;
  438. }
  439. else if(Float[1] < 0 && Float[2] < 0) return true;
  440. }
  441. return false;
  442. }
  443.  
  444. stock GetVehicleSpeed(vehicleid, get3d)
  445. {
  446. new Float:x, Float:y, Float:z;
  447. GetVehicleVelocity(vehicleid, x, y, z);
  448. return SpeedCheck(x, y, z, 100.0, get3d);
  449. }
  450. // Timers : -------------------------------------------------------------
  451. forward PlayerCUTGear(playerid);
  452. public PlayerCUTGear(playerid)
  453. {
  454. PlayerCUGear[playerid] = true;
  455. }
  456. forward PlayerCDTGear(playerid);
  457. public PlayerCDTGear(playerid)
  458. {
  459. PlayerCDGear[playerid] = true;
  460. }
  461. forward TextdrawCantGear(playerid);
  462. public TextdrawCantGear(playerid)
  463. {
  464. TextDrawHideForPlayer(playerid, TextdrawCGear);
  465. }
  466.  
  467. // DEBUGGING : ----------------------------------------------------------------------
  468. CMD:debuggear(playerid, params[])
  469. {
  470. if(IsPlayerAdmin(playerid))
  471. {
  472. if(DebugGearSystem[playerid]==true)
  473. {
  474. DebugGearSystem[playerid]=false;SendClientMessage(playerid, COLOR_RED, "DEBUG : Gear System Debug mode OFF.");
  475. KillTimer(Debug_Velocity[playerid]);
  476. KillTimer(Debug_Diving[playerid]);
  477. }
  478. else
  479. {
  480. DebugGearSystem[playerid]=true;SendClientMessage(playerid, COLOR_INDIGO, "DEBUG : Gear System Debug mode ON.");
  481. Debug_Velocity[playerid] = SetTimerEx("DebugVelosity", 1000, true, "i", playerid);
  482. Debug_Diving[playerid] = SetTimerEx("DebugVehicleDiving", 400, true, "i", playerid);
  483. }
  484. }
  485. return 1;
  486. }
  487. CMD:debugjump(playerid, params[])
  488. {
  489. if(DebugGearSystem[playerid]==true){
  490. new Float:x, Float:y, Float:z;
  491. GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
  492. SetVehicleVelocity(GetPlayerVehicleID(playerid) ,x ,y ,z+0.3);
  493. }
  494. else{SendClientMessage(playerid, COLOR_RED, "DEBUG : Gear System Debug mode is OFF.");}
  495. return 1;
  496. }
  497. DebugGearUp(playerid)
  498. {
  499. if(DebugGearSystem[playerid]==true)
  500. {
  501. SendClientMessage(playerid, COLOR_RED, "DEBUG : You can't gear up.");
  502. }
  503. }
  504. DebugGearDown(playerid)
  505. {
  506. if(DebugGearSystem[playerid]==true)
  507. {
  508. SendClientMessage(playerid, COLOR_INDIGO, "DEBUG : You can't gear down.");
  509. }
  510. }
  511. public OnPlayerConnect(playerid)
  512. {
  513. DebugGearSystem[playerid]=false;
  514. return 1;
  515. }
  516.  
  517. forward DebugVehicleDiving(playerid);
  518. public DebugVehicleDiving(playerid)
  519. {
  520. if(IsVehiculeDiving(playerid) && DebugGearSystem[playerid]==true)
  521. {
  522. SendClientMessage(playerid, COLOR_RED, "DEBUG : Car is diving!");
  523. }
  524. }
  525.  
  526. forward DebugVelosity(playerid);
  527. public DebugVelosity(playerid)
  528. {
  529. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && DebugGearSystem[playerid]==true)
  530. {
  531. new Float:Quat[4];
  532. new Float:Velocity[4];
  533. new str[256];
  534. new iVehicule, Float:FloatAngle;
  535. iVehicule = GetPlayerVehicleID(playerid);
  536. GetVehicleZAngle(iVehicule, FloatAngle);
  537. GetVehicleRotationQuat(GetPlayerVehicleID(playerid), Quat[0], Quat[1], Quat[2], Quat[3]);
  538. Quat[0]=Quat[0]*360;
  539. Quat[1]=Quat[1]*360;
  540. Quat[2]=Quat[2]*360;
  541. Quat[3]=Quat[3]*360;
  542. format(str,sizeof(str),"DEBUG : Anlge W : %f , X : %f , Y : %f, Z: %f, ANGLE : %f", Quat[0],Quat[1],Quat[2],Quat[3], FloatAngle);
  543. SendClientMessage(playerid, COLOR_RED, str);
  544. if(IsVehiculeTilted(playerid))
  545. {
  546. SendClientMessage(playerid, COLOR_RED, "DEBUG : Car is Tilted");
  547. }
  548. GetVehicleZAngle(GetPlayerVehicleID(playerid), Velocity[3]);
  549. GetVehicleVelocity(GetPlayerVehicleID(playerid),Velocity[0],Velocity[1],Velocity[2]);
  550. format(str,sizeof(str),"DEBUG : Vehicle Velocity X : %f , Y : %f , Z : %f, Angle: %f", Velocity[0],Velocity[1],Velocity[2],Velocity[3]);
  551. //SendClientMessage(playerid, COLOR_RED, str);
  552. }
  553. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement