Guest User

Kinetic

a guest
Mar 20th, 2009
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.52 KB | None | 0 0
  1. #include <ai>
  2. #include <aicolor>
  3. #include <lrp>
  4.  
  5. new textdraw = 1; // 1 = on, 0 = off
  6. new gametext = 0; // 1 = on, 0 = off
  7.  
  8. new halfsecondtimer;
  9.  
  10. new Text:Speedometer[maxplayers];
  11. new ToggleSpeedometer[maxplayers];
  12.  
  13. enum pos
  14. {
  15. Float:x,
  16. Float:y,
  17. Float:z
  18. }
  19. new Pos[maxplayers][pos];
  20. new Pos2[maxplayers][pos];
  21.  
  22. new Float:DistanceX[maxplayers];
  23. new Float:DistanceY[maxplayers];
  24. new Float:DistanceX2[maxplayers];
  25. new Float:DistanceY2[maxplayers];
  26. new Float:Distance[maxplayers];
  27.  
  28. new Float:S1[maxplayers];
  29. new Float:S2[maxplayers];
  30. new Float:S3[maxplayers];
  31. new SpeedStep[maxplayers];
  32.  
  33. new Float:TotalSpeed[maxplayers];
  34.  
  35. forward HalfSecondTimer();
  36. forward PlayerMessage(playerid, color, string[]);
  37.  
  38. public OnFilterScriptInit() // OnFilterScriptInit
  39. {
  40. print(" ");
  41. print(" >> AI Speed initiated");
  42. print(" ");
  43.  
  44. halfsecondtimer = SetTimer("HalfSecondTimer", 500, true);
  45.  
  46. return 1;
  47. } //----------
  48.  
  49. public OnFilterScriptExit() // OnFilterScriptExit
  50. {
  51. print(" ");
  52. print(" >> AI Speed shut down...");
  53. print(" ");
  54.  
  55. KillTimer(halfsecondtimer);
  56. return 1;
  57. } //----------
  58.  
  59. public OnPlayerConnect(playerid) // OnPlayerConnect
  60. {
  61. Speedometer[playerid] = TextDrawCreate(300, 400, " ");
  62. //Speedometer[playerid] = TextDrawCreate(502, 110, " "); Used for my script
  63. TextDrawAlignment(Speedometer[playerid],1);
  64. TextDrawSetProportional(Speedometer[playerid],1);
  65. TextDrawSetOutline(Speedometer[playerid], 1);
  66. TextDrawFont(Speedometer[playerid], 2);
  67. TextDrawShowForPlayer(playerid, Speedometer[playerid]);
  68. return 1;
  69. } //----------
  70.  
  71. public HalfSecondTimer() // HalfSecondTimer
  72. {
  73. for(new i=0; i<=GetMaxPlayers(); i++)
  74. {
  75. if(IsPlayerConnected(i))
  76. {
  77. if(ToggleSpeedometer[i] == 1)
  78. {
  79. if(SpeedStep[i] == 0)
  80. {
  81. GetPlayerPos(i, Pos[i][x], Pos[i][y], Pos[i][z]);
  82. }
  83. if(SpeedStep[i] == 1)
  84. {
  85. GetPlayerPos(i, Pos2[i][x], Pos2[i][y], Pos2[i][z]);
  86. DistanceX[i] = Pos[i][x] - Pos2[i][x];
  87. DistanceY[i] = Pos[i][y] - Pos2[i][y];
  88. DistanceX2[i] = DistanceX[i] * DistanceX[i];
  89. DistanceY2[i] = DistanceY[i] * DistanceY[i];
  90. Distance[i] = (DistanceX2[i] + DistanceY2[i])/10;
  91. S1[i] = Distance[i];
  92. }
  93. if(SpeedStep[i] == 2)
  94. {
  95. GetPlayerPos(i, Pos[i][x], Pos[i][y], Pos[i][z]);
  96. }
  97. if(SpeedStep[i] == 3)
  98. {
  99. GetPlayerPos(i, Pos2[i][x], Pos2[i][y], Pos2[i][z]);
  100. DistanceX[i] = Pos[i][x] - Pos2[i][x];
  101. DistanceY[i] = Pos[i][y] - Pos2[i][y];
  102. DistanceX2[i] = DistanceX[i] * DistanceX[i];
  103. DistanceY2[i] = DistanceY[i] * DistanceY[i];
  104. Distance[i] = (DistanceX2[i] + DistanceY2[i])/10;
  105. S2[i] = Distance[i];
  106. }
  107. if(SpeedStep[i] == 4)
  108. {
  109. GetPlayerPos(i, Pos[i][x], Pos[i][y], Pos[i][z]);
  110. }
  111. if(SpeedStep[i] == 5)
  112. {
  113. GetPlayerPos(i, Pos2[i][x], Pos2[i][y], Pos2[i][z]);
  114. DistanceX[i] = Pos[i][x] - Pos2[i][x];
  115. DistanceY[i] = Pos[i][y] - Pos2[i][y];
  116. DistanceX2[i] = DistanceX[i] * DistanceX[i];
  117. DistanceY2[i] = DistanceY[i] * DistanceY[i];
  118. Distance[i] = (DistanceX2[i] + DistanceY2[i])/10;
  119. S3[i] = Distance[i];
  120. }
  121. new str[64];
  122. TotalSpeed[i] = (S1[i]+S2[i]+S3[i])/2;
  123. if(textdraw == 1)
  124. {
  125. format(str, sizeof(str), "~b~mph:~w~%.0f",TotalSpeed[i]);
  126. TextDrawSetString(Speedometer[i], str);
  127. }
  128. if(gametext == 1)
  129. {
  130. format(str, sizeof(str), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~b~mph:~w~%.0f",TotalSpeed[i]);
  131. GameTextForPlayer(i, str, 500, 3);
  132. }
  133. SpeedStep[i] ++;
  134. if(SpeedStep[i] == 6)
  135. {
  136. SpeedStep[i] = 0;
  137. }
  138. }
  139. }
  140. }
  141. return 1;
  142. } //----------
  143.  
  144. public OnPlayerPrivmsg(playerid, recieverid, text[]) // OnPlayerPrivmsg
  145. {
  146. return 0;
  147. } //----------
  148.  
  149. public OnPlayerCommandText(playerid, cmdtext[]) // OnPlayerCommandText
  150. {
  151. if (strcmp("/speedometer", cmdtext, true) == 0)
  152. {
  153. if(ToggleSpeedometer[playerid] == 0)
  154. {
  155. ToggleSpeedometer[playerid] = 1;
  156. PlayerMessage(playerid, teal3, " >> Speedometer turned on.");
  157. PlayerPlaySound(playerid, 1053, 0, 0, 0);
  158. TextDrawShowForPlayer(playerid, Speedometer[playerid]);
  159. return 1;
  160. }
  161. if(ToggleSpeedometer[playerid] == 1)
  162. {
  163. ToggleSpeedometer[playerid] = 0;
  164. PlayerMessage(playerid, teal3, " >> Speedometer turned off.");
  165. PlayerPlaySound(playerid, 1053, 0, 0, 0);
  166. TextDrawHideForPlayer(playerid, Speedometer[playerid]);
  167. return 1;
  168. }
  169. return 1;
  170. }
  171. return 0;
  172. } //----------
  173.  
  174. public PlayerMessage(playerid, color, string[]) // PlayerMessage
  175. {
  176. SendClientMessage(playerid, color, string);
  177. return 1;
  178. } //----------
  179.  
Advertisement
Add Comment
Please, Sign In to add comment