Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.93 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3.  
  4. new Text:Textdraw13[MAX_PLAYERS];
  5. new Text:Textdraw14[MAX_PLAYERS];
  6. new Text:Textdraw15[MAX_PLAYERS];
  7. new Text:Textdraw16[MAX_PLAYERS];
  8. new IsCheckingSpeed[MAX_PLAYERS];
  9.  
  10. forward Float:GetDistanceBetweenPlayers(p1,p2);
  11.  
  12. new VehNames[212][] =
  13. {
  14. "Landstalker", "Bravura", "Buffalo", "Linerunner", "Pereniel", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch",
  15. "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi",
  16. "Washington", "Bobcat", "Mr Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator",
  17. "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero",
  18. "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed",
  19. "Yankee", "Caddy", "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider",
  20. "Glendale", "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler",
  21. "ZR3 50", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
  22. "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick",
  23. "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer", "Hotring Racer", "Bloodring Banger", "Rancher", "Super GT",
  24. "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropdust", "Stunt", "Tanker", "RoadTrain", "Nebula", "Majestic",
  25. "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "FBI Truck",
  26. "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
  27. "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility",
  28. "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger",
  29. "Flash", "Tahoma", "Savanna", "Bandito", "Freight", "Trailer", "Kart", "Mower", "Duneride", "Sweeper", "Broadway",
  30. "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "Newsvan", "Tug", "Trailer", "Emperor", "Wayfarer",
  31. "Euros", "Hotdog", "Club", "Trailer", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)", "Police Car (SFPD)",
  32. "Police Car (LVPD)", "Police Ranger", "Picador", "S.W.A.T. Van", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer",
  33. "Luggage Trailer", "Stair Trailer", "Boxville", "Farm Plow", "Utility Trailer"
  34. };
  35.  
  36. public OnFilterScriptInit()
  37. {
  38.  
  39. return 1;
  40. }
  41.  
  42. public OnFilterScriptExit()
  43. {
  44.  
  45. return 1;
  46. }
  47.  
  48. public OnPlayerConnect(playerid)
  49. {
  50. //PD Camera
  51. Textdraw13[playerid] = TextDrawCreate(18.000000, 109.000000, "~n~~n~~n~~n~");
  52. TextDrawBackgroundColor(Textdraw13[playerid], -16711681);
  53. TextDrawFont(Textdraw13[playerid], 1);
  54. TextDrawLetterSize(Textdraw13[playerid], 0.500000, 1.000000);
  55. TextDrawColor(Textdraw13[playerid], -1);
  56. TextDrawSetOutline(Textdraw13[playerid], 1);
  57. TextDrawSetProportional(Textdraw13[playerid], 1);
  58. TextDrawUseBox(Textdraw13[playerid], 1);
  59. TextDrawBoxColor(Textdraw13[playerid], 255);
  60. TextDrawTextSize(Textdraw13[playerid], 171.000000, -10.000000);
  61.  
  62. Textdraw14[playerid] = TextDrawCreate(19.000000, 108.000000, "Police Speed Camera");
  63. TextDrawBackgroundColor(Textdraw14[playerid], 65535);
  64. TextDrawFont(Textdraw14[playerid], 1);
  65. TextDrawLetterSize(Textdraw14[playerid], 0.420000, 1.000000);
  66. TextDrawColor(Textdraw14[playerid], 16777215);
  67. TextDrawSetOutline(Textdraw14[playerid], 1);
  68. TextDrawSetProportional(Textdraw14[playerid], 1);
  69.  
  70. Textdraw15[playerid] = TextDrawCreate(18.000000, 119.000000, "Speed: 0km/h");
  71. TextDrawBackgroundColor(Textdraw15[playerid], 255);
  72. TextDrawFont(Textdraw15[playerid], 1);
  73. TextDrawLetterSize(Textdraw15[playerid], 0.500000, 1.000000);
  74. TextDrawColor(Textdraw15[playerid], -1);
  75. TextDrawSetOutline(Textdraw15[playerid], 0);
  76. TextDrawSetProportional(Textdraw15[playerid], 1);
  77. TextDrawSetShadow(Textdraw15[playerid], 1);
  78.  
  79. Textdraw16[playerid] = TextDrawCreate(18.000000, 130.000000, "Vehicle: Unknown");
  80. TextDrawBackgroundColor(Textdraw16[playerid], 255);
  81. TextDrawFont(Textdraw16[playerid], 1);
  82. TextDrawLetterSize(Textdraw16[playerid], 0.500000, 1.000000);
  83. TextDrawColor(Textdraw16[playerid], -1);
  84. TextDrawSetOutline(Textdraw16[playerid], 0);
  85. TextDrawSetProportional(Textdraw16[playerid], 1);
  86. TextDrawSetShadow(Textdraw16[playerid], 1);
  87. return 1;
  88. }
  89.  
  90. public OnPlayerDisconnect(playerid)
  91. {
  92.  
  93. return 1;
  94. }
  95.  
  96. public OnPlayerDeath(playerid)
  97. {
  98.  
  99. return 1;
  100. }
  101. public OnPlayerCommandText(playerid, cmdtext[])
  102. {
  103. if(strcmp(cmdtext, "/speedcamera", true) == 0)
  104. {
  105. if(IsCheckingSpeed[playerid] == 0) {
  106. GivePlayerWeapon(playerid, 43, 100);
  107. IsCheckingSpeed[playerid] = 1;
  108. TextDrawShowForPlayer(playerid, Textdraw13[playerid]);
  109. TextDrawShowForPlayer(playerid, Textdraw14[playerid]);
  110. TextDrawShowForPlayer(playerid, Textdraw15[playerid]);
  111. TextDrawShowForPlayer(playerid, Textdraw16[playerid]);
  112. } else {
  113. IsCheckingSpeed[playerid] = 0;
  114. RemovePlayerWeapon(playerid, 43);
  115. TextDrawHideForPlayer(playerid, Textdraw13[playerid]);
  116. TextDrawHideForPlayer(playerid, Textdraw14[playerid]);
  117. TextDrawHideForPlayer(playerid, Textdraw15[playerid]);
  118. TextDrawHideForPlayer(playerid, Textdraw16[playerid]);
  119. }
  120. return 1;
  121. }
  122. return 0;
  123. }
  124.  
  125. public OnPlayerSpawn(playerid)
  126. {
  127.  
  128. return 1;
  129. }
  130.  
  131. forward GetClosestPlayer(p1);
  132. public GetClosestPlayer(p1)
  133. {
  134. new x,Float:dis,Float:dis2,player;
  135. player = -1;
  136. dis = 99999.99;
  137. for (x=0;x<MAX_PLAYERS;x++)
  138. {
  139. if(IsPlayerConnected(x))
  140. {
  141. if(x != p1)
  142. {
  143. dis2 = GetDistanceBetweenPlayers(x,p1);
  144. if(dis2 < dis && dis2 != -1.00)
  145. {
  146. dis = dis2;
  147. player = x;
  148. }
  149. }
  150. }
  151. }
  152. return player;
  153. }
  154. stock RemovePlayerWeapon(playerid, weaponid)
  155. {
  156. new plyWeapons[12];
  157. new plyAmmo[12];
  158. for(new slot = 0; slot != 12; slot++)
  159. {
  160. new wep, ammos;
  161. GetPlayerWeaponData(playerid, slot, wep, ammos);
  162. if(wep != weaponid)
  163. {
  164. GetPlayerWeaponData(playerid, slot, plyWeapons[slot], plyAmmo[slot]);
  165. }
  166. }
  167. ResetPlayerWeapons(playerid);
  168. for(new slot = 0; slot != 12; slot++)
  169. {
  170. GivePlayerWeapon(playerid, plyWeapons[slot], plyAmmo[slot]);
  171. }
  172. }
  173. public Float:GetDistanceBetweenPlayers(p1,p2)
  174. {
  175. new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
  176. if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
  177. {
  178. return -1.00;
  179. }
  180. GetPlayerPos(p1,x1,y1,z1);
  181. GetPlayerPos(p2,x2,y2,z2);
  182. return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  183. }
  184. stock IsPlayerAiming(playerid, aimid)
  185. {
  186. // Not my function, can't remember who made it though.
  187. new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
  188. GetPlayerPos(playerid, X1, Y1, Z1);
  189. GetPlayerPos(aimid, X2, Y2, Z2);
  190. new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
  191. if(Distance < 100)
  192. {
  193. new Float:A;
  194. GetPlayerFacingAngle(playerid, A);
  195. X1 += (Distance * floatsin(-A, degrees));
  196. Y1 += (Distance * floatcos(-A, degrees));
  197. Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
  198. if(Distance < 0.5)
  199. {
  200. return true;
  201. }
  202. }
  203. return false;
  204. }
  205. public OnPlayerUpdate(playerid)
  206. {
  207. if(IsCheckingSpeed[playerid] == 1 && GetPlayerWeapon(playerid) == 43)
  208. {
  209. for(new i = 0; i < GetMaxPlayers(); i++)
  210. {
  211. new id = GetClosestPlayer(playerid);
  212. new v = GetPlayerVehicleID(id);
  213. new
  214. Float: vPos[3],
  215. Float: Speed,
  216. string[128];
  217. if(GetDistanceBetweenPlayers(playerid, id) < 40) {
  218. if(IsPlayerAiming(playerid, id)) {
  219. GetVehicleVelocity(GetPlayerVehicleID(id), vPos[0], vPos[1], vPos[2]);
  220. Speed = floatmul(floatsqroot(floatadd(floatpower(vPos[0], 2), floatadd(floatpower(vPos[1], 2), floatpower(vPos[2], 2)))), 200);
  221. format(string, sizeof(string), "Speed: %0.0fkm/h", Speed), TextDrawSetString(Textdraw15[playerid], string);
  222. format(string, sizeof(string), "Vehicle: %s", VehNames[GetVehicleModel(v)-400]), TextDrawSetString(Textdraw16[playerid], string);
  223. }
  224. }
  225. }
  226. }
  227. return 1;
  228. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement