Guest User

Kinetic

a guest
Mar 21st, 2009
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.99 KB | None | 0 0
  1. #include <ai>
  2. #include <aicolor>
  3. #include <lrp>
  4. //----[Quick Stats]-------------------------------------------------------------
  5. new mphtext = 0; // 0 = textdraw, 1 = gamemodetext.
  6. new style = 0; // The Default Style 0 = mph, 1 = kmph.
  7. new incar = 0; // Display speedo only in car. 0 = yes, 1 = no.
  8. new timeramt= 300;// Speed of the speedometer timer in milliseconds.
  9. //------------------------------------------------------------------------------
  10.  
  11. new Style[maxplayers];
  12.  
  13. new timer;
  14.  
  15. new Text:Speedometer[maxplayers];
  16. new ToggleSpeedometer[maxplayers];
  17. new Displaying[maxplayers];
  18.  
  19. enum pos
  20. {
  21. Float:x,
  22. Float:y,
  23. Float:z
  24. }
  25. new Pos[maxplayers][pos];
  26. new Pos2[maxplayers][pos];
  27.  
  28. new Float:DistanceX[maxplayers];
  29. new Float:DistanceY[maxplayers];
  30. new Float:DistanceX2[maxplayers];
  31. new Float:DistanceY2[maxplayers];
  32. new Float:Distance[maxplayers];
  33.  
  34. new Float:S1[maxplayers];
  35. new Float:S2[maxplayers];
  36. new Float:S3[maxplayers];
  37. new SpeedStep[maxplayers];
  38.  
  39. new Float:TotalSpeed[maxplayers];
  40.  
  41. forward Timer();
  42. forward PlayerMessage(playerid, color, string[]);
  43.  
  44. public OnFilterScriptInit() // OnFilterScriptInit
  45. {
  46. print(" ");
  47. print(" >> AI Speed initiated");
  48. print(" ");
  49.  
  50. timer = SetTimer("Timer", timeramt, true);
  51.  
  52. return 1;
  53. } //----------
  54.  
  55. public OnFilterScriptExit() // OnFilterScriptExit
  56. {
  57. print(" ");
  58. print(" >> AI Speed shut down...");
  59. print(" ");
  60.  
  61. KillTimer(timer);
  62. for(new i=0; i<=GetMaxPlayers(); i++)
  63. {
  64. TextDrawDestroy(Speedometer[i]);
  65. }
  66. return 1;
  67. } //----------
  68.  
  69. public OnPlayerConnect(playerid) // OnPlayerConnect
  70. {
  71. Style[playerid] = style;
  72. Displaying[playerid] = 1;
  73. Speedometer[playerid] = TextDrawCreate(300, 400, " ");
  74. //Speedometer[playerid] = TextDrawCreate(502, 110, " "); Used for my script
  75. TextDrawAlignment(Speedometer[playerid],1);
  76. TextDrawSetProportional(Speedometer[playerid],1);
  77. TextDrawSetOutline(Speedometer[playerid], 1);
  78. TextDrawFont(Speedometer[playerid], 2);
  79. TextDrawShowForPlayer(playerid, Speedometer[playerid]);
  80. return 1;
  81. } //----------
  82.  
  83. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  84. {
  85. if(ToggleSpeedometer[playerid] == 1)
  86. {
  87. TextDrawShowForPlayer(playerid, Speedometer[playerid]);
  88. return 1;
  89. }
  90. return 1;
  91. }
  92.  
  93. public Timer() // Timer
  94. {
  95. for(new i=0; i<=GetMaxPlayers(); i++)
  96. {
  97. if(IsPlayerConnected(i))
  98. {
  99. if(ToggleSpeedometer[i] == 1)
  100. {
  101. if(SpeedStep[i] == 0)
  102. {
  103. GetPlayerPos(i, Pos[i][x], Pos[i][y], Pos[i][z]);
  104. }
  105. if(SpeedStep[i] == 1)
  106. {
  107. GetPlayerPos(i, Pos2[i][x], Pos2[i][y], Pos2[i][z]);
  108. DistanceX[i] = Pos[i][x] - Pos2[i][x];
  109. DistanceY[i] = Pos[i][y] - Pos2[i][y];
  110. DistanceX2[i] = DistanceX[i] * DistanceX[i];
  111. DistanceY2[i] = DistanceY[i] * DistanceY[i];
  112. Distance[i] = (DistanceX2[i] + DistanceY2[i])/2;
  113. S1[i] = Distance[i];
  114. }
  115. if(SpeedStep[i] == 2)
  116. {
  117. GetPlayerPos(i, Pos[i][x], Pos[i][y], Pos[i][z]);
  118. }
  119. if(SpeedStep[i] == 3)
  120. {
  121. GetPlayerPos(i, Pos2[i][x], Pos2[i][y], Pos2[i][z]);
  122. DistanceX[i] = Pos[i][x] - Pos2[i][x];
  123. DistanceY[i] = Pos[i][y] - Pos2[i][y];
  124. DistanceX2[i] = DistanceX[i] * DistanceX[i];
  125. DistanceY2[i] = DistanceY[i] * DistanceY[i];
  126. Distance[i] = (DistanceX2[i] + DistanceY2[i])/2;
  127. S2[i] = Distance[i];
  128. }
  129. if(SpeedStep[i] == 4)
  130. {
  131. GetPlayerPos(i, Pos[i][x], Pos[i][y], Pos[i][z]);
  132. }
  133. if(SpeedStep[i] == 5)
  134. {
  135. GetPlayerPos(i, Pos2[i][x], Pos2[i][y], Pos2[i][z]);
  136. DistanceX[i] = Pos[i][x] - Pos2[i][x];
  137. DistanceY[i] = Pos[i][y] - Pos2[i][y];
  138. DistanceX2[i] = DistanceX[i] * DistanceX[i];
  139. DistanceY2[i] = DistanceY[i] * DistanceY[i];
  140. Distance[i] = (DistanceX2[i] + DistanceY2[i])/2;
  141. S3[i] = Distance[i];
  142. }
  143. new str[64];
  144. TotalSpeed[i] = (S1[i]+S2[i]+S3[i])/3;
  145. if(mphtext == 0)
  146. {
  147. if(incar == 0)
  148. {
  149. if(!IsPlayerInAnyVehicle(i))
  150. {
  151. TextDrawHideForPlayer(i, Speedometer[i]);
  152. }
  153. if(IsPlayerInAnyVehicle(i))
  154. {
  155. TextDrawShowForPlayer(i, Speedometer[i]);
  156. if(Style[i] == 0)
  157. {
  158. if(Displaying[i] == 0)
  159. {
  160. Speedometer[i] = TextDrawCreate(300, 400, " ");
  161. //Speedometer[playerid] = TextDrawCreate(502, 110, " "); Used for my script
  162. TextDrawAlignment(Speedometer[i],1);
  163. TextDrawSetProportional(Speedometer[i],1);
  164. TextDrawSetOutline(Speedometer[i], 1);
  165. TextDrawFont(Speedometer[i], 2);
  166. TextDrawShowForPlayer(i, Speedometer[i]);
  167. Displaying[i] = 1;
  168. }
  169. format(str, sizeof(str), "~b~mph:~w~%.0f",TotalSpeed[i]);
  170. TextDrawSetString(Speedometer[i], str);
  171. }
  172. if(Style[i] == 1)
  173. {
  174. if(Displaying[i] == 0)
  175. {
  176. Speedometer[i] = TextDrawCreate(300, 400, " ");
  177. //Speedometer[playerid] = TextDrawCreate(502, 110, " "); Used for my script
  178. TextDrawAlignment(Speedometer[i],1);
  179. TextDrawSetProportional(Speedometer[i],1);
  180. TextDrawSetOutline(Speedometer[i], 1);
  181. TextDrawFont(Speedometer[i], 2);
  182. TextDrawShowForPlayer(i, Speedometer[i]);
  183. Displaying[i] = 1;
  184. }
  185. format(str, sizeof(str), "~b~kmph:~w~%.0f",TotalSpeed[i]*1.609);
  186. TextDrawSetString(Speedometer[i], str);
  187. }
  188. }
  189. }
  190. if(incar == 1)
  191. {
  192. TextDrawShowForPlayer(i, Speedometer[i]);
  193. if(Style[i] == 0)
  194. {
  195. if(Displaying[i] == 0)
  196. {
  197. Speedometer[i] = TextDrawCreate(300, 400, " ");
  198. //Speedometer[playerid] = TextDrawCreate(502, 110, " "); Used for my script
  199. TextDrawAlignment(Speedometer[i],1);
  200. TextDrawSetProportional(Speedometer[i],1);
  201. TextDrawSetOutline(Speedometer[i], 1);
  202. TextDrawFont(Speedometer[i], 2);
  203. TextDrawShowForPlayer(i, Speedometer[i]);
  204. Displaying[i] = 1;
  205. }
  206. format(str, sizeof(str), "~b~mph:~w~%.0f",TotalSpeed[i]);
  207. TextDrawSetString(Speedometer[i], str);
  208. }
  209. if(Style[i] == 1)
  210. {
  211. if(Displaying[i] == 0)
  212. {
  213. Speedometer[i] = TextDrawCreate(300, 400, " ");
  214. //Speedometer[playerid] = TextDrawCreate(502, 110, " "); Used for my script
  215. TextDrawAlignment(Speedometer[i],1);
  216. TextDrawSetProportional(Speedometer[i],1);
  217. TextDrawSetOutline(Speedometer[i], 1);
  218. TextDrawFont(Speedometer[i], 2);
  219. TextDrawShowForPlayer(i, Speedometer[i]);
  220. Displaying[i] = 1;
  221. }
  222. format(str, sizeof(str), "~b~kmph:~w~%.0f",TotalSpeed[i]*1.609);
  223. TextDrawSetString(Speedometer[i], str);
  224. }
  225. }
  226. }
  227. if(mphtext == 1)
  228. {
  229. if(incar == 0)
  230. {
  231. if(Style[i] == 0)
  232. {
  233. format(str, sizeof(str), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~b~mph:~w~%.0f",TotalSpeed[i]);
  234. GameTextForPlayer(i, str, 500, 3);
  235. }
  236. if(Style[i] == 1)
  237. {
  238. format(str, sizeof(str), "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~b~kmph:~w~%.0f",TotalSpeed[i]*1.609);
  239. GameTextForPlayer(i, str, 500, 3);
  240. }
  241. }
  242. }
  243. SpeedStep[i] ++;
  244. if(SpeedStep[i] == 6)
  245. {
  246. SpeedStep[i] = 0;
  247. }
  248. }
  249. }
  250. }
  251. return 1;
  252. } //----------
  253.  
  254. public OnPlayerPrivmsg(playerid, recieverid, text[]) // OnPlayerPrivmsg
  255. {
  256. return 0;
  257. } //----------
  258.  
  259. public OnPlayerCommandText(playerid, cmdtext[]) // OnPlayerCommandText
  260. {
  261. if (strcmp("/speedometer", cmdtext, true) == 0)
  262. {
  263. if(ToggleSpeedometer[playerid] == 0)
  264. {
  265. ToggleSpeedometer[playerid] = 1;
  266. PlayerMessage(playerid, teal3, " >> Speedometer turned on.");
  267. PlayerPlaySound(playerid, 1053, 0, 0, 0);
  268. TextDrawShowForPlayer(playerid, Speedometer[playerid]);
  269. return 1;
  270. }
  271. if(ToggleSpeedometer[playerid] == 1)
  272. {
  273. ToggleSpeedometer[playerid] = 0;
  274. PlayerMessage(playerid, teal3, " >> Speedometer turned off.");
  275. PlayerPlaySound(playerid, 1053, 0, 0, 0);
  276. TextDrawHideForPlayer(playerid, Speedometer[playerid]);
  277. return 1;
  278. }
  279. return 1;
  280. }
  281.  
  282. if(strcmp("/mph", cmdtext, true) == 0)
  283. {
  284. Style[playerid] = 0;
  285. PlayerMessage(playerid, teal3, " >> Speedometer set to mph.");
  286. PlayerPlaySound(playerid, 1053, 0, 0, 0);
  287. return 1;
  288. }
  289.  
  290. if(strcmp("/kmph", cmdtext, true) == 0 || strcmp("/kph", cmdtext, true) == 0)
  291. {
  292. Style[playerid] = 1;
  293. PlayerMessage(playerid, teal3, " >> Speedometer set to kmph.");
  294. PlayerPlaySound(playerid, 1053, 0, 0, 0);
  295. return 1;
  296. }
  297.  
  298. if(strcmp("/help", cmdtext, true) == 0)
  299. {
  300. PlayerMessage(playerid, teal1, " >> Help");
  301. PlayerMessage(playerid, teal1, " >> /speedometer (toggles on and off)");
  302. PlayerMessage(playerid, teal1, " >> /mph /kmph (switches to the style of your choosing.)");
  303. return 1;
  304. }
  305. return 0;
  306. } //----------
  307.  
  308. public PlayerMessage(playerid, color, string[]) // PlayerMessage
  309. {
  310. SendClientMessage(playerid, color, string);
  311. return 1;
  312. } //----------
  313.  
Advertisement
Add Comment
Please, Sign In to add comment