MakiBoss

Radar

Aug 13th, 2012
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.62 KB | None | 0 0
  1. /* Cruiser dash mounted speed radar
  2. napravio Srdjan. Datuma 31/08/2011
  3. preveo: MakiBoss Datuma 13/08/2012
  4. */
  5.  
  6.  
  7. #include <a_samp>
  8.  
  9. #define COLOR_YELLOW 0xFFFF00AA
  10.  
  11. new VehRadarID [MAX_VEHICLES];
  12. new Text: RadarHud;
  13. new Text: SpeedAndModel [MAX_VEHICLES];
  14. new CheckingSpeed [MAX_VEHICLES];
  15. new OldVehID [MAX_PLAYERS];
  16.  
  17. forward UpdateSpeed (vehid);
  18. forward CheckValidTextDraws();
  19.  
  20.  
  21. new VehicleModel[212][] ={
  22. "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial","Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana",
  23. "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance","Leviathan", "Moonbeam", "Esperanto", "Taxi",
  24. "Washington", "Bobcat","Whoopee", "BF Injection", "Hunter", "Premier","Enforcer", "Securicar", "Banshee",
  25. "Predator", "Bus", "Rhino", "Barracks", "Hotknife","Trailer 1", "Previon", "Coach", "Cabbie", "Stallion",
  26. "Rumpo", "RC Bandit", "Romero", "Packer","Monster", "Admiral", "Squalo","Seasparrow", "Pizzaboy", "Tram", "Trailer 2",
  27. "Turismo", "Speeder", "Reefer", "Tropic","Flatbed", "Yankee", "Caddy", "Solair","Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio",
  28. "Freeway", "RC Baron", "RC Raider","Glendale", "Oceanic", "Sanchez", "Sparrow","Patriot", "Quad", "Coastguard", "Dinghy", "Hermes",
  29. "Sabre", "Rustler", "ZR-350","Walton", "Regina", "Comet", "BMX", "Burrito","Camper", "Marquis", "Baggage", "Dozer", "Maverick",
  30. "News Chopper", "Rancher","FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring","Sandking", "Blista Compact", "Police Maverick",
  31. "Boxvillde", "Benson","Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B","Bloodring Banger", "Rancher", "Super GT", "Elegant",
  32. "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster","Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer",
  33. "Shamal", "Hydra","FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune","Cadrona", "FBI Truck", "Willard",
  34. "Forklift", "Tractor", "Combine","Feltzer", "Remington", "Slamvan", "Blade", "Freight","Streak","Vortex", "Vincent", "Bullet",
  35. "Clover", "Sadler", "Firetruck LA","Hustler", "Intruder", "Primo", "Cargobob", "Tampa","Sunrise", "Merit","Utility", "Nevada",
  36. "Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester", "Sultan","Stratum", "Elegy", "Raindance","RC Tiger",
  37. "Flash", "Tahoma", "Savanna", "Bandito","Freight Flat", "Streak Carriage", "Kart","Mower", "Dune", "Sweeper", "Broadway",
  38. "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford","BF-400", "News Van", "Tug", "Trailer 3", "Emperor","Wayfarer", "Euros",
  39. "Hotdog","Club", "Freight Carriage", "Trailer 4","Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)","Police Car (SFPD)",
  40. "Police Car (LVPD)", "Police Ranger", "Picador", "S.W.A.T", "Alpha","Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
  41. "Luggage Trailer B", "Stairs", "Boxville", "Tiller", "Utility Trailer" };
  42.  
  43.  
  44. public OnFilterScriptInit ()
  45. {
  46. printf (" \nCruiser speed radar made by Srdjan loaded.\n");
  47.  
  48. SetTimer ("CheckValidTextDraws", 1000, 1);
  49.  
  50. RadarHud = TextDrawCreate (495.0, 200.0, "~b~Model: ~n~~r~Brzina: kmph");
  51. TextDrawFont (RadarHud, 2);
  52. TextDrawLetterSize (RadarHud, 0.3, 1.0);
  53.  
  54. for (new i = 1; i <= MAX_VEHICLES; i++)
  55. {
  56. VehRadarID [i] = -1;
  57. SpeedAndModel [i] = TextDrawCreate (545.0, 200.0, "~b~ ~n~~r~");
  58. TextDrawFont (SpeedAndModel [i], 2);
  59. TextDrawLetterSize (SpeedAndModel [i], 0.3, 1.0);
  60. CheckingSpeed [i] = 0;
  61. }
  62.  
  63. return 1;
  64. }
  65.  
  66. public OnPlayerCommandText (playerid, cmdtext[])
  67. {
  68. if (!strcmp (cmdtext, "/postaviradar"))
  69. {
  70. if (IsPlayerInAnyVehicle (playerid))
  71. {
  72. new vehid = GetPlayerVehicleID (playerid);
  73. if (VehRadarID [vehid] > -1) return 1;
  74.  
  75. new Float: x, Float: y, Float: z, Float: a;
  76. GetVehiclePos (vehid, x, y, z);
  77. GetVehicleZAngle (vehid, a);
  78. SendClientMessage (playerid, COLOR_YELLOW, "Radar je uspješno dodan.");
  79. VehRadarID [vehid] = CreateObject (367, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0);
  80. AttachObjectToVehicle (VehRadarID [vehid], vehid, 0.2, 0.50, 0.3, 0.0, 0.0, 90.0);
  81.  
  82. for (new i = 0; i < MAX_PLAYERS; i++)
  83. {
  84. if (IsPlayerInVehicle (i, vehid))
  85. {
  86. TextDrawShowForPlayer (i, RadarHud);
  87. }
  88. }
  89. }
  90. return 1;
  91. }
  92.  
  93. if (!strcmp (cmdtext, "/ugasiradar"))
  94. {
  95. if (IsPlayerInAnyVehicle (playerid))
  96. {
  97. new vehid = GetPlayerVehicleID (playerid);
  98. if (VehRadarID [vehid] == -1) return 1;
  99.  
  100. DestroyObject (VehRadarID [vehid]);
  101. SendClientMessage (playerid, COLOR_YELLOW, "Radar je uspješno ugašen.");
  102. VehRadarID [vehid] = -1;
  103. KillTimer (CheckingSpeed [vehid]);
  104. CheckingSpeed [vehid] = -1;
  105.  
  106. for (new i = 0; i < MAX_PLAYERS; i++)
  107. {
  108. if (IsPlayerInVehicle (i, vehid))
  109. {
  110. TextDrawHideForPlayer (i, RadarHud);
  111. TextDrawHideForPlayer (playerid, SpeedAndModel [vehid]);
  112. }
  113. }
  114. }
  115. return 1;
  116. }
  117.  
  118. if (!strcmp (cmdtext, "/provjeribrzinu"))
  119. {
  120. if (IsPlayerInAnyVehicle (playerid))
  121. {
  122. new vehid = GetPlayerVehicleID (playerid);
  123. if (VehRadarID [vehid] == -1) return 1;
  124. CheckingSpeed [vehid] = SetTimerEx ("UpdateSpeed", 100, 1, "d", vehid);
  125. }
  126. return 1;
  127. }
  128.  
  129. if (!strcmp (cmdtext, "/zaustaviprovjeravanje"))
  130. {
  131. if (IsPlayerInAnyVehicle (playerid))
  132. {
  133. new vehid = GetPlayerVehicleID (playerid);
  134. if (CheckingSpeed [vehid] > 0)
  135. {
  136. KillTimer (CheckingSpeed [vehid]);
  137. CheckingSpeed [vehid] = -1;
  138. }
  139. for (new i = 0; i < MAX_PLAYERS; i++)
  140. {
  141. if (IsPlayerInVehicle (i, vehid))
  142. {
  143. TextDrawHideForPlayer (i, SpeedAndModel [vehid]);
  144. }
  145. }
  146. }
  147. return 1;
  148. }
  149.  
  150. if (!strcmp (cmdtext, "/izdanjekazne"))
  151. {
  152. if (IsPlayerInAnyVehicle (playerid))
  153. {
  154. new vehid = GetPlayerVehicleID (playerid);
  155. if (CheckingSpeed [vehid] > -1)
  156. {
  157. for (new i = 0; i < MAX_PLAYERS; i++)
  158. {
  159. if (IsPlayerConnected (i) && i != playerid)
  160. {
  161. if (IsPlayerInVehicle (i, GetVehicleInfrontID (vehid)))
  162. {
  163. if (GetPlayerVehicleSeat (i) == 0)
  164. {
  165. GivePlayerMoney (i, -1500);
  166. }
  167. }
  168. }
  169. }
  170. }
  171. }
  172. return 1;
  173. }
  174.  
  175. return 0;
  176. }
  177.  
  178. GetVehicleInfrontID (vehid)
  179. {
  180. new Float: temp = 7.0;
  181. new j = 0;
  182. for (new i = 1; i <= MAX_VEHICLES; i++)
  183. {
  184. new Float: a, Float: x1, Float: y1, Float: z1, Float: x2, Float: y2, Float: z2;
  185. GetVehiclePos (vehid, x1, y1, z1);
  186. GetVehicleZAngle (vehid, a);
  187. if (i != vehid)
  188. {
  189. if (GetVehiclePos (i, x2, y2, z2))
  190. {
  191. new Float: distance = floatsqroot (floatpower ((x1 - x2), 2) + floatpower ((y1 - y2), 2) + floatpower ((z1 - z2), 2));
  192. GetVehicleZAngle (vehid, a);
  193.  
  194. if (distance < 300.0)
  195. {
  196. x1 = x1 + (distance * floatsin(-a, degrees));
  197. y1 = y1 + (distance * floatcos(-a, degrees));
  198.  
  199. distance = floatsqroot ((floatpower ((x1 - x2), 2)) + (floatpower ((y1 - y2), 2)));
  200.  
  201. if (temp > distance)
  202. {
  203. temp = distance;
  204. j = i;
  205. }
  206. }
  207. }
  208. }
  209. }
  210. if (temp < 7.0) return j;
  211. return -1;
  212. }
  213.  
  214. public UpdateSpeed (vehid)
  215. {
  216. new id = GetVehicleInfrontID (vehid);
  217. if (id < 0)
  218. {
  219. TextDrawSetString (SpeedAndModel [vehid], "~b~N/A ~n~~r~N/A");
  220. }
  221. else
  222. {
  223. new str[32], Float: velocityX, Float: velocityY, Float: velocityZ;
  224. GetVehicleVelocity (id, velocityX, velocityY, velocityZ);
  225. new speed = floatround (floatsqroot (floatpower (velocityX, 2) + floatpower (velocityY, 2) + floatpower (velocityZ, 2)) * 136.666667, floatround_round);
  226. format (str, sizeof (str), "~b~%s ~n~~r~%d", VehicleModel [GetVehicleModel (id) - 400], speed);
  227. TextDrawSetString (SpeedAndModel [vehid], str);
  228. }
  229.  
  230. for (new i = 0; i < MAX_PLAYERS; i++)
  231. {
  232. if (IsPlayerInVehicle (i, vehid))
  233. {
  234. TextDrawShowForPlayer (i, SpeedAndModel [vehid]);
  235. }
  236. }
  237. return 1;
  238. }
  239.  
  240. public CheckValidTextDraws()
  241. {
  242. for (new i = 0; i < MAX_PLAYERS; i++)
  243. {
  244. if (IsPlayerConnected (i))
  245. {
  246. if (IsPlayerInAnyVehicle (i))
  247. {
  248. new vehid = GetPlayerVehicleID (i);
  249. if (VehRadarID [vehid] > -1)
  250. {
  251. TextDrawShowForPlayer (i, RadarHud);
  252. if (CheckingSpeed [vehid] > 0)
  253. {
  254. TextDrawShowForPlayer (i, SpeedAndModel [vehid]);
  255. }
  256. else
  257. {
  258. TextDrawHideForPlayer (i, SpeedAndModel [vehid]);
  259. }
  260. }
  261. else
  262. {
  263. TextDrawHideForPlayer (i, RadarHud);
  264. }
  265. }
  266.  
  267. else
  268. {
  269. TextDrawHideForPlayer (i, RadarHud);
  270. TextDrawHideForPlayer (i, SpeedAndModel [OldVehID[i]]);
  271. OldVehID [i] = 0;
  272. }
  273. }
  274. }
  275. return 1;
  276. }
  277.  
  278. public OnPlayerStateChange (playerid, newstate, oldstate)
  279. {
  280. if ((oldstate == PLAYER_STATE_ONFOOT) && (newstate == PLAYER_STATE_PASSENGER || newstate == PLAYER_STATE_DRIVER))
  281. {
  282. OldVehID [playerid] = GetPlayerVehicleID (playerid);
  283. }
  284. return 1;
  285. }
  286.  
  287. public OnVehicleDeath (vehicleid)
  288. {
  289. DestroyObject (VehRadarID [vehicleid]);
  290. VehRadarID [vehicleid] = -1;
  291. KillTimer (CheckingSpeed [vehicleid]);
  292. CheckingSpeed [vehicleid] = -1;
  293. for (new i = 0; i < MAX_PLAYERS; i++)
  294. {
  295. if (IsPlayerInVehicle (i, vehicleid))
  296. {
  297. TextDrawHideForPlayer (i, RadarHud);
  298. TextDrawHideForPlayer (i, SpeedAndModel [vehicleid]);
  299. }
  300. }
  301. }
Advertisement
Add Comment
Please, Sign In to add comment