Advertisement
Guest User

Untitled

a guest
Jun 13th, 2013
1,236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.42 KB | None | 0 0
  1. /*
  2.  
  3. Speedo and Gear changes by
  4. V1ceC1ty
  5.  
  6.  
  7. Speed limiter provided by Slice
  8. http://forum.sa-mp.com/showthread.php?t=179089
  9.  
  10.  
  11. */
  12.  
  13. #include <a_samp>
  14.  
  15. #define PRESSED(%0) \
  16. (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  17.  
  18. //ONLY CHANGE THESE IF YOU KNOW WHAT YOU'RE DOING ~ They are already at recommended values
  19.  
  20. #define GEAR1_SPEED 20 //Speed player must reach in order to change to gear 2
  21. #define GEAR2_SPEED 40 //Speed player must reach in order to change to gear 3
  22. #define GEAR3_SPEED 60 //Speed player must reach in order to change to gear 4
  23. #define GEAR4_SPEED 75 //Speed player must reach in order to change to gear 5
  24. #define GEAR5_SPEED 95 //Speed player must reach in order to change to gear 6
  25.  
  26. #define GEAR_UP KEY_YES
  27. #define GEAR_DOWN KEY_NO
  28.  
  29. //ONLY CHANGE THESE IF YOU KNOW WHAT YOU'RE DOING ~ They are already at recommended values
  30.  
  31. new bool:DefaultGearDamage = false; //SET THIS TO TRUE FOR MORE REALISTIC GEAR CONTROL ~ WILL DAMAMGE VEHICLES IN WRONG GEARS.
  32. #define DAMAGE_COUNT 10 //How many times the player can damage the gears before the engine is damaged
  33.  
  34. new Text:Circle[MAX_PLAYERS];
  35. new Text:Disc1[MAX_PLAYERS];
  36. new Text:Disc2[MAX_PLAYERS];
  37. new Text:Disc3[MAX_PLAYERS];
  38. new Text:Speed[MAX_PLAYERS];
  39. new Text:Gear[MAX_PLAYERS];
  40. new Text:Disc4[MAX_PLAYERS];
  41. new Text:StartEnd[MAX_PLAYERS];
  42. new Text:Rev0[MAX_PLAYERS];
  43. new Text:Rev2[MAX_PLAYERS];
  44. new Text:Rev4[MAX_PLAYERS];
  45. new Text:Rev6[MAX_PLAYERS];
  46. new Text:Rev8[MAX_PLAYERS];
  47.  
  48. new vGear[MAX_PLAYERS] = 1;
  49. new GearDamage[MAX_VEHICLES];
  50. new KillSpeed, KillCheck;
  51.  
  52. forward SetPlayerSpeedCap( playerid, Float:value );
  53. forward DisablePlayerSpeedCap( playerid );
  54.  
  55. new
  56. Float:g_fSpeedCap[ MAX_PLAYERS ] = { 0.0, ... }
  57. ;
  58.  
  59. public OnPlayerConnect(playerid)
  60. {
  61. Circle[playerid] = TextDrawCreate(520.000000, 360.000000, "ld_beat:cring");
  62. TextDrawBackgroundColor(Circle[playerid], 255);
  63. TextDrawFont(Circle[playerid], 4);
  64. TextDrawLetterSize(Circle[playerid], 0.500000, 1.000000);
  65. TextDrawColor(Circle[playerid], -1);
  66. TextDrawSetOutline(Circle[playerid], 0);
  67. TextDrawSetProportional(Circle[playerid], 1);
  68. TextDrawSetShadow(Circle[playerid], 1);
  69. TextDrawUseBox(Circle[playerid], 1);
  70. TextDrawBoxColor(Circle[playerid], 255);
  71. TextDrawTextSize(Circle[playerid], 81.000000, 80.000000);
  72.  
  73. Disc1[playerid] = TextDrawCreate(620.000000, 350.000000, "hud:radardisc");
  74. TextDrawBackgroundColor(Disc1[playerid], 255);
  75. TextDrawFont(Disc1[playerid], 4);
  76. TextDrawLetterSize(Disc1[playerid], 0.500000, 1.000000);
  77. TextDrawColor(Disc1[playerid], -1);
  78. TextDrawSetOutline(Disc1[playerid], 0);
  79. TextDrawSetProportional(Disc1[playerid], 1);
  80. TextDrawSetShadow(Disc1[playerid], 1);
  81. TextDrawUseBox(Disc1[playerid], 1);
  82. TextDrawBoxColor(Disc1[playerid], 255);
  83. TextDrawTextSize(Disc1[playerid], -60.000000, 60.000000);
  84.  
  85. Disc2[playerid] = TextDrawCreate(620.000000, 470.000000, "hud:radardisc");
  86. TextDrawBackgroundColor(Disc2[playerid], 255);
  87. TextDrawFont(Disc2[playerid], 4);
  88. TextDrawLetterSize(Disc2[playerid], 0.500000, 1.000000);
  89. TextDrawColor(Disc2[playerid], -1);
  90. TextDrawSetOutline(Disc2[playerid], 0);
  91. TextDrawSetProportional(Disc2[playerid], 1);
  92. TextDrawSetShadow(Disc2[playerid], 1);
  93. TextDrawUseBox(Disc2[playerid], 1);
  94. TextDrawBoxColor(Disc2[playerid], 255);
  95. TextDrawTextSize(Disc2[playerid], -60.000000, -60.000000);
  96.  
  97. Disc3[playerid] = TextDrawCreate(500.000000, 470.000000, "hud:radardisc");
  98. TextDrawBackgroundColor(Disc3[playerid], 255);
  99. TextDrawFont(Disc3[playerid], 4);
  100. TextDrawLetterSize(Disc3[playerid], 0.500000, 1.000000);
  101. TextDrawColor(Disc3[playerid], -1);
  102. TextDrawSetOutline(Disc3[playerid], 0);
  103. TextDrawSetProportional(Disc3[playerid], 1);
  104. TextDrawSetShadow(Disc3[playerid], 1);
  105. TextDrawUseBox(Disc3[playerid], 1);
  106. TextDrawBoxColor(Disc3[playerid], 255);
  107. TextDrawTextSize(Disc3[playerid], 60.000000, -60.000000);
  108.  
  109. Disc4[playerid] = TextDrawCreate(500.000000, 350.000000, "hud:radardisc");
  110. TextDrawBackgroundColor(Disc4[playerid], 255);
  111. TextDrawFont(Disc4[playerid], 4);
  112. TextDrawLetterSize(Disc4[playerid], 0.500000, 1.000000);
  113. TextDrawColor(Disc4[playerid], -1);
  114. TextDrawSetOutline(Disc4[playerid], 0);
  115. TextDrawSetProportional(Disc4[playerid], 1);
  116. TextDrawSetShadow(Disc4[playerid], 1);
  117. TextDrawUseBox(Disc4[playerid], 1);
  118. TextDrawBoxColor(Disc4[playerid], 255);
  119. TextDrawTextSize(Disc4[playerid], 60.000000, 60.000000);
  120.  
  121. Speed[playerid] = TextDrawCreate(560.000000, 419.000000, "---");
  122. TextDrawAlignment(Speed[playerid], 2);
  123. TextDrawBackgroundColor(Speed[playerid], 255);
  124. TextDrawFont(Speed[playerid], 2);
  125. TextDrawLetterSize(Speed[playerid], 0.600000, 2.000000);
  126. TextDrawColor(Speed[playerid], -1);
  127. TextDrawSetOutline(Speed[playerid], 1);
  128. TextDrawSetProportional(Speed[playerid], 1);
  129. TextDrawUseBox(Speed[playerid], 1);
  130. TextDrawBoxColor(Speed[playerid], -869072784);
  131. TextDrawTextSize(Speed[playerid], 0.000000, -56.000000);
  132.  
  133. Gear[playerid] = TextDrawCreate(560.000000, 379.000000, "0");
  134. TextDrawAlignment(Gear[playerid], 2);
  135. TextDrawBackgroundColor(Gear[playerid], 255);
  136. TextDrawFont(Gear[playerid], 2);
  137. TextDrawLetterSize(Gear[playerid], 0.699999, 4.000000);
  138. TextDrawColor(Gear[playerid], -1);
  139. TextDrawSetOutline(Gear[playerid], 1);
  140. TextDrawSetProportional(Gear[playerid], 1);
  141.  
  142. StartEnd[playerid] = TextDrawCreate(559.000000, 430.000000, "~g~/ ~r~\\");
  143. TextDrawAlignment(StartEnd[playerid], 2);
  144. TextDrawBackgroundColor(StartEnd[playerid], 255);
  145. TextDrawFont(StartEnd[playerid], 1);
  146. TextDrawLetterSize(StartEnd[playerid], 0.600000, 2.000000);
  147. TextDrawColor(StartEnd[playerid], -1);
  148. TextDrawSetOutline(StartEnd[playerid], 0);
  149. TextDrawSetProportional(StartEnd[playerid], 1);
  150. TextDrawSetShadow(StartEnd[playerid], 1);
  151.  
  152. Rev0[playerid] = TextDrawCreate(505.000000, 430.000000, "0");
  153. TextDrawAlignment(Rev0[playerid], 2);
  154. TextDrawBackgroundColor(Rev0[playerid], 255);
  155. TextDrawFont(Rev0[playerid], 2);
  156. TextDrawLetterSize(Rev0[playerid], 0.500000, 1.000000);
  157. TextDrawColor(Rev0[playerid], -1);
  158. TextDrawSetOutline(Rev0[playerid], 1);
  159. TextDrawSetProportional(Rev0[playerid], 1);
  160.  
  161. Rev2[playerid] = TextDrawCreate(500.000000, 385.000000, "2");
  162. TextDrawAlignment(Rev2[playerid], 2);
  163. TextDrawBackgroundColor(Rev2[playerid], 255);
  164. TextDrawFont(Rev2[playerid], 2);
  165. TextDrawLetterSize(Rev2[playerid], 0.500000, 1.000000);
  166. TextDrawColor(Rev2[playerid], -1);
  167. TextDrawSetOutline(Rev2[playerid], 1);
  168. TextDrawSetProportional(Rev2[playerid], 1);
  169.  
  170. Rev4[playerid] = TextDrawCreate(531.000000, 349.000000, "~y~4");
  171. TextDrawAlignment(Rev4[playerid], 2);
  172. TextDrawBackgroundColor(Rev4[playerid], 255);
  173. TextDrawFont(Rev4[playerid], 2);
  174. TextDrawLetterSize(Rev4[playerid], 0.500000, 1.000000);
  175. TextDrawColor(Rev4[playerid], -1);
  176. TextDrawSetOutline(Rev4[playerid], 1);
  177. TextDrawSetProportional(Rev4[playerid], 1);
  178.  
  179. Rev6[playerid] = TextDrawCreate(592.000000, 350.000000, "~r~~h~~h~~h~6");
  180. TextDrawAlignment(Rev6[playerid], 2);
  181. TextDrawBackgroundColor(Rev6[playerid], 255);
  182. TextDrawFont(Rev6[playerid], 2);
  183. TextDrawLetterSize(Rev6[playerid], 0.500000, 1.000000);
  184. TextDrawColor(Rev6[playerid], -1);
  185. TextDrawSetOutline(Rev6[playerid], 1);
  186. TextDrawSetProportional(Rev6[playerid], 1);
  187.  
  188. Rev8[playerid] = TextDrawCreate(622.000000, 385.000000, "~r~8");
  189. TextDrawAlignment(Rev8[playerid], 2);
  190. TextDrawBackgroundColor(Rev8[playerid], 255);
  191. TextDrawFont(Rev8[playerid], 2);
  192. TextDrawLetterSize(Rev8[playerid], 0.500000, 1.000000);
  193. TextDrawColor(Rev8[playerid], -1);
  194. TextDrawSetOutline(Rev8[playerid], 1);
  195. TextDrawSetProportional(Rev8[playerid], 1);
  196. return 1;
  197. }
  198.  
  199. public OnPlayerUpdate( playerid )
  200. {
  201. static
  202. s_iVehicle
  203. ;
  204.  
  205. if ( g_fSpeedCap[ playerid ] != 0.0 && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
  206. {
  207. s_iVehicle = GetPlayerVehicleID( playerid );
  208.  
  209. if ( s_iVehicle )
  210. {
  211. static
  212. Float:s_fX,
  213. Float:s_fY,
  214. Float:s_fZ,
  215. Float:s_fVX,
  216. Float:s_fVY,
  217. Float:s_fVZ
  218. ;
  219.  
  220. GetVehiclePos( s_iVehicle, s_fX, s_fY, s_fZ );
  221. GetVehicleVelocity( s_iVehicle, s_fVX, s_fVY, s_fVZ );
  222.  
  223. if ( !IsPlayerInRangeOfPoint( playerid, g_fSpeedCap[ playerid ] + 0.05, s_fX + s_fVX, s_fY + s_fVY, s_fZ + s_fVZ ) )
  224. {
  225. static
  226. Float:s_fLength
  227. ;
  228.  
  229. s_fLength = floatsqroot( ( s_fVX * s_fVX ) + ( s_fVY * s_fVY ) + ( s_fVZ * s_fVZ ) );
  230.  
  231. s_fVX = ( s_fVX / s_fLength ) * g_fSpeedCap[ playerid ];
  232. s_fVY = ( s_fVY / s_fLength ) * g_fSpeedCap[ playerid ];
  233. s_fVZ = ( s_fVZ / s_fLength ) * g_fSpeedCap[ playerid ];
  234.  
  235. if ( s_iVehicle )
  236. SetVehicleVelocity( s_iVehicle, s_fVX, s_fVY, s_fVZ );
  237. else
  238. SetPlayerVelocity( playerid, s_fVX, s_fVY, s_fVZ );
  239. }
  240. }
  241. }
  242.  
  243. return 1;
  244. }
  245.  
  246. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  247. {
  248. new vehicle = GetPlayerVehicleID(playerid);
  249. new engine, lights, alarm, doors, bonnet, boot, objective;
  250. if(GetPlayerState(playerid) == 2) //Driver
  251. {
  252. if(PRESSED(GEAR_UP))
  253. {
  254. if(vGear[playerid] == 0 && GetPlayerSpeed(playerid) == 0)
  255. {
  256. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  257. SetVehicleParamsEx(vehicle, 1, lights, alarm, doors, bonnet, boot, 0);
  258.  
  259. vGear[playerid] = 1;
  260. SetPlayerSpeedCap(playerid, 0.1);
  261. TextDrawSetString(Gear[playerid], "~r~1");
  262. KillSpeed = SetTimerEx("SpeedCheck", 2000, 1, "i", playerid);
  263. }
  264. else if(vGear[playerid] == 1 && GetPlayerSpeed(playerid) >= GEAR1_SPEED )
  265. {
  266. vGear[playerid] = 2;
  267. SetPlayerSpeedCap(playerid, 0.2);
  268. TextDrawSetString(Gear[playerid], "~r~2");
  269. }
  270. else if(vGear[playerid] == 2 && GetPlayerSpeed(playerid) >= GEAR2_SPEED )
  271. {
  272. vGear[playerid] = 3;
  273. SetPlayerSpeedCap(playerid, 0.3);
  274. TextDrawSetString(Gear[playerid], "~r~3");
  275. }
  276. else if(vGear[playerid] == 3 && GetPlayerSpeed(playerid) >= GEAR3_SPEED )
  277. {
  278. vGear[playerid] = 4;
  279. SetPlayerSpeedCap(playerid, 0.4);
  280. TextDrawSetString(Gear[playerid], "~r~4");
  281. }
  282. else if(vGear[playerid] == 4 && GetPlayerSpeed(playerid) >= GEAR4_SPEED )
  283. {
  284. vGear[playerid] = 5;
  285. SetPlayerSpeedCap(playerid, 0.5);
  286. TextDrawSetString(Gear[playerid], "~r~5");
  287. }
  288. else if(vGear[playerid] == 5 && GetPlayerSpeed(playerid) >= GEAR5_SPEED )
  289. {
  290. vGear[playerid] = 6;
  291. SetPlayerSpeedCap(playerid, 6.0);
  292. TextDrawSetString(Gear[playerid], "~r~6");
  293. }
  294. }
  295. else if(PRESSED(GEAR_DOWN))
  296. {
  297. if(vGear[playerid] == 1)
  298. {
  299. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  300. SetVehicleParamsEx(vehicle, 0, lights, alarm, doors, bonnet, boot, 0);
  301.  
  302. vGear[playerid] = 0;
  303. KillTimer(KillSpeed);
  304. TextDrawSetString(Gear[playerid], "~r~-");
  305. }
  306. else if(vGear[playerid] == 2)
  307. {
  308. vGear[playerid] = 1;
  309. SetPlayerSpeedCap(playerid, 0.1);
  310. TextDrawSetString(Gear[playerid], "~r~1");
  311. }
  312. else if(vGear[playerid] == 3)
  313. {
  314. vGear[playerid] = 2;
  315. SetPlayerSpeedCap(playerid, 0.2);
  316. TextDrawSetString(Gear[playerid], "~r~2");
  317. }
  318. else if(vGear[playerid] == 4)
  319. {
  320. vGear[playerid] = 3;
  321. SetPlayerSpeedCap(playerid, 0.3);
  322. TextDrawSetString(Gear[playerid], "~r~3");
  323. }
  324. else if(vGear[playerid] == 5)
  325. {
  326. vGear[playerid] = 4;
  327. SetPlayerSpeedCap(playerid, 0.4);
  328. TextDrawSetString(Gear[playerid], "~r~4");
  329. }
  330. else if(vGear[playerid] == 6)
  331. {
  332. vGear[playerid] = 5;
  333. SetPlayerSpeedCap(playerid, 0.5);
  334. TextDrawSetString(Gear[playerid], "~r~5");
  335. }
  336. else if(vGear[playerid] == 7)
  337. {
  338. vGear[playerid] = 6;
  339. SetPlayerSpeedCap(playerid, 0.6);
  340. TextDrawSetString(Gear[playerid], "~r~6");
  341. }
  342. }
  343. }
  344. return 1;
  345. }
  346.  
  347. public OnVehicleSpawn(vehicleid)
  348. {
  349. new engine, lights, alarm, doors, bonnet, boot, objective;
  350. GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  351. SetVehicleParamsEx(vehicleid, 0, lights, alarm, doors, bonnet, boot, 0);
  352. return 1;
  353. }
  354.  
  355. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  356. {
  357. new vehicle = GetPlayerVehicleID(playerid);
  358. new engine, lights, alarm, doors, bonnet, boot, objective;
  359. GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  360. SetVehicleParamsEx(vehicle, 0, lights, alarm, doors, bonnet, boot, 0);
  361. vGear[playerid] = 0;
  362. TextDrawSetString(Gear[playerid], "~r~-");
  363. SetPlayerSpeedCap(playerid, 0.0000000001);
  364.  
  365. ShowSpeedo(playerid);
  366. KillSpeed = SetTimerEx("SpeedCheck", 1000, 1, "i", playerid);
  367.  
  368. if(DefaultGearDamage == true) {
  369. KillCheck = SetTimerEx("GearCheck", 2500, 1, "i", playerid);
  370. }
  371. return 1;
  372. }
  373.  
  374. public OnPlayerExitVehicle(playerid, vehicleid)
  375. {
  376. HideSpeedo(playerid);
  377. KillTimer(KillSpeed);
  378. KillTimer(KillCheck);
  379. return 1;
  380. }
  381.  
  382. forward SpeedCheck(playerid);
  383. public SpeedCheck(playerid)
  384. {
  385. new speedstr[32], vSpeed;
  386. vSpeed = GetPlayerSpeed(playerid);
  387. format(speedstr, sizeof(speedstr), "%i", vSpeed);
  388. TextDrawSetString(Speed[playerid], speedstr);
  389.  
  390. if(vGear[playerid] == 0)
  391. {
  392. if(GetPlayerSpeed(playerid) == 0) TextDrawSetString(Gear[playerid], "~g~-");
  393. else if(GetPlayerSpeed(playerid) > 0) TextDrawSetString(Gear[playerid], "~r~-");
  394. }
  395. else if(vGear[playerid] == 1)
  396. {
  397. if(GetPlayerSpeed(playerid) >= GEAR1_SPEED ) TextDrawSetString(Gear[playerid], "~g~1"); //If in gear 1, allow gear change 2
  398. else if(GetPlayerSpeed(playerid) < GEAR1_SPEED ) TextDrawSetString(Gear[playerid], "~r~1");
  399. }
  400. else if(vGear[playerid] == 2)
  401. {
  402. if(GetPlayerSpeed(playerid) >= GEAR2_SPEED ) TextDrawSetString(Gear[playerid], "~g~2"); //If in gear 2, allow gear change 3
  403. else if(GetPlayerSpeed(playerid) < GEAR2_SPEED ) TextDrawSetString(Gear[playerid], "~r~2");
  404. }
  405. else if(vGear[playerid] == 3)
  406. {
  407. if(GetPlayerSpeed(playerid) >= GEAR3_SPEED ) TextDrawSetString(Gear[playerid], "~g~3"); //If in gear 3, allow gear change 4
  408. else if(GetPlayerSpeed(playerid) < GEAR3_SPEED ) TextDrawSetString(Gear[playerid], "~r~3");
  409. }
  410. else if(vGear[playerid] == 4)
  411. {
  412. if(GetPlayerSpeed(playerid) >= GEAR4_SPEED ) TextDrawSetString(Gear[playerid], "~g~4"); //If in gear 4, allow gear change 5
  413. else if(GetPlayerSpeed(playerid) < GEAR4_SPEED ) TextDrawSetString(Gear[playerid], "~r~4");
  414. }
  415. else if(vGear[playerid] == 5)
  416. {
  417. if(GetPlayerSpeed(playerid) >= GEAR5_SPEED ) TextDrawSetString(Gear[playerid], "~g~5"); //If in gear 5, allow gear change 6
  418. else if(GetPlayerSpeed(playerid) < GEAR5_SPEED ) TextDrawSetString(Gear[playerid], "~r~5");
  419. }
  420.  
  421. if(vGear[playerid] >= 2 && GetPlayerSpeed(playerid) == 0)
  422. {
  423. vGear[playerid] = 1;
  424. SetPlayerSpeedCap(playerid, 0.1);
  425. TextDrawSetString(Gear[playerid], "~r~1");
  426. }
  427. return 1;
  428. }
  429.  
  430. forward GearCheck(playerid);
  431. public GearCheck(playerid)
  432. {
  433. new Float:health, veh;
  434. veh = GetPlayerVehicleID(playerid);
  435. GetVehicleHealth(veh, health);
  436.  
  437. if(GearDamage[playerid] < DAMAGE_COUNT)
  438. {
  439. if(vGear[playerid] == 1 && GetPlayerSpeed(playerid) > GEAR1_SPEED)
  440. {
  441. GearDamage[veh] ++;
  442. SetVehicleHealth(veh, health-50);
  443. }
  444. else if(vGear[playerid] == 2 && GetPlayerSpeed(playerid) > GEAR2_SPEED)
  445. {
  446. GearDamage[veh] ++;
  447. SetVehicleHealth(veh, health-50);
  448. }
  449. else if(vGear[playerid] == 3 && GetPlayerSpeed(playerid) > GEAR3_SPEED)
  450. {
  451. GearDamage[veh] ++;
  452. SetVehicleHealth(veh, health-50);
  453. }
  454. else if(vGear[playerid] == 4 && GetPlayerSpeed(playerid) > GEAR4_SPEED)
  455. {
  456. GearDamage[veh] ++;
  457. SetVehicleHealth(veh, health-50);
  458. }
  459. else if(vGear[playerid] == 5 && GetPlayerSpeed(playerid) > GEAR5_SPEED)
  460. {
  461. GearDamage[veh] ++;
  462. SetVehicleHealth(veh, health-50);
  463. }
  464. }
  465. return 1;
  466. }
  467.  
  468. stock GetPlayerSpeed(playerid)
  469. {
  470. new Float:ST[4];
  471. if(IsPlayerInAnyVehicle(playerid))
  472. GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
  473. else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
  474. ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 179.28625;
  475. return floatround(ST[3]);
  476. }
  477.  
  478. public SetPlayerSpeedCap( playerid, Float:value )
  479. {
  480. if ( 0 <= playerid < sizeof( g_fSpeedCap ) )
  481. g_fSpeedCap[ playerid ] = value;
  482. }
  483.  
  484. public DisablePlayerSpeedCap( playerid )
  485. {
  486. if ( 0 <= playerid < sizeof( g_fSpeedCap ) )
  487. g_fSpeedCap[ playerid ] = 0.0;
  488. }
  489.  
  490. forward ShowSpeedo(playerid);
  491. public ShowSpeedo(playerid)
  492. {
  493. HideSpeedo(playerid);
  494. TextDrawShowForPlayer(playerid, Circle[playerid]);
  495. TextDrawShowForPlayer(playerid, Disc1[playerid]);
  496. TextDrawShowForPlayer(playerid, Disc2[playerid]);
  497. TextDrawShowForPlayer(playerid, Disc3[playerid]);
  498. TextDrawShowForPlayer(playerid, Speed[playerid]);
  499. TextDrawShowForPlayer(playerid, Gear[playerid]);
  500. TextDrawShowForPlayer(playerid, Disc4[playerid]);
  501. TextDrawShowForPlayer(playerid, StartEnd[playerid]);
  502. TextDrawShowForPlayer(playerid, Rev0[playerid]);
  503. TextDrawShowForPlayer(playerid, Rev2[playerid]);
  504. TextDrawShowForPlayer(playerid, Rev4[playerid]);
  505. TextDrawShowForPlayer(playerid, Rev6[playerid]);
  506. TextDrawShowForPlayer(playerid, Rev8[playerid]);
  507. return 1;
  508. }
  509.  
  510. forward HideSpeedo(playerid);
  511. public HideSpeedo(playerid)
  512. {
  513. TextDrawHideForPlayer(playerid, Circle[playerid]);
  514. TextDrawHideForPlayer(playerid, Disc1[playerid]);
  515. TextDrawHideForPlayer(playerid, Disc2[playerid]);
  516. TextDrawHideForPlayer(playerid, Disc3[playerid]);
  517. TextDrawHideForPlayer(playerid, Speed[playerid]);
  518. TextDrawHideForPlayer(playerid, Gear[playerid]);
  519. TextDrawHideForPlayer(playerid, Disc4[playerid]);
  520. TextDrawHideForPlayer(playerid, StartEnd[playerid]);
  521. TextDrawHideForPlayer(playerid, Rev0[playerid]);
  522. TextDrawHideForPlayer(playerid, Rev2[playerid]);
  523. TextDrawHideForPlayer(playerid, Rev4[playerid]);
  524. TextDrawHideForPlayer(playerid, Rev6[playerid]);
  525. TextDrawHideForPlayer(playerid, Rev8[playerid]);
  526. return 1;
  527. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement