Guest User

Kinetic

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