Guest User

ImprovedMetricSpeedov1.pwn

a guest
Jun 6th, 2012
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. #include <a_samp>
  2. enum td
  3. {
  4. Text:TDSpeedClock[15]
  5. }
  6.  
  7. new TextDraws[td];
  8. new Text:TextDrawsd[MAX_PLAYERS][4];
  9.  
  10. public OnFilterScriptInit()
  11. {
  12. print("Loaded Metric Speedometer");
  13.  
  14. TextDraws[TDSpeedClock][0] = TextDrawCreate(496.000000,400.000000,"~h~~g~20");
  15. TextDraws[TDSpeedClock][1] = TextDrawCreate(487.000000,388.000000,"~h~~g~40");
  16. TextDraws[TDSpeedClock][2] = TextDrawCreate(483.000000,375.000000,"~g~60");
  17. TextDraws[TDSpeedClock][3] = TextDrawCreate(488.000000,362.000000,"~g~80");
  18. TextDraws[TDSpeedClock][4] = TextDrawCreate(491.000000,349.000000,"~g~100");
  19. TextDraws[TDSpeedClock][5] = TextDrawCreate(508.000000,336.500000,"~h~~y~120");
  20. TextDraws[TDSpeedClock][6] = TextDrawCreate(536.000000,332.000000,"~h~~y~140");
  21. TextDraws[TDSpeedClock][7] = TextDrawCreate(567.000000,337.000000,"~y~160");
  22. TextDraws[TDSpeedClock][8] = TextDrawCreate(584.000000,348.000000,"~y~180");
  23. TextDraws[TDSpeedClock][9] = TextDrawCreate(595.000000,360.000000,"~h~~r~200");
  24. TextDraws[TDSpeedClock][10] = TextDrawCreate(603.000000,374.000000,"~h~~r~220");
  25. TextDraws[TDSpeedClock][11] = TextDrawCreate(594.000000,386.000000,"~h~~r~240");
  26. TextDraws[TDSpeedClock][14] = TextDrawCreate(585.000000,399.000000,"~h~~r~260");
  27. TextDraws[TDSpeedClock][12] = TextDrawCreate(534.000000,396.000000,"~g~/ ~h~~r~\\");
  28. TextDrawLetterSize(TextDraws[TDSpeedClock][12], 1.059999, 2.100000);
  29. TextDraws[TDSpeedClock][13] = TextDrawCreate(548.000000,401.000000,".");
  30. TextDrawLetterSize(TextDraws[TDSpeedClock][13], 0.73, -2.60);
  31. TextDrawSetOutline(TextDraws[TDSpeedClock][13], 0);
  32. TextDrawSetShadow(TextDraws[TDSpeedClock][13], 1);
  33. TextDrawSetShadow(TextDraws[TDSpeedClock][14], 0);
  34. for(new i; i < 13; i++)
  35. {
  36. TextDrawSetShadow(TextDraws[TDSpeedClock][i], 0);
  37. TextDrawSetOutline(TextDraws[TDSpeedClock][i], 0);
  38. }
  39.  
  40. return 1;
  41. }
  42.  
  43. public OnFilterScriptExit()
  44. {
  45. print("Exiting Metric Speedometer");
  46.  
  47. return 1;
  48. }
  49.  
  50. public OnPlayerStateChange(playerid, newstate, oldstate)
  51. {
  52. if(newstate == PLAYER_STATE_DRIVER)
  53. {
  54. for(new i; i < 15; i++)
  55. TextDrawShowForPlayer(playerid, TextDraws[TDSpeedClock][i]);
  56.  
  57. for(new i; i < 4; i++)
  58. TextDrawsd[playerid][i] = TextDrawCreate(555.0, 402.0, "~b~.");
  59.  
  60. }
  61. else
  62. {
  63. for(new i; i < 4; i++)
  64. TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
  65. for(new i; i < 15; i++)
  66. TextDrawHideForPlayer(playerid, TextDraws[TDSpeedClock][i]);
  67. }
  68.  
  69. return 1;
  70. }
  71.  
  72. public OnPlayerUpdate(playerid)
  73. {
  74. new
  75. Float:fPos[3],
  76. Float:Pos[4][2],
  77. Float:fSpeed;
  78.  
  79. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  80. {
  81. GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2]);
  82.  
  83. fSpeed = floatsqroot(floatpower(fPos[0], 2) + floatpower(fPos[1], 2) +
  84. floatpower(fPos[2], 2)) * 200;
  85.  
  86. new Float:alpha = 320 - fSpeed;
  87.  
  88. for(new i; i < 4; i++)
  89. {
  90. TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
  91. TextDrawDestroy(TextDrawsd[playerid][i]);
  92. GetDotXY(548, 401, Pos[i][0], Pos[i][1], alpha, (i + 1) * 8);
  93. TextDrawsd[playerid][i] = TextDrawCreate(Pos[i][0], Pos[i][1], "~b~.");
  94. TextDrawLetterSize(TextDrawsd[playerid][i], 0.73, -2.60);
  95. TextDrawSetOutline(TextDrawsd[playerid][i], 0);
  96. TextDrawSetShadow(TextDrawsd[playerid][i], 1);
  97. TextDrawShowForPlayer(playerid, TextDrawsd[playerid][i]);
  98. }
  99. }
  100.  
  101.  
  102. return 1;
  103. }
  104.  
  105. stock GetDotXY(Float:StartPosX, Float:StartPosY, &Float:NewX, &Float:NewY, Float:alpha, Float:dist)
  106. {
  107. NewX = StartPosX + (dist * floatsin(alpha, degrees));
  108. NewY = StartPosY + (dist * floatcos(alpha, degrees));
  109. }
Advertisement
Add Comment
Please, Sign In to add comment