Advertisement
EnzoMetlc

Untitled

Apr 9th, 2014
543
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.29 KB | None | 0 0
  1. #include <a_samp>
  2. #include <progress>
  3.  
  4. #define PRESSED(%0) \
  5. (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  6.  
  7.  
  8. new Text:SpeedoMeter[MAX_PLAYERS];
  9. new Text:SpeedoMeterBox[MAX_PLAYERS];
  10. new Text:NumbersToClock[MAX_PLAYERS];
  11. new Text:LineClock[MAX_PLAYERS];
  12.  
  13. new Bar:N20[MAX_PLAYERS] = {INVALID_BAR_ID, ...};
  14.  
  15. new bool:PressedKey[MAX_PLAYERS];
  16.  
  17.  
  18. stock Float:GetVehicleSpeed(vehicleid)
  19. {
  20. new Float:Vel[3];
  21. if(IsValidVehicle(vehicleid))
  22. {
  23. GetVehicleVelocity(vehicleid, Vel[0], Vel[1], Vel[2]);
  24. }
  25. Vel[0] *= 175;
  26. Vel[1] *= 175;
  27. Vel[2] *= 175;
  28. return Float:VectorSize(Vel[0], Vel[1], Vel[2]);
  29. }
  30.  
  31.  
  32. public OnFilterScriptInit()
  33. {
  34. for(new i = 0; i <= GetMaxPlayers(); i++)
  35. {
  36. SpeedoMeter[i] = TextDrawCreate(445.000000, 370.000000, "_");
  37. TextDrawBackgroundColor(SpeedoMeter[i], 255);
  38. TextDrawFont(SpeedoMeter[i], 2);
  39. TextDrawLetterSize(SpeedoMeter[i], 0.460000, 2.299998);
  40. TextDrawColor(SpeedoMeter[i], -1);
  41. TextDrawSetOutline(SpeedoMeter[i], 0);
  42. TextDrawSetProportional(SpeedoMeter[i], 1);
  43. TextDrawSetShadow(SpeedoMeter[i], 1);
  44.  
  45. SpeedoMeterBox[i] = TextDrawCreate(640.000000, 385.000000, "_");
  46. TextDrawBackgroundColor(SpeedoMeterBox[i], 255);
  47. TextDrawFont(SpeedoMeterBox[i], 1);
  48. TextDrawLetterSize(SpeedoMeterBox[i], 1.259999, 6.299999);
  49. TextDrawColor(SpeedoMeterBox[i], -1);
  50. TextDrawSetOutline(SpeedoMeterBox[i], 0);
  51. TextDrawSetProportional(SpeedoMeterBox[i], 1);
  52. TextDrawSetShadow(SpeedoMeterBox[i], 1);
  53. TextDrawUseBox(SpeedoMeterBox[i], 1);
  54. TextDrawBoxColor(SpeedoMeterBox[i], 150);
  55. TextDrawTextSize(SpeedoMeterBox[i], 434.000000, 31.000000);
  56.  
  57. NumbersToClock[i] = TextDrawCreate(440.000000, 400.000000, "0 40 80 120 160 _ 200");
  58. TextDrawBackgroundColor(NumbersToClock[i], 255);
  59. TextDrawFont(NumbersToClock[i], 1);
  60. TextDrawLetterSize(NumbersToClock[i], 0.200000, 1.500000);
  61. TextDrawColor(NumbersToClock[i], -1);
  62. TextDrawSetOutline(NumbersToClock[i], 0);
  63. TextDrawSetProportional(NumbersToClock[i], 1);
  64. TextDrawSetShadow(NumbersToClock[i], 1);
  65.  
  66. LineClock[i] = TextDrawCreate(441.000000, 412.000000, "l");
  67. TextDrawBackgroundColor(LineClock[i], 255);
  68. TextDrawFont(LineClock[i], 1);
  69. TextDrawLetterSize(LineClock[i], 0.219999, 1.899999);
  70. TextDrawColor(LineClock[i], 16777215);
  71. TextDrawSetOutline(LineClock[i], 0);
  72. TextDrawSetProportional(LineClock[i], 1);
  73. TextDrawSetShadow(LineClock[i], 1);
  74. }
  75. return 1;
  76. }
  77.  
  78.  
  79. public OnPlayerStateChange(playerid, newstate, oldstate)
  80. {
  81. switch(newstate)
  82. {
  83. case PLAYER_STATE_DRIVER:
  84. {
  85. N20[playerid] = CreateProgressBar(441.00, 433.00, 192.50, 9.50, -1, 100.0);
  86. SetProgressBarValue(N20[playerid], 100.0);
  87. ShowProgressBarForPlayer(playerid, N20[playerid]);
  88.  
  89. TextDrawShowForPlayer(playerid, SpeedoMeter[playerid]);
  90. TextDrawShowForPlayer(playerid, SpeedoMeterBox[playerid]);
  91. TextDrawShowForPlayer(playerid, LineClock[playerid]);
  92.  
  93. TextDrawShowForPlayer(playerid, NumbersToClock[playerid]);
  94. }
  95. case PLAYER_STATE_ONFOOT:
  96. {
  97. DestroyProgressBar(N20[playerid]);
  98. N20[playerid] = INVALID_BAR_ID;
  99.  
  100. TextDrawHideForPlayer(playerid, SpeedoMeter[playerid]);
  101. TextDrawHideForPlayer(playerid, SpeedoMeterBox[playerid]);
  102. TextDrawHideForPlayer(playerid, LineClock[playerid]);
  103.  
  104. TextDrawHideForPlayer(playerid, NumbersToClock[playerid]);
  105. }
  106. }
  107. return 1;
  108. }
  109.  
  110.  
  111. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  112. {
  113. if(PRESSED(KEY_FIRE) || PRESSED(KEY_ACTION))
  114. {
  115. if(GetVehicleSpeed(GetPlayerVehicleID(playerid)) > 20.0000)
  116. {
  117. if(GetProgressBarValue(N20[playerid]) > 0.0000000)
  118. {
  119. SetProgressBarValue(N20[playerid], GetProgressBarValue(N20[playerid])-1.0);
  120. UpdateProgressBar(N20[playerid], playerid);
  121. AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  122. PressedKey[playerid] = true;
  123. }
  124. }
  125. }
  126. else RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010), PressedKey[playerid] = false;
  127. return 1;
  128. }
  129.  
  130.  
  131. public OnPlayerUpdate(playerid)
  132. {
  133. if(IsPlayerInAnyVehicle(playerid))
  134. {
  135. new Float:value = GetProgressBarValue(N20[playerid]);
  136.  
  137. value += (PressedKey[playerid] == false) ? (0.35) : (-0.75);
  138. SetProgressBarValue(N20[playerid], value);
  139. UpdateProgressBar(N20[playerid], playerid);
  140.  
  141. if(GetProgressBarValue(N20[playerid]) < 0.100000000) RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  142.  
  143. new string[16];
  144. format(string, sizeof(string), "~r~%0.0f ~w~KM/H.", GetVehicleSpeed(GetPlayerVehicleID(playerid)));
  145. TextDrawSetString(SpeedoMeter[playerid], string);
  146. MoveTextDraw(playerid, LineClock[playerid], 440.000000+(GetVehicleSpeed(GetPlayerVehicleID(playerid))/1.25), 412.000000, "l");
  147. }
  148. return 1;
  149. }
  150.  
  151.  
  152.  
  153.  
  154. stock MoveTextDraw(playerid, Text:textdrawid, Float:x, Float:y, string[])
  155. {
  156. TextDrawHideForPlayer(playerid, textdrawid);
  157. TextDrawDestroy(textdrawid);
  158.  
  159. textdrawid = TextDrawCreate(x, y, string);
  160. TextDrawBackgroundColor(textdrawid, 255);
  161. TextDrawFont(textdrawid, 1);
  162. TextDrawLetterSize(textdrawid, 0.220000, 1.900000);
  163. TextDrawColor(textdrawid, 16777215);
  164. TextDrawSetOutline(textdrawid, 0);
  165. TextDrawSetProportional(textdrawid, 1);
  166. TextDrawSetShadow(textdrawid, 1);
  167.  
  168. TextDrawShowForPlayer(playerid, textdrawid);
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement