Guest User

Freeroam / Stunt / DM Script «|» SA:MP

a guest
Jun 18th, 2014
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 182.75 KB | None | 0 0
  1. #include <a_samp>
  2. #include <fixes>
  3. #include <xml>
  4. #include <banfix>
  5. #include <a_mysql>
  6. #include <streamer>
  7. #include <sscanf>
  8. #include <ForEachPlayer>
  9. #include <callbacks>
  10.  
  11. #define SQL_HOST "127.0.0.1"
  12. #define SQL_USER "root"
  13. #define SQL_PASS ""
  14. #define SQL_DATA "db"
  15.  
  16. #define SERVER_WEBSITE "www.whatever.de"
  17. #define SERVER_UCP "ucp.whatever.de"
  18. #define SERVER_NAME "Whatever"
  19. #define SERVER_TAG "WE"
  20. #define SERVER_VERSION "1.0.5"
  21.  
  22. native WP_Hash(buffer[], len, const str[]);
  23. new SpawnObjects[21];
  24. new PlayerMode[MAX_PLAYERS];
  25.  
  26. new InCar[MAX_PLAYERS];
  27. new WhatCar[MAX_PLAYERS];
  28.  
  29. new SpectatedPlayer[MAX_PLAYERS];
  30. new bool:IsPlayerSpectating[MAX_PLAYERS];
  31.  
  32. new PlayerKillingSpree[MAX_PLAYERS];
  33.  
  34. enum MData {
  35. Float:mX,
  36. Float:mY,
  37. Float:mZ,
  38. Float:mA,
  39. virtualworld,
  40. weapon1,
  41. weapon_ammo1,
  42. weapon2,
  43. weapon_ammo2,
  44. weapon3,
  45. weapon_ammo3
  46. }
  47. new ModeData[][MData] = {
  48. {1310.2128,-1370.4999,13.5764,179.4715,0,10,1,0,0,0,0}, //Spawn
  49. {1305.2179,2107.2729,11.0156,310.8057,500,24,128,26,128,0,0}, //DM 1
  50. {1305.2179,2107.2729,11.0156,310.8057,501,22,128,31,256,0,0}, //DM 2
  51. {1305.2179,2107.2729,11.0156,310.8057,502,24,128,25,128,0,0} //DM 3
  52. };
  53.  
  54. enum RData {
  55. Float:rsX,
  56. Float:rsY,
  57. Float:rsZ
  58. }
  59. new RandomSpawns[][RData] = {
  60. {1390.6727,2192.3665,11.0234}, //DM 1
  61. {1390.6727,2192.3665,11.0234}, //DM 2
  62. {1390.6727,2192.3665,11.0234} //DM 3
  63. };
  64.  
  65. #define MAX_MAPS 3
  66. enum MapData {
  67. MapName[60]
  68. }
  69. new LoadMaps[][MapData] = {
  70. {"Maps/LSAir.xml"},
  71. {"Maps/Ammunation.xml"}
  72. };
  73.  
  74. new Text:InformationBox[2],
  75. Text:InfoBoxText[7],
  76. Text:TextDrawForum,
  77. Text:MoneyTextDraw[4],
  78. Text:MoneyText[MAX_PLAYERS],
  79. Text:HealBarText[MAX_PLAYERS],
  80. Text:DateTimeTextDraw[3],
  81. Text:BottomBox[2],
  82. Text:PlayerFPSTD[MAX_PLAYERS],
  83. Text:PlayerModeTD[MAX_PLAYERS],
  84. Text:Speedo[MAX_PLAYERS][4],
  85. Text:TextDialog[16][MAX_PLAYERS],
  86. Text:SpectateTD[6][MAX_PLAYERS],
  87. Text:DamageTD[MAX_PLAYERS];
  88.  
  89. new CurrentTextDialog[MAX_PLAYERS] = -1;
  90. new HappyHour = 0, Text: HHTD, HHTimer;
  91. enum AntiRetard
  92. {
  93. aOnFootAirbrake, // Currently not used
  94. Float: aOnFootDistance, // Currently not used
  95. aFakeKillCount
  96. }
  97.  
  98. new GetARInfo[MAX_PLAYERS][AntiRetard];
  99.  
  100. enum SpielerDaten
  101. {
  102. pName[MAX_PLAYER_NAME],
  103. pMoney,
  104. pSkin,
  105. pScore,
  106. pLevel,
  107. pKills,
  108. pDeaths,
  109. pPremium,
  110. pAdmin,
  111. pLoggedIn,
  112. pPaused
  113. }
  114. new SpielerInfo[MAX_PLAYERS][SpielerDaten];
  115.  
  116. new PlayerVehicle[MAX_PLAYERS];
  117.  
  118. new HelpVar = 0, TDChangeVar = 0;
  119. new shotTime[MAX_PLAYERS];
  120. new shot[MAX_PLAYERS];
  121. new SpeedoState[MAX_PLAYERS];
  122. new PlayerHasBeenSlain[MAX_PLAYERS];
  123. #define MAX_LENGTH 96
  124. #define MAX_LINES 7
  125.  
  126. new Info_Message[MAX_LINES][MAX_LENGTH];
  127.  
  128. //Defines
  129. #define PUBLIC:%0(%1) forward%0(%1); public%0(%1)
  130.  
  131. #define DIALOG_STATS (0)
  132. #define DIALOG_REGISTER (1)
  133. #define DIALOG_LOGIN (2)
  134. #define DIALOG_TELEPORT (3)
  135. #define DIALOG_TELEPORT_LOCATIONS (4)
  136. #define DIALOG_TELEPORT_DM (5)
  137. #define TEXT_TELEPORT (6)
  138. #define TEXT_TELEPORT_LOCATIONS (7)
  139. #define TEXT_TELEPORT_DM (8)
  140.  
  141. #define WEAPON_BODY_PART_CHEST 3
  142. #define WEAPON_BODY_PART_CROTCH 4
  143. #define WEAPON_BODY_PART_LEFT_ARM 5
  144. #define WEAPON_BODY_PART_RIGHT_ARM 6
  145. #define WEAPON_BODY_PART_LEFT_LEG 7
  146. #define WEAPON_BODY_PART_RIGHT_LEG 8
  147. #define WEAPON_BODY_PART_HEAD 9
  148.  
  149. new stock
  150. FALSE = false,
  151. TRUE = true;
  152.  
  153. #define S: SendClientMessage
  154. #define SA: SendClientMessageToAll
  155. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  156.  
  157. //Farben
  158. #define COLOR_LIGHTRED 0xFF6347AA
  159. #define COLOR_ORANGE 0xFF9933FF
  160. #define COLOR_WHITE 0xFFFFFFFF
  161. #define COLOR_DIALOG 0xA9C4E4FF
  162. #define COLOR_LIGHTBLUE 0x33CCFFAA
  163. #define COLOR_LIGHTGREEN 0x9ACD32AA
  164. #define COLOR_BLUE 0x0A00FFFF
  165. #define COLOR_GREY 0xB4B5B7FF
  166.  
  167. //Hex Farben
  168. #define HEX_WHITE "{FFFFFF}"
  169. #define HEX_LIGHTRED "{FF6347}"
  170. #define HEX_ORANGE "{FF9933}"
  171. #define HEX_DIALOG_COL "{A9C4E4}"
  172. #define HEX_LIGHTBLUE "{33CCFF}"
  173. #define HEX_LIGHTGREEN "{9ACD32}"
  174. #define HEX_BLUE "{0A00FF}"
  175. #define HEX_GREY "{B4B5B7}"
  176.  
  177. new VehicleNames[][] =
  178. {
  179. "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
  180. "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
  181. "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  182. "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection",
  183. "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
  184. "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
  185. "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
  186. "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
  187. "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van",
  188. "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale",
  189. "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
  190. "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
  191. "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper",
  192. "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
  193. "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin",
  194. "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT",
  195. "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt",
  196. "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
  197. "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
  198. "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
  199. "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
  200. "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
  201. "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
  202. "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
  203. "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  204. "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
  205. "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
  206. "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  207. "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car",
  208. "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
  209. "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
  210. "Tiller", "Utility Trailer"
  211. };
  212.  
  213. new PlayerColors[200] = {
  214. 0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,
  215. 0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,
  216. 0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,
  217. 0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,
  218. 0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,
  219. 0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,
  220. 0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,
  221. 0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,
  222. 0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,
  223. 0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF,
  224. 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
  225. 0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,
  226. 0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,
  227. 0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,
  228. 0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,
  229. 0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
  230. 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,
  231. 0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,
  232. 0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,
  233. 0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,
  234. 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,
  235. 0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,
  236. 0xD8C762FF,0xD8C762FF
  237. };
  238. #define MAX_ZONE_NAME 28
  239. enum SAZONE_MAIN
  240. {
  241. SAZONE_NAME [28 char],
  242. Float: SAZONE_AREA [6]
  243. };
  244.  
  245. static const SAZones [][SAZONE_MAIN] =
  246. {
  247. {!"The Big Ear", {-410.00, 1403.30, -3.00, -137.90, 1681.20, 200.00}},
  248. {!"Aldea Malvada", {-1372.10, 2498.50, 0.00, -1277.50, 2615.30, 200.00}},
  249. {!"Angel Pine", {-2324.90, -2584.20, -6.10, -1964.20, -2212.10, 200.00}},
  250. {!"Arco del Oeste", {-901.10, 2221.80, 0.00, -592.00, 2571.90, 200.00}},
  251. {!"Avispa Country Club", {-2646.40, -355.40, 0.00, -2270.00, -222.50, 200.00}},
  252. {!"Avispa Country Club", {-2831.80, -430.20, -6.10, -2646.40, -222.50, 200.00}},
  253. {!"Avispa Country Club", {-2361.50, -417.10, 0.00, -2270.00, -355.40, 200.00}},
  254. {!"Avispa Country Club", {-2667.80, -302.10, -28.80, -2646.40, -262.30, 71.10}},
  255. {!"Avispa Country Club", {-2470.00, -355.40, 0.00, -2270.00, -318.40, 46.10}},
  256. {!"Avispa Country Club", {-2550.00, -355.40, 0.00, -2470.00, -318.40, 39.70}},
  257. {!"Back o Beyond", {-1166.90, -2641.10, 0.00, -321.70, -1856.00, 200.00}},
  258. {!"Battery Point", {-2741.00, 1268.40, -4.50, -2533.00, 1490.40, 200.00}},
  259. {!"Bayside", {-2741.00, 2175.10, 0.00, -2353.10, 2722.70, 200.00}},
  260. {!"Bayside Marina", {-2353.10, 2275.70, 0.00, -2153.10, 2475.70, 200.00}},
  261. {!"Beacon Hill", {-399.60, -1075.50, -1.40, -319.00, -977.50, 198.50}},
  262. {!"Blackfield", {964.30, 1203.20, -89.00, 1197.30, 1403.20, 110.90}},
  263. {!"Blackfield", {964.30, 1403.20, -89.00, 1197.30, 1726.20, 110.90}},
  264. {!"Blackfield Chapel", {1375.60, 596.30, -89.00, 1558.00, 823.20, 110.90}},
  265. {!"Blackfield Chapel", {1325.60, 596.30, -89.00, 1375.60, 795.00, 110.90}},
  266. {!"Blackfield Intersection", {1197.30, 1044.60, -89.00, 1277.00, 1163.30, 110.90}},
  267. {!"Blackfield Intersection", {1166.50, 795.00, -89.00, 1375.60, 1044.60, 110.90}},
  268. {!"Blackfield Intersection", {1277.00, 1044.60, -89.00, 1315.30, 1087.60, 110.90}},
  269. {!"Blackfield Intersection", {1375.60, 823.20, -89.00, 1457.30, 919.40, 110.90}},
  270. {!"Blueberry", {104.50, -220.10, 2.30, 349.60, 152.20, 200.00}},
  271. {!"Blueberry", {19.60, -404.10, 3.80, 349.60, -220.10, 200.00}},
  272. {!"Blueberry Acres", {-319.60, -220.10, 0.00, 104.50, 293.30, 200.00}},
  273. {!"Caligula's Palace", {2087.30, 1543.20, -89.00, 2437.30, 1703.20, 110.90}},
  274. {!"Caligula's Palace", {2137.40, 1703.20, -89.00, 2437.30, 1783.20, 110.90}},
  275. {!"Calton Heights", {-2274.10, 744.10, -6.10, -1982.30, 1358.90, 200.00}},
  276. {!"Chinatown", {-2274.10, 578.30, -7.60, -2078.60, 744.10, 200.00}},
  277. {!"City Hall", {-2867.80, 277.40, -9.10, -2593.40, 458.40, 200.00}},
  278. {!"Come-A-Lot", {2087.30, 943.20, -89.00, 2623.10, 1203.20, 110.90}},
  279. {!"Commerce", {1323.90, -1842.20, -89.00, 1701.90, -1722.20, 110.90}},
  280. {!"Commerce", {1323.90, -1722.20, -89.00, 1440.90, -1577.50, 110.90}},
  281. {!"Commerce", {1370.80, -1577.50, -89.00, 1463.90, -1384.90, 110.90}},
  282. {!"Commerce", {1463.90, -1577.50, -89.00, 1667.90, -1430.80, 110.90}},
  283. {!"Commerce", {1583.50, -1722.20, -89.00, 1758.90, -1577.50, 110.90}},
  284. {!"Commerce", {1667.90, -1577.50, -89.00, 1812.60, -1430.80, 110.90}},
  285. {!"Conference Center", {1046.10, -1804.20, -89.00, 1323.90, -1722.20, 110.90}},
  286. {!"Conference Center", {1073.20, -1842.20, -89.00, 1323.90, -1804.20, 110.90}},
  287. {!"Cranberry Station", {-2007.80, 56.30, 0.00, -1922.00, 224.70, 100.00}},
  288. {!"Creek", {2749.90, 1937.20, -89.00, 2921.60, 2669.70, 110.90}},
  289. {!"Dillimore", {580.70, -674.80, -9.50, 861.00, -404.70, 200.00}},
  290. {!"Doherty", {-2270.00, -324.10, -0.00, -1794.90, -222.50, 200.00}},
  291. {!"Doherty", {-2173.00, -222.50, -0.00, -1794.90, 265.20, 200.00}},
  292. {!"Downtown", {-1982.30, 744.10, -6.10, -1871.70, 1274.20, 200.00}},
  293. {!"Downtown", {-1871.70, 1176.40, -4.50, -1620.30, 1274.20, 200.00}},
  294. {!"Downtown", {-1700.00, 744.20, -6.10, -1580.00, 1176.50, 200.00}},
  295. {!"Downtown", {-1580.00, 744.20, -6.10, -1499.80, 1025.90, 200.00}},
  296. {!"Downtown", {-2078.60, 578.30, -7.60, -1499.80, 744.20, 200.00}},
  297. {!"Downtown", {-1993.20, 265.20, -9.10, -1794.90, 578.30, 200.00}},
  298. {!"Downtown Los Santos", {1463.90, -1430.80, -89.00, 1724.70, -1290.80, 110.90}},
  299. {!"Downtown Los Santos", {1724.70, -1430.80, -89.00, 1812.60, -1250.90, 110.90}},
  300. {!"Downtown Los Santos", {1463.90, -1290.80, -89.00, 1724.70, -1150.80, 110.90}},
  301. {!"Downtown Los Santos", {1370.80, -1384.90, -89.00, 1463.90, -1170.80, 110.90}},
  302. {!"Downtown Los Santos", {1724.70, -1250.90, -89.00, 1812.60, -1150.80, 110.90}},
  303. {!"Downtown Los Santos", {1370.80, -1170.80, -89.00, 1463.90, -1130.80, 110.90}},
  304. {!"Downtown Los Santos", {1378.30, -1130.80, -89.00, 1463.90, -1026.30, 110.90}},
  305. {!"Downtown Los Santos", {1391.00, -1026.30, -89.00, 1463.90, -926.90, 110.90}},
  306. {!"Downtown Los Santos", {1507.50, -1385.20, 110.90, 1582.50, -1325.30, 335.90}},
  307. {!"East Beach", {2632.80, -1852.80, -89.00, 2959.30, -1668.10, 110.90}},
  308. {!"East Beach", {2632.80, -1668.10, -89.00, 2747.70, -1393.40, 110.90}},
  309. {!"East Beach", {2747.70, -1668.10, -89.00, 2959.30, -1498.60, 110.90}},
  310. {!"East Beach", {2747.70, -1498.60, -89.00, 2959.30, -1120.00, 110.90}},
  311. {!"East Los Santos", {2421.00, -1628.50, -89.00, 2632.80, -1454.30, 110.90}},
  312. {!"East Los Santos", {2222.50, -1628.50, -89.00, 2421.00, -1494.00, 110.90}},
  313. {!"East Los Santos", {2266.20, -1494.00, -89.00, 2381.60, -1372.00, 110.90}},
  314. {!"East Los Santos", {2381.60, -1494.00, -89.00, 2421.00, -1454.30, 110.90}},
  315. {!"East Los Santos", {2281.40, -1372.00, -89.00, 2381.60, -1135.00, 110.90}},
  316. {!"East Los Santos", {2381.60, -1454.30, -89.00, 2462.10, -1135.00, 110.90}},
  317. {!"East Los Santos", {2462.10, -1454.30, -89.00, 2581.70, -1135.00, 110.90}},
  318. {!"Easter Basin", {-1794.90, 249.90, -9.10, -1242.90, 578.30, 200.00}},
  319. {!"Easter Basin", {-1794.90, -50.00, -0.00, -1499.80, 249.90, 200.00}},
  320. {!"Easter Bay Airport", {-1499.80, -50.00, -0.00, -1242.90, 249.90, 200.00}},
  321. {!"Easter Bay Airport", {-1794.90, -730.10, -3.00, -1213.90, -50.00, 200.00}},
  322. {!"Easter Bay Airport", {-1213.90, -730.10, 0.00, -1132.80, -50.00, 200.00}},
  323. {!"Easter Bay Airport", {-1242.90, -50.00, 0.00, -1213.90, 578.30, 200.00}},
  324. {!"Easter Bay Airport", {-1213.90, -50.00, -4.50, -947.90, 578.30, 200.00}},
  325. {!"Easter Bay Airport", {-1315.40, -405.30, 15.40, -1264.40, -209.50, 25.40}},
  326. {!"Easter Bay Airport", {-1354.30, -287.30, 15.40, -1315.40, -209.50, 25.40}},
  327. {!"Easter Bay Airport", {-1490.30, -209.50, 15.40, -1264.40, -148.30, 25.40}},
  328. {!"Easter Bay Chemicals", {-1132.80, -768.00, 0.00, -956.40, -578.10, 200.00}},
  329. {!"Easter Bay Chemicals", {-1132.80, -787.30, 0.00, -956.40, -768.00, 200.00}},
  330. {!"El Castillo del Diablo", {-464.50, 2217.60, 0.00, -208.50, 2580.30, 200.00}},
  331. {!"El Castillo del Diablo", {-208.50, 2123.00, -7.60, 114.00, 2337.10, 200.00}},
  332. {!"El Castillo del Diablo", {-208.50, 2337.10, 0.00, 8.40, 2487.10, 200.00}},
  333. {!"El Corona", {1812.60, -2179.20, -89.00, 1970.60, -1852.80, 110.90}},
  334. {!"El Corona", {1692.60, -2179.20, -89.00, 1812.60, -1842.20, 110.90}},
  335. {!"El Quebrados", {-1645.20, 2498.50, 0.00, -1372.10, 2777.80, 200.00}},
  336. {!"Esplanade East", {-1620.30, 1176.50, -4.50, -1580.00, 1274.20, 200.00}},
  337. {!"Esplanade East", {-1580.00, 1025.90, -6.10, -1499.80, 1274.20, 200.00}},
  338. {!"Esplanade East", {-1499.80, 578.30, -79.60, -1339.80, 1274.20, 20.30}},
  339. {!"Esplanade North", {-2533.00, 1358.90, -4.50, -1996.60, 1501.20, 200.00}},
  340. {!"Esplanade North", {-1996.60, 1358.90, -4.50, -1524.20, 1592.50, 200.00}},
  341. {!"Esplanade North", {-1982.30, 1274.20, -4.50, -1524.20, 1358.90, 200.00}},
  342. {!"Fallen Tree", {-792.20, -698.50, -5.30, -452.40, -380.00, 200.00}},
  343. {!"Fallow Bridge", {434.30, 366.50, 0.00, 603.00, 555.60, 200.00}},
  344. {!"Fern Ridge", {508.10, -139.20, 0.00, 1306.60, 119.50, 200.00}},
  345. {!"Financial", {-1871.70, 744.10, -6.10, -1701.30, 1176.40, 300.00}},
  346. {!"Fisher's Lagoon", {1916.90, -233.30, -100.00, 2131.70, 13.80, 200.00}},
  347. {!"Flint Intersection", {-187.70, -1596.70, -89.00, 17.00, -1276.60, 110.90}},
  348. {!"Flint Range", {-594.10, -1648.50, 0.00, -187.70, -1276.60, 200.00}},
  349. {!"Fort Carson", {-376.20, 826.30, -3.00, 123.70, 1220.40, 200.00}},
  350. {!"Foster Valley", {-2270.00, -430.20, -0.00, -2178.60, -324.10, 200.00}},
  351. {!"Foster Valley", {-2178.60, -599.80, -0.00, -1794.90, -324.10, 200.00}},
  352. {!"Foster Valley", {-2178.60, -1115.50, 0.00, -1794.90, -599.80, 200.00}},
  353. {!"Foster Valley", {-2178.60, -1250.90, 0.00, -1794.90, -1115.50, 200.00}},
  354. {!"Frederick Bridge", {2759.20, 296.50, 0.00, 2774.20, 594.70, 200.00}},
  355. {!"Gant Bridge", {-2741.40, 1659.60, -6.10, -2616.40, 2175.10, 200.00}},
  356. {!"Gant Bridge", {-2741.00, 1490.40, -6.10, -2616.40, 1659.60, 200.00}},
  357. {!"Ganton", {2222.50, -1852.80, -89.00, 2632.80, -1722.30, 110.90}},
  358. {!"Ganton", {2222.50, -1722.30, -89.00, 2632.80, -1628.50, 110.90}},
  359. {!"Garcia", {-2411.20, -222.50, -0.00, -2173.00, 265.20, 200.00}},
  360. {!"Garcia", {-2395.10, -222.50, -5.30, -2354.00, -204.70, 200.00}},
  361. {!"Garver Bridge", {-1339.80, 828.10, -89.00, -1213.90, 1057.00, 110.90}},
  362. {!"Garver Bridge", {-1213.90, 950.00, -89.00, -1087.90, 1178.90, 110.90}},
  363. {!"Garver Bridge", {-1499.80, 696.40, -179.60, -1339.80, 925.30, 20.30}},
  364. {!"Glen Park", {1812.60, -1449.60, -89.00, 1996.90, -1350.70, 110.90}},
  365. {!"Glen Park", {1812.60, -1100.80, -89.00, 1994.30, -973.30, 110.90}},
  366. {!"Glen Park", {1812.60, -1350.70, -89.00, 2056.80, -1100.80, 110.90}},
  367. {!"Green Palms", {176.50, 1305.40, -3.00, 338.60, 1520.70, 200.00}},
  368. {!"Greenglass College", {964.30, 1044.60, -89.00, 1197.30, 1203.20, 110.90}},
  369. {!"Greenglass College", {964.30, 930.80, -89.00, 1166.50, 1044.60, 110.90}},
  370. {!"Hampton Barns", {603.00, 264.30, 0.00, 761.90, 366.50, 200.00}},
  371. {!"Hankypanky Point", {2576.90, 62.10, 0.00, 2759.20, 385.50, 200.00}},
  372. {!"Harry Gold Parkway", {1777.30, 863.20, -89.00, 1817.30, 2342.80, 110.90}},
  373. {!"Hashbury", {-2593.40, -222.50, -0.00, -2411.20, 54.70, 200.00}},
  374. {!"Hilltop Farm", {967.30, -450.30, -3.00, 1176.70, -217.90, 200.00}},
  375. {!"Hunter Quarry", {337.20, 710.80, -115.20, 860.50, 1031.70, 203.70}},
  376. {!"Idlewood", {1812.60, -1852.80, -89.00, 1971.60, -1742.30, 110.90}},
  377. {!"Idlewood", {1812.60, -1742.30, -89.00, 1951.60, -1602.30, 110.90}},
  378. {!"Idlewood", {1951.60, -1742.30, -89.00, 2124.60, -1602.30, 110.90}},
  379. {!"Idlewood", {1812.60, -1602.30, -89.00, 2124.60, -1449.60, 110.90}},
  380. {!"Idlewood", {2124.60, -1742.30, -89.00, 2222.50, -1494.00, 110.90}},
  381. {!"Idlewood", {1971.60, -1852.80, -89.00, 2222.50, -1742.30, 110.90}},
  382. {!"Jefferson", {1996.90, -1449.60, -89.00, 2056.80, -1350.70, 110.90}},
  383. {!"Jefferson", {2124.60, -1494.00, -89.00, 2266.20, -1449.60, 110.90}},
  384. {!"Jefferson", {2056.80, -1372.00, -89.00, 2281.40, -1210.70, 110.90}},
  385. {!"Jefferson", {2056.80, -1210.70, -89.00, 2185.30, -1126.30, 110.90}},
  386. {!"Jefferson", {2185.30, -1210.70, -89.00, 2281.40, -1154.50, 110.90}},
  387. {!"Jefferson", {2056.80, -1449.60, -89.00, 2266.20, -1372.00, 110.90}},
  388. {!"Julius Thruway East", {2623.10, 943.20, -89.00, 2749.90, 1055.90, 110.90}},
  389. {!"Julius Thruway East", {2685.10, 1055.90, -89.00, 2749.90, 2626.50, 110.90}},
  390. {!"Julius Thruway East", {2536.40, 2442.50, -89.00, 2685.10, 2542.50, 110.90}},
  391. {!"Julius Thruway East", {2625.10, 2202.70, -89.00, 2685.10, 2442.50, 110.90}},
  392. {!"Julius Thruway North", {2498.20, 2542.50, -89.00, 2685.10, 2626.50, 110.90}},
  393. {!"Julius Thruway North", {2237.40, 2542.50, -89.00, 2498.20, 2663.10, 110.90}},
  394. {!"Julius Thruway North", {2121.40, 2508.20, -89.00, 2237.40, 2663.10, 110.90}},
  395. {!"Julius Thruway North", {1938.80, 2508.20, -89.00, 2121.40, 2624.20, 110.90}},
  396. {!"Julius Thruway North", {1534.50, 2433.20, -89.00, 1848.40, 2583.20, 110.90}},
  397. {!"Julius Thruway North", {1848.40, 2478.40, -89.00, 1938.80, 2553.40, 110.90}},
  398. {!"Julius Thruway North", {1704.50, 2342.80, -89.00, 1848.40, 2433.20, 110.90}},
  399. {!"Julius Thruway North", {1377.30, 2433.20, -89.00, 1534.50, 2507.20, 110.90}},
  400. {!"Julius Thruway South", {1457.30, 823.20, -89.00, 2377.30, 863.20, 110.90}},
  401. {!"Julius Thruway South", {2377.30, 788.80, -89.00, 2537.30, 897.90, 110.90}},
  402. {!"Julius Thruway West", {1197.30, 1163.30, -89.00, 1236.60, 2243.20, 110.90}},
  403. {!"Julius Thruway West", {1236.60, 2142.80, -89.00, 1297.40, 2243.20, 110.90}},
  404. {!"Juniper Hill", {-2533.00, 578.30, -7.60, -2274.10, 968.30, 200.00}},
  405. {!"Juniper Hollow", {-2533.00, 968.30, -6.10, -2274.10, 1358.90, 200.00}},
  406. {!"K.A.C.C. Military Fuels", {2498.20, 2626.50, -89.00, 2749.90, 2861.50, 110.90}},
  407. {!"Kincaid Bridge", {-1339.80, 599.20, -89.00, -1213.90, 828.10, 110.90}},
  408. {!"Kincaid Bridge", {-1213.90, 721.10, -89.00, -1087.90, 950.00, 110.90}},
  409. {!"Kincaid Bridge", {-1087.90, 855.30, -89.00, -961.90, 986.20, 110.90}},
  410. {!"King's", {-2329.30, 458.40, -7.60, -1993.20, 578.30, 200.00}},
  411. {!"King's", {-2411.20, 265.20, -9.10, -1993.20, 373.50, 200.00}},
  412. {!"King's", {-2253.50, 373.50, -9.10, -1993.20, 458.40, 200.00}},
  413. {!"LVA Freight Depot", {1457.30, 863.20, -89.00, 1777.40, 1143.20, 110.90}},
  414. {!"LVA Freight Depot", {1375.60, 919.40, -89.00, 1457.30, 1203.20, 110.90}},
  415. {!"LVA Freight Depot", {1277.00, 1087.60, -89.00, 1375.60, 1203.20, 110.90}},
  416. {!"LVA Freight Depot", {1315.30, 1044.60, -89.00, 1375.60, 1087.60, 110.90}},
  417. {!"LVA Freight Depot", {1236.60, 1163.40, -89.00, 1277.00, 1203.20, 110.90}},
  418. {!"Las Barrancas", {-926.10, 1398.70, -3.00, -719.20, 1634.60, 200.00}},
  419. {!"Las Brujas", {-365.10, 2123.00, -3.00, -208.50, 2217.60, 200.00}},
  420. {!"Las Colinas", {1994.30, -1100.80, -89.00, 2056.80, -920.80, 110.90}},
  421. {!"Las Colinas", {2056.80, -1126.30, -89.00, 2126.80, -920.80, 110.90}},
  422. {!"Las Colinas", {2185.30, -1154.50, -89.00, 2281.40, -934.40, 110.90}},
  423. {!"Las Colinas", {2126.80, -1126.30, -89.00, 2185.30, -934.40, 110.90}},
  424. {!"Las Colinas", {2747.70, -1120.00, -89.00, 2959.30, -945.00, 110.90}},
  425. {!"Las Colinas", {2632.70, -1135.00, -89.00, 2747.70, -945.00, 110.90}},
  426. {!"Las Colinas", {2281.40, -1135.00, -89.00, 2632.70, -945.00, 110.90}},
  427. {!"Las Payasadas", {-354.30, 2580.30, 2.00, -133.60, 2816.80, 200.00}},
  428. {!"Las Venturas Airport", {1236.60, 1203.20, -89.00, 1457.30, 1883.10, 110.90}},
  429. {!"Las Venturas Airport", {1457.30, 1203.20, -89.00, 1777.30, 1883.10, 110.90}},
  430. {!"Las Venturas Airport", {1457.30, 1143.20, -89.00, 1777.40, 1203.20, 110.90}},
  431. {!"Las Venturas Airport", {1515.80, 1586.40, -12.50, 1729.90, 1714.50, 87.50}},
  432. {!"Last Dime Motel", {1823.00, 596.30, -89.00, 1997.20, 823.20, 110.90}},
  433. {!"Leafy Hollow", {-1166.90, -1856.00, 0.00, -815.60, -1602.00, 200.00}},
  434. {!"Liberty City", {-1000.00, 400.00, 1300.00, -700.00, 600.00, 1400.00}},
  435. {!"Lil' Probe Inn", {-90.20, 1286.80, -3.00, 153.80, 1554.10, 200.00}},
  436. {!"Linden Side", {2749.90, 943.20, -89.00, 2923.30, 1198.90, 110.90}},
  437. {!"Linden Station", {2749.90, 1198.90, -89.00, 2923.30, 1548.90, 110.90}},
  438. {!"Linden Station", {2811.20, 1229.50, -39.50, 2861.20, 1407.50, 60.40}},
  439. {!"Little Mexico", {1701.90, -1842.20, -89.00, 1812.60, -1722.20, 110.90}},
  440. {!"Little Mexico", {1758.90, -1722.20, -89.00, 1812.60, -1577.50, 110.90}},
  441. {!"Los Flores", {2581.70, -1454.30, -89.00, 2632.80, -1393.40, 110.90}},
  442. {!"Los Flores", {2581.70, -1393.40, -89.00, 2747.70, -1135.00, 110.90}},
  443. {!"Los Santos International", {1249.60, -2394.30, -89.00, 1852.00, -2179.20, 110.90}},
  444. {!"Los Santos International", {1852.00, -2394.30, -89.00, 2089.00, -2179.20, 110.90}},
  445. {!"Los Santos International", {1382.70, -2730.80, -89.00, 2201.80, -2394.30, 110.90}},
  446. {!"Los Santos International", {1974.60, -2394.30, -39.00, 2089.00, -2256.50, 60.90}},
  447. {!"Los Santos International", {1400.90, -2669.20, -39.00, 2189.80, -2597.20, 60.90}},
  448. {!"Los Santos International", {2051.60, -2597.20, -39.00, 2152.40, -2394.30, 60.90}},
  449. {!"Marina", {647.70, -1804.20, -89.00, 851.40, -1577.50, 110.90}},
  450. {!"Marina", {647.70, -1577.50, -89.00, 807.90, -1416.20, 110.90}},
  451. {!"Marina", {807.90, -1577.50, -89.00, 926.90, -1416.20, 110.90}},
  452. {!"Market", {787.40, -1416.20, -89.00, 1072.60, -1310.20, 110.90}},
  453. {!"Market", {952.60, -1310.20, -89.00, 1072.60, -1130.80, 110.90}},
  454. {!"Market", {1072.60, -1416.20, -89.00, 1370.80, -1130.80, 110.90}},
  455. {!"Market", {926.90, -1577.50, -89.00, 1370.80, -1416.20, 110.90}},
  456. {!"Market Station", {787.40, -1410.90, -34.10, 866.00, -1310.20, 65.80}},
  457. {!"Martin Bridge", {-222.10, 293.30, 0.00, -122.10, 476.40, 200.00}},
  458. {!"Missionary Hill", {-2994.40, -811.20, 0.00, -2178.60, -430.20, 200.00}},
  459. {!"Montgomery", {1119.50, 119.50, -3.00, 1451.40, 493.30, 200.00}},
  460. {!"Montgomery", {1451.40, 347.40, -6.10, 1582.40, 420.80, 200.00}},
  461. {!"Montgomery Intersection", {1546.60, 208.10, 0.00, 1745.80, 347.40, 200.00}},
  462. {!"Montgomery Intersection", {1582.40, 347.40, 0.00, 1664.60, 401.70, 200.00}},
  463. {!"Mulholland", {1414.00, -768.00, -89.00, 1667.60, -452.40, 110.90}},
  464. {!"Mulholland", {1281.10, -452.40, -89.00, 1641.10, -290.90, 110.90}},
  465. {!"Mulholland", {1269.10, -768.00, -89.00, 1414.00, -452.40, 110.90}},
  466. {!"Mulholland", {1357.00, -926.90, -89.00, 1463.90, -768.00, 110.90}},
  467. {!"Mulholland", {1318.10, -910.10, -89.00, 1357.00, -768.00, 110.90}},
  468. {!"Mulholland", {1169.10, -910.10, -89.00, 1318.10, -768.00, 110.90}},
  469. {!"Mulholland", {768.60, -954.60, -89.00, 952.60, -860.60, 110.90}},
  470. {!"Mulholland", {687.80, -860.60, -89.00, 911.80, -768.00, 110.90}},
  471. {!"Mulholland", {737.50, -768.00, -89.00, 1142.20, -674.80, 110.90}},
  472. {!"Mulholland", {1096.40, -910.10, -89.00, 1169.10, -768.00, 110.90}},
  473. {!"Mulholland", {952.60, -937.10, -89.00, 1096.40, -860.60, 110.90}},
  474. {!"Mulholland", {911.80, -860.60, -89.00, 1096.40, -768.00, 110.90}},
  475. {!"Mulholland", {861.00, -674.80, -89.00, 1156.50, -600.80, 110.90}},
  476. {!"Mulholland Intersection", {1463.90, -1150.80, -89.00, 1812.60, -768.00, 110.90}},
  477. {!"North Rock", {2285.30, -768.00, 0.00, 2770.50, -269.70, 200.00}},
  478. {!"Ocean Docks", {2373.70, -2697.00, -89.00, 2809.20, -2330.40, 110.90}},
  479. {!"Ocean Docks", {2201.80, -2418.30, -89.00, 2324.00, -2095.00, 110.90}},
  480. {!"Ocean Docks", {2324.00, -2302.30, -89.00, 2703.50, -2145.10, 110.90}},
  481. {!"Ocean Docks", {2089.00, -2394.30, -89.00, 2201.80, -2235.80, 110.90}},
  482. {!"Ocean Docks", {2201.80, -2730.80, -89.00, 2324.00, -2418.30, 110.90}},
  483. {!"Ocean Docks", {2703.50, -2302.30, -89.00, 2959.30, -2126.90, 110.90}},
  484. {!"Ocean Docks", {2324.00, -2145.10, -89.00, 2703.50, -2059.20, 110.90}},
  485. {!"Ocean Flats", {-2994.40, 277.40, -9.10, -2867.80, 458.40, 200.00}},
  486. {!"Ocean Flats", {-2994.40, -222.50, -0.00, -2593.40, 277.40, 200.00}},
  487. {!"Ocean Flats", {-2994.40, -430.20, -0.00, -2831.80, -222.50, 200.00}},
  488. {!"Octane Springs", {338.60, 1228.50, 0.00, 664.30, 1655.00, 200.00}},
  489. {!"Old Venturas Strip", {2162.30, 2012.10, -89.00, 2685.10, 2202.70, 110.90}},
  490. {!"Palisades", {-2994.40, 458.40, -6.10, -2741.00, 1339.60, 200.00}},
  491. {!"Palomino Creek", {2160.20, -149.00, 0.00, 2576.90, 228.30, 200.00}},
  492. {!"Paradiso", {-2741.00, 793.40, -6.10, -2533.00, 1268.40, 200.00}},
  493. {!"Pershing Square", {1440.90, -1722.20, -89.00, 1583.50, -1577.50, 110.90}},
  494. {!"Pilgrim", {2437.30, 1383.20, -89.00, 2624.40, 1783.20, 110.90}},
  495. {!"Pilgrim", {2624.40, 1383.20, -89.00, 2685.10, 1783.20, 110.90}},
  496. {!"Pilson Intersection", {1098.30, 2243.20, -89.00, 1377.30, 2507.20, 110.90}},
  497. {!"Pirates in Men's Pants", {1817.30, 1469.20, -89.00, 2027.40, 1703.20, 110.90}},
  498. {!"Playa del Seville", {2703.50, -2126.90, -89.00, 2959.30, -1852.80, 110.90}},
  499. {!"Prickle Pine", {1534.50, 2583.20, -89.00, 1848.40, 2863.20, 110.90}},
  500. {!"Prickle Pine", {1117.40, 2507.20, -89.00, 1534.50, 2723.20, 110.90}},
  501. {!"Prickle Pine", {1848.40, 2553.40, -89.00, 1938.80, 2863.20, 110.90}},
  502. {!"Prickle Pine", {1938.80, 2624.20, -89.00, 2121.40, 2861.50, 110.90}},
  503. {!"Queens", {-2533.00, 458.40, 0.00, -2329.30, 578.30, 200.00}},
  504. {!"Queens", {-2593.40, 54.70, 0.00, -2411.20, 458.40, 200.00}},
  505. {!"Queens", {-2411.20, 373.50, 0.00, -2253.50, 458.40, 200.00}},
  506. {!"Randolph Industrial Estate", {1558.00, 596.30, -89.00, 1823.00, 823.20, 110.90}},
  507. {!"Redsands East", {1817.30, 2011.80, -89.00, 2106.70, 2202.70, 110.90}},
  508. {!"Redsands East", {1817.30, 2202.70, -89.00, 2011.90, 2342.80, 110.90}},
  509. {!"Redsands East", {1848.40, 2342.80, -89.00, 2011.90, 2478.40, 110.90}},
  510. {!"Redsands West", {1236.60, 1883.10, -89.00, 1777.30, 2142.80, 110.90}},
  511. {!"Redsands West", {1297.40, 2142.80, -89.00, 1777.30, 2243.20, 110.90}},
  512. {!"Redsands West", {1377.30, 2243.20, -89.00, 1704.50, 2433.20, 110.90}},
  513. {!"Redsands West", {1704.50, 2243.20, -89.00, 1777.30, 2342.80, 110.90}},
  514. {!"Regular Tom", {-405.70, 1712.80, -3.00, -276.70, 1892.70, 200.00}},
  515. {!"Richman", {647.50, -1118.20, -89.00, 787.40, -954.60, 110.90}},
  516. {!"Richman", {647.50, -954.60, -89.00, 768.60, -860.60, 110.90}},
  517. {!"Richman", {225.10, -1369.60, -89.00, 334.50, -1292.00, 110.90}},
  518. {!"Richman", {225.10, -1292.00, -89.00, 466.20, -1235.00, 110.90}},
  519. {!"Richman", {72.60, -1404.90, -89.00, 225.10, -1235.00, 110.90}},
  520. {!"Richman", {72.60, -1235.00, -89.00, 321.30, -1008.10, 110.90}},
  521. {!"Richman", {321.30, -1235.00, -89.00, 647.50, -1044.00, 110.90}},
  522. {!"Richman", {321.30, -1044.00, -89.00, 647.50, -860.60, 110.90}},
  523. {!"Richman", {321.30, -860.60, -89.00, 687.80, -768.00, 110.90}},
  524. {!"Richman", {321.30, -768.00, -89.00, 700.70, -674.80, 110.90}},
  525. {!"Robada Intersection", {-1119.00, 1178.90, -89.00, -862.00, 1351.40, 110.90}},
  526. {!"Roca Escalante", {2237.40, 2202.70, -89.00, 2536.40, 2542.50, 110.90}},
  527. {!"Roca Escalante", {2536.40, 2202.70, -89.00, 2625.10, 2442.50, 110.90}},
  528. {!"Rockshore East", {2537.30, 676.50, -89.00, 2902.30, 943.20, 110.90}},
  529. {!"Rockshore West", {1997.20, 596.30, -89.00, 2377.30, 823.20, 110.90}},
  530. {!"Rockshore West", {2377.30, 596.30, -89.00, 2537.30, 788.80, 110.90}},
  531. {!"Rodeo", {72.60, -1684.60, -89.00, 225.10, -1544.10, 110.90}},
  532. {!"Rodeo", {72.60, -1544.10, -89.00, 225.10, -1404.90, 110.90}},
  533. {!"Rodeo", {225.10, -1684.60, -89.00, 312.80, -1501.90, 110.90}},
  534. {!"Rodeo", {225.10, -1501.90, -89.00, 334.50, -1369.60, 110.90}},
  535. {!"Rodeo", {334.50, -1501.90, -89.00, 422.60, -1406.00, 110.90}},
  536. {!"Rodeo", {312.80, -1684.60, -89.00, 422.60, -1501.90, 110.90}},
  537. {!"Rodeo", {422.60, -1684.60, -89.00, 558.00, -1570.20, 110.90}},
  538. {!"Rodeo", {558.00, -1684.60, -89.00, 647.50, -1384.90, 110.90}},
  539. {!"Rodeo", {466.20, -1570.20, -89.00, 558.00, -1385.00, 110.90}},
  540. {!"Rodeo", {422.60, -1570.20, -89.00, 466.20, -1406.00, 110.90}},
  541. {!"Rodeo", {466.20, -1385.00, -89.00, 647.50, -1235.00, 110.90}},
  542. {!"Rodeo", {334.50, -1406.00, -89.00, 466.20, -1292.00, 110.90}},
  543. {!"Royal Casino", {2087.30, 1383.20, -89.00, 2437.30, 1543.20, 110.90}},
  544. {!"San Andreas Sound", {2450.30, 385.50, -100.00, 2759.20, 562.30, 200.00}},
  545. {!"Santa Flora", {-2741.00, 458.40, -7.60, -2533.00, 793.40, 200.00}},
  546. {!"Santa Maria Beach", {342.60, -2173.20, -89.00, 647.70, -1684.60, 110.90}},
  547. {!"Santa Maria Beach", {72.60, -2173.20, -89.00, 342.60, -1684.60, 110.90}},
  548. {!"Shady Cabin", {-1632.80, -2263.40, -3.00, -1601.30, -2231.70, 200.00}},
  549. {!"Shady Creeks", {-1820.60, -2643.60, -8.00, -1226.70, -1771.60, 200.00}},
  550. {!"Shady Creeks", {-2030.10, -2174.80, -6.10, -1820.60, -1771.60, 200.00}},
  551. {!"Sobell Rail Yards", {2749.90, 1548.90, -89.00, 2923.30, 1937.20, 110.90}},
  552. {!"Spinybed", {2121.40, 2663.10, -89.00, 2498.20, 2861.50, 110.90}},
  553. {!"Starfish Casino", {2437.30, 1783.20, -89.00, 2685.10, 2012.10, 110.90}},
  554. {!"Starfish Casino", {2437.30, 1858.10, -39.00, 2495.00, 1970.80, 60.90}},
  555. {!"Starfish Casino", {2162.30, 1883.20, -89.00, 2437.30, 2012.10, 110.90}},
  556. {!"Temple", {1252.30, -1130.80, -89.00, 1378.30, -1026.30, 110.90}},
  557. {!"Temple", {1252.30, -1026.30, -89.00, 1391.00, -926.90, 110.90}},
  558. {!"Temple", {1252.30, -926.90, -89.00, 1357.00, -910.10, 110.90}},
  559. {!"Temple", {952.60, -1130.80, -89.00, 1096.40, -937.10, 110.90}},
  560. {!"Temple", {1096.40, -1130.80, -89.00, 1252.30, -1026.30, 110.90}},
  561. {!"Temple", {1096.40, -1026.30, -89.00, 1252.30, -910.10, 110.90}},
  562. {!"The Camel's Toe", {2087.30, 1203.20, -89.00, 2640.40, 1383.20, 110.90}},
  563. {!"The Clown's Pocket", {2162.30, 1783.20, -89.00, 2437.30, 1883.20, 110.90}},
  564. {!"The Emerald Isle", {2011.90, 2202.70, -89.00, 2237.40, 2508.20, 110.90}},
  565. {!"The Farm", {-1209.60, -1317.10, 114.90, -908.10, -787.30, 251.90}},
  566. {!"The Four Dragons Casino", {1817.30, 863.20, -89.00, 2027.30, 1083.20, 110.90}},
  567. {!"The High Roller", {1817.30, 1283.20, -89.00, 2027.30, 1469.20, 110.90}},
  568. {!"The Mako Span", {1664.60, 401.70, 0.00, 1785.10, 567.20, 200.00}},
  569. {!"The Panopticon", {-947.90, -304.30, -1.10, -319.60, 327.00, 200.00}},
  570. {!"The Pink Swan", {1817.30, 1083.20, -89.00, 2027.30, 1283.20, 110.90}},
  571. {!"The Sherman Dam", {-968.70, 1929.40, -3.00, -481.10, 2155.20, 200.00}},
  572. {!"The Strip", {2027.40, 863.20, -89.00, 2087.30, 1703.20, 110.90}},
  573. {!"The Strip", {2106.70, 1863.20, -89.00, 2162.30, 2202.70, 110.90}},
  574. {!"The Strip", {2027.40, 1783.20, -89.00, 2162.30, 1863.20, 110.90}},
  575. {!"The Strip", {2027.40, 1703.20, -89.00, 2137.40, 1783.20, 110.90}},
  576. {!"The Visage", {1817.30, 1863.20, -89.00, 2106.70, 2011.80, 110.90}},
  577. {!"The Visage", {1817.30, 1703.20, -89.00, 2027.40, 1863.20, 110.90}},
  578. {!"Unity Station", {1692.60, -1971.80, -20.40, 1812.60, -1932.80, 79.50}},
  579. {!"Valle Ocultado", {-936.60, 2611.40, 2.00, -715.90, 2847.90, 200.00}},
  580. {!"Verdant Bluffs", {930.20, -2488.40, -89.00, 1249.60, -2006.70, 110.90}},
  581. {!"Verdant Bluffs", {1073.20, -2006.70, -89.00, 1249.60, -1842.20, 110.90}},
  582. {!"Verdant Bluffs", {1249.60, -2179.20, -89.00, 1692.60, -1842.20, 110.90}},
  583. {!"Verdant Meadows", {37.00, 2337.10, -3.00, 435.90, 2677.90, 200.00}},
  584. {!"Verona Beach", {647.70, -2173.20, -89.00, 930.20, -1804.20, 110.90}},
  585. {!"Verona Beach", {930.20, -2006.70, -89.00, 1073.20, -1804.20, 110.90}},
  586. {!"Verona Beach", {851.40, -1804.20, -89.00, 1046.10, -1577.50, 110.90}},
  587. {!"Verona Beach", {1161.50, -1722.20, -89.00, 1323.90, -1577.50, 110.90}},
  588. {!"Verona Beach", {1046.10, -1722.20, -89.00, 1161.50, -1577.50, 110.90}},
  589. {!"Vinewood", {787.40, -1310.20, -89.00, 952.60, -1130.80, 110.90}},
  590. {!"Vinewood", {787.40, -1130.80, -89.00, 952.60, -954.60, 110.90}},
  591. {!"Vinewood", {647.50, -1227.20, -89.00, 787.40, -1118.20, 110.90}},
  592. {!"Vinewood", {647.70, -1416.20, -89.00, 787.40, -1227.20, 110.90}},
  593. {!"Whitewood Estates", {883.30, 1726.20, -89.00, 1098.30, 2507.20, 110.90}},
  594. {!"Whitewood Estates", {1098.30, 1726.20, -89.00, 1197.30, 2243.20, 110.90}},
  595. {!"Willowfield", {1970.60, -2179.20, -89.00, 2089.00, -1852.80, 110.90}},
  596. {!"Willowfield", {2089.00, -2235.80, -89.00, 2201.80, -1989.90, 110.90}},
  597. {!"Willowfield", {2089.00, -1989.90, -89.00, 2324.00, -1852.80, 110.90}},
  598. {!"Willowfield", {2201.80, -2095.00, -89.00, 2324.00, -1989.90, 110.90}},
  599. {!"Willowfield", {2541.70, -1941.40, -89.00, 2703.50, -1852.80, 110.90}},
  600. {!"Willowfield", {2324.00, -2059.20, -89.00, 2541.70, -1852.80, 110.90}},
  601. {!"Willowfield", {2541.70, -2059.20, -89.00, 2703.50, -1941.40, 110.90}},
  602. {!"Yellow Bell Station", {1377.40, 2600.40, -21.90, 1492.40, 2687.30, 78.00}},
  603. {!"Los Santos", {44.60, -2892.90, -242.90, 2997.00, -768.00, 900.00}},
  604. {!"Las Venturas", {869.40, 596.30, -242.90, 2997.00, 2993.80, 900.00}},
  605. {!"Bone County", {-480.50, 596.30, -242.90, 869.40, 2993.80, 900.00}},
  606. {!"Tierra Robada", {-2997.40, 1659.60, -242.90, -480.50, 2993.80, 900.00}},
  607. {!"Tierra Robada", {-1213.90, 596.30, -242.90, -480.50, 1659.60, 900.00}},
  608. {!"San Fierro", {-2997.40, -1115.50, -242.90, -1213.90, 1659.60, 900.00}},
  609. {!"Red County", {-1213.90, -768.00, -242.90, 2997.00, 596.30, 900.00}},
  610. {!"Flint County", {-1213.90, -2892.90, -242.90, 44.60, -768.00, 900.00}},
  611. {!"Whetstone", {-2997.40, -2892.90, -242.90, -1213.90, -1115.50, 900.00}}
  612. };
  613.  
  614. #define TextDrawSetText(%0,%1,%2) do{new _string[128]; format(_string,sizeof(_string),%1,%2); TextDrawSetString(%0,_string);} while(FALSE)
  615. #define AddFormatToInfoBox(%0,%1) do{new _string[128]; format(_string,sizeof(_string),%0,%1); AddToInfoBox(_string);} while(FALSE)
  616. #define SendAdminFormat(%0,%1,%2) do{new _string[128]; format(_string,sizeof(_string),%1,%2); SendAdminMessage(%0,_string);} while(FALSE)
  617. #define SendFormat(%0,%1,%2,%3) do{new _string[128]; format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(FALSE)
  618. #define SendFormatToAll(%0,%1,%2) do{new _string[128]; format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(FALSE)
  619.  
  620. main()
  621. {
  622. print(" ");
  623. print(""#SERVER_TAG" Script <> by [dWa]Infra");
  624. print("Visit www.dawn-tdm.com");
  625. print("Version "#SERVER_VERSION"");
  626. print("© Copyright by "#SERVER_TAG"");
  627. print(" ");
  628. }
  629.  
  630.  
  631. public OnGameModeInit()
  632. {
  633. SetWorldTime(23);
  634. Connect_To_Database();
  635. SetTimer("MainTimer", 500, 1);
  636. DisableInteriorEnterExits();
  637. EnableStuntBonusForAll(0);
  638. UsePlayerPedAnims();
  639. SendRconCommand("hostname «|- "#SERVER_TAG" -|» DM «-|-» Freeroam «-|-» Stunt (0.3z)");
  640. SendRconCommand("mapname "#SERVER_TAG" v"#SERVER_VERSION"");
  641. SetGameModeText("[ENG/GER] DM/Freeroam/Stunt");
  642. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  643. InformationBox[0] = TextDrawCreate(485.981994, 450.083374, "usebox");
  644. TextDrawLetterSize(InformationBox[0], 0.000000, -8.306856);
  645. TextDrawTextSize(InformationBox[0], 638.000000, 0.000000);
  646. TextDrawAlignment(InformationBox[0], 1);
  647. TextDrawColor(InformationBox[0], 0);
  648. TextDrawUseBox(InformationBox[0], true);
  649. TextDrawBoxColor(InformationBox[0], 102);
  650. TextDrawSetShadow(InformationBox[0], 0);
  651. TextDrawSetOutline(InformationBox[0], 0);
  652. TextDrawFont(InformationBox[0], 0);
  653.  
  654. InformationBox[1] = TextDrawCreate(482.296783, 449.916687, "usebox");
  655. TextDrawLetterSize(InformationBox[1], 0.000000, -8.822229);
  656. TextDrawTextSize(InformationBox[1], 638.000000, 0.000000);
  657. TextDrawAlignment(InformationBox[1], 1);
  658. TextDrawColor(InformationBox[1], 0);
  659. TextDrawUseBox(InformationBox[1], true);
  660. TextDrawBoxColor(InformationBox[1], 102);
  661. TextDrawSetShadow(InformationBox[1], 0);
  662. TextDrawSetOutline(InformationBox[1], 0);
  663. TextDrawFont(InformationBox[1], 0);
  664.  
  665. BottomBox[0] = TextDrawCreate(482.234252, 429.083312, "usebox");
  666. TextDrawLetterSize(BottomBox[0], 0.000000, 1.887041);
  667. TextDrawTextSize(BottomBox[0], -2.000000, 0.000000);
  668. TextDrawAlignment(BottomBox[0], 1);
  669. TextDrawColor(BottomBox[0], 0);
  670. TextDrawUseBox(BottomBox[0], true);
  671. TextDrawBoxColor(BottomBox[0], 102);
  672. TextDrawSetShadow(BottomBox[0], 0);
  673. TextDrawSetOutline(BottomBox[0], 0);
  674. TextDrawFont(BottomBox[0], 0);
  675.  
  676. BottomBox[1] = TextDrawCreate(-3.153733, 432.583374, "usebox");
  677. TextDrawLetterSize(BottomBox[1], 0.000000, 1.955742);
  678. TextDrawTextSize(BottomBox[1], 482.450988, 0.000000);
  679. TextDrawAlignment(BottomBox[1], 1);
  680. TextDrawColor(BottomBox[1], 0);
  681. TextDrawUseBox(BottomBox[1], true);
  682. TextDrawBoxColor(BottomBox[1], 102);
  683. TextDrawSetShadow(BottomBox[1], 0);
  684. TextDrawSetOutline(BottomBox[1], 0);
  685. TextDrawFont(BottomBox[1], 0);
  686.  
  687. InfoBoxText[0] = TextDrawCreate(486.000000, 378.000000, "");
  688. TextDrawBackgroundColor(InfoBoxText[0], 255);
  689. TextDrawFont(InfoBoxText[0], 1);
  690. TextDrawLetterSize(InfoBoxText[0], 0.139999, 0.999999);
  691. TextDrawColor(InfoBoxText[0], -1);
  692. TextDrawSetOutline(InfoBoxText[0], 1);
  693. TextDrawSetProportional(InfoBoxText[0], 1);
  694.  
  695. InfoBoxText[1] = TextDrawCreate(486.000000, 388.000000, "");
  696. TextDrawBackgroundColor(InfoBoxText[1], 255);
  697. TextDrawFont(InfoBoxText[1], 1);
  698. TextDrawLetterSize(InfoBoxText[1], 0.139999, 0.999999);
  699. TextDrawColor(InfoBoxText[1], -1);
  700. TextDrawSetOutline(InfoBoxText[1], 1);
  701. TextDrawSetProportional(InfoBoxText[1], 1);
  702.  
  703. InfoBoxText[2] = TextDrawCreate(486.000000, 398.000000, "");
  704. TextDrawBackgroundColor(InfoBoxText[2], 255);
  705. TextDrawFont(InfoBoxText[2], 1);
  706. TextDrawLetterSize(InfoBoxText[2], 0.139999, 0.999999);
  707. TextDrawColor(InfoBoxText[2], -1);
  708. TextDrawSetOutline(InfoBoxText[2], 1);
  709. TextDrawSetProportional(InfoBoxText[2], 1);
  710.  
  711. InfoBoxText[3] = TextDrawCreate(486.000000, 408.000000, "");
  712. TextDrawBackgroundColor(InfoBoxText[3], 255);
  713. TextDrawFont(InfoBoxText[3], 1);
  714. TextDrawLetterSize(InfoBoxText[3], 0.139999, 0.999999);
  715. TextDrawColor(InfoBoxText[3], -1);
  716. TextDrawSetOutline(InfoBoxText[3], 1);
  717. TextDrawSetProportional(InfoBoxText[3], 1);
  718.  
  719. InfoBoxText[4] = TextDrawCreate(486.000000, 418.000000, "");
  720. TextDrawBackgroundColor(InfoBoxText[4], 255);
  721. TextDrawFont(InfoBoxText[4], 1);
  722. TextDrawLetterSize(InfoBoxText[4], 0.139999, 0.999999);
  723. TextDrawColor(InfoBoxText[4], -1);
  724. TextDrawSetOutline(InfoBoxText[4], 1);
  725. TextDrawSetProportional(InfoBoxText[4], 1);
  726.  
  727. InfoBoxText[5] = TextDrawCreate(486.000000, 428.000000, "");
  728. TextDrawBackgroundColor(InfoBoxText[5], 255);
  729. TextDrawFont(InfoBoxText[5], 1);
  730. TextDrawLetterSize(InfoBoxText[5], 0.139999, 0.999999);
  731. TextDrawColor(InfoBoxText[5], -1);
  732. TextDrawSetOutline(InfoBoxText[5], 1);
  733. TextDrawSetProportional(InfoBoxText[5], 1);
  734.  
  735. InfoBoxText[6] = TextDrawCreate(486.000000, 438.000000, "");
  736. TextDrawBackgroundColor(InfoBoxText[6], 255);
  737. TextDrawFont(InfoBoxText[6], 1);
  738. TextDrawLetterSize(InfoBoxText[6], 0.139999, 0.999999);
  739. TextDrawColor(InfoBoxText[6], -1);
  740. TextDrawSetOutline(InfoBoxText[6], 1);
  741. TextDrawSetProportional(InfoBoxText[6], 1);
  742.  
  743. TextDrawForum = TextDrawCreate(1.405564, 431.666656, ""#SERVER_WEBSITE"");
  744. TextDrawLetterSize(TextDrawForum, 0.245724, 1.553333);
  745. TextDrawAlignment(TextDrawForum, 1);
  746. TextDrawColor(TextDrawForum, -1);
  747. TextDrawSetShadow(TextDrawForum, 0);
  748. TextDrawSetOutline(TextDrawForum, 1);
  749. TextDrawBackgroundColor(TextDrawForum, 51);
  750. TextDrawFont(TextDrawForum, 1);
  751. TextDrawSetProportional(TextDrawForum, 1);
  752.  
  753. DateTimeTextDraw[0] = TextDrawCreate(666.000000, 0.000000, "~n~");
  754. TextDrawBackgroundColor(DateTimeTextDraw[0], 255);
  755. TextDrawFont(DateTimeTextDraw[0], 1);
  756. TextDrawLetterSize(DateTimeTextDraw[0], 0.500000, 1.200000);
  757. TextDrawColor(DateTimeTextDraw[0], -1);
  758. TextDrawSetOutline(DateTimeTextDraw[0], 0);
  759. TextDrawSetProportional(DateTimeTextDraw[0], 1);
  760. TextDrawSetShadow(DateTimeTextDraw[0], 1);
  761. TextDrawUseBox(DateTimeTextDraw[0], 1);
  762. TextDrawBoxColor(DateTimeTextDraw[0], 112);
  763. TextDrawTextSize(DateTimeTextDraw[0], 542.000000, 0.000000);
  764.  
  765. DateTimeTextDraw[1] = TextDrawCreate(675.000000, 0.000000, "~n~");
  766. TextDrawBackgroundColor(DateTimeTextDraw[1], 255);
  767. TextDrawFont(DateTimeTextDraw[1], 1);
  768. TextDrawLetterSize(DateTimeTextDraw[1], 0.500000, 1.500000);
  769. TextDrawColor(DateTimeTextDraw[1], -1);
  770. TextDrawSetOutline(DateTimeTextDraw[1], 0);
  771. TextDrawSetProportional(DateTimeTextDraw[1], 1);
  772. TextDrawSetShadow(DateTimeTextDraw[1], 1);
  773. TextDrawUseBox(DateTimeTextDraw[1], 1);
  774. TextDrawBoxColor(DateTimeTextDraw[1], 112);
  775. TextDrawTextSize(DateTimeTextDraw[1], 539.000000, 0.000000);
  776.  
  777. new D_T_String_O[50];
  778. format(D_T_String_O, sizeof(D_T_String_O), "~w~%s ~y~-~w~ %s", GetDate(), GetTime());
  779. DateTimeTextDraw[2] = TextDrawCreate(637.000000, 1.000000, D_T_String_O);
  780. TextDrawAlignment(DateTimeTextDraw[2], 3);
  781. TextDrawBackgroundColor(DateTimeTextDraw[2], 255);
  782. TextDrawFont(DateTimeTextDraw[2], 2);
  783. TextDrawLetterSize(DateTimeTextDraw[2], 0.190000, 1.000000);
  784. TextDrawColor(DateTimeTextDraw[2], -1);
  785. TextDrawSetOutline(DateTimeTextDraw[2], 0);
  786. TextDrawSetProportional(DateTimeTextDraw[2], 1);
  787. TextDrawSetShadow(DateTimeTextDraw[2], 0);
  788.  
  789. MoneyTextDraw[0] = TextDrawCreate(498.000000, 80.000000, "~n~");
  790. TextDrawBackgroundColor(MoneyTextDraw[0], 255);
  791. TextDrawFont(MoneyTextDraw[0], 1);
  792. TextDrawLetterSize(MoneyTextDraw[0], 0.500000, 1.900000);
  793. TextDrawColor(MoneyTextDraw[0], -1);
  794. TextDrawSetOutline(MoneyTextDraw[0], 0);
  795. TextDrawSetProportional(MoneyTextDraw[0], 1);
  796. TextDrawSetShadow(MoneyTextDraw[0], 1);
  797. TextDrawUseBox(MoneyTextDraw[0], 1);
  798. TextDrawBoxColor(MoneyTextDraw[0], 255);
  799. TextDrawTextSize(MoneyTextDraw[0], 607.000000, 0.000000);
  800.  
  801. MoneyTextDraw[1] = TextDrawCreate(496.000000, 78.000000, "~n~");
  802. TextDrawBackgroundColor(MoneyTextDraw[1], 255);
  803. TextDrawFont(MoneyTextDraw[1], 1);
  804. TextDrawLetterSize(MoneyTextDraw[1], 0.500000, 2.299999);
  805. TextDrawColor(MoneyTextDraw[1], -1);
  806. TextDrawSetOutline(MoneyTextDraw[1], 0);
  807. TextDrawSetProportional(MoneyTextDraw[1], 1);
  808. TextDrawSetShadow(MoneyTextDraw[1], 1);
  809. TextDrawUseBox(MoneyTextDraw[1], 1);
  810. TextDrawBoxColor(MoneyTextDraw[1], 102);
  811. TextDrawTextSize(MoneyTextDraw[1], 609.000000, 0.000000);
  812.  
  813. MoneyTextDraw[2] = TextDrawCreate(497.000000, 79.000000, "~g~$");
  814. TextDrawBackgroundColor(MoneyTextDraw[2], 255);
  815. TextDrawFont(MoneyTextDraw[2], 0);
  816. TextDrawLetterSize(MoneyTextDraw[2], 0.420000, 1.899999);
  817. TextDrawColor(MoneyTextDraw[2], -1);
  818. TextDrawSetOutline(MoneyTextDraw[2], 0);
  819. TextDrawSetProportional(MoneyTextDraw[2], 1);
  820. TextDrawSetShadow(MoneyTextDraw[2], 0);
  821.  
  822. HHTD = TextDrawCreate(79.000000, 323.000000, "~>~~y~ HAPPYHOUR ~<~");
  823. TextDrawAlignment(HHTD, 2);
  824. TextDrawBackgroundColor(HHTD, 255);
  825. TextDrawFont(HHTD, 2);
  826. TextDrawLetterSize(HHTD, 0.300000, 1.000000);
  827. TextDrawColor(HHTD, -1);
  828. TextDrawSetOutline(HHTD, 1);
  829. TextDrawSetProportional(HHTD, 1);
  830.  
  831. for(new i=0; i<GetMaxPlayers(); i++)
  832. {
  833. HealBarText[i] = TextDrawCreate(575.000000, 66.500000, "100");
  834. TextDrawAlignment(HealBarText[i], 2);
  835. TextDrawBackgroundColor(HealBarText[i], 255);
  836. TextDrawFont(HealBarText[i], 2);
  837. TextDrawLetterSize(HealBarText[i], 0.280000, 0.899999);
  838. TextDrawColor(HealBarText[i], -1);
  839. TextDrawSetOutline(HealBarText[i], 0);
  840. TextDrawSetProportional(HealBarText[i], 1);
  841. TextDrawSetShadow(HealBarText[i], 0);
  842.  
  843. MoneyText[i] = TextDrawCreate(511.000000, 81.000000, "0");
  844. TextDrawBackgroundColor(MoneyText[i], 255);
  845. TextDrawFont(MoneyText[i], 2);
  846. TextDrawLetterSize(MoneyText[i], 0.320000, 1.499999);
  847. TextDrawColor(MoneyText[i], -1);
  848. TextDrawSetOutline(MoneyText[i], 0);
  849. TextDrawSetProportional(MoneyText[i], 1);
  850. TextDrawSetShadow(MoneyText[i], 0);
  851.  
  852. Speedo[i][0] = TextDrawCreate(318.187957, 430.333251, "~r~Vehicle: ~w~");
  853. TextDrawLetterSize(Speedo[i][0], 0.187628, 0.905833);
  854. TextDrawAlignment(Speedo[i][0], 1);
  855. TextDrawColor(Speedo[i][0], -1);
  856. TextDrawSetShadow(Speedo[i][0], 0);
  857. TextDrawSetOutline(Speedo[i][0], 1);
  858. TextDrawBackgroundColor(Speedo[i][0], 51);
  859. TextDrawFont(Speedo[i][0], 1);
  860. TextDrawSetProportional(Speedo[i][0], 1);
  861.  
  862. Speedo[i][1] = TextDrawCreate(320.126068, 438.916748, "~r~Health: ~w~");
  863. TextDrawLetterSize(Speedo[i][1], 0.187628, 0.905833);
  864. TextDrawAlignment(Speedo[i][1], 1);
  865. TextDrawColor(Speedo[i][1], -1);
  866. TextDrawSetShadow(Speedo[i][1], 0);
  867. TextDrawSetOutline(Speedo[i][1], 1);
  868. TextDrawBackgroundColor(Speedo[i][1], 51);
  869. TextDrawFont(Speedo[i][1], 1);
  870. TextDrawSetProportional(Speedo[i][1], 1);
  871.  
  872. Speedo[i][2] = TextDrawCreate(478.019378, 430.749877, "~r~Speed: ~w~0 km/h");
  873. TextDrawLetterSize(Speedo[i][2], 0.187628, 0.905833);
  874. TextDrawAlignment(Speedo[i][2], 3);
  875. TextDrawColor(Speedo[i][2], -1);
  876. TextDrawSetShadow(Speedo[i][2], 0);
  877. TextDrawSetOutline(Speedo[i][2], 1);
  878. TextDrawBackgroundColor(Speedo[i][2], 51);
  879. TextDrawFont(Speedo[i][2], 1);
  880. TextDrawSetProportional(Speedo[i][2], 1);
  881.  
  882. Speedo[i][3] = TextDrawCreate(479.019561, 438.750061, "~w~Unknown");
  883. TextDrawLetterSize(Speedo[i][3], 0.187628, 0.905833);
  884. TextDrawAlignment(Speedo[i][3], 3);
  885. TextDrawColor(Speedo[i][3], -1);
  886. TextDrawSetShadow(Speedo[i][3], 0);
  887. TextDrawSetOutline(Speedo[i][3], 1);
  888. TextDrawBackgroundColor(Speedo[i][3], 51);
  889. TextDrawFont(Speedo[i][3], 1);
  890. TextDrawSetProportional(Speedo[i][3], 1);
  891.  
  892. PlayerFPSTD[i] = TextDrawCreate(637.000000, 17.000000, "~g~FPS: ~w~0");
  893. TextDrawAlignment(PlayerFPSTD[i], 3);
  894. TextDrawBackgroundColor(PlayerFPSTD[i], 255);
  895. TextDrawFont(PlayerFPSTD[i], 2);
  896. TextDrawLetterSize(PlayerFPSTD[i], 0.220000, 1.000000);
  897. TextDrawColor(PlayerFPSTD[i], -1);
  898. TextDrawSetOutline(PlayerFPSTD[i], 1);
  899. TextDrawSetProportional(PlayerFPSTD[i], 1);
  900.  
  901. PlayerModeTD[i] = TextDrawCreate(495.000000, 101.000000, "~y~Freeroam");
  902. TextDrawBackgroundColor(PlayerModeTD[i], 255);
  903. TextDrawFont(PlayerModeTD[i], 2);
  904. TextDrawLetterSize(PlayerModeTD[i], 0.219999, 1.000000);
  905. TextDrawColor(PlayerModeTD[i], -1);
  906. TextDrawSetOutline(PlayerModeTD[i], 1);
  907. TextDrawSetProportional(PlayerModeTD[i], 1);
  908.  
  909. TextDialog[0][i] = TextDrawCreate(200.000000, 130.000000, "~n~");
  910. TextDrawBackgroundColor(TextDialog[0][i], 255);
  911. TextDrawFont(TextDialog[0][i], 1);
  912. TextDrawLetterSize(TextDialog[0][i], 0.500000, 21.000000);
  913. TextDrawColor(TextDialog[0][i], -1);
  914. TextDrawSetOutline(TextDialog[0][i], 0);
  915. TextDrawSetProportional(TextDialog[0][i], 1);
  916. TextDrawSetShadow(TextDialog[0][i], 1);
  917. TextDrawUseBox(TextDialog[0][i], 1);
  918. TextDrawBoxColor(TextDialog[0][i], 101);
  919. TextDrawTextSize(TextDialog[0][i], 420.000000, 0.000000);
  920.  
  921. TextDialog[1][i] = TextDrawCreate(205.000000, 135.000000, "~n~");
  922. TextDrawBackgroundColor(TextDialog[1][i], 255);
  923. TextDrawFont(TextDialog[1][i], 1);
  924. TextDrawLetterSize(TextDialog[1][i], 0.500000, 19.799995);
  925. TextDrawColor(TextDialog[1][i], -1);
  926. TextDrawSetOutline(TextDialog[1][i], 0);
  927. TextDrawSetProportional(TextDialog[1][i], 1);
  928. TextDrawSetShadow(TextDialog[1][i], 1);
  929. TextDrawUseBox(TextDialog[1][i], 1);
  930. TextDrawBoxColor(TextDialog[1][i], 101);
  931. TextDrawTextSize(TextDialog[1][i], 415.000000, 0.000000);
  932.  
  933. TextDialog[2][i] = TextDrawCreate(205.000000, 135.000000, "~n~");
  934. TextDrawBackgroundColor(TextDialog[2][i], 255);
  935. TextDrawFont(TextDialog[2][i], 1);
  936. TextDrawLetterSize(TextDialog[2][i], 0.500000, 1.499995);
  937. TextDrawColor(TextDialog[2][i], -1);
  938. TextDrawSetOutline(TextDialog[2][i], 0);
  939. TextDrawSetProportional(TextDialog[2][i], 1);
  940. TextDrawSetShadow(TextDialog[2][i], 1);
  941. TextDrawUseBox(TextDialog[2][i], 1);
  942. TextDrawBoxColor(TextDialog[2][i], 101);
  943. TextDrawTextSize(TextDialog[2][i], 415.000000, 0.000000);
  944.  
  945. TextDialog[3][i] = TextDrawCreate(205.000000, 299.000000, "~n~");
  946. TextDrawBackgroundColor(TextDialog[3][i], 255);
  947. TextDrawFont(TextDialog[3][i], 1);
  948. TextDrawLetterSize(TextDialog[3][i], 0.500000, 1.499995);
  949. TextDrawColor(TextDialog[3][i], -1);
  950. TextDrawSetOutline(TextDialog[3][i], 0);
  951. TextDrawSetProportional(TextDialog[3][i], 1);
  952. TextDrawSetShadow(TextDialog[3][i], 1);
  953. TextDrawUseBox(TextDialog[3][i], 1);
  954. TextDrawBoxColor(TextDialog[3][i], 101);
  955. TextDrawTextSize(TextDialog[3][i], 415.000000, 0.000000);
  956.  
  957. TextDialog[4][i] = TextDrawCreate(206.000000, 137.000000, "~y~TELEPORTS");
  958. TextDrawBackgroundColor(TextDialog[4][i], 255);
  959. TextDrawFont(TextDialog[4][i], 2);
  960. TextDrawLetterSize(TextDialog[4][i], 0.210000, 1.000000);
  961. TextDrawColor(TextDialog[4][i], -1);
  962. TextDrawSetOutline(TextDialog[4][i], 1);
  963. TextDrawSetProportional(TextDialog[4][i], 1);
  964.  
  965. TextDialog[7][i] = TextDrawCreate(406.000000, 137.000000, "X");
  966. TextDrawBackgroundColor(TextDialog[7][i], 255);
  967. TextDrawFont(TextDialog[7][i], 2);
  968. TextDrawLetterSize(TextDialog[7][i], 0.210000, 1.000000);
  969. TextDrawColor(TextDialog[7][i], -10270721);
  970. TextDrawSetOutline(TextDialog[7][i], 1);
  971. TextDrawSetProportional(TextDialog[7][i], 1);
  972. TextDrawSetSelectable(TextDialog[7][i], 1);
  973.  
  974. TextDialog[8][i] = TextDrawCreate(402.000000, 135.000000, "~n~");
  975. TextDrawBackgroundColor(TextDialog[8][i], 255);
  976. TextDrawFont(TextDialog[8][i], 2);
  977. TextDrawLetterSize(TextDialog[8][i], 0.210000, 1.400000);
  978. TextDrawColor(TextDialog[8][i], -10270721);
  979. TextDrawSetOutline(TextDialog[8][i], 1);
  980. TextDrawSetProportional(TextDialog[8][i], 1);
  981. TextDrawUseBox(TextDialog[8][i], 1);
  982. TextDrawBoxColor(TextDialog[8][i], -188);
  983. TextDrawTextSize(TextDialog[8][i], 415.000000, 1.000000);
  984.  
  985. TextDialog[9][i] = TextDrawCreate(206.000000, 154.000000, "Spawn");
  986. TextDrawBackgroundColor(TextDialog[9][i], 255);
  987. TextDrawFont(TextDialog[9][i], 1);
  988. TextDrawLetterSize(TextDialog[9][i], 0.180000, 1.000000);
  989. TextDrawColor(TextDialog[9][i], -1);
  990. TextDrawSetOutline(TextDialog[9][i], 1);
  991. TextDrawSetProportional(TextDialog[9][i], 1);
  992. TextDrawSetSelectable(TextDialog[9][i], 1);
  993.  
  994. TextDialog[10][i] = TextDrawCreate(206.000000, 174.000000, "Locations");
  995. TextDrawBackgroundColor(TextDialog[10][i], 255);
  996. TextDrawFont(TextDialog[10][i], 1);
  997. TextDrawLetterSize(TextDialog[10][i], 0.180000, 1.000000);
  998. TextDrawColor(TextDialog[10][i], -1);
  999. TextDrawSetOutline(TextDialog[10][i], 1);
  1000. TextDrawSetProportional(TextDialog[10][i], 1);
  1001. TextDrawSetSelectable(TextDialog[10][i], 1);
  1002.  
  1003. TextDialog[11][i] = TextDrawCreate(206.000000, 194.000000, "Deathmatch");
  1004. TextDrawBackgroundColor(TextDialog[11][i], 255);
  1005. TextDrawFont(TextDialog[11][i], 1);
  1006. TextDrawLetterSize(TextDialog[11][i], 0.180000, 1.000000);
  1007. TextDrawColor(TextDialog[11][i], -1);
  1008. TextDrawSetOutline(TextDialog[11][i], 1);
  1009. TextDrawSetProportional(TextDialog[11][i], 1);
  1010. TextDrawSetSelectable(TextDialog[11][i], 1);
  1011.  
  1012. TextDialog[12][i] = TextDrawCreate(206.000000, 214.000000, "SpawnLocation#4");
  1013. TextDrawBackgroundColor(TextDialog[12][i], 255);
  1014. TextDrawFont(TextDialog[12][i], 1);
  1015. TextDrawLetterSize(TextDialog[12][i], 0.180000, 1.000000);
  1016. TextDrawColor(TextDialog[12][i], -1);
  1017. TextDrawSetOutline(TextDialog[12][i], 1);
  1018. TextDrawSetProportional(TextDialog[12][i], 1);
  1019. TextDrawSetSelectable(TextDialog[12][i], 1);
  1020.  
  1021. TextDialog[13][i] = TextDrawCreate(206.000000, 234.000000, "SpawnLocation#5");
  1022. TextDrawBackgroundColor(TextDialog[13][i], 255);
  1023. TextDrawFont(TextDialog[13][i], 1);
  1024. TextDrawLetterSize(TextDialog[13][i], 0.180000, 1.000000);
  1025. TextDrawColor(TextDialog[13][i], -1);
  1026. TextDrawSetOutline(TextDialog[13][i], 1);
  1027. TextDrawSetProportional(TextDialog[13][i], 1);
  1028. TextDrawSetSelectable(TextDialog[13][i], 1);
  1029.  
  1030. TextDialog[14][i] = TextDrawCreate(206.000000, 254.000000, "SpawnLocation#6");
  1031. TextDrawBackgroundColor(TextDialog[14][i], 255);
  1032. TextDrawFont(TextDialog[14][i], 1);
  1033. TextDrawLetterSize(TextDialog[14][i], 0.180000, 1.000000);
  1034. TextDrawColor(TextDialog[14][i], -1);
  1035. TextDrawSetOutline(TextDialog[14][i], 1);
  1036. TextDrawSetProportional(TextDialog[14][i], 1);
  1037. TextDrawSetSelectable(TextDialog[14][i], 1);
  1038.  
  1039. TextDialog[15][i] = TextDrawCreate(206.000000, 274.000000, "SpawnLocation#7");
  1040. TextDrawBackgroundColor(TextDialog[15][i], 255);
  1041. TextDrawFont(TextDialog[15][i], 1);
  1042. TextDrawLetterSize(TextDialog[15][i], 0.180000, 1.000000);
  1043. TextDrawColor(TextDialog[15][i], -1);
  1044. TextDrawSetOutline(TextDialog[15][i], 1);
  1045. TextDrawSetProportional(TextDialog[15][i], 1);
  1046. TextDrawSetSelectable(TextDialog[15][i], 1);
  1047.  
  1048. SpectateTD[0][i] = TextDrawCreate(654.000000, 250.000000, "~n~");
  1049. TextDrawBackgroundColor(SpectateTD[0][i], 255);
  1050. TextDrawFont(SpectateTD[0][i], 1);
  1051. TextDrawLetterSize(SpectateTD[0][i], 0.500000, 5.399999);
  1052. TextDrawColor(SpectateTD[0][i], -1);
  1053. TextDrawSetOutline(SpectateTD[0][i], 0);
  1054. TextDrawSetProportional(SpectateTD[0][i], 1);
  1055. TextDrawSetShadow(SpectateTD[0][i], 1);
  1056. TextDrawUseBox(SpectateTD[0][i], 1);
  1057. TextDrawBoxColor(SpectateTD[0][i], 102);
  1058. TextDrawTextSize(SpectateTD[0][i], 479.000000, 0.000000);
  1059.  
  1060. SpectateTD[1][i] = TextDrawCreate(654.000000, 254.000000, "~n~");
  1061. TextDrawBackgroundColor(SpectateTD[1][i], 255);
  1062. TextDrawFont(SpectateTD[1][i], 1);
  1063. TextDrawLetterSize(SpectateTD[1][i], 0.500000, 4.500000);
  1064. TextDrawColor(SpectateTD[1][i], -1);
  1065. TextDrawSetOutline(SpectateTD[1][i], 0);
  1066. TextDrawSetProportional(SpectateTD[1][i], 1);
  1067. TextDrawSetShadow(SpectateTD[1][i], 1);
  1068. TextDrawUseBox(SpectateTD[1][i], 1);
  1069. TextDrawBoxColor(SpectateTD[1][i], 102);
  1070. TextDrawTextSize(SpectateTD[1][i], 483.000000, 0.000000);
  1071.  
  1072. SpectateTD[2][i] = TextDrawCreate(487.000000, 254.000000, "~g~PLAYER: ~w~");
  1073. TextDrawBackgroundColor(SpectateTD[2][i], 255);
  1074. TextDrawFont(SpectateTD[2][i], 1);
  1075. TextDrawLetterSize(SpectateTD[2][i], 0.200000, 1.000000);
  1076. TextDrawColor(SpectateTD[2][i], -1);
  1077. TextDrawSetOutline(SpectateTD[2][i], 1);
  1078. TextDrawSetProportional(SpectateTD[2][i], 1);
  1079.  
  1080. SpectateTD[3][i] = TextDrawCreate(487.000000, 264.000000, "~g~HEALTH: ~w~");
  1081. TextDrawBackgroundColor(SpectateTD[3][i], 255);
  1082. TextDrawFont(SpectateTD[3][i], 1);
  1083. TextDrawLetterSize(SpectateTD[3][i], 0.200000, 1.000000);
  1084. TextDrawColor(SpectateTD[3][i], -1);
  1085. TextDrawSetOutline(SpectateTD[3][i], 1);
  1086. TextDrawSetProportional(SpectateTD[3][i], 1);
  1087.  
  1088. SpectateTD[4][i] = TextDrawCreate(487.000000, 274.000000, "~y~WEAPON: ~w~");
  1089. TextDrawBackgroundColor(SpectateTD[4][i], 255);
  1090. TextDrawFont(SpectateTD[4][i], 1);
  1091. TextDrawLetterSize(SpectateTD[4][i], 0.200000, 1.000000);
  1092. TextDrawColor(SpectateTD[4][i], -1);
  1093. TextDrawSetOutline(SpectateTD[4][i], 1);
  1094. TextDrawSetProportional(SpectateTD[4][i], 1);
  1095.  
  1096. SpectateTD[5][i] = TextDrawCreate(487.000000, 284.000000, "~y~AMMO: ~w~");
  1097. TextDrawBackgroundColor(SpectateTD[5][i], 255);
  1098. TextDrawFont(SpectateTD[5][i], 1);
  1099. TextDrawLetterSize(SpectateTD[5][i], 0.200000, 1.000000);
  1100. TextDrawColor(SpectateTD[5][i], -1);
  1101. TextDrawSetOutline(SpectateTD[5][i], 1);
  1102. TextDrawSetProportional(SpectateTD[5][i], 1);
  1103.  
  1104. DamageTD[i] = TextDrawCreate(143.000000, 397.000000, "~y~None~n~~r~Bodypart: ~w~NaN~n~~r~Damage: ~w~NaN");
  1105. TextDrawBackgroundColor(DamageTD[i], 255);
  1106. TextDrawFont(DamageTD[i], 1);
  1107. TextDrawLetterSize(DamageTD[i], 0.200000, 1.000000);
  1108. TextDrawColor(DamageTD[i], -1);
  1109. TextDrawSetOutline(DamageTD[i], 1);
  1110. TextDrawSetProportional(DamageTD[i], 1);
  1111. }
  1112.  
  1113. //Objects DM Area
  1114. for(new i = 500; i < 503; i++)
  1115. {
  1116. CreateTransparentObject(6959,1296.7,2196.3999,14.7,90,0,90, i);
  1117. CreateTransparentObject(6959,1296.7,2155.1001,14.7,90,0,90, i);
  1118. CreateTransparentObject(6959,1296.7,2113.8,14.7,90,0,90, i);
  1119. CreateTransparentObject(6959,1317.2,2099.8999,14.7,90,0,180, i);
  1120. CreateTransparentObject(6959,1358.5,2099.8999,14.7,90,0,179.995, i);
  1121. CreateTransparentObject(6959,1399.8,2099.8999,14.7,90,0,179.995, i);
  1122. CreateTransparentObject(6959,1317.2,2217.1001,14.7,90,0,0, i);
  1123. CreateTransparentObject(6959,1358.5,2217.1001,14.7,90,0,0, i);
  1124. CreateTransparentObject(6959,1399.8,2217.1001,14.7,90,0,0, i);
  1125. CreateTransparentObject(6959,1418,2196.5,14.7,90,0,270, i);
  1126. CreateTransparentObject(6959,1418,2155.2,14.7,90,0,270, i);
  1127. CreateTransparentObject(6959,1418,2113.8999,14.7,90,0,270, i);
  1128. CreateTransparentObject(6959,1405.1,2191,-5.4,90,0,270, i);
  1129. CreateTransparentObject(6959,1405.1,2158,-5.4,90,0,270, i);
  1130. CreateTransparentObject(6959,1405.1,2128.2,-5.4,90,0,270, i);
  1131. CreateTransparentObject(6959,1356.8,2206.6001,-5.4,90,0,180, i);
  1132. CreateTransparentObject(6959,1328.5,2206.6001,-5.4,90,0,179.995, i);
  1133. CreateTransparentObject(6959,1304.9,2206.6001,-5.4,90,0,179.995, i);
  1134. }
  1135.  
  1136. SpawnObjects[0] = CreateDynamicObject(994,1301.2000000,-1385.0000000,12.8000000,0.0000000,0.0000000,0.0000000);
  1137. SpawnObjects[1] = CreateDynamicObject(994,1312.9000000,-1385.0000000,12.8000000,0.0000000,0.0000000,0.0000000);
  1138. SpawnObjects[2] = CreateDynamicObject(3335,1305.7000000,-1383.6000000,12.7000000,0.0000000,0.0000000,180.0000000);
  1139. new objecttext[100];
  1140. format(objecttext, sizeof(objecttext), "{33CCFF}Welcome To\n\n{FFFFFF}"#SERVER_NAME"");
  1141. SetDynamicObjectMaterialText(SpawnObjects[2], 2, objecttext, OBJECT_MATERIAL_SIZE_256x128, "Arial", 28, 1, 0xFFFF8200, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1142. SpawnObjects[3] = CreateDynamicObject(870,1321.3000000,-1383.3000000,13.9000000,0.0000000,0.0000000,0.0000000);
  1143. SpawnObjects[4] = CreateDynamicObject(869,1298.9000000,-1383.0000000,13.8000000,0.0000000,0.0000000,80.0000000);
  1144. SpawnObjects[5] = CreateDynamicObject(869,1299.0000000,-1379.4000000,13.8000000,0.0000000,0.0000000,79.9970000);
  1145. SpawnObjects[6] = CreateDynamicObject(869,1299.0000000,-1373.9000000,13.8000000,0.0000000,0.0000000,79.9970000);
  1146. SpawnObjects[7] = CreateDynamicObject(869,1299.0000000,-1376.3000000,13.8000000,0.0000000,0.0000000,79.9970000);
  1147. SpawnObjects[8] = CreateDynamicObject(870,1321.4000000,-1380.4000000,13.8000000,0.0000000,0.0000000,288.5000000);
  1148. SpawnObjects[9] = CreateDynamicObject(870,1321.3000000,-1378.0000000,13.8000000,0.0000000,0.0000000,148.4950000);
  1149. SpawnObjects[10] = CreateDynamicObject(870,1321.4000000,-1375.3000000,13.8000000,0.0000000,0.0000000,318.4910000);
  1150. SpawnObjects[11] = CreateDynamicObject(870,1321.4000000,-1372.8000000,13.8000000,0.0000000,0.0000000,318.4880000);
  1151. SpawnObjects[12] = CreateDynamicObject(9131,1310.4000000,-1362.9000000,27.6000000,0.0000000,0.0000000,219.9960000);
  1152. SpawnObjects[13] = CreateDynamicObject(9131,1310.4000000,-1362.9000000,25.4000000,0.0000000,0.0000000,219.9960000);
  1153. SpawnObjects[14] = CreateDynamicObject(9131,1310.4000000,-1362.9000000,23.2000000,0.0000000,0.0000000,219.9960000);
  1154. SpawnObjects[15] = CreateDynamicObject(9131,1310.4000000,-1362.9000000,22.0000000,140.0040000,90.0000000,180.0000000);
  1155. SpawnObjects[16] = CreateDynamicObject(9131,1310.4000000,-1362.9000000,28.7000000,40.0010000,270.0000000,359.9950000);
  1156. SpawnObjects[17] = CreateDynamicObject(8879,1315.7000000,-1363.3000000,23.9000000,0.0000000,0.0000000,130.0000000);
  1157. SpawnObjects[18] = CreateDynamicObject(8880,1311.8000000,-1366.6000000,24.7000000,0.0000000,0.0000000,130.0000000);
  1158. SpawnObjects[19] = CreateDynamicObject(8879,1305.5000000,-1363.3000000,23.9000000,0.0000000,0.0000000,230.0040000);
  1159. SpawnObjects[20] = CreateDynamicObject(8880,1309.4000000,-1366.6000000,24.7000000,0.0000000,0.0000000,230.0040000);
  1160. for(new mapid = 0; mapid != MAX_MAPS; mapid++)
  1161. {
  1162. LoadObjects(LoadMaps[mapid][MapName]);
  1163. }
  1164. return 1;
  1165. }
  1166.  
  1167. public OnGameModeExit()
  1168. {
  1169. for(new l=0; l<40; l++) {
  1170. SA:(COLOR_WHITE," "); }
  1171. SA:(COLOR_LIGHTBLUE, "The server is restarting, please wait...");
  1172. return 1;
  1173. }
  1174.  
  1175. PUBLIC: HappyHourEnd()
  1176. {
  1177. HappyHour = 0;
  1178. TextDrawHideForAll(HHTD);
  1179. SA:(COLOR_ORANGE, "[ HAPPYHOUR END ]");
  1180. return 1;
  1181. }
  1182.  
  1183. PUBLIC: MainTimer()
  1184. {
  1185. TextDrawSetText(DateTimeTextDraw[2], "~w~%s ~y~-~w~ %s", GetDate(), GetTime());
  1186. for(new i=0; i<GetMaxPlayers(); i++)
  1187. {
  1188. if(SpeedoState[i] == 1 && IsPlayerConnected(i))
  1189. {
  1190. new zone[MAX_ZONE_NAME];
  1191. GetPlayer2DZone(i, zone, MAX_ZONE_NAME);
  1192. TextDrawSetText(Speedo[i][2], "~r~Speed: ~w~%d km/h", GetVehicleSpeed(i));
  1193. new Float:health;
  1194. GetVehicleHealth(GetPlayerVehicleID(i), health);
  1195. TextDrawSetText(Speedo[i][1], "~r~Health: ~w~%d%", floatround(health)/10);
  1196. TextDrawSetText(Speedo[i][3], "~w~%s", zone);
  1197. }
  1198. }
  1199. HelpVar++;
  1200. TDChangeVar++;
  1201. switch(TDChangeVar)
  1202. {
  1203. case 30:{ TextDrawSetString(TextDrawForum, ""#SERVER_UCP""); }
  1204. case 60:{ TextDrawSetString(TextDrawForum, ""#SERVER_WEBSITE""); TDChangeVar = 0; }
  1205. }
  1206. if(HelpVar == 420)
  1207. {
  1208. ForEachPlayer(i)
  1209. {
  1210. if(IsPlayerConnected(i))
  1211. {
  1212. SavePlayer(i);
  1213. }
  1214. }
  1215. HelpVar = 0;
  1216. SA:(COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL"/HELP /COMMANDS /TELE");
  1217. SA:(COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL"Use {ffffff}/report "#HEX_DIALOG_COL"to report rulebreakers to admins");
  1218. SA:(COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL"Website: {ffffff}"#SERVER_WEBSITE"");
  1219. }
  1220. return 1;
  1221. }
  1222.  
  1223. public OnPlayerRequestClass(playerid, classid)
  1224. {
  1225. SetPlayerCameraPos(playerid, 1420.6412,-975.1619,57.5156);
  1226. SetPlayerCameraLookAt(playerid, 1413.7268,-810.4615,75.2100);
  1227. if(mysql_GetInt("accounts", "Banned", "Name", GetName(playerid)) == 1)
  1228. {
  1229. new BanInfo[5][200];
  1230. BanInfo[0] = mysql_GetString("bans", "Grund", "Name", GetName(playerid));
  1231. BanInfo[1] = mysql_GetString("bans", "IP", "Name", GetName(playerid));
  1232. BanInfo[2] = mysql_GetString("bans", "Admin", "Name", GetName(playerid));
  1233. BanInfo[3] = mysql_GetString("bans", "Datum", "Name", GetName(playerid));
  1234. BanInfo[4] = mysql_GetString("bans", "Zeit", "Name", GetName(playerid));
  1235. SendFormat(playerid, COLOR_LIGHTRED, "This account has been banned by %s for %s",BanInfo[2], BanInfo[0]);
  1236. SendFormat(playerid, COLOR_LIGHTRED, "IP: %s | Date: %s | Time: %s", BanInfo[1], BanInfo[3], BanInfo[4]);
  1237. Ban(playerid);
  1238. return 0;
  1239. }
  1240. TextDrawShowForPlayer(playerid, BottomBox[0]);
  1241. TextDrawShowForPlayer(playerid, BottomBox[1]);
  1242. TextDrawShowForPlayer(playerid, InformationBox[0]);
  1243. TextDrawShowForPlayer(playerid, InformationBox[1]);
  1244.  
  1245. for(new i = 0; i < sizeof(InfoBoxText); i++) {
  1246. TextDrawShowForPlayer(playerid, InfoBoxText[i]); }
  1247. for(new i = 0; i < sizeof(MoneyTextDraw); i++) {
  1248. TextDrawShowForPlayer(playerid, MoneyTextDraw[i]); }
  1249. TextDrawShowForPlayer(playerid, DateTimeTextDraw[0]);
  1250. TextDrawShowForPlayer(playerid, DateTimeTextDraw[1]);
  1251. TextDrawShowForPlayer(playerid, DateTimeTextDraw[2]);
  1252. TextDrawShowForPlayer(playerid, TextDrawForum);
  1253. TextDrawShowForPlayer(playerid, MoneyText[playerid]);
  1254.  
  1255. TextDrawShowForPlayer(playerid, PlayerFPSTD[playerid]);
  1256.  
  1257. if(mysql_CheckAccount(playerid) == 0)
  1258. {
  1259. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"» Register","«|-------------------------------------------------------------|»\n\n"#HEX_ORANGE"» Welcome!\n\n"#HEX_WHITE"Insert a password to create an account!\n\n"#HEX_DIALOG_COL"«|-------------------------------------------------------------|»","Register","");
  1260. }
  1261. else if(mysql_CheckAccount(playerid) == 1)
  1262. {
  1263. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"» Login","«|-------------------------------------------------------------|»\n\n"#HEX_ORANGE"» Welcome back!\n\n"#HEX_WHITE"Insert your password to login!\n\n"#HEX_DIALOG_COL"«|-------------------------------------------------------------|»","Login","");
  1264. }
  1265. return 1;
  1266. }
  1267.  
  1268. public OnPlayerConnect(playerid)
  1269. {
  1270. IsPlayerSpectating[playerid] = false;
  1271. ClearChat(playerid, 40);
  1272. S:(playerid, COLOR_LIGHTBLUE, "Please wait, connecting to the server...");
  1273. SetPlayerColor(playerid, PlayerColors[playerid]);
  1274. if(!IsPlayerNPC(playerid))
  1275. {
  1276. AddFormatToInfoBox("%s has ~g~joined~w~ the server.", GetName(playerid));
  1277. }
  1278. I_SetPlayerMoney(playerid, 0);
  1279. SpielerInfo[playerid][pLoggedIn] = 0;
  1280. SpielerInfo[playerid][pPaused] = 0;
  1281. PlayerVehicle[playerid] = 0;
  1282. PlayerMode[playerid] = 0;
  1283. GetARInfo[playerid][aOnFootAirbrake] = 0;
  1284. GetARInfo[playerid][aFakeKillCount] = 0;
  1285. shotTime[playerid] = 0;
  1286. shot[playerid] = 0;
  1287. PlayerHasBeenSlain[playerid] = 0;
  1288. SpeedoState[playerid] = 0;
  1289. PlayerKillingSpree[playerid] = 0;
  1290. if(HappyHour == 1) { TextDrawShowForPlayer(playerid, HHTD); }
  1291. if(IsPlayerNPC(playerid))
  1292. {
  1293. SpielerInfo[playerid][pLoggedIn] = 1;
  1294. SpawnPlayer(playerid);
  1295. }
  1296. return 1;
  1297. }
  1298.  
  1299.  
  1300. public OnPlayerDisconnect(playerid, reason)
  1301. {
  1302. for(new i=0; i<MAX_PLAYERS; i++)
  1303. {
  1304. if(IsPlayerConnected(i) && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
  1305. {
  1306. SpectatedPlayer[i]++;
  1307. if(SpectatedPlayer[i] == i || SpectatedPlayer[i] == INVALID_PLAYER_ID) SpectatedPlayer[i]++;
  1308. if(!IsPlayerConnected(SpectatedPlayer[i])) SpectatedPlayer[i]++;
  1309. for(new a=SpectatedPlayer[playerid]; a<MAX_PLAYERS; a++)
  1310. {
  1311. if(a > GetMaxPlayers()) i = 0; SpectatedPlayer[i] = 0;
  1312. if(IsPlayerConnected(a) && !IsPlayerSpectating[a])
  1313. {
  1314. if(IsPlayerInAnyVehicle(a))PlayerSpectateVehicle(i, GetPlayerVehicleID(a));
  1315. else PlayerSpectatePlayer(i, a);
  1316. SpectatedPlayer[i] = a;
  1317. SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(a));
  1318. SetPlayerInterior(i, GetPlayerInterior(a));
  1319. TextDrawSetText(SpectateTD[2][i], "~g~PLAYER: ~w~%s (%d)", GetName(SpectatedPlayer[i]), SpectatedPlayer[i]);
  1320. break;
  1321. }
  1322. else continue;
  1323. }
  1324. }
  1325. }
  1326. new disconnectReason[3][] =
  1327. {
  1328. "Timeout/Crash",
  1329. "Quit",
  1330. "Kick/Ban"
  1331. };
  1332. AddFormatToInfoBox("%s has ~r~left~w~ the server. ~y~(%s)", GetName(playerid), disconnectReason[reason]);
  1333. SavePlayer(playerid);
  1334. SpielerInfo[playerid][pLoggedIn] = 0;
  1335. DeletePVar(playerid,"Eingeloggt");
  1336. return 1;
  1337. }
  1338.  
  1339. public OnPlayerSpawn(playerid)
  1340. {
  1341. if(PlayerMode[playerid] > 0 && PlayerMode[playerid] != 1337)
  1342. {
  1343. new rand = randomEx(0,1), Float: SpawnPosX, Float: SpawnPosY, Float: SpawnPosZ;
  1344. if(rand == 0) SpawnPosX = RandomSpawns[0][rsX]; SpawnPosY = RandomSpawns[0][rsY]; SpawnPosZ = RandomSpawns[0][rsZ];
  1345. if(rand == 1) SpawnPosX = ModeData[PlayerMode[playerid]][mX]; SpawnPosY = ModeData[PlayerMode[playerid]][mY]; SpawnPosZ = ModeData[PlayerMode[playerid]][mZ];
  1346. SetPlayerPos(playerid, SpawnPosX, SpawnPosY, SpawnPosZ);
  1347. }
  1348. SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);
  1349. TextDrawShowForPlayer(playerid, PlayerModeTD[playerid]);
  1350. TextDrawShowForPlayer(playerid, HealBarText[playerid]);
  1351. for(new i=0; i<MAX_PLAYERS; i++)
  1352. {
  1353. if(IsPlayerConnected(i) && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
  1354. {
  1355. PlayerSpectatePlayer(i, SpectatedPlayer[i]);
  1356. SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(i));
  1357. }
  1358. }
  1359. return 1;
  1360. }
  1361.  
  1362. public OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid)
  1363. {
  1364. for(new i=0; i<MAX_PLAYERS; i++)
  1365. {
  1366. if(IsPlayerConnected(i) && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
  1367. {
  1368. SetPlayerInterior(i, newinteriorid);
  1369. }
  1370. }
  1371. return 1;
  1372. }
  1373.  
  1374. public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
  1375. {
  1376. if(issuerid != INVALID_PLAYER_ID && issuerid != playerid) {
  1377. PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
  1378. }
  1379. return 1;
  1380. }
  1381.  
  1382. public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
  1383. {
  1384. if(bodypart == WEAPON_BODY_PART_HEAD) {
  1385. GivePlayerHealth(damagedid, -70.0);
  1386. amount = 70;
  1387. GameTextForPlayer(playerid, "~r~Headshot!", 2000, 4);
  1388. }
  1389. if(damagedid != INVALID_PLAYER_ID)
  1390. {
  1391. new damagepart[20];
  1392. switch(bodypart) {
  1393. case 3: { damagepart = "Chest"; }
  1394. case 4: { damagepart = "Crotch"; }
  1395. case 5: { damagepart = "Left Arm"; }
  1396. case 6: { damagepart = "Right Arm"; }
  1397. case 7: { damagepart = "Left Leg"; }
  1398. case 8: { damagepart = "Right Leg"; }
  1399. case 9: { damagepart = "Head"; }
  1400. default: { damagepart = "ERROR"; }
  1401. }
  1402. TextDrawShowForPlayer(playerid, DamageTD[playerid]);
  1403. TextDrawSetText(DamageTD[playerid], "~y~%s~n~~r~Bodypart: ~w~%s~n~~r~Damage: ~w~- %.0f", GetName(damagedid), damagepart, amount);
  1404. SetTimerEx("HideDamageText", 5000, false, "i", playerid);
  1405. }
  1406. return 1;
  1407. }
  1408.  
  1409. PUBLIC: HideDamageText(playerid)
  1410. {
  1411. TextDrawHideForPlayer(playerid, DamageTD[playerid]);
  1412. return 1;
  1413. }
  1414.  
  1415. stock randomEx(minnum = cellmin, maxnum = cellmax) { return random(maxnum - minnum + 1) + minnum; }
  1416.  
  1417. public OnPlayerDeath(playerid, killerid, reason)
  1418. {
  1419. PlayerKillingSpree[playerid] = 0;
  1420. PlayerKillingSpree[killerid]++;
  1421. if(PlayerKillingSpree[killerid] == 3) {
  1422. AddFormatToInfoBox("%s is on a killing spree - 3 Kills", GetName(killerid));
  1423. SetPlayerArmour(killerid, 10);
  1424. }
  1425. if(PlayerKillingSpree[killerid] == 6) {
  1426. AddFormatToInfoBox("%s is on a killing spree - 6 Kills", GetName(killerid));
  1427. SetPlayerArmour(killerid, 30);
  1428. }
  1429. TextDrawSetString(HealBarText[playerid], "0");
  1430. if(killerid != INVALID_PLAYER_ID) {
  1431. new Float: score = 1, Float:money = randomEx(300,700);
  1432. switch(SpielerInfo[killerid][pPremium])
  1433. {
  1434. case 0:{ } // No Premium
  1435. case 1:{ score = score*2; money = money*1.50; } //Premium LVL 1
  1436. case 2:{ score = score*3; money = money*2; } //Premium LVL 2
  1437. case 3:{ score = score*4; money = money*2.50; } //Premium LVL 3
  1438. case 4:{ score = score*5; money = money*3; } //Premium LVL 4
  1439. }
  1440. if(HappyHour == 0) {
  1441. if(SpielerInfo[playerid][pPremium] > 0) I_GivePlayerMoney(playerid, -250);
  1442. else I_GivePlayerMoney(playerid, -500);
  1443. }
  1444. if(HappyHour == 1)
  1445. {
  1446. score = score*2;
  1447. money = money*2;
  1448. }
  1449. SpielerInfo[killerid][pScore] = SpielerInfo[killerid][pScore]+floatround(score, floatround_ceil);
  1450. SpielerInfo[killerid][pKills]++;
  1451. SetPlayerScore(killerid, GetPlayerScore(killerid)+floatround(score, floatround_ceil));
  1452. I_GivePlayerMoney(killerid, floatround(money, floatround_ceil));
  1453. GivePlayerHealth(killerid, 20.0);
  1454. UpdatePlayerLevel(killerid);
  1455. new str[128];
  1456. format(str, sizeof(str), "%s killed %s with %s", GetName(killerid), GetName(playerid), WeaponName(reason));
  1457. LogEvent("kill_log", str);
  1458. AddFormatToInfoBox("%s ~r~killed~w~ %s ~y~(%s).", GetName(killerid), GetName(playerid), WeaponName(reason));
  1459. }
  1460. else { if(PlayerHasBeenSlain[playerid] == 0) { AddFormatToInfoBox("%s ~r~died~w~.", GetName(playerid)); } }
  1461. GetARInfo[playerid][aFakeKillCount]++;
  1462. SpielerInfo[playerid][pDeaths]++;
  1463. for(new i=0; i<MAX_PLAYERS; i++)
  1464. {
  1465. if(IsPlayerConnected(i) && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
  1466. {
  1467. SpectatedPlayer[i]++;
  1468. if(SpectatedPlayer[i] == i || SpectatedPlayer[i] == INVALID_PLAYER_ID) SpectatedPlayer[i]++;
  1469. if(!IsPlayerConnected(SpectatedPlayer[i])) SpectatedPlayer[i]++;
  1470. for(new a=SpectatedPlayer[playerid]; a<MAX_PLAYERS; a++)
  1471. {
  1472. if(a > GetMaxPlayers()) i = 0; SpectatedPlayer[i] = 0;
  1473. if(IsPlayerConnected(a) && !IsPlayerSpectating[a])
  1474. {
  1475. if(IsPlayerInAnyVehicle(a))PlayerSpectateVehicle(i, GetPlayerVehicleID(a));
  1476. else PlayerSpectatePlayer(i, a);
  1477. SpectatedPlayer[i] = a;
  1478. SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(a));
  1479. SetPlayerInterior(i, GetPlayerInterior(a));
  1480. TextDrawSetText(SpectateTD[2][i], "~g~PLAYER: ~w~%s (%d)", GetName(SpectatedPlayer[i]), SpectatedPlayer[i]);
  1481. break;
  1482. }
  1483. else continue;
  1484. }
  1485. }
  1486. }
  1487. return 1;
  1488. }
  1489.  
  1490. public OnVehicleSpawn(vehicleid)
  1491. {
  1492. return 1;
  1493. }
  1494.  
  1495. public OnVehicleDeath(vehicleid, killerid)
  1496. {
  1497. return 1;
  1498. }
  1499.  
  1500. public OnPlayerText(playerid, text[])
  1501. {
  1502. if(SpielerInfo[playerid][pLoggedIn] == 0) return 0;
  1503. new text_string[257];
  1504. format(text_string, sizeof(text_string), "{FFFFFF}(%d) {%06x}%s: {FFFFFF}%s", playerid, GetPlayerColor(playerid) >>> 8, GetName(playerid),text);
  1505. SA:(COLOR_WHITE, text_string);
  1506. LogEvent("chat_log", text_string);
  1507. return 0;
  1508. }
  1509.  
  1510. PUBLIC: RestartGameMode()
  1511. {
  1512. GameModeExit();
  1513. return 1;
  1514. }
  1515. public OnPlayerCommandText(playerid, cmdtext[])
  1516. {
  1517. if(SpielerInfo[playerid][pLoggedIn] == 0) return 0;
  1518. new cmd[300],tmp[300], idx, id, str[128];
  1519. cmd = strtok(cmdtext, idx);
  1520. format(str, sizeof(str), "%s used %s", GetName(playerid), cmd);
  1521. LogEvent("command_log", str);
  1522. dcmd(v, 1, cmdtext);
  1523. if(strcmp(cmd, "/spec", true) == 0)
  1524. {
  1525. if(SpielerInfo[playerid][pAdmin] >= 1)
  1526. {
  1527. tmp = strtok(cmdtext, idx);
  1528. if(!strlen(tmp)) {
  1529. new spectateable;
  1530. for(new i=0; i<MAX_PLAYERS; i++){
  1531. if(IsPlayerConnected(i) && !IsPlayerSpectating[i] && i != playerid) spectateable++; }
  1532. if(!IsPlayerSpectating[playerid]) {
  1533. if(spectateable >= 1) {
  1534. TogglePlayerSpectating(playerid, 1);
  1535. SpectatedPlayer[playerid] = 0;
  1536. if(SpectatedPlayer[playerid] == playerid || SpectatedPlayer[playerid] == INVALID_PLAYER_ID) SpectatedPlayer[playerid]++;
  1537. if(!IsPlayerConnected(SpectatedPlayer[playerid])) SpectatedPlayer[playerid]++;
  1538. for(new i=SpectatedPlayer[playerid]; i<MAX_PLAYERS; i++) {
  1539. if(i > GetMaxPlayers()) i = 0; SpectatedPlayer[playerid] = 0;
  1540. if(IsPlayerConnected(i) && !IsPlayerSpectating[i]) {
  1541. if(IsPlayerInAnyVehicle(i))PlayerSpectateVehicle(playerid, GetPlayerVehicleID(i));
  1542. else PlayerSpectatePlayer(playerid, i);
  1543. SpectatedPlayer[playerid] = i;
  1544. SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(i));
  1545. SetPlayerInterior(playerid, GetPlayerInterior(i));
  1546. TextDrawSetText(SpectateTD[2][playerid], "~g~PLAYER: ~w~%s (%d)", GetName(SpectatedPlayer[playerid]), SpectatedPlayer[playerid]);
  1547. break;
  1548. }
  1549. else continue;
  1550. }
  1551. IsPlayerSpectating[playerid] = true;
  1552. for(new i = 0; i < sizeof(SpectateTD); i++) {
  1553. TextDrawShowForPlayer(playerid, SpectateTD[i][playerid]); }
  1554. TextDrawSetText(SpectateTD[2][playerid], "~g~PLAYER: ~w~%s (%d)", GetName(SpectatedPlayer[playerid]), SpectatedPlayer[playerid]);
  1555. OnPlayerModeChange(playerid, 1337);
  1556. S:(playerid, COLOR_ORANGE, "[ SPECTATE ] Use LMB / RMB to switch between the players");
  1557. S:(playerid, COLOR_ORANGE, "[ SPECTATE ] You can also use /spec [id]");
  1558. }
  1559. else S:(playerid, COLOR_LIGHTRED, "There is no player to spectate");
  1560. }
  1561. else {
  1562. TogglePlayerSpectating(playerid, 0);
  1563. SpectatedPlayer[playerid] = 0;
  1564. IsPlayerSpectating[playerid] = false;
  1565. for(new i = 0; i < sizeof(SpectateTD); i++) {
  1566. TextDrawHideForPlayer(playerid, SpectateTD[i][playerid]); }
  1567. OnPlayerModeChange(playerid, 0);
  1568. }
  1569. return 1;
  1570. }
  1571. id = ReturnUser(tmp);
  1572. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1573. if(!IsPlayerSpectating[id]) {
  1574. if(IsPlayerSpectating[playerid]) {
  1575. if(IsPlayerInAnyVehicle(id))PlayerSpectateVehicle(playerid, GetPlayerVehicleID(id));
  1576. else PlayerSpectatePlayer(playerid, id);
  1577. SpectatedPlayer[playerid] = id;
  1578. SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id));
  1579. SetPlayerInterior(playerid, GetPlayerInterior(id));
  1580. TextDrawSetText(SpectateTD[2][playerid], "~g~PLAYER: ~w~%s (%d)", GetName(SpectatedPlayer[playerid]),SpectatedPlayer[playerid]);
  1581. }
  1582. else S:(playerid, COLOR_LIGHTRED, "You are not Spectating ( /spec )");
  1583. }
  1584. else S:(playerid, COLOR_LIGHTRED, "That player is spectating");
  1585. }
  1586. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  1587. }
  1588. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1589. return 1;
  1590. }
  1591. if(strcmp(cmd, "/tele", true) == 0 || strcmp(cmd, "/teleport", true) == 0)
  1592. {
  1593. if(PlayerMode[playerid] != 0) {
  1594. SendFormat(playerid, COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL"Leave %s if you want to Teleport ( /leave )", GetModeName(playerid)); }
  1595. else {
  1596. ShowPlayerTextDialog(playerid, TEXT_TELEPORT);
  1597. }
  1598. return 1;
  1599. }
  1600. if(strcmp(cmd, "/unban", true) == 0)
  1601. {
  1602. if(IsPlayerConnected(playerid)) {
  1603. if(SpielerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid)) {
  1604. tmp = strtok(cmdtext, idx);
  1605. if(!strlen(tmp)) { S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /unban [Name]"); return 1; }
  1606. new Query[128],count;
  1607. format(Query, sizeof(Query), "SELECT * FROM `bans` WHERE `Name` = '%s'", tmp);
  1608. mysql_query(Query);
  1609. mysql_store_result();
  1610. count = mysql_num_rows();
  1611. mysql_free_result();
  1612. if(count == 1) {
  1613. new BannedIP[150];
  1614. BannedIP = mysql_GetString("bans", "IP", "Name", tmp);
  1615. format(Query, sizeof(Query), "DELETE FROM bans WHERE Name = '%s'", tmp); mysql_query(Query);
  1616. mysql_SetInt("accounts", "Banned", 0, "Name", tmp);
  1617. format(Query, sizeof(Query), "unbanip %s", BannedIP[0]);
  1618. SendRconCommand(Query);
  1619. SendRconCommand("reloadbans");
  1620. SendFormat(playerid, COLOR_LIGHTRED, "You unbanned %s", tmp); }
  1621. else S:(playerid, COLOR_LIGHTRED, "There is no ban with this name");
  1622. }
  1623. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1624. }
  1625. return 1;
  1626. }
  1627. if(strcmp(cmd, "/leave", true) == 0 || strcmp(cmd, "/l", true) == 0)
  1628. {
  1629. if(PlayerMode[playerid] != 0)
  1630. {
  1631. OnPlayerModeChange(playerid, 0);
  1632. SetPlayerVirtualWorld(playerid, ModeData[0][virtualworld]);
  1633. SetSpawnInfo(playerid,0,SpielerInfo[playerid][pSkin], ModeData[0][mX],ModeData[0][mY],ModeData[0][mZ], ModeData[0][mA], ModeData[0][weapon1], ModeData[0][weapon_ammo1], ModeData[0][weapon2], ModeData[0][weapon_ammo2], ModeData[0][weapon3], ModeData[0][weapon_ammo3]);
  1634. SpawnPlayer(playerid);
  1635. }
  1636. return 1;
  1637. }
  1638. if(strcmp(cmd, "/kill", true) == 0 || strcmp(cmd, "/suicide", true) == 0)
  1639. {
  1640. if(PlayerMode[playerid] != 0)
  1641. {
  1642. SendFormat(playerid, COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL"You can't use this command in %s", GetModeName(playerid));
  1643. }
  1644. else
  1645. {
  1646. PlayerHasBeenSlain[playerid] = 1;
  1647. SetPlayerHealth(playerid, 0.0);
  1648. AddFormatToInfoBox("%s has committed ~r~suicide~w~.", GetName(playerid));
  1649. }
  1650. return 1;
  1651. }
  1652. if(strcmp(cmd, "/help", true) == 0)
  1653. {
  1654. S:(playerid, COLOR_LIGHTRED, "[ COMMANDS ] "#HEX_DIALOG_COL"Type /commands to see a list of all commands.");
  1655. S:(playerid, COLOR_LIGHTRED, "[ VEHICLE ] "#HEX_DIALOG_COL"Use /v (part of name / name) to spawn a vehicle.");
  1656. S:(playerid, COLOR_LIGHTRED, "[ GENERAL ] "#HEX_DIALOG_COL"If you have any question, use /ask !");
  1657. S:(playerid, COLOR_LIGHTRED, "[ GENERAL ] "#HEX_DIALOG_COL"Use /report to report rulebreakers to admins.");
  1658. return 1;
  1659. }
  1660. if(strcmp(cmd, "/commands", true) == 0)
  1661. {
  1662. if(SpielerInfo[playerid][pAdmin] >= 1) S:(playerid, COLOR_DIALOG, "Type /ahelp to see admin commands");
  1663. S:(playerid,COLOR_LIGHTRED,"[ GENERAL ] "#HEX_DIALOG_COL"/teleport «|» /help «|» /report «|» /ask «|» /admins «|» /kill (/suicide)");
  1664. S:(playerid,COLOR_LIGHTRED,"[ PLAYER ] "#HEX_DIALOG_COL"/stats «|» /skin");
  1665. return 1;
  1666. }
  1667. if(strcmp(cmd, "/slay", true) == 0)
  1668. {
  1669. if(IsPlayerConnected(playerid)) {
  1670. tmp = strtok(cmdtext, idx);
  1671. if(!strlen(tmp)) {
  1672. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /slay [playerid]");
  1673. return 1; }
  1674. id = ReturnUser(tmp);
  1675. if (SpielerInfo[playerid][pAdmin] >= 1) {
  1676. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1677. PlayerHasBeenSlain[id] = 1;
  1678. SetPlayerHealth(id, 0.0);
  1679. SendFormatToAll(COLOR_LIGHTRED, "%s has been slain by %s", GetName(id), GetName(playerid));
  1680. AddFormatToInfoBox("%s has been ~r~slain~w~.", GetName(id));
  1681. }
  1682. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  1683. }
  1684. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1685. }
  1686. return 1;
  1687. }
  1688. if(strcmp(cmd, "/stats", true) == 0)
  1689. {
  1690. if(IsPlayerConnected(playerid)) {
  1691. tmp = strtok(cmdtext, idx);
  1692. if(!strlen(tmp)) {
  1693. new statsdiag[300];
  1694. new Float:ratio=floatdiv(SpielerInfo[playerid][pKills], SpielerInfo[playerid][pDeaths]);
  1695. format(statsdiag, sizeof(statsdiag), ""#HEX_LIGHTRED"» %s\n\n"#HEX_DIALOG_COL"Account Informations:\n"#HEX_WHITE"Premium Level: %d\n\n"#HEX_DIALOG_COL"Statistics:\n"#HEX_WHITE"Level: %d\n\nMoney: %d\n\nScore: %d\n\nKills: %d\n\nDeaths: %d\n\nK/D Ratio: %.2f", GetName(playerid),SpielerInfo[playerid][pPremium],SpielerInfo[playerid][pLevel], SpielerInfo[playerid][pMoney],SpielerInfo[playerid][pScore],SpielerInfo[playerid][pKills], SpielerInfo[playerid][pDeaths], ratio);
  1696. ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "» Stats", statsdiag, "Close","");
  1697. return 1; }
  1698. id = ReturnUser(tmp);
  1699. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1700. new statsdiag[300];
  1701. new Float:ratio=floatdiv(SpielerInfo[id][pKills], SpielerInfo[id][pDeaths]);
  1702. format(statsdiag, sizeof(statsdiag), ""#HEX_LIGHTRED"» %s\n\n"#HEX_DIALOG_COL"Account Informations:\n"#HEX_WHITE"Premium Level: %d\n\n"#HEX_DIALOG_COL"Statistics:\n"#HEX_WHITE"Level: %d\n\nMoney: %d\n\nScore: %d\n\nKills: %d\n\nDeaths: %d\n\nK/D Ratio: %.2f", GetName(id),SpielerInfo[id][pPremium],SpielerInfo[id][pLevel],SpielerInfo[id][pMoney],SpielerInfo[id][pScore],SpielerInfo[id][pKills], SpielerInfo[id][pDeaths], ratio);
  1703. ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "» Stats", statsdiag, "Close","");
  1704. }
  1705. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  1706. }
  1707. return 1;
  1708. }
  1709.  
  1710. if(strcmp(cmd, "/skin", true) == 0)
  1711. {
  1712. if(IsPlayerConnected(playerid) && SpielerInfo[playerid][pLoggedIn] == 1)
  1713. {
  1714. tmp = strtok(cmdtext, idx);
  1715. if(!strlen(tmp)) { S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /skin [skin id]"); return 1; }
  1716. new skinID = strval(tmp);
  1717. if(skinID >= 0 && skinID < 300)
  1718. {
  1719. SetPlayerSkin(playerid, skinID);
  1720. SpielerInfo[playerid][pSkin] = skinID;
  1721. S:(playerid, COLOR_ORANGE, "Your skin has been changed.");
  1722. }
  1723. else S:(playerid, COLOR_LIGHTRED, "Invalid Skin ID");
  1724. }
  1725. return 1;
  1726. }
  1727.  
  1728. if(strcmp(cmd, "/report", true) == 0)
  1729. {
  1730. if(IsPlayerConnected(playerid)) {
  1731. tmp = strtok(cmdtext, idx);
  1732. if(!strlen(tmp)) {
  1733. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /report [playerid] [reason]");
  1734. return 1; }
  1735. id = ReturnUser(tmp);
  1736. new length = strlen(cmdtext);
  1737. while ((idx < length) && (cmdtext[idx] <= ' ')) {
  1738. idx++; }
  1739. new offset = idx;
  1740. new result[64];
  1741. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
  1742. result[idx - offset] = cmdtext[idx];
  1743. idx++; }
  1744. result[idx - offset] = EOS;
  1745. if(!strlen(result)) {
  1746. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /report [playerid] [reason]");
  1747. return 1; }
  1748. if(SpielerInfo[playerid][pLoggedIn] == 1) {
  1749. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1750. if(playerid != id) {
  1751. SendAdminFormat(COLOR_LIGHTRED, "%s [%d] Reported %s [%d] (Reason: %s)", GetName(playerid), playerid, GetName(id), id, (result));
  1752. SendFormat(playerid, COLOR_ORANGE, "You Reported %s [%d] for %s", GetName(id), id, (result));
  1753. }
  1754. else S:(playerid, COLOR_LIGHTRED, "You can't report yourself");
  1755. }
  1756. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  1757. }
  1758. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1759. }
  1760. return 1;
  1761. }
  1762. if(strcmp(cmd, "/ask", true) == 0)
  1763. {
  1764. if(IsPlayerConnected(playerid)) {
  1765. new length = strlen(cmdtext);
  1766. while ((idx < length) && (cmdtext[idx] <= ' ')) {
  1767. idx++; }
  1768. new offset = idx;
  1769. new result[64];
  1770. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
  1771. result[idx - offset] = cmdtext[idx];
  1772. idx++; }
  1773. result[idx - offset] = EOS;
  1774. if(!strlen(result)) {
  1775. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /ask [question]");
  1776. return 1; }
  1777. if(SpielerInfo[playerid][pLoggedIn] == 1) {
  1778. SendAdminFormat(COLOR_LIGHTBLUE, "[ ASK ] %s (%d): "#HEX_GREY"%s", GetName(playerid), playerid,(result));
  1779. SendFormat(playerid, COLOR_LIGHTBLUE, "You asked: %s",(result));
  1780. }
  1781. }
  1782. return 1;
  1783. }
  1784. if(strcmp(cmd, "/a", true) == 0)
  1785. {
  1786. if(IsPlayerConnected(playerid)) {
  1787. if(SpielerInfo[playerid][pAdmin] >= 1)
  1788. {
  1789. new length = strlen(cmdtext);
  1790. while ((idx < length) && (cmdtext[idx] <= ' ')) {
  1791. idx++; }
  1792. new offset = idx;
  1793. new result[64];
  1794. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
  1795. result[idx - offset] = cmdtext[idx];
  1796. idx++; }
  1797. result[idx - offset] = EOS;
  1798. if(!strlen(result)) {
  1799. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /a [text]");
  1800. return 1; }
  1801. SendAdminFormat(COLOR_ORANGE, "(%s) %s: "#HEX_WHITE"%s", GetRang(playerid), GetName(playerid),(result));
  1802. }
  1803. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1804. }
  1805. return 1;
  1806. }
  1807. if(strcmp(cmd, "/serial", true) == 0)
  1808. {
  1809. if(IsPlayerConnected(playerid)) {
  1810. tmp = strtok(cmdtext, idx);
  1811. if(!strlen(tmp)) {
  1812. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /serial [playerid]");
  1813. return 1; }
  1814. id = ReturnUser(tmp);
  1815. if (SpielerInfo[playerid][pAdmin] >= 1) {
  1816. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1817. SendFormat(playerid,COLOR_ORANGE, "%s - %s", GetName(id), mysql_GetString("accounts", "Serial", "Name", GetName(id)));
  1818. }
  1819. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  1820. }
  1821. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1822. }
  1823. return 1;
  1824. }
  1825. if(strcmp(cmd, "/ip", true) == 0)
  1826. {
  1827. if(IsPlayerConnected(playerid)) {
  1828. tmp = strtok(cmdtext, idx);
  1829. if(!strlen(tmp)) {
  1830. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /ip [playerid]");
  1831. return 1; }
  1832. id = ReturnUser(tmp);
  1833. if (SpielerInfo[playerid][pAdmin] >= 1) {
  1834. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1835. SendFormat(playerid,COLOR_ORANGE, "%s - %s", GetName(id), GetIP(id));
  1836. }
  1837. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  1838. }
  1839. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1840. }
  1841. return 1;
  1842. }
  1843. if(strcmp(cmd, "/clearchat", true) == 0 || strcmp(cmd, "/cc", true) == 0)
  1844. {
  1845. if(IsPlayerConnected(playerid)) {
  1846. if(SpielerInfo[playerid][pAdmin] >= 1) {
  1847. ForEachPlayer(i) {
  1848. if(IsPlayerConnected(i)) {
  1849. ClearChat(i, 100);
  1850. }
  1851. }
  1852. SendFormatToAll(COLOR_ORANGE, "The chat has been cleared by %s", GetName(playerid));
  1853. }
  1854. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1855. }
  1856. return 1;
  1857. }
  1858. if(strcmp(cmd, "/happyhour", true) == 0)
  1859. {
  1860. if(IsPlayerConnected(playerid)) {
  1861. if(SpielerInfo[playerid][pAdmin] >= 4) {
  1862. if(HappyHour == 0)
  1863. {
  1864. HappyHour = 1;
  1865. TextDrawShowForAll(HHTD);
  1866. HHTimer = SetTimer("HappyHourEnd",3600000, 0);
  1867. SA:(COLOR_ORANGE, "[ HAPPYHOUR ]");
  1868. }
  1869. else
  1870. {
  1871. HappyHour = 0;
  1872. TextDrawHideForAll(HHTD);
  1873. KillTimer(HHTimer);
  1874. SA:(COLOR_ORANGE, "[ HAPPYHOUR END ]");
  1875. }
  1876. }
  1877. }
  1878. return 1;
  1879. }
  1880. if(strcmp(cmd, "/id", true) == 0)
  1881. {
  1882. if(IsPlayerConnected(playerid)) {
  1883. tmp = strtok(cmdtext, idx);
  1884. if(!strlen(tmp)) {
  1885. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /id [name]");
  1886. return 1; }
  1887. id = ReturnUser(tmp);
  1888. if (SpielerInfo[playerid][pAdmin] >= 1) {
  1889. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1890. if(SpielerInfo[id][pPaused] == 0) SendFormat(playerid,COLOR_WHITE, "» (%s) %s - ID %d", GetModeName(id), GetName(id), id);
  1891. if(SpielerInfo[id][pPaused] == 1) SendFormat(playerid,COLOR_WHITE, "» (%s) %s - ID %d "#HEX_LIGHTRED"[PAUSED]", GetModeName(id),GetName(id), id);
  1892. }
  1893. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  1894. }
  1895. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1896. }
  1897. return 1;
  1898. }
  1899. if(strcmp(cmd, "/admins", true) == 0)
  1900. {
  1901. if(IsPlayerConnected(playerid)) {
  1902. SendClientMessage(playerid, COLOR_LIGHTRED, "|_____|- Admin Online -|_____|");
  1903. for(new i = 0; i < MAX_PLAYERS; i++) {
  1904. if(IsPlayerConnected(i)) {
  1905. if(SpielerInfo[i][pAdmin] >= 1) {
  1906. if(SpielerInfo[i][pPaused] == 0) SendFormat(playerid, COLOR_WHITE, "» %s: %s - ID %d", GetRang(i), GetName(i), i);
  1907. if(SpielerInfo[i][pPaused] == 1) SendFormat(playerid, COLOR_WHITE, "» %s: %s - ID %d "#HEX_LIGHTRED"[PAUSED]", GetRang(i), GetName(i), i);
  1908. }
  1909. }
  1910. }
  1911. }
  1912. return 1;
  1913. }
  1914. if(strcmp(cmd, "/ahelp", true) == 0)
  1915. {
  1916. if(SpielerInfo[playerid][pAdmin] == 0) S:(playerid, COLOR_LIGHTRED, "You are not an admin.");
  1917. if(SpielerInfo[playerid][pAdmin] >= 1) { S:(playerid, COLOR_LIGHTRED, "[ Trial Admin ] "#HEX_WHITE"/slap «|» /slay «|» /kick «|» /ban «|» /ip «|» /serial «|» /cc (/clearchat) «|» /a «|» /spec"); }
  1918. if(SpielerInfo[playerid][pAdmin] >= 2) { S:(playerid, COLOR_LIGHTRED, "[ Admin ] "#HEX_WHITE"/tp «|» /tphere «|» /unban"); }
  1919. if(SpielerInfo[playerid][pAdmin] >= 3) { S:(playerid, COLOR_LIGHTRED, "[ Lead Admin ] "#HEX_WHITE"/setpremium"); }
  1920. if(SpielerInfo[playerid][pAdmin] >= 4) { S:(playerid, COLOR_LIGHTRED, "[ Head Admin ] "#HEX_WHITE"/restart"); }
  1921. if(SpielerInfo[playerid][pAdmin] == 5) { S:(playerid, COLOR_LIGHTRED, "[ Owner ] "#HEX_WHITE"/setadmin"); }
  1922. return 1;
  1923. }
  1924. if(strcmp(cmd, "/restart", true) == 0)
  1925. {
  1926. if(IsPlayerConnected(playerid) && SpielerInfo[playerid][pAdmin] >= 4 || IsPlayerAdmin(playerid)) {
  1927. SendFormatToAll(COLOR_ORANGE, "The server is restarting in 10 seconds ( %s )", GetName(playerid));
  1928. printf("%s is restarting the Server (%s - %s)", GetName(playerid), GetDate(), GetTime());
  1929. ForEachPlayer(i) {
  1930. if(IsPlayerConnected(i)) {
  1931. SavePlayer(i);
  1932. }
  1933. }
  1934. AddToInfoBox("~r~Server is restarting in 10 seconds");
  1935. SetTimer("RestartGameMode", 10000, 0);
  1936. }
  1937. return 1;
  1938. }
  1939. if(strcmp(cmd, "/setpremium", true) == 0)
  1940. {
  1941. if(IsPlayerConnected(playerid)) {
  1942. tmp = strtok(cmdtext, idx);
  1943. if(!strlen(tmp)) {
  1944. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /setpremium [playerid] [level]");
  1945. return 1; }
  1946. id = ReturnUser(tmp);
  1947. tmp = strtok(cmdtext, idx);
  1948. new level = strval(tmp);
  1949. if(SpielerInfo[playerid][pAdmin] >= 3 || IsPlayerAdmin(playerid)) {
  1950. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1951. if(level > 4) S:(playerid, COLOR_LIGHTRED, "ERROR:"#HEX_WHITE" Highest premium level "#HEX_ORANGE"4");
  1952. else {
  1953. SpielerInfo[id][pPremium] = level;
  1954. SendFormat(playerid, COLOR_ORANGE, "You have set the premium level from %s to %d", GetName(id), level);
  1955. SendFormat(id, COLOR_ORANGE, "Your premium level has been set to %d", level);
  1956. }
  1957. }
  1958. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  1959. }
  1960. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1961. }
  1962. return 1;
  1963. }
  1964. if(strcmp(cmd, "/setadmin", true) == 0)
  1965. {
  1966. if(IsPlayerConnected(playerid)) {
  1967. tmp = strtok(cmdtext, idx);
  1968. if(!strlen(tmp)) {
  1969. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /setadmin [playerid] [level]");
  1970. return 1; }
  1971. id = ReturnUser(tmp);
  1972. tmp = strtok(cmdtext, idx);
  1973. new level = strval(tmp);
  1974. if(SpielerInfo[playerid][pAdmin] == 5 || IsPlayerAdmin(playerid)) {
  1975. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  1976. if(level > 5) S:(playerid, COLOR_LIGHTRED, "ERROR:"#HEX_WHITE" Highest admin level "#HEX_ORANGE"5");
  1977. else {
  1978. SpielerInfo[id][pAdmin] = level;
  1979. SendFormat(playerid, COLOR_ORANGE, "You have set the admin level from %s to %d", GetName(id), level);
  1980. SendFormat(id, COLOR_ORANGE, "Your admin level has been set to %d", level);
  1981. }
  1982. }
  1983. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  1984. }
  1985. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  1986. }
  1987. return 1;
  1988. }
  1989. if(strcmp(cmd, "/slap", true) == 0)
  1990. {
  1991. if(IsPlayerConnected(playerid)) {
  1992. tmp = strtok(cmdtext, idx);
  1993. if(!strlen(tmp)) {
  1994. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /slap [playerid]");
  1995. return 1; }
  1996. new Float:slx, Float:sly, Float:slz;
  1997. id = ReturnUser(tmp);
  1998. if (SpielerInfo[playerid][pAdmin] >= 1) {
  1999. if(IsPlayerConnected(id)) {
  2000. if(id != INVALID_PLAYER_ID) {
  2001. GetPlayerPos(id, slx, sly, slz);
  2002. SetPlayerPos(id, slx, sly, slz+5);
  2003. PlayerPlaySound(id, 1130, slx, sly, slz+5);
  2004. SendFormat(id,COLOR_ORANGE, "You have been slapped by %s", GetName(playerid));
  2005. }
  2006. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  2007. }
  2008. }
  2009. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  2010. }
  2011. return 1;
  2012. }
  2013. if(strcmp(cmd, "/ban", true) == 0)
  2014. {
  2015. if(IsPlayerConnected(playerid)) {
  2016. tmp = strtok(cmdtext, idx);
  2017. if(!strlen(tmp)) {
  2018. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /ban [playerid] [reason]");
  2019. return 1; }
  2020. id = ReturnUser(tmp);
  2021. new length = strlen(cmdtext);
  2022. while ((idx < length) && (cmdtext[idx] <= ' ')) {
  2023. idx++; }
  2024. new offset = idx;
  2025. new result[64];
  2026. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
  2027. result[idx - offset] = cmdtext[idx];
  2028. idx++; }
  2029. result[idx - offset] = EOS;
  2030. if(!strlen(result)) {
  2031. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /ban [playerid] [reason]");
  2032. return 1; }
  2033. if(SpielerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid)) {
  2034. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  2035. BanPlayer(id, GetName(playerid), (result));
  2036. }
  2037. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  2038. }
  2039. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  2040. }
  2041. return 1;
  2042. }
  2043. if(strcmp(cmd, "/kick", true) == 0)
  2044. {
  2045. if(IsPlayerConnected(playerid)) {
  2046. tmp = strtok(cmdtext, idx);
  2047. if(!strlen(tmp)) {
  2048. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /kick [playerid] [reason]");
  2049. return 1; }
  2050. id = ReturnUser(tmp);
  2051. new length = strlen(cmdtext);
  2052. while ((idx < length) && (cmdtext[idx] <= ' ')) {
  2053. idx++; }
  2054. new offset = idx;
  2055. new result[64];
  2056. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
  2057. result[idx - offset] = cmdtext[idx];
  2058. idx++; }
  2059. result[idx - offset] = EOS;
  2060. if(!strlen(result)) {
  2061. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /kick [playerid] [reason]");
  2062. return 1; }
  2063. if(SpielerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid)) {
  2064. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID) {
  2065. KickPlayer(id, GetName(playerid), (result));
  2066. }
  2067. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  2068. }
  2069. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  2070. }
  2071. return 1;
  2072. }
  2073. if(strcmp(cmd, "/tphere", true) == 0)
  2074. {
  2075. if(IsPlayerConnected(playerid)) {
  2076. tmp = strtok(cmdtext, idx);
  2077. if(!strlen(tmp)) {
  2078. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /tphere [playerid]");
  2079. return 1; }
  2080. id = ReturnUser(tmp);
  2081. if (SpielerInfo[playerid][pAdmin] >= 2) {
  2082. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  2083. new Float:x,Float:y,Float:z, Float:a;
  2084. GetPlayerPos(playerid, x, y, z);
  2085. GetXYInFrontOfPlayer(playerid, x, y, 5.0);
  2086. GetPlayerFacingAngle(playerid, a);
  2087. TeleportPlayer(id, x, y, z+1.0, a+180,GetPlayerVirtualWorld(playerid));
  2088. }
  2089. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  2090. }
  2091. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  2092. }
  2093. return 1;
  2094. }
  2095. if(strcmp(cmd, "/tp", true) == 0)
  2096. {
  2097. if(IsPlayerConnected(playerid)) {
  2098. tmp = strtok(cmdtext, idx);
  2099. if(!strlen(tmp)) {
  2100. S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /tp [playerid]");
  2101. return 1; }
  2102. id = ReturnUser(tmp);
  2103. if (SpielerInfo[playerid][pAdmin] >= 2) {
  2104. if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid) {
  2105. new Float:x,Float:y,Float:z, Float:a;
  2106. GetPlayerPos(id, x, y, z);
  2107. GetXYInFrontOfPlayer(id, x, y, 5.0);
  2108. GetPlayerFacingAngle(id, a);
  2109. TeleportPlayer(playerid, x, y, z+1.0, a+180,GetPlayerVirtualWorld(id));
  2110. }
  2111. else S:(playerid, COLOR_LIGHTRED, "Invalid player ID");
  2112. }
  2113. else S:(playerid, COLOR_LIGHTRED, "You are not allowed to use this command");
  2114. }
  2115. return 1;
  2116. }
  2117. SendFormat(playerid, COLOR_LIGHTRED, "[ CMD ] "#HEX_WHITE"There is no command called "#HEX_DIALOG_COL"%s"#HEX_WHITE", use /commands to see a list of commands", cmd);
  2118. return 1;
  2119. }
  2120.  
  2121. dcmd_v(playerid, params[])
  2122. {
  2123. if(PlayerMode[playerid] != 0)
  2124. {
  2125. SendFormat(playerid, COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL"You can't use this command in %s", GetModeName(playerid));
  2126. }
  2127. else
  2128. {
  2129. new idx,iString[ 128 ];
  2130. if ( params[ 0 ] == '\0' )
  2131. return S:(playerid, COLOR_LIGHTRED, "SYNTAX:"#HEX_WHITE" /v [Vehicle Name]");
  2132. idx = GetVehicleModelIDFromName( params );
  2133. if( idx == -1 )
  2134. {
  2135. idx = strval(iString);
  2136. if ( idx < 400 || idx > 611 )
  2137. return S:(playerid, COLOR_LIGHTRED, "Invalid Vehicle Name");
  2138. }
  2139. new Float:x,Float:y,Float:z,Float:a;
  2140. GetPlayerPos(playerid, x, y, z);
  2141. GetXYInFrontOfPlayer(playerid, x, y, 5.0);
  2142. GetPlayerFacingAngle(playerid, a);
  2143. new string[128];
  2144. format(string,sizeof(string),"[ INFO ] "#HEX_DIALOG_COL"Spawned vehicle %s", VehicleNames[idx - 400]);
  2145. S:(playerid,COLOR_LIGHTRED,string);
  2146. if(PlayerVehicle[playerid] == 0)
  2147. {
  2148. PlayerVehicle[playerid] = CreateVehicle(idx, x, y, z + 2.0, a + 90.0, -1, -1, 5000);
  2149. }
  2150. else
  2151. {
  2152. DestroyVehicle(PlayerVehicle[playerid]);
  2153. PlayerVehicle[playerid] = CreateVehicle(idx, x, y, z + 2.0, a + 90.0, -1, -1, 5000);
  2154. }
  2155. SetVehicleNumberPlate(PlayerVehicle[playerid], GetName(playerid));
  2156. }
  2157. return 1;
  2158. }
  2159.  
  2160. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  2161. {
  2162. return 1;
  2163. }
  2164.  
  2165. public OnPlayerExitVehicle(playerid, vehicleid)
  2166. {
  2167. InCar[playerid] = 0;
  2168. return 1;
  2169. }
  2170.  
  2171. public OnPlayerStateChange(playerid, newstate, oldstate)
  2172. {
  2173. if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  2174. {
  2175. new Float:health;
  2176. GetVehicleHealth(GetPlayerVehicleID(playerid), health);
  2177. TextDrawShowForPlayer(playerid, Speedo[playerid][0]);
  2178. TextDrawShowForPlayer(playerid, Speedo[playerid][1]);
  2179. TextDrawShowForPlayer(playerid, Speedo[playerid][2]);
  2180. TextDrawShowForPlayer(playerid, Speedo[playerid][3]);
  2181. TextDrawSetText(Speedo[playerid][0], "~r~Vehicle: ~w~%s", GetVehicleName(GetPlayerVehicleID(playerid)));
  2182. TextDrawSetText(Speedo[playerid][1], "~r~Health: ~w~%d%", floatround(health)/10);
  2183. SpeedoState[playerid] = 1;
  2184. }
  2185. if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER && newstate == PLAYER_STATE_ONFOOT)
  2186. {
  2187. TextDrawHideForPlayer(playerid, Speedo[playerid][0]);
  2188. TextDrawHideForPlayer(playerid, Speedo[playerid][1]);
  2189. TextDrawHideForPlayer(playerid, Speedo[playerid][2]);
  2190. TextDrawHideForPlayer(playerid, Speedo[playerid][3]);
  2191. SpeedoState[playerid] = 0;
  2192. }
  2193. if(oldstate == PLAYER_STATE_ONFOOT)
  2194. {
  2195. if(newstate == PLAYER_STATE_DRIVER || PLAYER_STATE_PASSENGER)
  2196. {
  2197. InCar[playerid] = 1;
  2198. WhatCar[playerid] = GetPlayerVehicleID(playerid);
  2199. }
  2200. }
  2201. if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  2202. {
  2203. for(new i=0; i<MAX_PLAYERS; i++)
  2204. {
  2205. if(IsPlayerConnected(i) && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
  2206. {
  2207. PlayerSpectateVehicle(i, GetPlayerVehicleID(SpectatedPlayer[i]));
  2208. }
  2209. }
  2210. }
  2211. if(newstate == PLAYER_STATE_ONFOOT)
  2212. {
  2213. for(new i=0; i<MAX_PLAYERS; i++)
  2214. {
  2215. if(IsPlayerConnected(i) && IsPlayerSpectating[i] && SpectatedPlayer[i] == playerid)
  2216. {
  2217. PlayerSpectatePlayer(i, SpectatedPlayer[i]);
  2218. }
  2219. }
  2220. }
  2221. return 1;
  2222. }
  2223.  
  2224. public OnPlayerEnterCheckpoint(playerid)
  2225. {
  2226. return 1;
  2227. }
  2228.  
  2229. public OnPlayerLeaveCheckpoint(playerid)
  2230. {
  2231. return 1;
  2232. }
  2233.  
  2234. public OnPlayerEnterRaceCheckpoint(playerid)
  2235. {
  2236. return 1;
  2237. }
  2238.  
  2239. public OnPlayerLeaveRaceCheckpoint(playerid)
  2240. {
  2241. return 1;
  2242. }
  2243.  
  2244. public OnRconCommand(cmd[])
  2245. {
  2246. return 1;
  2247. }
  2248.  
  2249. public OnPlayerRequestSpawn(playerid)
  2250. {
  2251. return 1;
  2252. }
  2253.  
  2254. public OnObjectMoved(objectid)
  2255. {
  2256. return 1;
  2257. }
  2258.  
  2259. public OnPlayerObjectMoved(playerid, objectid)
  2260. {
  2261. return 1;
  2262. }
  2263.  
  2264. public OnPlayerPickUpPickup(playerid, pickupid)
  2265. {
  2266. return 1;
  2267. }
  2268.  
  2269. public OnVehicleMod(playerid, vehicleid, componentid)
  2270. {
  2271. return 1;
  2272. }
  2273.  
  2274. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  2275. {
  2276. return 1;
  2277. }
  2278.  
  2279. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  2280. {
  2281. return 1;
  2282. }
  2283.  
  2284. public OnPlayerSelectedMenuRow(playerid, row)
  2285. {
  2286. return 1;
  2287. }
  2288.  
  2289. public OnPlayerExitedMenu(playerid)
  2290. {
  2291. return 1;
  2292. }
  2293.  
  2294. #define PRESSED(%0) \
  2295. (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  2296.  
  2297. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  2298. {
  2299. if (PRESSED(KEY_FIRE))
  2300. {
  2301. if (IsPlayerInAnyVehicle(playerid))
  2302. {
  2303. AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  2304. }
  2305. }
  2306. if(IsPlayerSpectating[playerid])
  2307. {
  2308. if(PRESSED(KEY_HANDBRAKE)) //Right
  2309. {
  2310. SpectatedPlayer[playerid]++;
  2311. if(SpectatedPlayer[playerid] == playerid || SpectatedPlayer[playerid] == INVALID_PLAYER_ID) SpectatedPlayer[playerid]++;
  2312. if(!IsPlayerConnected(SpectatedPlayer[playerid])) SpectatedPlayer[playerid]++;
  2313. for(new i=SpectatedPlayer[playerid]; i<MAX_PLAYERS; i++)
  2314. {
  2315. if(i > GetMaxPlayers()) i = 0; SpectatedPlayer[playerid] = 0;
  2316. if(IsPlayerConnected(i) && !IsPlayerSpectating[i])
  2317. {
  2318. if(IsPlayerInAnyVehicle(i))PlayerSpectateVehicle(playerid, GetPlayerVehicleID(i));
  2319. else PlayerSpectatePlayer(playerid, i);
  2320. SpectatedPlayer[playerid] = i;
  2321. SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(i));
  2322. SetPlayerInterior(playerid, GetPlayerInterior(i));
  2323. TextDrawSetText(SpectateTD[2][playerid], "~g~PLAYER: ~w~%s (%d)", GetName(SpectatedPlayer[playerid]), SpectatedPlayer[playerid]);
  2324. break;
  2325. }
  2326. else continue;
  2327. }
  2328. }
  2329. if(PRESSED(KEY_FIRE)) //Left
  2330. {
  2331. SpectatedPlayer[playerid]--;
  2332. if(SpectatedPlayer[playerid] == -1)
  2333. {
  2334. SpectatedPlayer[playerid] = 0;
  2335. if(SpectatedPlayer[playerid] == playerid || SpectatedPlayer[playerid] == INVALID_PLAYER_ID || !IsPlayerConnected(SpectatedPlayer[playerid]))
  2336. {
  2337. SpectatedPlayer[playerid]++;
  2338. }
  2339. }
  2340. for(new i=SpectatedPlayer[playerid]; i>-1; i--)
  2341. {
  2342. if(IsPlayerConnected(i) && !IsPlayerSpectating[i])
  2343. {
  2344. if(IsPlayerInAnyVehicle(i)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(i));
  2345. else PlayerSpectatePlayer(playerid, i);
  2346. SpectatedPlayer[playerid] = i;
  2347. SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(i));
  2348. SetPlayerInterior(playerid, GetPlayerInterior(i));
  2349. TextDrawSetText(SpectateTD[2][playerid], "~g~PLAYER: ~w~%s (%d)", GetName(SpectatedPlayer[playerid]), SpectatedPlayer[playerid]);
  2350. break;
  2351. }
  2352. else continue;
  2353. }
  2354. }
  2355. if(IsPlayerInAnyVehicle(SpectatedPlayer[playerid]))
  2356. {
  2357. TextDrawShowForPlayer(playerid, Speedo[playerid][0]);
  2358. TextDrawShowForPlayer(playerid, Speedo[playerid][1]);
  2359. TextDrawShowForPlayer(playerid, Speedo[playerid][2]);
  2360. TextDrawShowForPlayer(playerid, Speedo[playerid][3]);
  2361. TextDrawSetText(Speedo[playerid][0], "~r~Vehicle: ~w~%s", GetVehicleName(GetPlayerVehicleID(SpectatedPlayer[playerid])));
  2362. SpeedoState[playerid] = 1;
  2363. }
  2364. else
  2365. {
  2366. TextDrawHideForPlayer(playerid, Speedo[playerid][0]);
  2367. TextDrawHideForPlayer(playerid, Speedo[playerid][1]);
  2368. TextDrawHideForPlayer(playerid, Speedo[playerid][2]);
  2369. TextDrawHideForPlayer(playerid, Speedo[playerid][3]);
  2370. SpeedoState[playerid] = 0;
  2371. }
  2372. }
  2373. return 1;
  2374. }
  2375.  
  2376. public OnRconLoginAttempt(ip[], password[], success)
  2377. {
  2378. return 1;
  2379. }
  2380.  
  2381. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  2382. {
  2383. if(weaponid != 38)
  2384. {
  2385. if((gettime() - shotTime[playerid]) < 1)
  2386. {
  2387. shot[playerid]+=1;
  2388. }
  2389. else
  2390. {
  2391. shot[playerid]=0;
  2392. }
  2393. if(shot[playerid] > 10)
  2394. {
  2395. BanPlayer(playerid, "Anti-Retard", "Rapid Fire");
  2396. }
  2397. shotTime[playerid] = gettime();
  2398. }
  2399. return 1;
  2400. }
  2401.  
  2402. public OnPlayerUpdate(playerid)
  2403. {
  2404. if(!IsPlayerNPC(playerid))
  2405. {
  2406. new Float:health, str[5];
  2407. GetPlayerHealth(playerid, health);
  2408. format(str, sizeof(str), "%.0f", health);
  2409. TextDrawSetString(HealBarText[playerid], str);
  2410. GetARInfo[playerid][aFakeKillCount]--;
  2411.  
  2412. new Float:armour;
  2413. GetPlayerArmour(playerid, armour);
  2414. if(armour == 100.0) {
  2415. BanPlayer(playerid, "Anti-Retard", "Armour Hack"); }
  2416.  
  2417. if(GetPlayerMoney(playerid) > 0) {
  2418. BanPlayer(playerid, "Anti-Retard", "Money Hack"); }
  2419.  
  2420. if(GetARInfo[playerid][aFakeKillCount] >= 3) {
  2421. BanPlayer(playerid, "Anti-Retard", "Fakekill"); }
  2422.  
  2423. new Float: x, Float: y, Float: z, var;
  2424. GetPlayerPos(playerid, x, y, z);
  2425. var = GetPlayerAnimationIndex (playerid);
  2426. if (z > 8.0 && (var == 1543 || var == 1538 || var == 1539) && !IsPlayerInWater(playerid)) {
  2427. BanPlayer(playerid, "Anti-Retard", "Fly Hack"); }
  2428.  
  2429. if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) {
  2430. BanPlayer(playerid, "Anti-Retard", "Jetpack"); }
  2431.  
  2432. if(IsPlayerSpectating[playerid] && SpectatedPlayer[playerid] != INVALID_PLAYER_ID)
  2433. {
  2434. GetPlayerHealth(SpectatedPlayer[playerid], health);
  2435. TextDrawSetText(SpectateTD[3][playerid], "~g~HEALTH: ~w~%.0f", health);
  2436. TextDrawSetText(SpectateTD[4][playerid], "~y~WEAPON: ~w~%s", WeaponName(GetPlayerWeapon(SpectatedPlayer[playerid])));
  2437. TextDrawSetText(SpectateTD[5][playerid], "~y~AMMO: ~w~%d", GetPlayerAmmo(SpectatedPlayer[playerid]));
  2438. }
  2439. }
  2440. return 1;
  2441. }
  2442.  
  2443. public OnPlayerStreamIn(playerid, forplayerid)
  2444. {
  2445. return 1;
  2446. }
  2447.  
  2448. public OnPlayerStreamOut(playerid, forplayerid)
  2449. {
  2450. return 1;
  2451. }
  2452.  
  2453. public OnVehicleStreamIn(vehicleid, forplayerid)
  2454. {
  2455. return 1;
  2456. }
  2457.  
  2458. public OnVehicleStreamOut(vehicleid, forplayerid)
  2459. {
  2460. return 1;
  2461. }
  2462.  
  2463. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  2464. {
  2465. if(clickedid == TextDialog[7][playerid]) { OnTextResponse(playerid, CurrentTextDialog[playerid], -1, 0); }
  2466. if(clickedid == TextDialog[9][playerid]) { OnTextResponse(playerid, CurrentTextDialog[playerid], 0, 1); }
  2467. if(clickedid == TextDialog[10][playerid]) { OnTextResponse(playerid, CurrentTextDialog[playerid], 1, 1); }
  2468. if(clickedid == TextDialog[11][playerid]) { OnTextResponse(playerid, CurrentTextDialog[playerid], 2, 1); }
  2469. if(clickedid == TextDialog[12][playerid]) { OnTextResponse(playerid, CurrentTextDialog[playerid], 3, 1); }
  2470. if(clickedid == TextDialog[13][playerid]) { OnTextResponse(playerid, CurrentTextDialog[playerid], 4, 1); }
  2471. if(clickedid == TextDialog[14][playerid]) { OnTextResponse(playerid, CurrentTextDialog[playerid], 5, 1); }
  2472. if(clickedid == TextDialog[15][playerid]) { OnTextResponse(playerid, CurrentTextDialog[playerid], 6, 1); }
  2473. return 1;
  2474. }
  2475.  
  2476. PUBLIC: ShowPlayerTextDialog(playerid, textid)
  2477. {
  2478. HidePlayerTextDialog(playerid);
  2479. for(new i = 0; i < sizeof(TextDialog); i++) {
  2480. TextDrawShowForPlayer(playerid, TextDialog[i][playerid]); }
  2481. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2482. switch(textid) {
  2483. case TEXT_TELEPORT: {
  2484. TextDrawSetString(TextDialog[4][playerid], "~y~Teleports");
  2485. TextDrawSetString(TextDialog[9][playerid], "Spawn");
  2486. TextDrawSetString(TextDialog[10][playerid], "Locations");
  2487. TextDrawSetString(TextDialog[11][playerid], "Deatmatch");
  2488. TextDrawSetString(TextDialog[12][playerid], "");
  2489. TextDrawSetString(TextDialog[13][playerid], "");
  2490. TextDrawSetString(TextDialog[14][playerid], "");
  2491. TextDrawSetString(TextDialog[15][playerid], "");
  2492. }
  2493. case TEXT_TELEPORT_LOCATIONS: {
  2494. TextDrawSetString(TextDialog[4][playerid], "~y~Teleports ~>~ Locations");
  2495. TextDrawSetString(TextDialog[9][playerid], "Los Santos Airport");
  2496. TextDrawSetString(TextDialog[10][playerid], "San Fierro Airport");
  2497. TextDrawSetString(TextDialog[11][playerid], "Las Venturas Airport");
  2498. TextDrawSetString(TextDialog[12][playerid], "Mount Chilliad");
  2499. TextDrawSetString(TextDialog[13][playerid], "");
  2500. TextDrawSetString(TextDialog[14][playerid], "");
  2501. TextDrawSetString(TextDialog[15][playerid], "");
  2502. }
  2503. case TEXT_TELEPORT_DM: {
  2504. TextDrawSetString(TextDialog[4][playerid], "~y~Teleports ~>~ Deathmatch");
  2505. new dm_text[128];
  2506. format(dm_text, sizeof(dm_text), "%d Players: \tDeathMatch (1) - %s, %s",CountPlayersInMode(1),WeaponName(ModeData[1][weapon1]),WeaponName(ModeData[1][weapon2]));
  2507. TextDrawSetString(TextDialog[9][playerid], dm_text);
  2508. format(dm_text, sizeof(dm_text), "%d Players: \tDeathMatch (2) - %s, %s",CountPlayersInMode(2),WeaponName(ModeData[2][weapon1]),WeaponName(ModeData[2][weapon2]));
  2509. TextDrawSetString(TextDialog[10][playerid], dm_text);
  2510. format(dm_text, sizeof(dm_text), "%d Players: \tDeathMatch (3) - %s, %s",CountPlayersInMode(3),WeaponName(ModeData[3][weapon1]),WeaponName(ModeData[3][weapon2]));
  2511. TextDrawSetString(TextDialog[11][playerid], dm_text);
  2512. TextDrawSetString(TextDialog[12][playerid], "");
  2513. TextDrawSetString(TextDialog[13][playerid], "");
  2514. TextDrawSetString(TextDialog[14][playerid], "");
  2515. TextDrawSetString(TextDialog[15][playerid], "");
  2516. }
  2517. }
  2518. SelectTextDraw(playerid, COLOR_WHITE);
  2519. CurrentTextDialog[playerid] = textid;
  2520. return 1;
  2521. }
  2522.  
  2523. PUBLIC: HidePlayerTextDialog(playerid)
  2524. {
  2525. for(new i = 0; i < sizeof(TextDialog); i++) {
  2526. TextDrawHideForPlayer(playerid, TextDialog[i][playerid]); }
  2527. PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
  2528. CancelSelectTextDraw(playerid);
  2529. CurrentTextDialog[playerid] = -1;
  2530. return 1;
  2531. }
  2532.  
  2533. PUBLIC: OnTextResponse(playerid, textid, listitem, response)
  2534. {
  2535. switch(textid) {
  2536. case TEXT_TELEPORT: {
  2537. if(response) {
  2538. if(listitem == 0){
  2539. SetPlayerVirtualWorld(playerid, 0);
  2540. SpawnPlayer(playerid);
  2541. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s teleported to "#HEX_LIGHTRED"Spawn", GetName(playerid));
  2542. HidePlayerTextDialog(playerid);
  2543. }
  2544. if(listitem == 1) ShowPlayerTextDialog(playerid, TEXT_TELEPORT_LOCATIONS);
  2545. if(listitem == 2) ShowPlayerTextDialog(playerid, TEXT_TELEPORT_DM);
  2546. }
  2547. else HidePlayerTextDialog(playerid);
  2548. }
  2549. case TEXT_TELEPORT_DM: {
  2550. if(response)
  2551. {
  2552. if(listitem == 0) //DM 1
  2553. {
  2554. OnPlayerModeChange(playerid, 1);
  2555. ResetPlayerWeapons(playerid);
  2556. SetSpawnInfo(playerid,0,SpielerInfo[playerid][pSkin], ModeData[1][mX],ModeData[1][mY],ModeData[1][mZ], ModeData[1][mA], ModeData[1][weapon1], ModeData[1][weapon_ammo1], ModeData[1][weapon2], ModeData[1][weapon_ammo2], ModeData[1][weapon3], ModeData[1][weapon_ammo3]);
  2557. SpawnPlayer(playerid);
  2558. SetPlayerVirtualWorld(playerid, ModeData[1][virtualworld]);
  2559. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s joined "#HEX_LIGHTRED"DeathMatch (1)", GetName(playerid));
  2560. S:(playerid, COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL" Type /leave to leave DeathMatch (1)");
  2561. HidePlayerTextDialog(playerid);
  2562. SetPlayerHealth(playerid, 100.0);
  2563. }
  2564. if(listitem == 1) //DM 2
  2565. {
  2566. OnPlayerModeChange(playerid, 2);
  2567. ResetPlayerWeapons(playerid);
  2568. SetSpawnInfo(playerid,0,SpielerInfo[playerid][pSkin], ModeData[2][mX],ModeData[2][mY],ModeData[2][mZ], ModeData[2][mA], ModeData[2][weapon1], ModeData[2][weapon_ammo1], ModeData[2][weapon2], ModeData[2][weapon_ammo2], ModeData[2][weapon3], ModeData[2][weapon_ammo3]);
  2569. SpawnPlayer(playerid);
  2570. SetPlayerVirtualWorld(playerid, ModeData[2][virtualworld]);
  2571. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s joined "#HEX_LIGHTRED"DeathMatch (2)", GetName(playerid));
  2572. S:(playerid, COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL" Type /leave to leave DeathMatch (2)");
  2573. HidePlayerTextDialog(playerid);
  2574. SetPlayerHealth(playerid, 100.0);
  2575. }
  2576. if(listitem == 2) //DM 3
  2577. {
  2578. OnPlayerModeChange(playerid, 3);
  2579. ResetPlayerWeapons(playerid);
  2580. SetSpawnInfo(playerid,0,SpielerInfo[playerid][pSkin], ModeData[3][mX],ModeData[3][mY],ModeData[3][mZ], ModeData[3][mA], ModeData[3][weapon1], ModeData[3][weapon_ammo1], ModeData[3][weapon2], ModeData[3][weapon_ammo2], ModeData[3][weapon3], ModeData[3][weapon_ammo3]);
  2581. SpawnPlayer(playerid);
  2582. SetPlayerVirtualWorld(playerid, ModeData[3][virtualworld]);
  2583. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s joined "#HEX_LIGHTRED"DeathMatch (3)", GetName(playerid));
  2584. S:(playerid, COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL" Type /leave to leave DeathMatch (3)");
  2585. HidePlayerTextDialog(playerid);
  2586. SetPlayerHealth(playerid, 100.0);
  2587. }
  2588. }
  2589. else HidePlayerTextDialog(playerid);
  2590. }
  2591. case TEXT_TELEPORT_LOCATIONS: {
  2592. if(response)
  2593. {
  2594. if(listitem == 0) //LS Air
  2595. {
  2596. TeleportPlayer(playerid, 1980.6716,-2195.1440,13.5469,180.0,0);
  2597. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s teleported to "#HEX_LIGHTRED"Los Santos Airport", GetName(playerid));
  2598. HidePlayerTextDialog(playerid);
  2599. }
  2600. if(listitem == 1) //SF Air
  2601. {
  2602. TeleportPlayer(playerid,-1268.4443,18.7235,14.1484,135.9304,0);
  2603. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s teleported to "#HEX_LIGHTRED"San Fierro Airport", GetName(playerid));
  2604. HidePlayerTextDialog(playerid);
  2605. }
  2606. if(listitem == 2) //LV Air
  2607. {
  2608. TeleportPlayer(playerid, 1611.2842,1284.3335,10.8103,90.0,0);
  2609. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s teleported to "#HEX_LIGHTRED"Las Venturas Airport", GetName(playerid));
  2610. HidePlayerTextDialog(playerid);
  2611. }
  2612. if(listitem == 3) //Mount Chilliad
  2613. {
  2614. TeleportPlayer(playerid, -2324.5269,-1630.0385,483.7020,212.2532,0);
  2615. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s teleported to "#HEX_LIGHTRED"Mount Chilliad", GetName(playerid));
  2616. HidePlayerTextDialog(playerid);
  2617. }
  2618. }
  2619. else HidePlayerTextDialog(playerid);
  2620. }
  2621. }
  2622. return 1;
  2623. }
  2624.  
  2625. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  2626. {
  2627. switch(dialogid) {
  2628. case DIALOG_REGISTER: {
  2629. if(response) {
  2630. if(strlen(inputtext) <= 3) {
  2631. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"» Register","«|-------------------------------------------------------------|»\n\n"#HEX_ORANGE"» Welcome!\n\n"#HEX_WHITE"The password was too short!\n\n"#HEX_DIALOG_COL"«|-------------------------------------------------------------|»","Register","");
  2632. return 1; }
  2633. else {
  2634. CreateAccount(playerid, inputtext);
  2635. SetPVarInt(playerid,"Eingeloggt",1);
  2636. LoadPlayer(playerid);
  2637. SpielerInfo[playerid][pSkin] = random(299);
  2638. SpielerInfo[playerid][pLoggedIn] = 1;
  2639. SetPlayerVirtualWorld(playerid, ModeData[0][virtualworld]);
  2640. SetSpawnInfo(playerid,0,SpielerInfo[playerid][pSkin], ModeData[0][mX],ModeData[0][mY],ModeData[0][mZ], ModeData[0][mA], ModeData[0][weapon1], ModeData[0][weapon_ammo1], ModeData[0][weapon2], ModeData[0][weapon_ammo2], ModeData[0][weapon3], ModeData[0][weapon_ammo3]);
  2641. SpawnPlayer(playerid);
  2642. PlayerPlaySound(playerid, 1176, 0.0, 0.0, 10.0);
  2643. return 1; }
  2644. }
  2645. else {
  2646. Kick(playerid); }
  2647. }
  2648. case DIALOG_LOGIN: {
  2649. if(response) {
  2650. if(strlen(inputtext) == 0) {
  2651. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"» Login","«|-------------------------------------------------------------|»\n\n"#HEX_ORANGE"» Welcome back!\n\n"#HEX_WHITE"Insert your password to login!\n\n"#HEX_DIALOG_COL"«|-------------------------------------------------------------|»","Login","");
  2652. return 1; }
  2653. else {
  2654. new SpielerName[MAX_PLAYER_NAME], Hash[256];
  2655. GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
  2656. WP_Hash(Hash, sizeof (Hash), inputtext);
  2657. if(!strcmp(Hash, mysql_ReturnPasswort(SpielerName), true)) {
  2658. SetPVarInt(playerid,"Eingeloggt",1);
  2659. SetPlayerVirtualWorld(playerid, ModeData[0][virtualworld]);
  2660. SetSpawnInfo(playerid,0,SpielerInfo[playerid][pSkin], ModeData[0][mX],ModeData[0][mY],ModeData[0][mZ], ModeData[0][mA], ModeData[0][weapon1], ModeData[0][weapon_ammo1], ModeData[0][weapon2], ModeData[0][weapon_ammo2], ModeData[0][weapon3], ModeData[0][weapon_ammo3]);
  2661. SpawnPlayer(playerid);
  2662. PlayerPlaySound(playerid, 1176, 0.0, 0.0, 10.0);
  2663. SpielerInfo[playerid][pLoggedIn] = 1;
  2664. LoadPlayer(playerid);
  2665. SendFormat(playerid, COLOR_ORANGE, "Welcome back, %s !",GetName(playerid));
  2666. return 1; }
  2667. else {
  2668. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"» Login","«|-------------------------------------------------------------|»\n\n"#HEX_ORANGE"» Welcome back!\n\n"#HEX_WHITE"The password was not correct!\n\n"#HEX_DIALOG_COL"«|-------------------------------------------------------------|»","Login","");
  2669. return 1; }
  2670. }
  2671. }
  2672. else {
  2673. Kick(playerid); }
  2674. }
  2675. case DIALOG_TELEPORT: {
  2676. if(response) {
  2677. if(listitem == 0)
  2678. {
  2679. SetPlayerVirtualWorld(playerid, 0);
  2680. SpawnPlayer(playerid);
  2681. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s teleported to "#HEX_LIGHTRED"Spawn", GetName(playerid));
  2682. }
  2683. if(listitem == 1)
  2684. {
  2685. ShowPlayerDialog(playerid, DIALOG_TELEPORT_LOCATIONS, DIALOG_STYLE_LIST, "» Locations","Los Santos Airport\nSan Fierro Airport\nLas Venturas Airport","Go","Cancel");
  2686. }
  2687. if(listitem == 2)
  2688. {
  2689. new dm_diag[500];
  2690. format(dm_diag, sizeof(dm_diag), "%d Players: \tDeathMatch (1) - %s, %s\n%d Players: \tDeathMatch (2) - %s, %s\n%d Players: \tDeathMatch (3) - %s, %s",CountPlayersInMode(1),WeaponName(ModeData[1][weapon1]),WeaponName(ModeData[1][weapon2]),CountPlayersInMode(2),WeaponName(ModeData[2][weapon1]),WeaponName(ModeData[2][weapon2]),CountPlayersInMode(3),WeaponName(ModeData[3][weapon1]),WeaponName(ModeData[3][weapon2]));
  2691. ShowPlayerDialog(playerid, DIALOG_TELEPORT_DM, DIALOG_STYLE_LIST, "» DeathMatch",dm_diag,"Go","Cancel");
  2692. }
  2693. }
  2694. }
  2695. case DIALOG_TELEPORT_DM: {
  2696. if(response)
  2697. {
  2698. if(listitem == 0) //DM 1
  2699. {
  2700. OnPlayerModeChange(playerid, 1);
  2701. ResetPlayerWeapons(playerid);
  2702. SetSpawnInfo(playerid,0,SpielerInfo[playerid][pSkin], ModeData[1][mX],ModeData[1][mY],ModeData[1][mZ], ModeData[1][mA], ModeData[1][weapon1], ModeData[1][weapon_ammo1], ModeData[1][weapon2], ModeData[1][weapon_ammo2], ModeData[1][weapon3], ModeData[1][weapon_ammo3]);
  2703. SpawnPlayer(playerid);
  2704. SetPlayerVirtualWorld(playerid, ModeData[1][virtualworld]);
  2705. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s joined "#HEX_LIGHTRED"DeathMatch (1)", GetName(playerid));
  2706. S:(playerid, COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL" Type /leave to leave DeathMatch (1)");
  2707. }
  2708. if(listitem == 1) //DM 2
  2709. {
  2710. OnPlayerModeChange(playerid, 2);
  2711. ResetPlayerWeapons(playerid);
  2712. SetSpawnInfo(playerid,0,SpielerInfo[playerid][pSkin], ModeData[2][mX],ModeData[2][mY],ModeData[2][mZ], ModeData[2][mA], ModeData[2][weapon1], ModeData[2][weapon_ammo1], ModeData[2][weapon2], ModeData[2][weapon_ammo2], ModeData[2][weapon3], ModeData[2][weapon_ammo3]);
  2713. SpawnPlayer(playerid);
  2714. SetPlayerVirtualWorld(playerid, ModeData[2][virtualworld]);
  2715. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s joined "#HEX_LIGHTRED"DeathMatch (2)", GetName(playerid));
  2716. S:(playerid, COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL" Type /leave to leave DeathMatch (2)");
  2717. }
  2718. if(listitem == 2) //DM 3
  2719. {
  2720. OnPlayerModeChange(playerid, 3);
  2721. ResetPlayerWeapons(playerid);
  2722. SetSpawnInfo(playerid,0,SpielerInfo[playerid][pSkin], ModeData[3][mX],ModeData[3][mY],ModeData[3][mZ], ModeData[3][mA], ModeData[3][weapon1], ModeData[3][weapon_ammo1], ModeData[3][weapon2], ModeData[3][weapon_ammo2], ModeData[3][weapon3], ModeData[3][weapon_ammo3]);
  2723. SpawnPlayer(playerid);
  2724. SetPlayerVirtualWorld(playerid, ModeData[3][virtualworld]);
  2725. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s joined "#HEX_LIGHTRED"DeathMatch (3)", GetName(playerid));
  2726. S:(playerid, COLOR_LIGHTRED, "[ INFO ] "#HEX_DIALOG_COL" Type /leave to leave DeathMatch (3)");
  2727. }
  2728. }
  2729. }
  2730. case DIALOG_TELEPORT_LOCATIONS: {
  2731. if(response)
  2732. {
  2733. if(listitem == 0) //LS Air
  2734. {
  2735. TeleportPlayer(playerid, 1980.6716,-2195.1440,13.5469,180.0,0);
  2736. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s teleported to "#HEX_LIGHTRED"Los Santos Airport", GetName(playerid));
  2737.  
  2738. }
  2739. if(listitem == 1) //SF Air
  2740. {
  2741. TeleportPlayer(playerid,-1268.4443,18.7235,14.1484,135.9304,0);
  2742. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s teleported to "#HEX_LIGHTRED"San Fierro Airport", GetName(playerid));
  2743. }
  2744. if(listitem == 2) //LV Air
  2745. {
  2746. TeleportPlayer(playerid, 1611.2842,1284.3335,10.8103,90.0,0);
  2747. SendFormatToAll(COLOR_LIGHTRED, "[ TELEPORT ] "#HEX_DIALOG_COL"%s teleported to "#HEX_LIGHTRED"Las Venturas Airport", GetName(playerid));
  2748. }
  2749. }
  2750. }
  2751. }
  2752. return 1;
  2753. }
  2754.  
  2755. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  2756. {
  2757. if(SpielerInfo[playerid][pAdmin] > 0)
  2758. {
  2759. if(IsPlayerSpectating[playerid]) {
  2760. if(playerid == clickedplayerid) return S:(playerid, COLOR_LIGHTRED, "You can't spectate yourself");
  2761. if(!IsPlayerSpectating[clickedplayerid])
  2762. {
  2763. if(IsPlayerInAnyVehicle(clickedplayerid))PlayerSpectateVehicle(playerid, GetPlayerVehicleID(clickedplayerid));
  2764. else PlayerSpectatePlayer(playerid, clickedplayerid);
  2765. SpectatedPlayer[playerid] = clickedplayerid;
  2766. SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(clickedplayerid));
  2767. SetPlayerInterior(playerid, GetPlayerInterior(clickedplayerid));
  2768. TextDrawSetText(SpectateTD[2][playerid], "~g~PLAYER: ~w~%s (%d)", GetName(SpectatedPlayer[playerid]), SpectatedPlayer[playerid]);
  2769. }
  2770. else S:(playerid, COLOR_LIGHTRED, "That player is spectating");
  2771. }
  2772. else S:(playerid, COLOR_LIGHTRED, "You are not Spectating ( /spec )");
  2773. }
  2774. return 1;
  2775. }
  2776.  
  2777. PUBLIC: AddToInfoBox(Text[])
  2778. {
  2779. for(new i=MAX_LINES-1;i>0;i--)
  2780. {
  2781. Info_Message[i]=Info_Message[i-1];
  2782. TextDrawSetString(InfoBoxText[i],Info_Message[i]);
  2783. }
  2784. format(Info_Message[0],MAX_LENGTH,Text);
  2785. TextDrawSetString(InfoBoxText[0],Info_Message[0]);
  2786. return 1;
  2787. }
  2788.  
  2789. PUBLIC: I_SetPlayerMoney(playerid, amount)
  2790. {
  2791. SpielerInfo[playerid][pMoney] = amount;
  2792. TextDrawSetText(MoneyText[playerid], "%d",SpielerInfo[playerid][pMoney]);
  2793. return 1;
  2794. }
  2795.  
  2796. PUBLIC: I_GivePlayerMoney(playerid, amount)
  2797. {
  2798. SpielerInfo[playerid][pMoney]+=amount;
  2799. if(SpielerInfo[playerid][pMoney] < 0) SpielerInfo[playerid][pMoney] = 0;
  2800. TextDrawSetText(MoneyText[playerid], "%d",SpielerInfo[playerid][pMoney]);
  2801. return 1;
  2802. }
  2803.  
  2804. PUBLIC: I_ResetPlayerMoney(playerid)
  2805. {
  2806. SpielerInfo[playerid][pMoney] = 0;
  2807. TextDrawSetString(MoneyText[playerid], "0");
  2808. return 1;
  2809. }
  2810.  
  2811. PUBLIC: I_GetPlayerMoney(playerid)
  2812. {
  2813. return SpielerInfo[playerid][pMoney];
  2814. }
  2815.  
  2816. PUBLIC: BanPlayer(playerid, Admin[], Reason[])
  2817. {
  2818. mysql_SetInt("accounts", "Banned", 1, "Name", GetName(playerid));
  2819. SendFormatToAll(COLOR_LIGHTRED, "%s has been banned by %s (Reason: %s)",GetName(playerid), Admin, Reason);
  2820. ClearChat(playerid, 100);
  2821. SendFormat(playerid, COLOR_LIGHTRED, "You have been banned by %s for %s",Admin, Reason);
  2822. SendFormat(playerid, COLOR_LIGHTRED, "Account name: %s | IP: %s | Date: %s | Time: %s", GetName(playerid), GetIP(playerid), GetDate(), GetTime());
  2823. new query[256];
  2824. format(query, sizeof(query), "INSERT INTO `bans` (`Name`, `Grund`, `IP`, `Admin`,`Datum`,`Zeit`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')", GetName(playerid), Reason, GetIP(playerid),Admin, GetDate(), GetTime());
  2825. mysql_query(query);
  2826. FreezePlayer(playerid);
  2827. SetPlayerCameraPos(playerid, 1420.6412,-975.1619,57.5156);
  2828. SetPlayerCameraLookAt(playerid, 1413.7268,-810.4615,75.2100);
  2829. BanEx(playerid, Reason);
  2830. return 1;
  2831. }
  2832.  
  2833. PUBLIC: KickPlayer(playerid, Admin[], Reason[])
  2834. {
  2835. SendFormatToAll(COLOR_LIGHTRED, "%s has been kicked by %s (Reason: %s)",GetName(playerid), Admin, Reason);
  2836. ClearChat(playerid, 100);
  2837. SendFormat(playerid, COLOR_LIGHTRED, "You have been kicked by %s for %s",Admin, Reason);
  2838. FreezePlayer(playerid);
  2839. SetPlayerCameraPos(playerid, 1420.6412,-975.1619,57.5156);
  2840. SetPlayerCameraLookAt(playerid, 1413.7268,-810.4615,75.2100);
  2841. return 1;
  2842. }
  2843.  
  2844. PUBLIC: TeleportPlayer(playerid, Float: PosX, Float: PosY, Float: PosZ, Float: RotZ, VirtualWorld)
  2845. {
  2846. FreezePlayer(playerid);
  2847. if (GetPlayerState(playerid) == 2)
  2848. {
  2849. SetVehiclePos(WhatCar[playerid], PosX, PosY, PosZ+3);
  2850. SetVehicleZAngle(WhatCar[playerid], 180);
  2851. SetVehicleVirtualWorld(WhatCar[playerid], VirtualWorld);
  2852. }
  2853. else
  2854. {
  2855. SetPlayerPos(playerid, PosX, PosY, PosZ);
  2856. SetPlayerFacingAngle(playerid, RotZ);
  2857. }
  2858. SetPlayerVirtualWorld(playerid, VirtualWorld);
  2859. UnFreezePlayer(playerid);
  2860. return 1;
  2861. }
  2862.  
  2863. PUBLIC: SendAdminMessage(color, string[])
  2864. {
  2865. for(new i = 0; i < MAX_PLAYERS; i++)
  2866. {
  2867. if(IsPlayerConnected(i))
  2868. {
  2869. if(SpielerInfo[i][pAdmin] >= 1)
  2870. {
  2871. SendClientMessage(i, color, string);
  2872. }
  2873. }
  2874. }
  2875. }
  2876.  
  2877. stock GetVehicleName(vehicleid)
  2878. {
  2879. new String[100];
  2880. format(String,sizeof(String),"%s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
  2881. return String;
  2882. }
  2883.  
  2884. stock IsBike(vehicle)
  2885. {
  2886. new vmodel = GetVehicleModel(vehicle);
  2887. if(vmodel== 509 || vmodel == 481 || vmodel == 462 || vmodel == 522 || vmodel == 471 || vmodel == 586)
  2888. return true;
  2889. else
  2890. return false;
  2891. }
  2892.  
  2893. stock GetVehicleSpeed(playerid)
  2894. {
  2895. new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
  2896. new veh = GetPlayerVehicleID(playerid);
  2897. GetVehicleVelocity(veh, speed_x, speed_y, speed_z);
  2898. final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*100.0*1.6;
  2899. final_speed_int = floatround(final_speed,floatround_round);
  2900. return final_speed_int;
  2901. }
  2902. stock FreezePlayer(playerid) {
  2903. TogglePlayerControllable(playerid,false); }
  2904. stock UnFreezePlayer(playerid) {
  2905. TogglePlayerControllable(playerid,true); }
  2906. stock GetName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; }
  2907. stock GetIP(playerid) { new ip[24]; GetPlayerIp(playerid, ip,sizeof(ip)); return ip; }
  2908. stock GetTime() { new Zeit[20],Stunde,Minute,Sekunde; gettime(Stunde,Minute,Sekunde); format(Zeit,sizeof(Zeit),"%02d:%02d:%02d",Stunde,Minute,Sekunde); return Zeit; }
  2909. stock GetDate() { new Datum[30],Tag,Monat,Jahr; getdate(Jahr,Monat,Tag); format(Datum, sizeof(Datum),"%02d.%02d.%d",Tag , Monat, Jahr); return Datum; }
  2910. stock WeaponName(weaponid) { new GunName[32]; GetWeaponName(weaponid,GunName,sizeof GunName); return GunName; }
  2911. stock ClearChat(playerid,lines)
  2912. {
  2913. if(IsPlayerConnected(playerid) && lines > 0) {
  2914. for(new l=0; l<lines; l++) {
  2915. S:(playerid,COLOR_WHITE," "); }
  2916. }
  2917. }
  2918.  
  2919.  
  2920. stock Connect_To_Database()
  2921. {
  2922. mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
  2923. if(mysql_ping() == 1) {
  2924. if(!mysql_query("SELECT * FROM `accounts` LIMIT 1") || !mysql_query("SELECT * FROM `bans` LIMIT 1")) {
  2925. mysql_query("CREATE TABLE IF NOT EXISTS `bans` (`id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(24),`Grund` varchar(100),`IP` varchar(100),`Admin` varchar(24),`Datum` varchar(24),`Zeit` varchar(24),PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
  2926. new Query[500];
  2927. strcat(Query, "CREATE TABLE IF NOT EXISTS `accounts` (\
  2928. `id` int(11) NOT NULL AUTO_INCREMENT,\
  2929. `Name` varchar(24),\
  2930. `Passwort` varchar(128),\
  2931. `Money` int(11) default '0',\
  2932. `Skin` int(11) default '0',\
  2933. `Score` int(11) default '0',\
  2934. `Kills` int(11) default '0',");
  2935.  
  2936. strcat(Query, "`Deaths` int(11) default '0',\
  2937. `Premium` int(11) default '0'\
  2938. `Admin` int(11) default '0',\
  2939. `Banned` int(11) default '0',\
  2940. `Serial` mediumtext() default '0',\
  2941. `Banned` int(15) NULL,\
  2942. `LastIP` varchar(50) default '0',\
  2943. PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
  2944. mysql_query(Query);
  2945.  
  2946. }
  2947. else {
  2948. print("<-| [MYSQL] Found database."); }
  2949. print("<-| [MYSQL] Connection to the database is successful!");
  2950. return true;
  2951. }
  2952. else {
  2953. print("<-| [MYSQL] Could not connect to the database");
  2954. print("<-| [MYSQL] There will be another attempt to connect to the database!");
  2955. mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
  2956. if(mysql_ping() == 1) {
  2957. if(!mysql_query("SELECT * FROM `accounts` LIMIT 1") || !mysql_query("SELECT * FROM `bans` LIMIT 1")) {
  2958. mysql_query("CREATE TABLE IF NOT EXISTS `bans` (`id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(24),`Grund` varchar(100),`IP` varchar(100),`Admin` varchar(24),`Datum` varchar(24),`Zeit` varchar(24),PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
  2959. new Query[500];
  2960. strcat(Query, "CREATE TABLE IF NOT EXISTS `accounts` (\
  2961. `id` int(11) NOT NULL AUTO_INCREMENT,\
  2962. `Name` varchar(24),\
  2963. `Passwort` varchar(128),\
  2964. `Money` int(11) default '0',\
  2965. `Skin` int(11) default '0',\
  2966. `Score` int(11) default '0',\
  2967. `Kills` int(11) default '0',");
  2968.  
  2969. strcat(Query, "`Deaths` int(11) default '0',\
  2970. `Premium` int(11) default '0'\
  2971. `Admin` int(11) default '0',\
  2972. `Banned` int(11) default '0',\
  2973. `Serial` mediumtext() default '0',\
  2974. `Banned` int(15) NULL,\
  2975. `LastIP` varchar(50) default '0',\
  2976. PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
  2977. mysql_query(Query);
  2978. }
  2979. print("<-| [MYSQL] Connection to the database is successful! [2nd attempt]");
  2980. return true;
  2981. }
  2982. else {
  2983. print("<-| [MYSQL] Could not connect to the database!");
  2984. print("<-| [MYSQL] Shutting down the server..");
  2985. SendRconCommand("exit");
  2986. return true;
  2987. }
  2988. }
  2989. }
  2990. stock mysql_CheckAccount(playerid)
  2991. {
  2992. new Query[128],Name[MAX_PLAYER_NAME],count;
  2993. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  2994. mysql_real_escape_string(Name, Name);
  2995. format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
  2996. mysql_query(Query);
  2997. mysql_store_result();
  2998. count = mysql_num_rows();
  2999. mysql_free_result();
  3000. return count;
  3001. }
  3002.  
  3003. stock CheckPlayer(playerid)
  3004. {
  3005. new Query[128],Name[MAX_PLAYER_NAME],count,playerserial[128];
  3006. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  3007. mysql_real_escape_string(Name, Name);
  3008. gpci(playerid,playerserial,sizeof(playerserial));
  3009. format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Serial` = '%s' AND `Banned` = '1'", playerserial);
  3010. mysql_query(Query);
  3011. mysql_store_result();
  3012. count = mysql_num_rows();
  3013. mysql_free_result();
  3014. return count;
  3015. }
  3016.  
  3017. stock CreateAccount(playerid, pass[])
  3018. {
  3019. new query[256],PlayerName[MAX_PLAYER_NAME],Hash[256];
  3020. GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
  3021. mysql_real_escape_string(PlayerName,PlayerName);
  3022. mysql_real_escape_string(pass,pass);
  3023. new playerserial[128];
  3024. gpci(playerid,playerserial,sizeof(playerserial));
  3025. WP_Hash(Hash, sizeof (Hash), pass);
  3026. format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`, `Serial`) VALUES ('%s', '%s', '%s')", PlayerName, Hash, playerserial);
  3027. mysql_query(query);
  3028. return true;
  3029. }
  3030.  
  3031. stock mysql_ReturnPasswort(Name[])
  3032. {
  3033. new query[130], Get[130];
  3034. mysql_real_escape_string(Name, Name);
  3035. format(query, 128, "SELECT `Passwort` FROM `accounts` WHERE `Name` = '%s'", Name);
  3036. mysql_query(query);
  3037. mysql_store_result();
  3038. mysql_fetch_row(Get);
  3039. mysql_free_result();
  3040. return Get;
  3041. }
  3042.  
  3043. stock LoadPlayer(playerid)
  3044. {
  3045. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) {
  3046. GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
  3047. SpielerInfo[playerid][pPremium] = mysql_GetInt("accounts", "Premium", "Name", SpielerInfo[playerid][pName]);
  3048. SpielerInfo[playerid][pAdmin] = mysql_GetInt("accounts", "Admin", "Name", SpielerInfo[playerid][pName]);
  3049. SpielerInfo[playerid][pMoney] = mysql_GetInt("accounts", "Money", "Name", SpielerInfo[playerid][pName]);
  3050. SpielerInfo[playerid][pSkin] = mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]);
  3051. SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
  3052. SpielerInfo[playerid][pDeaths] = mysql_GetInt("accounts", "Deaths", "Name", SpielerInfo[playerid][pName]);
  3053. SpielerInfo[playerid][pScore] = mysql_GetInt("accounts", "Score", "Name", SpielerInfo[playerid][pName]);
  3054. SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);
  3055. SetPlayerScore(playerid, SpielerInfo[playerid][pScore]);
  3056. TextDrawSetText(MoneyText[playerid], "%d",SpielerInfo[playerid][pMoney]);
  3057. new PlayerIP[MAX_PLAYERS];
  3058. GetPlayerIp(playerid, PlayerIP[playerid], 16);
  3059. mysql_SetString("accounts", "LastIP", PlayerIP[playerid], "Name", SpielerInfo[playerid][pName]);
  3060. SpielerInfo[playerid][pLevel] = ReturnPlayerLevel(playerid);
  3061. if(CheckPlayer(playerid) > 0)
  3062. {
  3063. SendAdminMessage(COLOR_LIGHTRED, "[ POSSIBLE BAN EVADER ]");
  3064. new string[128];
  3065. format(string, sizeof(string), "%s «|» Serial matched with ' "#HEX_ORANGE"%d"#HEX_WHITE" ' banned player/s.",GetName(playerid), CheckPlayer(playerid));
  3066. SendAdminMessage(COLOR_WHITE, string);
  3067. LogEvent("possible_ban_evade_log", string);
  3068. }
  3069. }
  3070. return 1;
  3071. }
  3072.  
  3073. stock SavePlayer(playerid)
  3074. {
  3075. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) {
  3076. if(GetPVarInt(playerid,"Eingeloggt") == 1) {
  3077. mysql_SetInt("accounts", "Premium", SpielerInfo[playerid][pPremium], "Name", SpielerInfo[playerid][pName]);
  3078. mysql_SetInt("accounts", "Admin", SpielerInfo[playerid][pAdmin], "Name", SpielerInfo[playerid][pName]);
  3079. mysql_SetInt("accounts", "Money", SpielerInfo[playerid][pMoney], "Name", SpielerInfo[playerid][pName]);
  3080. mysql_SetInt("accounts", "Skin", SpielerInfo[playerid][pSkin], "Name", SpielerInfo[playerid][pName]);
  3081. mysql_SetInt("accounts", "Score", SpielerInfo[playerid][pScore], "Name", SpielerInfo[playerid][pName]);
  3082. mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
  3083. mysql_SetInt("accounts", "Deaths", SpielerInfo[playerid][pDeaths], "Name", SpielerInfo[playerid][pName]);
  3084. }
  3085. }
  3086. return 1;
  3087. }
  3088.  
  3089. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  3090. {
  3091. new query[128];
  3092. mysql_real_escape_string(Table, Table);
  3093. mysql_real_escape_string(Field, Field);
  3094. mysql_real_escape_string(Where, Where);
  3095. mysql_real_escape_string(Is, Is);
  3096. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  3097. mysql_query(query);
  3098. mysql_store_result();
  3099. new sqlint = mysql_fetch_int();
  3100. mysql_free_result();
  3101. return sqlint;
  3102. }
  3103.  
  3104. stock mysql_GetString(Table[], Field[], Where[], Is[])
  3105. {
  3106. new query[128], Get[128];
  3107. mysql_real_escape_string(Table, Table);
  3108. mysql_real_escape_string(Field, Field);
  3109. mysql_real_escape_string(Where, Where);
  3110. mysql_real_escape_string(Is, Is);
  3111. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  3112. mysql_query(query);
  3113. mysql_store_result();
  3114. mysql_fetch_row(Get);
  3115. mysql_free_result();
  3116. return Get;
  3117. }
  3118.  
  3119. stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
  3120. {
  3121. new query[128], Float:sqlfloat;
  3122. mysql_real_escape_string(Table, Table);
  3123. mysql_real_escape_string(Field, Field);
  3124. mysql_real_escape_string(Where, Where);
  3125. mysql_real_escape_string(Is, Is);
  3126. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  3127. mysql_query(query);
  3128. mysql_store_result();
  3129. mysql_fetch_float(sqlfloat);
  3130. mysql_free_result();
  3131. return sqlfloat;
  3132. }
  3133.  
  3134. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  3135. {
  3136. new query[128];
  3137. mysql_real_escape_string(Table, Table);
  3138. mysql_real_escape_string(Field, Field);
  3139. mysql_real_escape_string(Where, Where);
  3140. mysql_real_escape_string(Where2, Where2);
  3141. format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  3142. mysql_query(query);
  3143. return true;
  3144. }
  3145. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  3146. {
  3147. new query[128];
  3148. mysql_real_escape_string(Table, Table);
  3149. mysql_real_escape_string(Field, Field);
  3150. mysql_real_escape_string(To, To);
  3151. mysql_real_escape_string(Where, Where);
  3152. mysql_real_escape_string(Where2, Where2);
  3153. format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  3154. mysql_query(query);
  3155. return true;
  3156. }
  3157. stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
  3158. {
  3159. new query[128];
  3160. mysql_real_escape_string(Table, Table);
  3161. mysql_real_escape_string(Field, Field);
  3162. mysql_real_escape_string(Where, Where);
  3163. mysql_real_escape_string(Where2, Where2);
  3164. format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  3165. mysql_query(query);
  3166. return true;
  3167. }
  3168. stock IsBanned(playerid)
  3169. {
  3170. new Query[128],Name[MAX_PLAYER_NAME],count;
  3171. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  3172. mysql_real_escape_string(Name, Name);
  3173. format(Query, sizeof(Query), "SELECT * FROM `bans` WHERE `Name` = '%s'", Name);
  3174. mysql_query(Query);
  3175. mysql_store_result();
  3176. count = mysql_num_rows();
  3177. mysql_free_result();
  3178. return count;
  3179. }
  3180.  
  3181. strtok(const string[], &index)
  3182. {
  3183. new length = strlen(string);
  3184. while ((index < length) && (string[index] <= ' ')) {
  3185. index++; }
  3186. new offset = index;
  3187. new result[20];
  3188. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) {
  3189. result[index - offset] = string[index];
  3190. index++; }
  3191. result[index - offset] = EOS;
  3192. return result;
  3193. }
  3194.  
  3195. IsNumeric(const string[])
  3196. {
  3197. for (new i = 0, j = strlen(string); i < j; i++) {
  3198. if (string[i] > '9' || string[i] < '0') return 0; }
  3199. return 1;
  3200. }
  3201.  
  3202. ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  3203. {
  3204. new pos = 0;
  3205. while (text[pos] < 0x21) {
  3206. if (text[pos] == 0) return INVALID_PLAYER_ID;
  3207. pos++; }
  3208. new userid = INVALID_PLAYER_ID;
  3209. if (IsNumeric(text[pos])) {
  3210. userid = strval(text[pos]);
  3211. if (userid >=0 && userid < MAX_PLAYERS) {
  3212. if(!IsPlayerConnected(userid)) {
  3213. userid = INVALID_PLAYER_ID;
  3214. }
  3215. else {
  3216. return userid; }
  3217. }
  3218. }
  3219. new len = strlen(text[pos]);
  3220. new count = 0;
  3221. new name[MAX_PLAYER_NAME];
  3222. for (new i = 0; i < MAX_PLAYERS; i++) {
  3223. if (IsPlayerConnected(i)) {
  3224. GetPlayerName(i, name, sizeof (name));
  3225. if (strcmp(name, text[pos], true, len) == 0) {
  3226. if (len == strlen(name)) {
  3227. return i; }
  3228. else {
  3229. count++;
  3230. userid = i; }
  3231. }
  3232. }
  3233. }
  3234. if (count != 1) {
  3235. if (playerid != INVALID_PLAYER_ID) {
  3236. if (count) {
  3237. S:(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
  3238. }
  3239. else {
  3240. S:(playerid, 0xFF0000AA, "No matching user found");}
  3241. }
  3242. userid = INVALID_PLAYER_ID;
  3243. }
  3244. return userid;
  3245. }
  3246. stock GetRang(playerid)
  3247. {
  3248. new rang[50];
  3249. switch(SpielerInfo[playerid][pAdmin]) {
  3250. case 0:{rang="Player";}
  3251. case 1:{rang="Trial Admin";}
  3252. case 2:{rang="Admin";}
  3253. case 3:{rang="Lead Admin";}
  3254. case 4:{rang="Head of Administration";}
  3255. case 5:{rang="Owner";}
  3256. default:{rang="ERROR";} }
  3257. return rang;
  3258. }
  3259.  
  3260. stock GetModeName(playerid)
  3261. {
  3262. new mode[50];
  3263. switch(PlayerMode[playerid]) {
  3264. case 0:{mode="Freeroam";}
  3265. case 1:{mode="DeathMatch (1)";}
  3266. case 2:{mode="DeathMatch (2)";}
  3267. case 3:{mode="DeathMatch (3)";}
  3268. case 1337:{mode="Spectating";}
  3269. default:{mode="ERROR";} }
  3270. return mode;
  3271. }
  3272.  
  3273. static const Float:WaterCords[][] = {
  3274. { -1584.0, -1826.0, 0.00000, -1360.0, -1642.0, 0.00000 },
  3275. { -3000.0, 354.0, 0.00000, -2832.0, 2942.0, 0.00000 },
  3276. { -2832.0, 1296.0, 0.00000, -2704.0, 2192.0, 0.00000 },
  3277. { -2704.0, 1360.0, 0.00000, -2240.0, 2224.0, 0.00000 },
  3278. { -2240.0, 1432.0, 0.00000, -2000.0, 2224.0, 0.00000 },
  3279. { -2064.0, 1312.0, 0.00000, -2000.0, 1432.0, 0.00000 },
  3280. { -2000.0, 1392.0, 0.00000, -1712.0, 1792.0, 0.00000 },
  3281. { -2000.0, 1792.0, 0.00000, -1724.0, 2016.0, 0.00000 },
  3282. { -2000.0, 2016.0, 0.00000, -1836.0, 2176.0, 0.00000 },
  3283. { -2000.0, 2176.0, 0.00000, -1920.0, 2224.0, 0.00000 },
  3284. { -2208.0, 2224.0, 0.00000, -2000.0, 2432.0, 0.00000 },
  3285. { -2208.0, 2432.0, 0.00000, -2000.0, 2576.0, 0.00000 },
  3286. { -2352.0, 2448.0, 0.00000, -2208.0, 2576.0, 0.00000 },
  3287. { -2312.0, 2344.0, 0.00000, -2208.0, 2448.0, 0.00000 },
  3288. { -1712.0, 1360.0, 0.00000, -1600.0, 1792.0, 0.00000 },
  3289. { -1664.0, 1280.0, 0.00000, -1600.0, 1360.0, 0.00000 },
  3290. { -1600.0, 1280.0, 0.00000, -1440.0, 1696.0, 0.00000 },
  3291. { -1600.0, 1696.0, 0.00000, -1488.0, 1744.0, 0.00000 },
  3292. { -1440.0, 1440.0, 0.00000, -1232.0, 1696.0, 0.00000 },
  3293. { -1232.0, 1440.0, 0.00000, -1136.0, 1616.0, 0.00000 },
  3294. { -1440.0, 1280.0, 0.00000, -1136.0, 1440.0, 0.00000 },
  3295. { -1136.0, 1248.0, 0.00000, -1104.0, 1424.0, 0.00000 },
  3296. { -1520.0, 1104.0, 0.00000, -1104.0, 1248.0, 0.00000 },
  3297. { -1520.0, 1248.0, 0.00000, -1136.0, 1280.0, 0.00000 },
  3298. { -1600.0, 1200.0, 0.00000, -1520.0, 1280.0, 0.00000 },
  3299. { -1104.0, 944.0, 0.00000, -932.0, 1136.0, 0.00000 },
  3300. { -1424.0, 944.0, 0.00000, -1104.0, 1104.0, 0.00000 },
  3301. { -1520.0, 1008.0, 0.00000, -1424.0, 1104.0, 0.00000 },
  3302. { -1424.0, 784.0, 0.00000, -896.0, 944.0, 0.00000 },
  3303. { -1488.0, 560.0, 0.00000, -896.0, 784.0, 0.00000 },
  3304. { -1536.0, 560.0, 0.00000, -1488.0, 672.0, 0.00000 },
  3305. { -896.0, 208.0, 0.0000, -768.0, 732.0, 0.0000 },
  3306. { -1600.0, 208.0, 0.00000, -896.0, 560.0, 0.00000 },
  3307. { -992.0, -144.0, 0.0000, -912.0, 208.0, 0.0000 },
  3308. { -1748.0, -816.0, 0.00000, -1180.0, -592.0, 0.00000 },
  3309. { -1458.0, -592.0, 0.00000, -1054.0, -432.0, 0.00000 },
  3310. { -3000.0, -1186.0, 0.00000, -2880.0, -822.0, 0.00000 },
  3311. { -2880.0, -1168.0, 0.00000, -2768.0, -896.0, 0.00000 },
  3312. { -2768.0, -1106.0, 0.00000, -2656.0, -830.0, 0.00000 },
  3313. { -2656.0, -1024.0, 0.00000, -2512.0, -816.0, 0.00000 },
  3314. { -2512.0, -976.0, 0.00000, -2400.0, -816.0, 0.00000 },
  3315. { -2400.0, -1056.0, 0.00000, -2256.0, -864.0, 0.00000 },
  3316. { -2256.0, -1198.0, 0.00000, -2144.0, -950.0, 0.00000 },
  3317. { -2144.0, -1408.0, 0.00000, -2000.0, -1072.0, 0.00000 },
  3318. { -2000.0, -1536.0, 0.00000, -1856.0, -1280.0, 0.00000 },
  3319. { -1856.0, -1648.0, 0.00000, -1728.0, -1440.0, 0.00000 },
  3320. { -1728.0, -1728.0, 0.00000, -1584.0, -1520.0, 0.00000 },
  3321. { -1360.0, -2052.0, 0.00000, -1216.0, -1696.0, 0.00000 },
  3322. { -1440.0, -2110.0, 0.00000, -1360.0, -1950.0, 0.00000 },
  3323. { -1484.0, -2180.0, 0.00000, -1440.0, -2036.0, 0.00000 },
  3324. { -1572.0, -2352.0, 0.00000, -1484.0, -2096.0, 0.00000 },
  3325. { -1216.0, -2208.0, 0.00000, -1104.0, -1864.0, 0.00000 },
  3326. { -1232.0, -2304.0, 0.00000, -1120.0, -2208.0, 0.00000 },
  3327. { -1270.0, -2480.0, 0.00000, -1178.0, -2304.0, 0.00000 },
  3328. { -1260.0, -2560.0, 0.00000, -1188.0, -2480.0, 0.00000 },
  3329. { -1262.0, -2640.0, 0.00000, -1146.0, -2560.0, 0.00000 },
  3330. { -1216.0, -2752.0, 0.00000, -1080.0, -2640.0, 0.00000 },
  3331. { -1200.0, -2896.0, 0.00000, -928.0, -2752.0, 0.00000 },
  3332. { -2016.0, -3000.0, 0.00000, -1520.0, -2704.0, 0.00000 },
  3333. { -1520.0, -3000.0, 0.00000, -1376.0, -2894.0, 0.00000 },
  3334. { -2256.0, -3000.0, 0.00000, -2016.0, -2772.0, 0.00000 },
  3335. { -2448.0, -3000.0, 0.00000, -2256.0, -2704.0, 0.00000 },
  3336. { -3000.0, -3000.0, 0.00000, -2448.0, -2704.0, 0.00000 },
  3337. { -3000.0, -2704.0, 0.00000, -2516.0, -2576.0, 0.00000 },
  3338. { -3000.0, -2576.0, 0.00000, -2600.0, -2448.0, 0.00000 },
  3339. { -3000.0, -2448.0, 0.00000, -2628.0, -2144.0, 0.00000 },
  3340. { -3000.0, -2144.0, 0.00000, -2670.0, -2032.0, 0.00000 },
  3341. { -3000.0, -2032.0, 0.00000, -2802.0, -1904.0, 0.00000 },
  3342. { -3000.0, -1904.0, 0.00000, -2920.0, -1376.0, 0.00000 },
  3343. { -3000.0, -1376.0, 0.00000, -2936.0, -1186.0, 0.00000 },
  3344. { -768.0, 208.0, 0.0000, -720.0, 672.0, 0.0000 },
  3345. { -720.0, 256.0, 0.0000, -656.0, 672.0, 0.0000 },
  3346. { -656.0, 276.0, 0.0000, -496.0, 576.0, 0.0000 },
  3347. { -496.0, 298.0, 0.0000, -384.0, 566.0, 0.0000 },
  3348. { -384.0, 254.0, 0.0000, -224.0, 530.0, 0.0000 },
  3349. { -224.0, 212.0, 0.0000, -64.0, 528.0, 0.0000 },
  3350. { -64.0, 140.0, 0.000, 64.0, 544.0, 0.000 },
  3351. { 64.0, 140.0, 0.00, 304.0, 544.0, 0.00 },
  3352. { 120.0, 544.0, 0.000, 304.0, 648.0, 0.000 },
  3353. { 304.0, 164.0, 0.000, 384.0, 608.0, 0.000 },
  3354. { 384.0, 222.0, 0.000, 464.0, 630.0, 0.000 },
  3355. { 464.0, 304.0, 0.000, 544.0, 656.0, 0.000 },
  3356. { 544.0, 362.0, 0.000, 800.0, 646.0, 0.000 },
  3357. { 800.0, 432.0, 0.000, 944.0, 704.0, 0.000 },
  3358. { 944.0, 480.0, 0.000, 976.0, 720.0, 0.000 },
  3359. { 976.0, 528.0, 0.000, 1040.0, 704.0, 0.000 },
  3360. { 1040.0, 560.0, 0.0000, 1280.0, 672.0, 0.0000 },
  3361. { 1280.0, 480.0, 0.0000, 1472.0, 640.0, 0.0000 },
  3362. { 1472.0, 432.0, 0.0000, 1616.0, 640.0, 0.0000 },
  3363. { 1616.0, 416.0, 0.0000, 1824.0, 608.0, 0.0000 },
  3364. { 1824.0, 400.0, 0.0000, 2160.0, 576.0, 0.0000 },
  3365. { 2160.0, 400.0, 0.0000, 2432.0, 512.0, 0.0000 },
  3366. { 2432.0, 368.0, 0.0000, 2560.0, 544.0, 0.0000 },
  3367. { 2560.0, 336.0, 0.0000, 2720.0, 576.0, 0.0000 },
  3368. { 2720.0, 196.0, 0.0000, 2816.0, 560.0, 0.0000 },
  3369. { 2816.0, 160.0, 0.0000, 3000.0, 576.0, 0.0000 },
  3370. { 2860.0, -80.0, 0.0000, 3000.0, 160.0, 0.0000 },
  3371. { -1376.0, -3000.0, 0.00000, -544.0, -2896.0, 0.00000 },
  3372. { -928.0, -2896.0, 0.0000, -544.0, -2800.0, 0.0000 },
  3373. { -544.0, -3000.0, 0.0000, -320.0, -2824.0, 0.0000 },
  3374. { -320.0, -3000.0, 0.0000, -192.0, -2876.0, 0.0000 },
  3375. { -192.0, -3000.0, 0.0000, 160.0, -2920.0, 0.0000 },
  3376. { -128.0, -2920.0, 0.0000, 160.0, -2872.0, 0.0000 },
  3377. { -60.0, -2872.0, 0.000, 160.0, -2816.0, 0.000 },
  3378. { -4.0, -2816.0, 0.00, 160.0, -2672.0, 0.00 },
  3379. { 40.0, -2672.0, 0.00, 160.0, -2256.0, 0.00 },
  3380. { 16.0, -2560.0, 0.00, 40.0, -2256.0, 0.00 },
  3381. { -32.0, -2440.0, 0.000, 16.0, -2256.0, 0.000 },
  3382. { -32.0, -2488.0, 0.000, 16.0, -2440.0, 0.000 },
  3383. { -96.0, -2440.0, 0.000, -32.0, -2256.0, 0.000 },
  3384. { -168.0, -2384.0, 0.0000, -96.0, -2256.0, 0.0000 },
  3385. { -224.0, -2256.0, 0.0000, 160.0, -2080.0, 0.0000 },
  3386. { -248.0, -2080.0, 0.0000, 160.0, -1968.0, 0.0000 },
  3387. { -280.0, -1968.0, 0.0000, -128.0, -1824.0, 0.0000 },
  3388. { -264.0, -2016.0, 0.0000, -248.0, -1968.0, 0.0000 },
  3389. { -264.0, -1824.0, 0.0000, -128.0, -1640.0, 0.0000 },
  3390. { -128.0, -1768.0, 0.0000, 124.0, -1648.0, 0.0000 },
  3391. { -128.0, -1792.0, 0.0000, 140.0, -1768.0, 0.0000 },
  3392. { -128.0, -1968.0, 0.0000, 148.0, -1792.0, 0.0000 },
  3393. { 160.0, -2128.0, 0.000, 592.0, -1976.0, 0.000 },
  3394. { 480.0, -1976.0, 0.000, 592.0, -1896.0, 0.000 },
  3395. { 352.0, -1976.0, 0.000, 480.0, -1896.0, 0.000 },
  3396. { 232.0, -1976.0, 0.000, 352.0, -1880.0, 0.000 },
  3397. { 160.0, -1976.0, 0.000, 232.0, -1872.0, 0.000 },
  3398. { 160.0, -2784.0, 0.000, 592.0, -2128.0, 0.000 },
  3399. { 160.0, -3000.0, 0.000, 592.0, -2784.0, 0.000 },
  3400. { 352.0, -1896.0, 0.000, 544.0, -1864.0, 0.000 },
  3401. { 592.0, -2112.0, 0.000, 976.0, -1896.0, 0.000 },
  3402. { 736.0, -1896.0, 0.000, 904.0, -1864.0, 0.000 },
  3403. { 704.0, -1896.0, 0.000, 736.0, -1728.0, 0.000 },
  3404. { 736.0, -1864.0, 0.000, 752.0, -1728.0, 0.000 },
  3405. { 688.0, -1728.0, 0.000, 752.0, -1480.0, 0.000 },
  3406. { 592.0, -2192.0, 0.000, 976.0, -2112.0, 0.000 },
  3407. { 592.0, -2328.0, 0.000, 1008.0, -2192.0, 0.000 },
  3408. { 592.0, -3000.0, 0.000, 1008.0, -2328.0, 0.000 },
  3409. { 1008.0, -3000.0, 0.0000, 1072.0, -2368.0, 0.0000 },
  3410. { 1008.0, -2368.0, 0.0000, 1064.0, -2320.0, 0.0000 },
  3411. { 1072.0, -2672.0, 0.0000, 1288.0, -2412.0, 0.0000 },
  3412. { 1072.0, -2768.0, 0.0000, 1288.0, -2672.0, 0.0000 },
  3413. { 1072.0, -3000.0, 0.0000, 1288.0, -2768.0, 0.0000 },
  3414. { 1288.0, -3000.0, 0.0000, 1448.0, -2760.0, 0.0000 },
  3415. { 1288.0, -2760.0, 0.0000, 1392.0, -2688.0, 0.0000 },
  3416. { 1448.0, -3000.0, 0.0000, 1720.0, -2754.0, 0.0000 },
  3417. { 1720.0, -3000.0, 0.0000, 2064.0, -2740.0, 0.0000 },
  3418. { 2064.0, -3000.0, 0.0000, 2144.0, -2742.0, 0.0000 },
  3419. { 2144.0, -3000.0, 0.0000, 2208.0, -2700.0, 0.0000 },
  3420. { 2208.0, -3000.0, 0.0000, 2272.0, -2684.0, 0.0000 },
  3421. { 2272.0, -3000.0, 0.0000, 2376.0, -2312.0, 0.0000 },
  3422. { 2376.0, -2480.0, 0.0000, 2472.0, -2240.0, 0.0000 },
  3423. { 2472.0, -2376.0, 0.0000, 2776.0, -2240.0, 0.0000 },
  3424. { 2776.0, -2336.0, 0.0000, 2856.0, -2192.0, 0.0000 },
  3425. { 2808.0, -2560.0, 0.0000, 3000.0, -2336.0, 0.0000 },
  3426. { 2856.0, -2336.0, 0.0000, 3000.0, -2136.0, 0.0000 },
  3427. { 2888.0, -2136.0, 0.0000, 3000.0, -1840.0, 0.0000 },
  3428. { 2872.0, -1880.0, 0.0000, 2888.0, -1840.0, 0.0000 },
  3429. { 2864.0, -1840.0, 0.0000, 3000.0, -1720.0, 0.0000 },
  3430. { 2888.0, -1720.0, 0.0000, 3000.0, -1664.0, 0.0000 },
  3431. { 2896.0, -1664.0, 0.0000, 3000.0, -1592.0, 0.0000 },
  3432. { 2920.0, -1592.0, 0.0000, 3000.0, -1504.0, 0.0000 },
  3433. { 2940.0, -1504.0, 0.0000, 3000.0, -1344.0, 0.0000 },
  3434. { 2908.0, -1344.0, 0.0000, 3000.0, -1096.0, 0.0000 },
  3435. { 2912.0, -1096.0, 0.0000, 3000.0, -800.0, 0.0000 },
  3436. { 2918.0, -800.0, 0.0000, 3000.0, -472.0, 0.0000 },
  3437. { 2872.0, -472.0, 0.0000, 3000.0, -376.0, 0.0000 },
  3438. { 2912.0, -376.0, 0.0000, 3000.0, -80.0, 0.0000 },
  3439. { 2864.0, -376.0, 0.0000, 2912.0, -80.0, 0.0000 },
  3440. { 2560.0, -2560.0, 0.0000, 2680.0, -2456.0, 0.0000 },
  3441. { -992.0, -422.0, 0.0000, -848.0, -238.0, 0.0000 },
  3442. { -848.0, -384.0, 0.0000, -512.0, -256.0, 0.0000 },
  3443. { -512.0, -400.0, 0.0000, -320.0, -272.0, 0.0000 },
  3444. { -320.0, -400.0, 0.0000, -208.0, -304.0, 0.0000 },
  3445. { -384.0, -528.0, 0.0000, -100.0, -460.0, 0.0000 },
  3446. { -384.0, -704.0, 0.0000, -64.0, -528.0, 0.0000 },
  3447. { -336.0, -816.0, 0.0000, -80.0, -704.0, 0.0000 },
  3448. { -208.0, -936.0, 0.0000, -48.0, -816.0, 0.0000 },
  3449. { -48.0, -936.0, 0.000, 144.0, -874.0, 0.000 },
  3450. { 32.0, -1024.0, 0.00, 128.0, -936.0, 0.00 },
  3451. { -16.0, -1104.0, 0.000, 96.0, -1024.0, 0.000 },
  3452. { 0.0, -1200.0, 0.0, 144.0, -1104.0, 0.0 },
  3453. { -16.0, -1296.0, 0.000, 128.0, -1200.0, 0.000 },
  3454. { -16.0, -1440.0, 0.000, 112.0, -1296.0, 0.000 },
  3455. { 0.0, -1552.0, 0.0, 96.0, -1440.0, 0.0 },
  3456. { -128.0, -1648.0, 0.0000, 96.0, -1552.0, 0.0000 },
  3457. { -64.0, -672.0, 0.000, 32.0, -576.0, 0.000 },
  3458. { -64.0, -576.0, 0.000, 96.0, -496.0, 0.000 },
  3459. { 16.0, -496.0, 0.00, 144.0, -392.0, 0.00 },
  3460. { 144.0, -448.0, 0.000, 240.0, -384.0, 0.000 },
  3461. { 240.0, -432.0, 0.000, 304.0, -320.0, 0.000 },
  3462. { 304.0, -384.0, 0.000, 352.0, -288.0, 0.000 },
  3463. { 352.0, -332.0, 0.000, 400.0, -252.0, 0.000 },
  3464. { 400.0, -298.0, 0.000, 464.0, -234.0, 0.000 },
  3465. { 464.0, -288.0, 0.000, 576.0, -208.0, 0.000 },
  3466. { 576.0, -272.0, 0.000, 688.0, -192.0, 0.000 },
  3467. { 688.0, -256.0, 0.000, 768.0, -144.0, 0.000 },
  3468. { 768.0, -212.0, 0.000, 800.0, -124.0, 0.000 },
  3469. { 800.0, -180.0, 0.000, 976.0, -92.0, 0.000 },
  3470. { 976.0, -160.0, 0.000, 1200.0, -64.0, 0.000 },
  3471. { 1200.0, -244.0, 0.0000, 1264.0, -108.0, 0.0000 },
  3472. { 1264.0, -330.0, 0.0000, 1344.0, -158.0, 0.0000 },
  3473. { 1344.0, -320.0, 0.0000, 1456.0, -208.0, 0.0000 },
  3474. { 1456.0, -282.0, 0.0000, 1520.0, -198.0, 0.0000 },
  3475. { 1520.0, -208.0, 0.0000, 1648.0, -80.0, 0.0000 },
  3476. { 1568.0, -80.0, 0.0000, 1648.0, 16.0, 0.0000 },
  3477. { 1648.0, -64.0, 0.0000, 1792.0, 16.0, 0.0000 },
  3478. { 1792.0, -128.0, 0.0000, 1888.0, 0.0, 0.0000 },
  3479. { 1888.0, -268.0, 0.0000, 2016.0, -20.0, 0.0000 },
  3480. { 2016.0, -256.0, 0.0000, 2144.0, -16.0, 0.0000 },
  3481. { 2144.0, -272.0, 0.0000, 2224.0, -96.0, 0.0000 },
  3482. { 2224.0, -272.0, 0.0000, 2288.0, -144.0, 0.0000 },
  3483. { 2048.0, -16.0, 0.0000, 2144.0, 112.0, 0.0000 },
  3484. { 2096.0, 112.0, 0.0000, 2224.0, 240.0, 0.0000 },
  3485. { 2098.0, 240.0, 0.0000, 2242.0, 400.0, 0.0000 },
  3486. { 2160.0, 512.0, 0.0000, 2432.0, 576.0, 0.0000 },
  3487. { 2432.0, 544.0, 0.0000, 2560.0, 592.0, 0.0000 },
  3488. { 2560.0, 576.0, 0.0000, 2720.0, 608.0, 0.0000 },
  3489. { 2720.0, 560.0, 0.0000, 2816.0, 608.0, 0.0000 },
  3490. { 2816.0, 576.0, 0.0000, 3000.0, 752.0, 0.0000 },
  3491. { -656.0, 576.0, 0.0000, -496.0, 672.0, 0.0000 },
  3492. { -740.0, 672.0, 0.0000, -484.0, 784.0, 0.0000 },
  3493. { -720.0, 784.0, 0.0000, -384.0, 1008.0, 0.0000 },
  3494. { -640.0, 1008.0, 0.0000, -400.0, 1216.0, 0.0000 },
  3495. { -880.0, 1296.0, 0.0000, -688.0, 1408.0, 0.0000 },
  3496. { -688.0, 1216.0, 0.0000, -400.0, 1424.0, 0.0000 },
  3497. { -672.0, 1424.0, 0.0000, -448.0, 1616.0, 0.0000 },
  3498. { -832.0, 1616.0, 0.0000, -512.0, 1728.0, 0.0000 },
  3499. { -984.0, 1632.0, 0.0000, -832.0, 1712.0, 0.0000 },
  3500. { -832.0, 1728.0, 0.0000, -576.0, 2032.0, 0.0000 },
  3501. { -1248.0, 2536.0, 40.6000, -1088.0, 2824.0, 40.6000 },
  3502. { -1088.0, 2544.0, 40.5999, -1040.0, 2800.0, 40.6000 },
  3503. { -1040.0, 2544.0, 40.5999, -832.0, 2760.0, 40.6000 },
  3504. { -1088.0, 2416.0, 40.6000, -832.0, 2544.0, 40.6000 },
  3505. { -1040.0, 2304.0, 40.6000, -864.0, 2416.0, 40.5999 },
  3506. { -1024.0, 2144.0, 40.6000, -864.0, 2304.0, 40.6000 },
  3507. { -1072.0, 2152.0, 40.5999, -1024.0, 2264.0, 40.5999 },
  3508. { -1200.0, 2114.0, 40.6000, -1072.0, 2242.0, 40.5999 },
  3509. { -976.0, 2016.0, 40.600, -848.0, 2144.0, 40.599 },
  3510. { -864.0, 2144.0, 40.599, -448.0, 2272.0, 40.600 },
  3511. { -700.0, 2272.0, 40.599, -484.0, 2320.0, 40.600 },
  3512. { -608.0, 2320.0, 40.599, -528.0, 2352.0, 40.600 },
  3513. { -848.0, 2044.0, 40.599, -816.0, 2144.0, 40.599 },
  3514. { -816.0, 2060.0, 40.599, -496.0, 2144.0, 40.599 },
  3515. { -604.0, 2036.0, 40.600, -484.0, 2060.0, 40.600 },
  3516. { 2376.0, -3000.0, 0.0000, 3000.0, -2688.0, 0.0000 },
  3517. { 2520.0, -2688.0, 0.0000, 3000.0, -2560.0, 0.0000 },
  3518. { -1328.0, 2082.0, 40.5999, -1200.0, 2210.0, 40.6000 },
  3519. { -1400.0, 2074.0, 40.6000, -1328.0, 2150.0, 40.5999 },
  3520. { -1248.0, -144.0, 0.00000, -992.0, 208.0, 0.00000 },
  3521. { -1176.0, -432.0, 0.00000, -992.0, -144.0, 0.00000 },
  3522. { -1792.0, -592.0, 0.00000, -1728.0, -144.0, 0.00000 },
  3523. { -1792.0, 170.0, 0.00000, -1600.0, 274.0, 0.00000 },
  3524. { -1600.0, 168.0, 0.00000, -1256.0, 208.0, 0.00000 },
  3525. { -1574.0, -44.0, 0.00000, -1550.0, 108.0, 0.00000 },
  3526. { 1928.0, -1222.0, 18.000, 2012.0, -1178.0, 18.000 },
  3527. { -464.0, -1908.0, 0.0000, -280.0, -1832.0, 0.0000 },
  3528. { 2248.0, -1182.0, 23.337, 2260.0, -1170.0, 23.337 },
  3529. { 2292.0, -1432.0, 22.165, 2328.0, -1400.0, 22.165 },
  3530. { 1888.0, 1468.0, 8.5983, 2036.0, 1700.0, 8.5983 },
  3531. { 2090.0, 1670.0, 9.6117, 2146.0, 1694.0, 9.6117 },
  3532. { 2110.0, 1234.0, 7.8327, 2178.0, 1330.0, 7.8327 },
  3533. { 2108.0, 1084.0, 7.5628, 2180.0, 1172.0, 7.5628 },
  3534. { 2506.0, 1546.0, 8.9670, 2554.0, 1586.0, 8.9670 },
  3535. { 1270.0, -812.0, 86.673, 1290.0, -800.0, 86.673 },
  3536. { 1084.0, -684.0, 112.00, 1104.0, -660.0, 112.00 },
  3537. { 502.0, -1114.0, 78.42, 522.0, -1098.0, 78.42 },
  3538. { 214.0, -1208.0, 74.00, 246.0, -1180.0, 74.00 },
  3539. { 218.0, -1180.0, 74.00, 238.0, -1172.0, 74.00 },
  3540. { 178.0, -1244.0, 77.05, 206.0, -1216.0, 77.05 },
  3541. { 1744.0, 2780.0, 8.4729, 1792.0, 2868.0, 8.4729 },
  3542. { -2832.0, 2888.0, 0.00000, 3000.0, 3000.0, 0.00000 },
  3543. { -2778.0, -522.0, 2.79256, -2662.0, -414.0, 2.79256 },
  3544. { 1520.0, -252.0, 0.0000, 1572.0, -208.0, 0.0000 },
  3545. { 2922.0, 752.0, 0.0000, 3000.0, 2888.0, 0.0000 },
  3546. { -3000.0, -446.0, 0.00000, -2910.0, 354.0, 0.00000 },
  3547. { -2434.0, 2224.0, 0.00000, -2294.0, 2340.0, 0.00000 },
  3548. { -2294.0, 2224.0, 0.00000, -2208.0, 2312.0, 0.00000 },
  3549. { 2058.0, 1868.0, 9.6291, 2110.0, 1964.0, 9.6291 },
  3550. { -3000.0, 2942.0, 0.00000, -2832.0, 3000.0, 0.00000 },
  3551. { -550.0, 2004.0, 40.600, -494.0, 2036.0, 40.599 },
  3552. { -896.0, 842.0, 0.0000, -776.0, 954.0, 0.0000 },
  3553. { -2240.0, 1336.0, 0.00000, -2088.0, 1432.0, 0.00000 },
  3554. { -3000.0, -822.0, 0.00000, -2930.0, -446.0, 0.00000 },
  3555. { -2660.0, 2224.0, 0.00000, -2520.0, 2264.0, 0.00000 },
  3556. { -378.0, -460.0, 0.0000, -138.0, -400.0, 0.0000 },
  3557. { 1836.0, 1468.0, 8.5983, 1888.0, 1568.0, 8.5983 },
  3558. { 890.0, -1106.0, 22.41, 902.0, -1098.0, 22.41 },
  3559. { 1202.0, -2414.0, 8.8644, 1278.0, -2334.0, 8.8644 },
  3560. { 1072.0, -2412.0, 0.0000, 1128.0, -2372.0, 0.0000 },
  3561. { -848.0, -2082.0, 5.2700, -664.0, -1866.0, 5.2700 },
  3562. { -664.0, -1924.0, 5.2700, -464.0, -1864.0, 5.2700 },
  3563. { -1484.0, 784.0, 0.00000, -1424.0, 840.0, 0.00000 },
  3564. { -496.0, 566.0, 0.0000, -432.0, 642.0, 0.0000 },
  3565. { 250.0, 2808.0, 0.000, 818.0, 2888.0, 0.000 },
  3566. { 2502.0, -2240.0, 0.0000, 2670.0, -2120.0, -5.000 },
  3567. { 1270.0, -780.0, 1082.7, 1290.0, -768.0, 1082.7 },
  3568. { 88.0, 544.0, 0.00, 120.0, 572.0, 0.00 },
  3569. { 1856.0, -202.0, 0.0000, 1888.0, -158.0, 0.0000 },
  3570. { -2048.0, -962.0, 30.4000, -2004.0, -758.0, 30.4000 },
  3571. { 2564.0, 2370.0, 16.400, 2604.0, 2398.0, 16.400 },
  3572. { -2522.0, -310.0, 35.3820, -2382.0, -234.0, 35.3820 },
  3573. { 2872.0, -2136.0, 0.0000, 2888.0, -2120.0, 0.0000 },
  3574. { 2760.0, -2240.0, 0.0000, 2776.0, -2232.0, 0.0000 },
  3575. { -2832.0, 1296.0, 0.00000, -2704.0, 2192.0, 0.00000 },
  3576. { -2704.0, 1360.0, 0.00000, -2240.0, 2224.0, 0.00000 },
  3577. { -2240.0, 1440.0, 0.00000, -2000.0, 2224.0, 0.00000 },
  3578. { -2064.0, 1312.0, 0.00000, -2000.0, 1440.0, 0.00000 },
  3579. { -2000.0, 1392.0, 0.00000, -1712.0, 1792.0, 0.00000 },
  3580. { -2000.0, 1792.0, 0.00000, -1760.0, 2016.0, 0.00000 },
  3581. { -2000.0, 2016.0, 0.00000, -1856.0, 2176.0, 0.00000 },
  3582. { -2000.0, 2176.0, 0.00000, -1920.0, 2224.0, 0.00000 },
  3583. { -2208.0, 2224.0, 0.00000, -2000.0, 2432.0, 0.00000 },
  3584. { -2208.0, 2432.0, 0.00000, -2000.0, 2560.0, 0.00000 },
  3585. { -2352.0, 2448.0, 0.00000, -2208.0, 2560.0, 0.00000 },
  3586. { -2304.0, 2352.0, 0.00000, -2208.0, 2448.0, 0.00000 },
  3587. { -1712.0, 1360.0, 0.00000, -1600.0, 1792.0, 0.00000 },
  3588. { -1664.0, 1280.0, 0.00000, -1600.0, 1360.0, 0.00000 },
  3589. { -1600.0, 1280.0, 0.00000, -1440.0, 1696.0, 0.00000 },
  3590. { -1600.0, 1696.0, 0.00000, -1536.0, 1728.0, 0.00000 },
  3591. { -1440.0, 1440.0, 0.00000, -1232.0, 1680.0, 0.00000 },
  3592. { -1232.0, 1440.0, 0.00000, -1136.0, 1616.0, 0.00000 },
  3593. { -1440.0, 1280.0, 0.00000, -1136.0, 1440.0, 0.00000 },
  3594. { -1136.0, 1248.0, 0.00000, -1104.0, 1424.0, 0.00000 },
  3595. { -1520.0, 1104.0, 0.00000, -1104.0, 1248.0, 0.00000 },
  3596. { -1520.0, 1248.0, 0.00000, -1136.0, 1280.0, 0.00000 },
  3597. { -1600.0, 1200.0, 0.00000, -1520.0, 1280.0, 0.00000 },
  3598. { -1104.0, 944.0, 0.00000, -960.0, 1136.0, 0.00000 },
  3599. { -1424.0, 944.0, 0.00000, -1104.0, 1104.0, 0.00000 },
  3600. { -1520.0, 1008.0, 0.00000, -1424.0, 1104.0, 0.00000 },
  3601. { -1424.0, 784.0, 0.00000, -896.0, 944.0, 0.00000 },
  3602. { -1488.0, 560.0, 0.00000, -896.0, 784.0, 0.00000 },
  3603. { -1536.0, 560.0, 0.00000, -1488.0, 672.0, 0.00000 },
  3604. { -896.0, 208.0, 0.0000, -768.0, 720.0, 0.0000 },
  3605. { -1600.0, 208.0, 0.00000, -896.0, 560.0, 0.00000 },
  3606. { -992.0, -144.0, 0.0000, -912.0, 208.0, 0.0000 },
  3607. { -1744.0, -816.0, 0.00000, -1184.0, -592.0, 0.00000 },
  3608. { -1456.0, -592.0, 0.00000, -1056.0, -432.0, 0.00000 },
  3609. { -3000.0, -1184.0, 0.00000, -2880.0, -816.0, 0.00000 },
  3610. { -2880.0, -1168.0, 0.00000, -2768.0, -896.0, 0.00000 },
  3611. { -2768.0, -1088.0, 0.00000, -2656.0, -848.0, 0.00000 },
  3612. { -2656.0, -1024.0, 0.00000, -2512.0, -816.0, 0.00000 },
  3613. { -2512.0, -976.0, 0.00000, -2400.0, -816.0, 0.00000 },
  3614. { -2400.0, -1056.0, 0.00000, -2256.0, -864.0, 0.00000 },
  3615. { -2256.0, -1184.0, 0.00000, -2144.0, -976.0, 0.00000 },
  3616. { -2144.0, -1408.0, 0.00000, -2000.0, -1072.0, 0.00000 },
  3617. { -2000.0, -1536.0, 0.00000, -1856.0, -1280.0, 0.00000 },
  3618. { -1856.0, -1648.0, 0.00000, -1728.0, -1440.0, 0.00000 },
  3619. { -1728.0, -1728.0, 0.00000, -1584.0, -1520.0, 0.00000 },
  3620. { -1584.0, -1792.0, 0.00000, -1344.0, -1648.0, 0.00000 },
  3621. { -1344.0, -2032.0, 0.00000, -1216.0, -1712.0, 0.00000 },
  3622. { -1440.0, -2112.0, 0.00000, -1344.0, -1968.0, 0.00000 },
  3623. { -1488.0, -2192.0, 0.00000, -1440.0, -2048.0, 0.00000 },
  3624. { -1568.0, -2352.0, 0.00000, -1488.0, -2096.0, 0.00000 },
  3625. { -1216.0, -2208.0, 0.00000, -1104.0, -1888.0, 0.00000 },
  3626. { -1232.0, -2304.0, 0.00000, -1120.0, -2208.0, 0.00000 },
  3627. { -1248.0, -2480.0, 0.00000, -1184.0, -2304.0, 0.00000 },
  3628. { -1248.0, -2560.0, 0.00000, -1200.0, -2480.0, 0.00000 },
  3629. { -1248.0, -2640.0, 0.00000, -1152.0, -2560.0, 0.00000 },
  3630. { -1200.0, -2752.0, 0.00000, -1088.0, -2640.0, 0.00000 },
  3631. { -1200.0, -2896.0, 0.00000, -928.0, -2752.0, 0.00000 },
  3632. { -2016.0, -2976.0, 0.00000, -1520.0, -2704.0, 0.00000 },
  3633. { -1520.0, -2976.0, 0.00000, -1376.0, -2896.0, 0.00000 },
  3634. { -2256.0, -2992.0, 0.00000, -2016.0, -2768.0, 0.00000 },
  3635. { -2448.0, -2992.0, 0.00000, -2256.0, -2704.0, 0.00000 },
  3636. { -2912.0, -2992.0, 0.00000, -2448.0, -2704.0, 0.00000 },
  3637. { -3000.0, -2704.0, 0.00000, -2516.0, -2576.0, 0.00000 },
  3638. { -3000.0, -2576.0, 0.00000, -2600.0, -2448.0, 0.00000 },
  3639. { -3000.0, -2448.0, 0.00000, -2628.0, -2144.0, 0.00000 },
  3640. { -3000.0, -2144.0, 0.00000, -2670.0, -2032.0, 0.00000 },
  3641. { -3000.0, -2032.0, 0.00000, -2836.0, -1904.0, 0.00000 },
  3642. { -3000.0, -1904.0, 0.00000, -2924.0, -1376.0, 0.00000 },
  3643. { -3000.0, -1376.0, 0.00000, -2960.0, -1184.0, 0.00000 },
  3644. { -2960.0, -1244.0, 0.00000, -2936.0, -1184.0, 0.00000 },
  3645. { -768.0, 224.0, 0.0000, -720.0, 656.0, 0.0000 },
  3646. { -720.0, 256.0, 0.0000, -656.0, 672.0, 0.0000 },
  3647. { -656.0, 288.0, 0.0000, -496.0, 576.0, 0.0000 },
  3648. { -496.0, 304.0, 0.0000, -384.0, 560.0, 0.0000 },
  3649. { -384.0, 272.0, 0.0000, -224.0, 512.0, 0.0000 },
  3650. { -224.0, 224.0, 0.0000, -64.0, 480.0, 0.0000 },
  3651. { -64.0, 160.0, 0.000, 64.0, 496.0, 0.000 },
  3652. { 64.0, 144.0, 0.00, 304.0, 544.0, 0.00 },
  3653. { 144.0, 544.0, 0.000, 304.0, 608.0, 0.000 },
  3654. { 304.0, 176.0, 0.000, 384.0, 608.0, 0.000 },
  3655. { 384.0, 240.0, 0.000, 464.0, 624.0, 0.000 },
  3656. { 464.0, 304.0, 0.000, 544.0, 624.0, 0.000 },
  3657. { 544.0, 368.0, 0.000, 800.0, 640.0, 0.000 },
  3658. { 800.0, 432.0, 0.000, 944.0, 672.0, 0.000 },
  3659. { 944.0, 480.0, 0.000, 976.0, 688.0, 0.000 },
  3660. { 976.0, 528.0, 0.000, 1040.0, 688.0, 0.000 },
  3661. { 1040.0, 560.0, 0.0000, 1280.0, 656.0, 0.0000 },
  3662. { 1280.0, 480.0, 0.0000, 1472.0, 640.0, 0.0000 },
  3663. { 1472.0, 432.0, 0.0000, 1616.0, 640.0, 0.0000 },
  3664. { 1616.0, 416.0, 0.0000, 1824.0, 608.0, 0.0000 },
  3665. { 1824.0, 400.0, 0.0000, 2160.0, 576.0, 0.0000 },
  3666. { 2160.0, 400.0, 0.0000, 2432.0, 512.0, 0.0000 },
  3667. { 2432.0, 368.0, 0.0000, 2560.0, 544.0, 0.0000 },
  3668. { 2560.0, 336.0, 0.0000, 2720.0, 576.0, 0.0000 },
  3669. { 2720.0, 304.0, 0.0000, 2816.0, 560.0, 0.0000 },
  3670. { 2816.0, 160.0, 0.0000, 2992.0, 576.0, 0.0000 },
  3671. { 2864.0, -80.0, 0.0000, 2992.0, 160.0, 0.0000 },
  3672. { -1376.0, -2976.0, 0.00000, -544.0, -2896.0, 0.00000 },
  3673. { -928.0, -2896.0, 0.0000, -544.0, -2800.0, 0.0000 },
  3674. { -544.0, -2976.0, 0.0000, -320.0, -2840.0, 0.0000 },
  3675. { -320.0, -2976.0, 0.0000, -192.0, -2880.0, 0.0000 },
  3676. { -192.0, -2976.0, 0.0000, 160.0, -2920.0, 0.0000 },
  3677. { -104.0, -2920.0, 0.0000, 160.0, -2872.0, 0.0000 },
  3678. { -32.0, -2872.0, 0.000, 160.0, -2816.0, 0.000 },
  3679. { 16.0, -2816.0, 0.00, 160.0, -2672.0, 0.00 },
  3680. { 40.0, -2672.0, 0.00, 160.0, -2256.0, 0.00 },
  3681. { 16.0, -2536.0, 0.00, 40.0, -2256.0, 0.00 },
  3682. { -32.0, -2440.0, 0.000, 16.0, -2256.0, 0.000 },
  3683. { -16.0, -2488.0, 0.000, 16.0, -2440.0, 0.000 },
  3684. { -96.0, -2424.0, 0.000, -32.0, -2256.0, 0.000 },
  3685. { -168.0, -2384.0, 0.0000, -96.0, -2256.0, 0.0000 },
  3686. { -224.0, -2256.0, 0.0000, 160.0, -2080.0, 0.0000 },
  3687. { -248.0, -2080.0, 0.0000, 160.0, -1968.0, 0.0000 },
  3688. { -280.0, -1968.0, 0.0000, -128.0, -1824.0, 0.0000 },
  3689. { -264.0, -2016.0, 0.0000, -248.0, -1968.0, 0.0000 },
  3690. { -264.0, -1824.0, 0.0000, -128.0, -1648.0, 0.0000 },
  3691. { -128.0, -1768.0, 0.0000, 112.0, -1648.0, 0.0000 },
  3692. { -128.0, -1792.0, 0.0000, 120.0, -1768.0, 0.0000 },
  3693. { -128.0, -1968.0, 0.0000, 136.0, -1792.0, 0.0000 },
  3694. { 160.0, -2128.0, 0.000, 592.0, -1976.0, 0.000 },
  3695. { 480.0, -1976.0, 0.000, 592.0, -1896.0, 0.000 },
  3696. { 352.0, -1976.0, 0.000, 480.0, -1896.0, 0.000 },
  3697. { 232.0, -1976.0, 0.000, 352.0, -1880.0, 0.000 },
  3698. { 160.0, -1976.0, 0.000, 232.0, -1872.0, 0.000 },
  3699. { 136.0, -1968.0, 0.000, 160.0, -1872.0, 0.000 },
  3700. { 160.0, -2784.0, 0.000, 592.0, -2128.0, 0.000 },
  3701. { 160.0, -2976.0, 0.000, 592.0, -2784.0, 0.000 },
  3702. { 352.0, -1896.0, 0.000, 544.0, -1864.0, 0.000 },
  3703. { 592.0, -2112.0, 0.000, 976.0, -1896.0, 0.000 },
  3704. { 736.0, -1896.0, 0.000, 904.0, -1864.0, 0.000 },
  3705. { 704.0, -1888.0, 0.000, 736.0, -1728.0, 0.000 },
  3706. { 736.0, -1808.0, 0.000, 752.0, -1728.0, 0.000 },
  3707. { 696.0, -1728.0, 0.000, 744.0, -1480.0, 0.000 },
  3708. { 592.0, -2192.0, 0.000, 976.0, -2112.0, 0.000 },
  3709. { 592.0, -2328.0, 0.000, 1008.0, -2192.0, 0.000 },
  3710. { 592.0, -2976.0, 0.000, 1008.0, -2328.0, 0.000 },
  3711. { 1008.0, -2976.0, 0.0000, 1072.0, -2368.0, 0.0000 },
  3712. { 1008.0, -2368.0, 0.0000, 1064.0, -2328.0, 0.0000 },
  3713. { 1072.0, -2672.0, 0.0000, 1288.0, -2376.0, 0.0000 },
  3714. { 1072.0, -2768.0, 0.0000, 1288.0, -2672.0, 0.0000 },
  3715. { 1072.0, -2976.0, 0.0000, 1288.0, -2768.0, 0.0000 },
  3716. { 1288.0, -2976.0, 0.0000, 1448.0, -2760.0, 0.0000 },
  3717. { 1288.0, -2760.0, 0.0000, 1392.0, -2688.0, 0.0000 },
  3718. { 1448.0, -2976.0, 0.0000, 1720.0, -2760.0, 0.0000 },
  3719. { 1720.0, -2976.0, 0.0000, 2064.0, -2760.0, 0.0000 },
  3720. { 2064.0, -2976.0, 0.0000, 2144.0, -2744.0, 0.0000 },
  3721. { 2144.0, -2976.0, 0.0000, 2208.0, -2704.0, 0.0000 },
  3722. { 2208.0, -2976.0, 0.0000, 2272.0, -2696.0, 0.0000 },
  3723. { 2272.0, -2976.0, 0.0000, 2376.0, -2312.0, 0.0000 },
  3724. { 2376.0, -2464.0, 0.0000, 2472.0, -2240.0, 0.0000 },
  3725. { 2472.0, -2376.0, 0.0000, 2776.0, -2240.0, 0.0000 },
  3726. { 2776.0, -2336.0, 0.0000, 2856.0, -2192.0, 0.0000 },
  3727. { 2808.0, -2560.0, 0.0000, 3000.0, -2336.0, 0.0000 },
  3728. { 2856.0, -2336.0, 0.0000, 3000.0, -2136.0, 0.0000 },
  3729. { 2888.0, -2136.0, 0.0000, 3000.0, -1840.0, 0.0000 },
  3730. { 2872.0, -1880.0, 0.0000, 2888.0, -1840.0, 0.0000 },
  3731. { 2864.0, -1840.0, 0.0000, 3000.0, -1720.0, 0.0000 },
  3732. { 2888.0, -1720.0, 0.0000, 3000.0, -1664.0, 0.0000 },
  3733. { 2896.0, -1664.0, 0.0000, 3000.0, -1592.0, 0.0000 },
  3734. { 2920.0, -1592.0, 0.0000, 3000.0, -1504.0, 0.0000 },
  3735. { 2944.0, -1504.0, 0.0000, 3000.0, -1344.0, 0.0000 },
  3736. { 2944.0, -1344.0, 0.0000, 3000.0, -1096.0, 0.0000 },
  3737. { 2936.0, -1280.0, 0.0000, 2944.0, -1096.0, 0.0000 },
  3738. { 2928.0, -1224.0, 0.0000, 2936.0, -1096.0, 0.0000 },
  3739. { 2920.0, -1160.0, 0.0000, 2928.0, -1096.0, 0.0000 },
  3740. { 2912.0, -1128.0, 0.0000, 2920.0, -1096.0, 0.0000 },
  3741. { 2912.0, -1096.0, 0.0000, 3000.0, -800.0, 0.0000 },
  3742. { 2936.0, -800.0, 0.0000, 3000.0, -472.0, 0.0000 },
  3743. { 2920.0, -472.0, 0.0000, 3000.0, -376.0, 0.0000 },
  3744. { 2912.0, -376.0, 0.0000, 3000.0, -80.0, 0.0000 },
  3745. { 2864.0, -344.0, 0.0000, 2912.0, -80.0, 0.0000 },
  3746. { 2560.0, -2560.0, 0.0000, 2680.0, -2456.0, 0.0000 },
  3747. { -992.0, -384.0, 0.0000, -848.0, -240.0, 0.0000 },
  3748. { -848.0, -384.0, 0.0000, -512.0, -256.0, 0.0000 },
  3749. { -512.0, -400.0, 0.0000, -320.0, -288.0, 0.0000 },
  3750. { -320.0, -400.0, 0.0000, -208.0, -304.0, 0.0000 },
  3751. { -384.0, -528.0, 0.0000, -112.0, -400.0, 0.0000 },
  3752. { -384.0, -704.0, 0.0000, -64.0, -528.0, 0.0000 },
  3753. { -336.0, -816.0, 0.0000, -80.0, -704.0, 0.0000 },
  3754. { -208.0, -928.0, 0.0000, -48.0, -816.0, 0.0000 },
  3755. { -48.0, -928.0, 0.000, 144.0, -880.0, 0.000 },
  3756. { 32.0, -1024.0, 0.00, 128.0, -928.0, 0.00 },
  3757. { -16.0, -1104.0, 0.000, 96.0, -1024.0, 0.000 },
  3758. { 0.0, -1200.0, 0.0, 144.0, -1104.0, 0.0 },
  3759. { -16.0, -1296.0, 0.000, 128.0, -1200.0, 0.000 },
  3760. { -16.0, -1440.0, 0.000, 96.0, -1296.0, 0.000 },
  3761. { 0.0, -1552.0, 0.0, 80.0, -1440.0, 0.0 },
  3762. { -128.0, -1648.0, 0.0000, 96.0, -1552.0, 0.0000 },
  3763. { -64.0, -672.0, 0.000, 32.0, -576.0, 0.000 },
  3764. { -48.0, -576.0, 0.000, 80.0, -496.0, 0.000 },
  3765. { 16.0, -496.0, 0.00, 144.0, -400.0, 0.00 },
  3766. { 144.0, -448.0, 0.000, 240.0, -384.0, 0.000 },
  3767. { 240.0, -432.0, 0.000, 304.0, -320.0, 0.000 },
  3768. { 304.0, -384.0, 0.000, 352.0, -288.0, 0.000 },
  3769. { 352.0, -336.0, 0.000, 400.0, -272.0, 0.000 },
  3770. { 400.0, -304.0, 0.000, 464.0, -240.0, 0.000 },
  3771. { 464.0, -288.0, 0.000, 576.0, -208.0, 0.000 },
  3772. { 576.0, -272.0, 0.000, 688.0, -192.0, 0.000 },
  3773. { 688.0, -256.0, 0.000, 768.0, -144.0, 0.000 },
  3774. { 768.0, -208.0, 0.000, 800.0, -128.0, 0.000 },
  3775. { 800.0, -176.0, 0.000, 976.0, -96.0, 0.000 },
  3776. { 976.0, -160.0, 0.000, 1200.0, -64.0, 0.000 },
  3777. { 1200.0, -240.0, 0.0000, 1264.0, -112.0, 0.0000 },
  3778. { 1264.0, -320.0, 0.0000, 1344.0, -176.0, 0.0000 },
  3779. { 1344.0, -320.0, 0.0000, 1456.0, -208.0, 0.0000 },
  3780. { 1456.0, -256.0, 0.0000, 1520.0, -192.0, 0.0000 },
  3781. { 1520.0, -208.0, 0.0000, 1648.0, -80.0, 0.0000 },
  3782. { 1568.0, -80.0, 0.0000, 1648.0, 16.0, 0.0000 },
  3783. { 1648.0, -64.0, 0.0000, 1792.0, 16.0, 0.0000 },
  3784. { 1792.0, -128.0, 0.0000, 1888.0, 0.0, 0.0000 },
  3785. { 1888.0, -256.0, 0.0000, 2016.0, -32.0, 0.0000 },
  3786. { 2016.0, -256.0, 0.0000, 2144.0, -16.0, 0.0000 },
  3787. { 2144.0, -272.0, 0.0000, 2224.0, -96.0, 0.0000 },
  3788. { 2224.0, -272.0, 0.0000, 2288.0, -144.0, 0.0000 },
  3789. { 2288.0, -272.0, 0.0000, 2528.0, -192.0, 0.0000 },
  3790. { 2528.0, -272.0, 0.0000, 2640.0, -224.0, 0.0000 },
  3791. { 2048.0, -16.0, 0.0000, 2144.0, 112.0, 0.0000 },
  3792. { 2096.0, 112.0, 0.0000, 2224.0, 240.0, 0.0000 },
  3793. { 2080.0, 240.0, 0.0000, 2224.0, 400.0, 0.0000 },
  3794. { 2224.0, 320.0, 0.0000, 2256.0, 400.0, 0.0000 },
  3795. { 2160.0, 512.0, 0.0000, 2432.0, 576.0, 0.0000 },
  3796. { 2432.0, 544.0, 0.0000, 2560.0, 592.0, 0.0000 },
  3797. { 2560.0, 576.0, 0.0000, 2720.0, 608.0, 0.0000 },
  3798. { 2720.0, 560.0, 0.0000, 2816.0, 608.0, 0.0000 },
  3799. { 2816.0, 576.0, 0.0000, 2992.0, 752.0, 0.0000 },
  3800. { -656.0, 576.0, 0.0000, -496.0, 672.0, 0.0000 },
  3801. { -736.0, 672.0, 0.0000, -496.0, 784.0, 0.0000 },
  3802. { -720.0, 784.0, 0.0000, -384.0, 1008.0, 0.0000 },
  3803. { -640.0, 1008.0, 0.0000, -400.0, 1216.0, 0.0000 },
  3804. { -880.0, 1296.0, 0.0000, -688.0, 1408.0, 0.0000 },
  3805. { -688.0, 1216.0, 0.0000, -432.0, 1424.0, 0.0000 },
  3806. { -672.0, 1424.0, 0.0000, -448.0, 1616.0, 0.0000 },
  3807. { -832.0, 1616.0, 0.0000, -512.0, 1728.0, 0.0000 },
  3808. { -976.0, 1632.0, 0.0000, -832.0, 1712.0, 0.0000 },
  3809. { -832.0, 1728.0, 0.0000, -576.0, 2032.0, 0.0000 },
  3810. { -1248.0, 2544.0, 40.6000, -1088.0, 2832.0, 40.6000 },
  3811. { -1088.0, 2544.0, 40.6000, -1040.0, 2784.0, 40.6000 },
  3812. { -1040.0, 2544.0, 40.5999, -832.0, 2736.0, 40.6000 },
  3813. { -1088.0, 2416.0, 40.6000, -832.0, 2544.0, 40.6000 },
  3814. { -1040.0, 2304.0, 40.6000, -864.0, 2416.0, 40.5999 },
  3815. { -1024.0, 2144.0, 40.6000, -864.0, 2304.0, 40.6000 },
  3816. { -1072.0, 2160.0, 40.5999, -1024.0, 2256.0, 40.5999 },
  3817. { -1200.0, 2114.0, 40.6000, -1072.0, 2242.0, 40.5999 },
  3818. { -976.0, 2016.0, 40.600, -848.0, 2144.0, 40.599 },
  3819. { -864.0, 2144.0, 40.599, -480.0, 2272.0, 40.600 },
  3820. { -688.0, 2272.0, 40.599, -496.0, 2320.0, 40.600 },
  3821. { -608.0, 2320.0, 40.599, -528.0, 2352.0, 40.600 },
  3822. { -848.0, 2048.0, 40.599, -816.0, 2144.0, 40.599 },
  3823. { -816.0, 2064.0, 40.599, -496.0, 2144.0, 40.599 },
  3824. { -576.0, 2032.0, 0.0000, -512.0, 2064.0, 40.599 },
  3825. { 2376.0, -3000.0, 0.0000, 3000.0, -2696.0, 0.0000 },
  3826. { 2520.0, -2696.0, 0.0000, 3000.0, -2560.0, 0.0000 },
  3827. { -1328.0, 2082.0, 40.5999, -1200.0, 2210.0, 40.6000 },
  3828. { -1456.0, 2048.0, 40.6000, -1328.0, 2176.0, 40.5999 },
  3829. { -1248.0, -144.0, 0.00000, -992.0, 208.0, 0.00000 },
  3830. { -1176.0, -432.0, 0.00000, -992.0, -144.0, 0.00000 },
  3831. { -1792.0, -592.0, 0.00000, -1728.0, -144.0, 0.00000 },
  3832. { -1792.0, 170.0, 0.00000, -1600.0, 274.0, 0.00000 },
  3833. { -1600.0, 168.0, 0.00000, -1256.0, 208.0, 0.00000 },
  3834. { -1574.0, -50.0, 0.00000, -1550.0, 102.0, 0.00000 }
  3835. };
  3836.  
  3837. stock IsVehicleInWater(vehicleid)
  3838. {
  3839. new Float:x, Float:y, Float:z;
  3840. GetVehiclePos(vehicleid, x, y, z);
  3841. for(new i, size = sizeof(WaterCords); i != size; i++)
  3842. {
  3843. if(x >= WaterCords[i][0] && x <= WaterCords[i][3] && y >= WaterCords[i][1] && y <= WaterCords[i][4])
  3844. {
  3845. if(z < WaterCords[i][2] || z < WaterCords[i][5])
  3846. {
  3847. return 1;
  3848. }
  3849. }
  3850. }
  3851. return 0;
  3852. }
  3853. stock IsPlayerInWater(playerid)
  3854. {
  3855. new Float:x, Float:y, Float:z;
  3856. GetPlayerPos(playerid, x, y, z);
  3857. new idx = GetPlayerAnimationIndex(playerid);
  3858. new lib[32], name[32];
  3859. GetAnimationName(idx,lib,32,name,32);
  3860. for(new i = 0; i != sizeof(WaterCords); i++)
  3861. {
  3862. if(x >= WaterCords[i][0] && x <= WaterCords[i][3] && y >= WaterCords[i][1] && y <= WaterCords[i][4])
  3863. {
  3864. if(z < WaterCords[i][2] || z < WaterCords[i][5])
  3865. {
  3866. if(idx)
  3867. {
  3868. if(!strcmp(lib, "SWIM", true))
  3869. {
  3870. return 1;
  3871. }
  3872. return 2;
  3873. }
  3874. return -1;
  3875. }
  3876. }
  3877. }
  3878. if(!strcmp(lib, "SWIM", true) && idx)
  3879. {
  3880. return 3;
  3881. }
  3882. return 0;
  3883. }
  3884. PUBLIC: OnPlayerPause(playerid) { SpielerInfo[playerid][pPaused] = 1; return 1; }
  3885. PUBLIC: OnPlayerResume(playerid, time) { SpielerInfo[playerid][pPaused] = 0; return 1; }
  3886.  
  3887. PUBLIC: OnPlayerFPSChange(playerid, oldfps, newfps)
  3888. {
  3889. if(newfps > 49) TextDrawSetText(PlayerFPSTD[playerid], "~g~FPS: ~w~%d",newfps);
  3890. if(newfps > 30 && newfps < 49) TextDrawSetText(PlayerFPSTD[playerid], "~g~FPS: ~y~%d",newfps);
  3891. if(newfps < 29) TextDrawSetText(PlayerFPSTD[playerid], "~g~FPS: ~r~%d",newfps);
  3892. return 1;
  3893. }
  3894.  
  3895. stock GetPlayer2DZone (playerid, zone [], len = sizeof (zone)) //Credits to Cueball, Betamaster, Mabako, and Simon (for finetuning).
  3896. {
  3897. new
  3898. Float: x,
  3899. Float: y,
  3900. Float: z;
  3901.  
  3902. GetPlayerPos (playerid, x, y, z);
  3903. for (new i = 0; i != sizeof (SAZones); ++i)
  3904. {
  3905. if (x >= SAZones [i][SAZONE_AREA][0] && x <= SAZones [i][SAZONE_AREA][3] && y >= SAZones [i][SAZONE_AREA][1] && y <= SAZones [i][SAZONE_AREA][4])
  3906. {
  3907. strunpack (zone, SAZones [i][SAZONE_NAME], len);
  3908. return i;
  3909. }
  3910. }
  3911. return -1;
  3912. }
  3913.  
  3914. GetVehicleModelIDFromName(vname[])
  3915. {
  3916. for(new i = 0; i < 211; i++)
  3917. {
  3918. if ( strfind(VehicleNames[i], vname, true) != -1 )
  3919. return i + 400;
  3920. }
  3921. return -1;
  3922. }
  3923.  
  3924. GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
  3925. {
  3926. new Float:a;
  3927. GetPlayerPos(playerid, x, y, a);
  3928. GetPlayerFacingAngle(playerid, a);
  3929. if (GetPlayerVehicleID(playerid)) {
  3930. GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  3931. }
  3932. x += (distance * floatsin(-a, degrees));
  3933. y += (distance * floatcos(-a, degrees));
  3934. }
  3935.  
  3936. stock GivePlayerHealth(playerid,Float:Health) {
  3937. new Float:health; GetPlayerHealth(playerid,health); SetPlayerHealth(playerid,health+Health);
  3938. if (health > 100.0) { SetPlayerHealth(playerid, 100.0); } }
  3939. PUBLIC: OnPlayerModeChange(playerid, newmode)
  3940. {
  3941. PlayerMode[playerid] = newmode;
  3942. TextDrawSetText(PlayerModeTD[playerid], "~y~%s", GetModeName(playerid));
  3943. return 1;
  3944. }
  3945. stock HexToInt(string[])
  3946. {
  3947. if (string[0] == 0)
  3948. {
  3949. return 0;
  3950. }
  3951. new i;
  3952. new cur = 1;
  3953. new res = 0;
  3954. for (i = strlen(string); i > 0; i--)
  3955. {
  3956. if (string[i-1] < 58)
  3957. {
  3958. res = res + cur * (string[i - 1] - 48);
  3959. }
  3960. else
  3961. {
  3962. res = res + cur * (string[i-1] - 65 + 10);
  3963. cur = cur * 16;
  3964. }
  3965. }
  3966. return res;
  3967. }
  3968. stock CreateTransparentObject(modelid, Float:X, Float:Y, Float:Z, Float:rX=0.0, Float:rY=0.0, Float:rZ=0.0, worldid) {
  3969. new obj_ID = CreateDynamicObject(modelid, X, Y, Z, rX, rY, rZ, worldid, 0, -1, 300.0);
  3970. for(new i; i< 10; i++)
  3971. SetDynamicObjectMaterial(obj_ID, i, 0, "none", "none", HexToInt("RRGGBB00"));
  3972. return obj_ID;
  3973. }
  3974.  
  3975. stock CountPlayersInMode(mode)
  3976. {
  3977. new PlayerCount = 0;
  3978. for(new i=0; i<GetMaxPlayers(); i++)
  3979. {
  3980. if(IsPlayerConnected(i))
  3981. {
  3982. if(PlayerMode[i] == mode) PlayerCount++;
  3983. }
  3984. }
  3985. return PlayerCount;
  3986. }
  3987.  
  3988. PUBLIC: OnPlayerCrashVehicle(playerid, vehicleid, Float:damage)
  3989. {
  3990. SetVehicleHealth(vehicleid, 1000);
  3991. RepairVehicle(vehicleid);
  3992. return 1;
  3993. }
  3994.  
  3995. LoadObjects(FileName[])
  3996. {
  3997. new XML:file = xml_open(FileName);
  3998. #define STRING_LENG 256
  3999. new string[STRING_LENG];
  4000. for(new i = 1;i <= xml_get_int(file, "count(map/object)");i++)
  4001. {
  4002. new model, Float:MapDataString[7];
  4003. format(string, STRING_LENG, "map/object[%d]/@model", i);
  4004. model = xml_get_int(file, string);
  4005. format(string, STRING_LENG, "map/object[%d]/@posX", i);
  4006. MapDataString[0] = xml_get_float(file, string);
  4007. format(string, STRING_LENG, "map/object[%d]/@posY", i);
  4008. MapDataString[1] = xml_get_float(file, string);
  4009. format(string, STRING_LENG, "map/object[%d]/@posZ", i);
  4010. MapDataString[2] = xml_get_float(file, string);
  4011. format(string, STRING_LENG, "map/object[%d]/@rotX", i);
  4012. MapDataString[3] = xml_get_float(file, string);
  4013. format(string, STRING_LENG, "map/object[%d]/@rotY", i);
  4014. MapDataString[4] = xml_get_float(file, string);
  4015. format(string, STRING_LENG, "map/object[%d]/@rotZ", i);
  4016. MapDataString[5] = xml_get_float(file, string);
  4017. format(string, STRING_LENG, "map/object[%d]/@scale", i);
  4018. MapDataString[6] = xml_get_float(file,string);
  4019. if(MapDataString[6] == 1) CreateObject(model, MapDataString[0], MapDataString[1], MapDataString[2], MapDataString[3], MapDataString[4], MapDataString[5],300.0);
  4020. if(MapDataString[6] == 0) CreateTransparentObject(model,MapDataString[0], MapDataString[1], MapDataString[2], MapDataString[3], MapDataString[4], MapDataString[5],0);
  4021. }
  4022. }
  4023. PUBLIC: fcreate(filename[])
  4024. {
  4025. if (fexist(filename)){return false;}
  4026. new File:fhandle = fopen(filename,io_write);
  4027. fclose(fhandle);
  4028. return true;
  4029. }
  4030. stock LogEvent(fileName[], event[])
  4031. {
  4032. new path[100];
  4033. format(path, sizeof(path), "Logs/%s.log", fileName);
  4034. if(!fexist(path))
  4035. {
  4036. fcreate(path);
  4037. }
  4038. new File:log = fopen(path, io_append);
  4039. new str[150];
  4040. format(str, sizeof(str), "[%s - %s] %s\n",GetDate(), GetTime(), event);
  4041. fwrite(log, str);
  4042. fclose(log);
  4043. }
  4044.  
  4045. PUBLIC: UpdatePlayerLevel(playerid)
  4046. {
  4047. new exp[128], playerlevel;
  4048. for(new i = 0; i < 100; i++)
  4049. {
  4050. exp[i] = 50*i*i;
  4051. }
  4052. for(new i = 0; i < 100; i++) { if(SpielerInfo[playerid][pScore] >= exp[i]) { playerlevel = i + 1; } }
  4053. if(playerlevel > SpielerInfo[playerid][pLevel])
  4054. {
  4055. SpielerInfo[playerid][pLevel] = playerlevel;
  4056. GameTextForPlayer(playerid, "LEVEL UP", 3000, 4);
  4057. I_GivePlayerMoney(playerid, randomEx(300,700));
  4058. }
  4059. return 1;
  4060. }
  4061.  
  4062. PUBLIC: ReturnPlayerLevel(playerid)
  4063. {
  4064. new exp[128], playerlevel;
  4065. for(new i = 0; i < 100; i++)
  4066. {
  4067. exp[i] = 50*i*i;
  4068. }
  4069. for(new i = 0; i < 100; i++) { if(SpielerInfo[playerid][pScore] >= exp[i]) { playerlevel = i + 1; } }
  4070. return playerlevel;
  4071. }
Add Comment
Please, Sign In to add comment