Advertisement
Guest User

Untitled

a guest
Apr 5th, 2010
1,195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 130.35 KB | None | 0 0
  1. /*================================================================================================
  2. Vehicles system by James_Alex, vehicles ownership
  3. the best one that you can find.
  4. ==================================================================================================*/
  5. #include <a_samp>
  6. #include <utils>
  7. #include <dini>
  8.  
  9.  
  10. forward SaveVehicles(playerid, car);
  11. forward split(const strsrc[], strdest[][], delimiter);
  12. forward LoadVehicles(playerid, string[]);
  13. forward EngineOn(veha, playerid);
  14. forward PlayAlarmSound(vehicleid, Float:radi, time);
  15. forward BuyingVeh(playerid);
  16. forward ReapitingAlarm(i);
  17. forward EnableSearch(playerid);
  18. forward StopingAlarm(i);
  19.  
  20. #define COLOR_GREEN 0x33AA33AA
  21. #define COLOR_LIGHTRED 0xFF6347AA
  22. #define COLOR_WHITE 0xFFFFFFAA
  23. #define COLOR_YELLOW2 0xF5DEB3AA
  24. #define COLOR_LIGHTBLUE 0x33CCFFAA
  25. #define COLOR_YELLOW 0xFFFF00AA
  26. #define COLOR_GRAD1 0xB4B5B7FF
  27. #define COLOR_GRAD2 0xBFC0C2FF
  28. #define COLOR_GRAD3 0xCBCCCEFF
  29. #define COLOR_GRAD4 0xD8D8D8FF
  30. #define COLOR_GRAD5 0xE3E3E3FF
  31. #define COLOR_GRAD6 0xF0F0F0FF
  32. #define COLOR_YELLOW 0xFFFF00AA
  33. #define COLOR_WHITE 0xFFFFFFAA
  34. #define COLOR_GREY 0xAFAFAFAA
  35. #define COLOR_ORANGE 0xFF9900AA
  36. #define COLOR_PURPLE 0xC2A2DAAA
  37. #define MAX_ZONE_NAME 28
  38. #define SPAWN_GAS_MIN 40
  39. #define SPAWN_GAS_MAX 100
  40. #define SendFormattedText(%1,%2,%3,%4) do{ format(string,sizeof(string),(%3),%4); SendClientMessage((%1),(%2),string); }while(FALSE)
  41. //----------[VehicleNames]--------------//
  42. new strtok;
  43. new Menu:Colors;
  44. new Menu:Colors2;
  45. new Menu:ColorsS;
  46. new Menu:Colors2S;
  47. new AlarmTime[MAX_PLAYERS];
  48. new pCar[MAX_PLAYERS];
  49. new pToAccept[MAX_PLAYERS];
  50. new vRented[MAX_VEHICLES];
  51. new pSearched[MAX_PLAYERS];
  52. new pRent[MAX_PLAYERS];
  53. new pToolkit[MAX_PLAYERS];
  54. new Egale[MAX_PLAYERS];
  55. new vToAccept[MAX_PLAYERS];
  56. new prToAccept[MAX_PLAYERS];
  57. new RentCheck[MAX_PLAYERS];
  58. new pColor[MAX_PLAYERS];
  59. new pColorS[MAX_PLAYERS];
  60. new pColor2S[MAX_PLAYERS];
  61. new VehicleNames[212][] = {
  62. "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perennial", "Sentinel",
  63. "Dumper", "Firetruck" , "Trashmaster" , "Stretch", "Manana", "Infernus",
  64. "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  65. "Esperanto", "Taxi", "Washington", "Bobcat", "Mr Whoopee", "BF Injection",
  66. "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
  67. "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
  68. "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
  69. "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
  70. "Reefer", "Tropic", "Flatbed","Yankee", "Caddy", "Solair","Berkley's RC Van",
  71. "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron","RC Raider","Glendale",
  72. "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
  73. "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
  74. "Burrito", "Camper", "Marquis", "Baggage", "Dozer","Maverick","News Chopper",
  75. "Rancher", "FBI Rancher", "Virgo", "Greenwood","Jetmax","Hotring","Sandking",
  76. "Blista Compact", "Police Maverick", "Boxville", "Benson","Mesa","RC Goblin",
  77. "Hotring Racer", "Hotring Racer", "Bloodring Banger", "Rancher", "Super GT",
  78. "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropdust", "Stunt",
  79. "Tanker", "RoadTrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
  80. "FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona",
  81. "FBI Truck", "Willard", "Forklift","Tractor","Combine","Feltzer","Remington",
  82. "Slamvan", "Blade", "Freight", "Streak","Vortex","Vincent","Bullet","Clover",
  83. "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa",
  84. "Sunrise", "Merit", "Utility Truck", "Nevada", "Yosemite", "Windsor", "Monster",
  85. "Monster","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RCTiger",
  86. "Flash","Tahoma","Savanna", "Bandito", "Freight", "Trailer", "Kart", "Mower",
  87. "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley",
  88. "Stafford", "BF-400", "Newsvan","Tug","Trailer","Emperor","Wayfarer","Euros",
  89. "Hotdog", "Club", "Trailer", "Trailer","Andromada","Dodo","RC Cam", "Launch",
  90. "Police Car (LSPD)", "Police Car (SFPD)","Police Car (LVPD)","Police Ranger",
  91. "Picador", "S.W.A.T. Van", "Alpha", "Phoenix", "Glendale", "Sadler",
  92. "Luggage Trailer","Luggage Trailer","Stair Trailer", "Boxville", "Farm Plow",
  93. "Utility Trailer"
  94. };
  95. new CarsPrices[212] =
  96. {
  97. 30000,
  98. 25000,
  99. 150000,
  100. 22000,
  101. 14000,
  102. 50000,
  103. 0,
  104. 0,
  105. 0,
  106. 400000,
  107. 20000,
  108. 350000,
  109. 60000,
  110. 8000,
  111. 7000,
  112. 350000,
  113. 0,
  114. 0,
  115. 9000,
  116. 15000,
  117. 0,
  118. 20000,
  119. 7500,
  120. 0,
  121. 25000,
  122. 0,
  123. 20000,
  124. 0,
  125. 0,
  126. 75000,
  127. 0,
  128. 0,
  129. 0,
  130. 0,
  131. 15000,
  132. 0,
  133. 15000,
  134. 0,
  135. 0,
  136. 25000,
  137. 12000,
  138. 0,
  139. 0,
  140. 0,
  141. 35000,
  142. 35000,
  143. 0,
  144. 0,
  145. 0,
  146. 0,
  147. 0,
  148. 500000,
  149. 0,
  150. 0,
  151. 0,
  152. 0,
  153. 60000,
  154. 0,
  155. 25000,
  156. 8000,
  157. 0,
  158. 80000,
  159. 25000,
  160. 50000,
  161. 0,
  162. 0,
  163. 18000,
  164. 18000,
  165. 35000,
  166. 0,
  167. 0,
  168. 25000,
  169. 0,
  170. 0,
  171. 12000,
  172. 30000,
  173. 0,
  174. 44000,
  175. 7000,
  176. 11000,
  177. 65000,
  178. 0,
  179. 8000,
  180. 0,
  181. 0,
  182. 0,
  183. 0,
  184. 0,
  185. 0,
  186. 14000,
  187. 0,
  188. 25000,
  189. 30000,
  190. 0,
  191. 0,
  192. 0,
  193. 17000,
  194. 0,
  195. 14000,
  196. 12000,
  197. 13000,
  198. 0,
  199. 0,
  200. 0,
  201. 0,
  202. 30000,
  203. 390000,
  204. 50000,
  205. 0,
  206. 0,
  207. 0,
  208. 0,
  209. 0,
  210. 0,
  211. 70000,
  212. 65000,
  213. 22000,
  214. 23000,
  215. 18000,
  216. 0,
  217. 0,
  218. 90000,
  219. 85000,
  220. 0,
  221. 0,
  222. 0,
  223. 12000,
  224. 14000,
  225. 0,
  226. 23000,
  227. 0,
  228. 0,
  229. 0,
  230. 41000,
  231. 40000,
  232. 17000,
  233. 75000,
  234. 0,
  235. 0,
  236. 0,
  237. 15000,
  238. 450000,
  239. 12000,
  240. 12000,
  241. 0,
  242. 38000,
  243. 30000,
  244. 19000,
  245. 0,
  246. 12000,
  247. 45000,
  248. 43000,
  249. 0,
  250. 0,
  251. 12000,
  252. 35000,
  253. 0,
  254. 0,
  255. 250000,
  256. 150000,
  257. 22000,
  258. 85000,
  259. 0,
  260. 0,
  261. 16000,
  262. 31000,
  263. 75000,
  264. 0,
  265. 0,
  266. 0,
  267. 0,
  268. 0,
  269. 0,
  270. 0,
  271. 35000,
  272. 31000,
  273. 0,
  274. 0,
  275. 12000,
  276. 56000,
  277. 82000,
  278. 0,
  279. 0,
  280. 0,
  281. 35000,
  282. 8000,
  283. 36000,
  284. 0,
  285. 29000,
  286. 0,
  287. 0,
  288. 0,
  289. 0,
  290. 0,
  291. 0,
  292. 0,
  293. 0,
  294. 0,
  295. 0,
  296. 12000,
  297. 0,
  298. 45000,
  299. 55000,
  300. 5000,
  301. 4000,
  302. 0,
  303. 0,
  304. 0,
  305. 15000,
  306. 0,
  307. 0
  308. };
  309. enum SAZONE_MAIN { //Betamaster
  310. SAZONE_NAME[28],
  311. Float:SAZONE_AREA[6]
  312. };
  313.  
  314. static const gSAZones[][SAZONE_MAIN] = { // Majority of names and area coordinates adopted from Mabako's 'Zones Script' v0.2
  315. // NAME AREA (Xmin,Ymin,Zmin,Xmax,Ymax,Zmax)
  316. {"The Big Ear", {-410.00,1403.30,-3.00,-137.90,1681.20,200.00}},
  317. {"Aldea Malvada", {-1372.10,2498.50,0.00,-1277.50,2615.30,200.00}},
  318. {"Angel Pine", {-2324.90,-2584.20,-6.10,-1964.20,-2212.10,200.00}},
  319. {"Arco del Oeste", {-901.10,2221.80,0.00,-592.00,2571.90,200.00}},
  320. {"Avispa Country Club", {-2646.40,-355.40,0.00,-2270.00,-222.50,200.00}},
  321. {"Avispa Country Club", {-2831.80,-430.20,-6.10,-2646.40,-222.50,200.00}},
  322. {"Avispa Country Club", {-2361.50,-417.10,0.00,-2270.00,-355.40,200.00}},
  323. {"Avispa Country Club", {-2667.80,-302.10,-28.80,-2646.40,-262.30,71.10}},
  324. {"Avispa Country Club", {-2470.00,-355.40,0.00,-2270.00,-318.40,46.10}},
  325. {"Avispa Country Club", {-2550.00,-355.40,0.00,-2470.00,-318.40,39.70}},
  326. {"Back o Beyond", {-1166.90,-2641.10,0.00,-321.70,-1856.00,200.00}},
  327. {"Battery Point", {-2741.00,1268.40,-4.50,-2533.00,1490.40,200.00}},
  328. {"Bayside", {-2741.00,2175.10,0.00,-2353.10,2722.70,200.00}},
  329. {"Bayside Marina", {-2353.10,2275.70,0.00,-2153.10,2475.70,200.00}},
  330. {"Beacon Hill", {-399.60,-1075.50,-1.40,-319.00,-977.50,198.50}},
  331. {"Blackfield", {964.30,1203.20,-89.00,1197.30,1403.20,110.90}},
  332. {"Blackfield", {964.30,1403.20,-89.00,1197.30,1726.20,110.90}},
  333. {"Blackfield Chapel", {1375.60,596.30,-89.00,1558.00,823.20,110.90}},
  334. {"Blackfield Chapel", {1325.60,596.30,-89.00,1375.60,795.00,110.90}},
  335. {"Blackfield Intersection", {1197.30,1044.60,-89.00,1277.00,1163.30,110.90}},
  336. {"Blackfield Intersection", {1166.50,795.00,-89.00,1375.60,1044.60,110.90}},
  337. {"Blackfield Intersection", {1277.00,1044.60,-89.00,1315.30,1087.60,110.90}},
  338. {"Blackfield Intersection", {1375.60,823.20,-89.00,1457.30,919.40,110.90}},
  339. {"Blueberry", {104.50,-220.10,2.30,349.60,152.20,200.00}},
  340. {"Blueberry", {19.60,-404.10,3.80,349.60,-220.10,200.00}},
  341. {"Blueberry Acres", {-319.60,-220.10,0.00,104.50,293.30,200.00}},
  342. {"Caligula's Palace", {2087.30,1543.20,-89.00,2437.30,1703.20,110.90}},
  343. {"Caligula's Palace", {2137.40,1703.20,-89.00,2437.30,1783.20,110.90}},
  344. {"Calton Heights", {-2274.10,744.10,-6.10,-1982.30,1358.90,200.00}},
  345. {"Chinatown", {-2274.10,578.30,-7.60,-2078.60,744.10,200.00}},
  346. {"City Hall", {-2867.80,277.40,-9.10,-2593.40,458.40,200.00}},
  347. {"Come-A-Lot", {2087.30,943.20,-89.00,2623.10,1203.20,110.90}},
  348. {"Commerce", {1323.90,-1842.20,-89.00,1701.90,-1722.20,110.90}},
  349. {"Commerce", {1323.90,-1722.20,-89.00,1440.90,-1577.50,110.90}},
  350. {"Commerce", {1370.80,-1577.50,-89.00,1463.90,-1384.90,110.90}},
  351. {"Commerce", {1463.90,-1577.50,-89.00,1667.90,-1430.80,110.90}},
  352. {"Commerce", {1583.50,-1722.20,-89.00,1758.90,-1577.50,110.90}},
  353. {"Commerce", {1667.90,-1577.50,-89.00,1812.60,-1430.80,110.90}},
  354. {"Conference Center", {1046.10,-1804.20,-89.00,1323.90,-1722.20,110.90}},
  355. {"Conference Center", {1073.20,-1842.20,-89.00,1323.90,-1804.20,110.90}},
  356. {"Cranberry Station", {-2007.80,56.30,0.00,-1922.00,224.70,100.00}},
  357. {"Creek", {2749.90,1937.20,-89.00,2921.60,2669.70,110.90}},
  358. {"Dillimore", {580.70,-674.80,-9.50,861.00,-404.70,200.00}},
  359. {"Doherty", {-2270.00,-324.10,-0.00,-1794.90,-222.50,200.00}},
  360. {"Doherty", {-2173.00,-222.50,-0.00,-1794.90,265.20,200.00}},
  361. {"Downtown", {-1982.30,744.10,-6.10,-1871.70,1274.20,200.00}},
  362. {"Downtown", {-1871.70,1176.40,-4.50,-1620.30,1274.20,200.00}},
  363. {"Downtown", {-1700.00,744.20,-6.10,-1580.00,1176.50,200.00}},
  364. {"Downtown", {-1580.00,744.20,-6.10,-1499.80,1025.90,200.00}},
  365. {"Downtown", {-2078.60,578.30,-7.60,-1499.80,744.20,200.00}},
  366. {"Downtown", {-1993.20,265.20,-9.10,-1794.90,578.30,200.00}},
  367. {"Downtown Los Santos", {1463.90,-1430.80,-89.00,1724.70,-1290.80,110.90}},
  368. {"Downtown Los Santos", {1724.70,-1430.80,-89.00,1812.60,-1250.90,110.90}},
  369. {"Downtown Los Santos", {1463.90,-1290.80,-89.00,1724.70,-1150.80,110.90}},
  370. {"Downtown Los Santos", {1370.80,-1384.90,-89.00,1463.90,-1170.80,110.90}},
  371. {"Downtown Los Santos", {1724.70,-1250.90,-89.00,1812.60,-1150.80,110.90}},
  372. {"Downtown Los Santos", {1370.80,-1170.80,-89.00,1463.90,-1130.80,110.90}},
  373. {"Downtown Los Santos", {1378.30,-1130.80,-89.00,1463.90,-1026.30,110.90}},
  374. {"Downtown Los Santos", {1391.00,-1026.30,-89.00,1463.90,-926.90,110.90}},
  375. {"Downtown Los Santos", {1507.50,-1385.20,110.90,1582.50,-1325.30,335.90}},
  376. {"East Beach", {2632.80,-1852.80,-89.00,2959.30,-1668.10,110.90}},
  377. {"East Beach", {2632.80,-1668.10,-89.00,2747.70,-1393.40,110.90}},
  378. {"East Beach", {2747.70,-1668.10,-89.00,2959.30,-1498.60,110.90}},
  379. {"East Beach", {2747.70,-1498.60,-89.00,2959.30,-1120.00,110.90}},
  380. {"East Los Santos", {2421.00,-1628.50,-89.00,2632.80,-1454.30,110.90}},
  381. {"East Los Santos", {2222.50,-1628.50,-89.00,2421.00,-1494.00,110.90}},
  382. {"East Los Santos", {2266.20,-1494.00,-89.00,2381.60,-1372.00,110.90}},
  383. {"East Los Santos", {2381.60,-1494.00,-89.00,2421.00,-1454.30,110.90}},
  384. {"East Los Santos", {2281.40,-1372.00,-89.00,2381.60,-1135.00,110.90}},
  385. {"East Los Santos", {2381.60,-1454.30,-89.00,2462.10,-1135.00,110.90}},
  386. {"East Los Santos", {2462.10,-1454.30,-89.00,2581.70,-1135.00,110.90}},
  387. {"Easter Basin", {-1794.90,249.90,-9.10,-1242.90,578.30,200.00}},
  388. {"Easter Basin", {-1794.90,-50.00,-0.00,-1499.80,249.90,200.00}},
  389. {"Easter Bay Airport", {-1499.80,-50.00,-0.00,-1242.90,249.90,200.00}},
  390. {"Easter Bay Airport", {-1794.90,-730.10,-3.00,-1213.90,-50.00,200.00}},
  391. {"Easter Bay Airport", {-1213.90,-730.10,0.00,-1132.80,-50.00,200.00}},
  392. {"Easter Bay Airport", {-1242.90,-50.00,0.00,-1213.90,578.30,200.00}},
  393. {"Easter Bay Airport", {-1213.90,-50.00,-4.50,-947.90,578.30,200.00}},
  394. {"Easter Bay Airport", {-1315.40,-405.30,15.40,-1264.40,-209.50,25.40}},
  395. {"Easter Bay Airport", {-1354.30,-287.30,15.40,-1315.40,-209.50,25.40}},
  396. {"Easter Bay Airport", {-1490.30,-209.50,15.40,-1264.40,-148.30,25.40}},
  397. {"Easter Bay Chemicals", {-1132.80,-768.00,0.00,-956.40,-578.10,200.00}},
  398. {"Easter Bay Chemicals", {-1132.80,-787.30,0.00,-956.40,-768.00,200.00}},
  399. {"El Castillo del Diablo", {-464.50,2217.60,0.00,-208.50,2580.30,200.00}},
  400. {"El Castillo del Diablo", {-208.50,2123.00,-7.60,114.00,2337.10,200.00}},
  401. {"El Castillo del Diablo", {-208.50,2337.10,0.00,8.40,2487.10,200.00}},
  402. {"El Corona", {1812.60,-2179.20,-89.00,1970.60,-1852.80,110.90}},
  403. {"El Corona", {1692.60,-2179.20,-89.00,1812.60,-1842.20,110.90}},
  404. {"El Quebrados", {-1645.20,2498.50,0.00,-1372.10,2777.80,200.00}},
  405. {"Esplanade East", {-1620.30,1176.50,-4.50,-1580.00,1274.20,200.00}},
  406. {"Esplanade East", {-1580.00,1025.90,-6.10,-1499.80,1274.20,200.00}},
  407. {"Esplanade East", {-1499.80,578.30,-79.60,-1339.80,1274.20,20.30}},
  408. {"Esplanade North", {-2533.00,1358.90,-4.50,-1996.60,1501.20,200.00}},
  409. {"Esplanade North", {-1996.60,1358.90,-4.50,-1524.20,1592.50,200.00}},
  410. {"Esplanade North", {-1982.30,1274.20,-4.50,-1524.20,1358.90,200.00}},
  411. {"Fallen Tree", {-792.20,-698.50,-5.30,-452.40,-380.00,200.00}},
  412. {"Fallow Bridge", {434.30,366.50,0.00,603.00,555.60,200.00}},
  413. {"Fern Ridge", {508.10,-139.20,0.00,1306.60,119.50,200.00}},
  414. {"Financial", {-1871.70,744.10,-6.10,-1701.30,1176.40,300.00}},
  415. {"Fisher's Lagoon", {1916.90,-233.30,-100.00,2131.70,13.80,200.00}},
  416. {"Flint Intersection", {-187.70,-1596.70,-89.00,17.00,-1276.60,110.90}},
  417. {"Flint Range", {-594.10,-1648.50,0.00,-187.70,-1276.60,200.00}},
  418. {"Fort Carson", {-376.20,826.30,-3.00,123.70,1220.40,200.00}},
  419. {"Foster Valley", {-2270.00,-430.20,-0.00,-2178.60,-324.10,200.00}},
  420. {"Foster Valley", {-2178.60,-599.80,-0.00,-1794.90,-324.10,200.00}},
  421. {"Foster Valley", {-2178.60,-1115.50,0.00,-1794.90,-599.80,200.00}},
  422. {"Foster Valley", {-2178.60,-1250.90,0.00,-1794.90,-1115.50,200.00}},
  423. {"Frederick Bridge", {2759.20,296.50,0.00,2774.20,594.70,200.00}},
  424. {"Gant Bridge", {-2741.40,1659.60,-6.10,-2616.40,2175.10,200.00}},
  425. {"Gant Bridge", {-2741.00,1490.40,-6.10,-2616.40,1659.60,200.00}},
  426. {"Ganton", {2222.50,-1852.80,-89.00,2632.80,-1722.30,110.90}},
  427. {"Ganton", {2222.50,-1722.30,-89.00,2632.80,-1628.50,110.90}},
  428. {"Garcia", {-2411.20,-222.50,-0.00,-2173.00,265.20,200.00}},
  429. {"Garcia", {-2395.10,-222.50,-5.30,-2354.00,-204.70,200.00}},
  430. {"Garver Bridge", {-1339.80,828.10,-89.00,-1213.90,1057.00,110.90}},
  431. {"Garver Bridge", {-1213.90,950.00,-89.00,-1087.90,1178.90,110.90}},
  432. {"Garver Bridge", {-1499.80,696.40,-179.60,-1339.80,925.30,20.30}},
  433. {"Glen Park", {1812.60,-1449.60,-89.00,1996.90,-1350.70,110.90}},
  434. {"Glen Park", {1812.60,-1100.80,-89.00,1994.30,-973.30,110.90}},
  435. {"Glen Park", {1812.60,-1350.70,-89.00,2056.80,-1100.80,110.90}},
  436. {"Green Palms", {176.50,1305.40,-3.00,338.60,1520.70,200.00}},
  437. {"Greenglass College", {964.30,1044.60,-89.00,1197.30,1203.20,110.90}},
  438. {"Greenglass College", {964.30,930.80,-89.00,1166.50,1044.60,110.90}},
  439. {"Hampton Barns", {603.00,264.30,0.00,761.90,366.50,200.00}},
  440. {"Hankypanky Point", {2576.90,62.10,0.00,2759.20,385.50,200.00}},
  441. {"Harry Gold Parkway", {1777.30,863.20,-89.00,1817.30,2342.80,110.90}},
  442. {"Hashbury", {-2593.40,-222.50,-0.00,-2411.20,54.70,200.00}},
  443. {"Hilltop Farm", {967.30,-450.30,-3.00,1176.70,-217.90,200.00}},
  444. {"Hunter Quarry", {337.20,710.80,-115.20,860.50,1031.70,203.70}},
  445. {"Idlewood", {1812.60,-1852.80,-89.00,1971.60,-1742.30,110.90}},
  446. {"Idlewood", {1812.60,-1742.30,-89.00,1951.60,-1602.30,110.90}},
  447. {"Idlewood", {1951.60,-1742.30,-89.00,2124.60,-1602.30,110.90}},
  448. {"Idlewood", {1812.60,-1602.30,-89.00,2124.60,-1449.60,110.90}},
  449. {"Idlewood", {2124.60,-1742.30,-89.00,2222.50,-1494.00,110.90}},
  450. {"Idlewood", {1971.60,-1852.80,-89.00,2222.50,-1742.30,110.90}},
  451. {"Jefferson", {1996.90,-1449.60,-89.00,2056.80,-1350.70,110.90}},
  452. {"Jefferson", {2124.60,-1494.00,-89.00,2266.20,-1449.60,110.90}},
  453. {"Jefferson", {2056.80,-1372.00,-89.00,2281.40,-1210.70,110.90}},
  454. {"Jefferson", {2056.80,-1210.70,-89.00,2185.30,-1126.30,110.90}},
  455. {"Jefferson", {2185.30,-1210.70,-89.00,2281.40,-1154.50,110.90}},
  456. {"Jefferson", {2056.80,-1449.60,-89.00,2266.20,-1372.00,110.90}},
  457. {"Julius Thruway East", {2623.10,943.20,-89.00,2749.90,1055.90,110.90}},
  458. {"Julius Thruway East", {2685.10,1055.90,-89.00,2749.90,2626.50,110.90}},
  459. {"Julius Thruway East", {2536.40,2442.50,-89.00,2685.10,2542.50,110.90}},
  460. {"Julius Thruway East", {2625.10,2202.70,-89.00,2685.10,2442.50,110.90}},
  461. {"Julius Thruway North", {2498.20,2542.50,-89.00,2685.10,2626.50,110.90}},
  462. {"Julius Thruway North", {2237.40,2542.50,-89.00,2498.20,2663.10,110.90}},
  463. {"Julius Thruway North", {2121.40,2508.20,-89.00,2237.40,2663.10,110.90}},
  464. {"Julius Thruway North", {1938.80,2508.20,-89.00,2121.40,2624.20,110.90}},
  465. {"Julius Thruway North", {1534.50,2433.20,-89.00,1848.40,2583.20,110.90}},
  466. {"Julius Thruway North", {1848.40,2478.40,-89.00,1938.80,2553.40,110.90}},
  467. {"Julius Thruway North", {1704.50,2342.80,-89.00,1848.40,2433.20,110.90}},
  468. {"Julius Thruway North", {1377.30,2433.20,-89.00,1534.50,2507.20,110.90}},
  469. {"Julius Thruway South", {1457.30,823.20,-89.00,2377.30,863.20,110.90}},
  470. {"Julius Thruway South", {2377.30,788.80,-89.00,2537.30,897.90,110.90}},
  471. {"Julius Thruway West", {1197.30,1163.30,-89.00,1236.60,2243.20,110.90}},
  472. {"Julius Thruway West", {1236.60,2142.80,-89.00,1297.40,2243.20,110.90}},
  473. {"Juniper Hill", {-2533.00,578.30,-7.60,-2274.10,968.30,200.00}},
  474. {"Juniper Hollow", {-2533.00,968.30,-6.10,-2274.10,1358.90,200.00}},
  475. {"K.A.C.C. Military Fuels", {2498.20,2626.50,-89.00,2749.90,2861.50,110.90}},
  476. {"Kincaid Bridge", {-1339.80,599.20,-89.00,-1213.90,828.10,110.90}},
  477. {"Kincaid Bridge", {-1213.90,721.10,-89.00,-1087.90,950.00,110.90}},
  478. {"Kincaid Bridge", {-1087.90,855.30,-89.00,-961.90,986.20,110.90}},
  479. {"King's", {-2329.30,458.40,-7.60,-1993.20,578.30,200.00}},
  480. {"King's", {-2411.20,265.20,-9.10,-1993.20,373.50,200.00}},
  481. {"King's", {-2253.50,373.50,-9.10,-1993.20,458.40,200.00}},
  482. {"LVA Freight Depot", {1457.30,863.20,-89.00,1777.40,1143.20,110.90}},
  483. {"LVA Freight Depot", {1375.60,919.40,-89.00,1457.30,1203.20,110.90}},
  484. {"LVA Freight Depot", {1277.00,1087.60,-89.00,1375.60,1203.20,110.90}},
  485. {"LVA Freight Depot", {1315.30,1044.60,-89.00,1375.60,1087.60,110.90}},
  486. {"LVA Freight Depot", {1236.60,1163.40,-89.00,1277.00,1203.20,110.90}},
  487. {"Las Barrancas", {-926.10,1398.70,-3.00,-719.20,1634.60,200.00}},
  488. {"Las Brujas", {-365.10,2123.00,-3.00,-208.50,2217.60,200.00}},
  489. {"Las Colinas", {1994.30,-1100.80,-89.00,2056.80,-920.80,110.90}},
  490. {"Las Colinas", {2056.80,-1126.30,-89.00,2126.80,-920.80,110.90}},
  491. {"Las Colinas", {2185.30,-1154.50,-89.00,2281.40,-934.40,110.90}},
  492. {"Las Colinas", {2126.80,-1126.30,-89.00,2185.30,-934.40,110.90}},
  493. {"Las Colinas", {2747.70,-1120.00,-89.00,2959.30,-945.00,110.90}},
  494. {"Las Colinas", {2632.70,-1135.00,-89.00,2747.70,-945.00,110.90}},
  495. {"Las Colinas", {2281.40,-1135.00,-89.00,2632.70,-945.00,110.90}},
  496. {"Las Payasadas", {-354.30,2580.30,2.00,-133.60,2816.80,200.00}},
  497. {"Las Venturas Airport", {1236.60,1203.20,-89.00,1457.30,1883.10,110.90}},
  498. {"Las Venturas Airport", {1457.30,1203.20,-89.00,1777.30,1883.10,110.90}},
  499. {"Las Venturas Airport", {1457.30,1143.20,-89.00,1777.40,1203.20,110.90}},
  500. {"Las Venturas Airport", {1515.80,1586.40,-12.50,1729.90,1714.50,87.50}},
  501. {"Last Dime Motel", {1823.00,596.30,-89.00,1997.20,823.20,110.90}},
  502. {"Leafy Hollow", {-1166.90,-1856.00,0.00,-815.60,-1602.00,200.00}},
  503. {"Liberty City", {-1000.00,400.00,1300.00,-700.00,600.00,1400.00}},
  504. {"Lil' Probe Inn", {-90.20,1286.80,-3.00,153.80,1554.10,200.00}},
  505. {"Linden Side", {2749.90,943.20,-89.00,2923.30,1198.90,110.90}},
  506. {"Linden Station", {2749.90,1198.90,-89.00,2923.30,1548.90,110.90}},
  507. {"Linden Station", {2811.20,1229.50,-39.50,2861.20,1407.50,60.40}},
  508. {"Little Mexico", {1701.90,-1842.20,-89.00,1812.60,-1722.20,110.90}},
  509. {"Little Mexico", {1758.90,-1722.20,-89.00,1812.60,-1577.50,110.90}},
  510. {"Los Flores", {2581.70,-1454.30,-89.00,2632.80,-1393.40,110.90}},
  511. {"Los Flores", {2581.70,-1393.40,-89.00,2747.70,-1135.00,110.90}},
  512. {"Los Santos International", {1249.60,-2394.30,-89.00,1852.00,-2179.20,110.90}},
  513. {"Los Santos International", {1852.00,-2394.30,-89.00,2089.00,-2179.20,110.90}},
  514. {"Los Santos International", {1382.70,-2730.80,-89.00,2201.80,-2394.30,110.90}},
  515. {"Los Santos International", {1974.60,-2394.30,-39.00,2089.00,-2256.50,60.90}},
  516. {"Los Santos International", {1400.90,-2669.20,-39.00,2189.80,-2597.20,60.90}},
  517. {"Los Santos International", {2051.60,-2597.20,-39.00,2152.40,-2394.30,60.90}},
  518. {"Marina", {647.70,-1804.20,-89.00,851.40,-1577.50,110.90}},
  519. {"Marina", {647.70,-1577.50,-89.00,807.90,-1416.20,110.90}},
  520. {"Marina", {807.90,-1577.50,-89.00,926.90,-1416.20,110.90}},
  521. {"Market", {787.40,-1416.20,-89.00,1072.60,-1310.20,110.90}},
  522. {"Market", {952.60,-1310.20,-89.00,1072.60,-1130.80,110.90}},
  523. {"Market", {1072.60,-1416.20,-89.00,1370.80,-1130.80,110.90}},
  524. {"Market", {926.90,-1577.50,-89.00,1370.80,-1416.20,110.90}},
  525. {"Market Station", {787.40,-1410.90,-34.10,866.00,-1310.20,65.80}},
  526. {"Martin Bridge", {-222.10,293.30,0.00,-122.10,476.40,200.00}},
  527. {"Missionary Hill", {-2994.40,-811.20,0.00,-2178.60,-430.20,200.00}},
  528. {"Montgomery", {1119.50,119.50,-3.00,1451.40,493.30,200.00}},
  529. {"Montgomery", {1451.40,347.40,-6.10,1582.40,420.80,200.00}},
  530. {"Montgomery Intersection", {1546.60,208.10,0.00,1745.80,347.40,200.00}},
  531. {"Montgomery Intersection", {1582.40,347.40,0.00,1664.60,401.70,200.00}},
  532. {"Mulholland", {1414.00,-768.00,-89.00,1667.60,-452.40,110.90}},
  533. {"Mulholland", {1281.10,-452.40,-89.00,1641.10,-290.90,110.90}},
  534. {"Mulholland", {1269.10,-768.00,-89.00,1414.00,-452.40,110.90}},
  535. {"Mulholland", {1357.00,-926.90,-89.00,1463.90,-768.00,110.90}},
  536. {"Mulholland", {1318.10,-910.10,-89.00,1357.00,-768.00,110.90}},
  537. {"Mulholland", {1169.10,-910.10,-89.00,1318.10,-768.00,110.90}},
  538. {"Mulholland", {768.60,-954.60,-89.00,952.60,-860.60,110.90}},
  539. {"Mulholland", {687.80,-860.60,-89.00,911.80,-768.00,110.90}},
  540. {"Mulholland", {737.50,-768.00,-89.00,1142.20,-674.80,110.90}},
  541. {"Mulholland", {1096.40,-910.10,-89.00,1169.10,-768.00,110.90}},
  542. {"Mulholland", {952.60,-937.10,-89.00,1096.40,-860.60,110.90}},
  543. {"Mulholland", {911.80,-860.60,-89.00,1096.40,-768.00,110.90}},
  544. {"Mulholland", {861.00,-674.80,-89.00,1156.50,-600.80,110.90}},
  545. {"Mulholland Intersection", {1463.90,-1150.80,-89.00,1812.60,-768.00,110.90}},
  546. {"North Rock", {2285.30,-768.00,0.00,2770.50,-269.70,200.00}},
  547. {"Ocean Docks", {2373.70,-2697.00,-89.00,2809.20,-2330.40,110.90}},
  548. {"Ocean Docks", {2201.80,-2418.30,-89.00,2324.00,-2095.00,110.90}},
  549. {"Ocean Docks", {2324.00,-2302.30,-89.00,2703.50,-2145.10,110.90}},
  550. {"Ocean Docks", {2089.00,-2394.30,-89.00,2201.80,-2235.80,110.90}},
  551. {"Ocean Docks", {2201.80,-2730.80,-89.00,2324.00,-2418.30,110.90}},
  552. {"Ocean Docks", {2703.50,-2302.30,-89.00,2959.30,-2126.90,110.90}},
  553. {"Ocean Docks", {2324.00,-2145.10,-89.00,2703.50,-2059.20,110.90}},
  554. {"Ocean Flats", {-2994.40,277.40,-9.10,-2867.80,458.40,200.00}},
  555. {"Ocean Flats", {-2994.40,-222.50,-0.00,-2593.40,277.40,200.00}},
  556. {"Ocean Flats", {-2994.40,-430.20,-0.00,-2831.80,-222.50,200.00}},
  557. {"Octane Springs", {338.60,1228.50,0.00,664.30,1655.00,200.00}},
  558. {"Old Venturas Strip", {2162.30,2012.10,-89.00,2685.10,2202.70,110.90}},
  559. {"Palisades", {-2994.40,458.40,-6.10,-2741.00,1339.60,200.00}},
  560. {"Palomino Creek", {2160.20,-149.00,0.00,2576.90,228.30,200.00}},
  561. {"Paradiso", {-2741.00,793.40,-6.10,-2533.00,1268.40,200.00}},
  562. {"Pershing Square", {1440.90,-1722.20,-89.00,1583.50,-1577.50,110.90}},
  563. {"Pilgrim", {2437.30,1383.20,-89.00,2624.40,1783.20,110.90}},
  564. {"Pilgrim", {2624.40,1383.20,-89.00,2685.10,1783.20,110.90}},
  565. {"Pilson Intersection", {1098.30,2243.20,-89.00,1377.30,2507.20,110.90}},
  566. {"Pirates in Men's Pants", {1817.30,1469.20,-89.00,2027.40,1703.20,110.90}},
  567. {"Playa del Seville", {2703.50,-2126.90,-89.00,2959.30,-1852.80,110.90}},
  568. {"Prickle Pine", {1534.50,2583.20,-89.00,1848.40,2863.20,110.90}},
  569. {"Prickle Pine", {1117.40,2507.20,-89.00,1534.50,2723.20,110.90}},
  570. {"Prickle Pine", {1848.40,2553.40,-89.00,1938.80,2863.20,110.90}},
  571. {"Prickle Pine", {1938.80,2624.20,-89.00,2121.40,2861.50,110.90}},
  572. {"Queens", {-2533.00,458.40,0.00,-2329.30,578.30,200.00}},
  573. {"Queens", {-2593.40,54.70,0.00,-2411.20,458.40,200.00}},
  574. {"Queens", {-2411.20,373.50,0.00,-2253.50,458.40,200.00}},
  575. {"Randolph Industrial Estate", {1558.00,596.30,-89.00,1823.00,823.20,110.90}},
  576. {"Redsands East", {1817.30,2011.80,-89.00,2106.70,2202.70,110.90}},
  577. {"Redsands East", {1817.30,2202.70,-89.00,2011.90,2342.80,110.90}},
  578. {"Redsands East", {1848.40,2342.80,-89.00,2011.90,2478.40,110.90}},
  579. {"Redsands West", {1236.60,1883.10,-89.00,1777.30,2142.80,110.90}},
  580. {"Redsands West", {1297.40,2142.80,-89.00,1777.30,2243.20,110.90}},
  581. {"Redsands West", {1377.30,2243.20,-89.00,1704.50,2433.20,110.90}},
  582. {"Redsands West", {1704.50,2243.20,-89.00,1777.30,2342.80,110.90}},
  583. {"Regular Tom", {-405.70,1712.80,-3.00,-276.70,1892.70,200.00}},
  584. {"Richman", {647.50,-1118.20,-89.00,787.40,-954.60,110.90}},
  585. {"Richman", {647.50,-954.60,-89.00,768.60,-860.60,110.90}},
  586. {"Richman", {225.10,-1369.60,-89.00,334.50,-1292.00,110.90}},
  587. {"Richman", {225.10,-1292.00,-89.00,466.20,-1235.00,110.90}},
  588. {"Richman", {72.60,-1404.90,-89.00,225.10,-1235.00,110.90}},
  589. {"Richman", {72.60,-1235.00,-89.00,321.30,-1008.10,110.90}},
  590. {"Richman", {321.30,-1235.00,-89.00,647.50,-1044.00,110.90}},
  591. {"Richman", {321.30,-1044.00,-89.00,647.50,-860.60,110.90}},
  592. {"Richman", {321.30,-860.60,-89.00,687.80,-768.00,110.90}},
  593. {"Richman", {321.30,-768.00,-89.00,700.70,-674.80,110.90}},
  594. {"Robada Intersection", {-1119.00,1178.90,-89.00,-862.00,1351.40,110.90}},
  595. {"Roca Escalante", {2237.40,2202.70,-89.00,2536.40,2542.50,110.90}},
  596. {"Roca Escalante", {2536.40,2202.70,-89.00,2625.10,2442.50,110.90}},
  597. {"Rockshore East", {2537.30,676.50,-89.00,2902.30,943.20,110.90}},
  598. {"Rockshore West", {1997.20,596.30,-89.00,2377.30,823.20,110.90}},
  599. {"Rockshore West", {2377.30,596.30,-89.00,2537.30,788.80,110.90}},
  600. {"Rodeo", {72.60,-1684.60,-89.00,225.10,-1544.10,110.90}},
  601. {"Rodeo", {72.60,-1544.10,-89.00,225.10,-1404.90,110.90}},
  602. {"Rodeo", {225.10,-1684.60,-89.00,312.80,-1501.90,110.90}},
  603. {"Rodeo", {225.10,-1501.90,-89.00,334.50,-1369.60,110.90}},
  604. {"Rodeo", {334.50,-1501.90,-89.00,422.60,-1406.00,110.90}},
  605. {"Rodeo", {312.80,-1684.60,-89.00,422.60,-1501.90,110.90}},
  606. {"Rodeo", {422.60,-1684.60,-89.00,558.00,-1570.20,110.90}},
  607. {"Rodeo", {558.00,-1684.60,-89.00,647.50,-1384.90,110.90}},
  608. {"Rodeo", {466.20,-1570.20,-89.00,558.00,-1385.00,110.90}},
  609. {"Rodeo", {422.60,-1570.20,-89.00,466.20,-1406.00,110.90}},
  610. {"Rodeo", {466.20,-1385.00,-89.00,647.50,-1235.00,110.90}},
  611. {"Rodeo", {334.50,-1406.00,-89.00,466.20,-1292.00,110.90}},
  612. {"Royal Casino", {2087.30,1383.20,-89.00,2437.30,1543.20,110.90}},
  613. {"San Andreas Sound", {2450.30,385.50,-100.00,2759.20,562.30,200.00}},
  614. {"Santa Flora", {-2741.00,458.40,-7.60,-2533.00,793.40,200.00}},
  615. {"Santa Maria Beach", {342.60,-2173.20,-89.00,647.70,-1684.60,110.90}},
  616. {"Santa Maria Beach", {72.60,-2173.20,-89.00,342.60,-1684.60,110.90}},
  617. {"Shady Cabin", {-1632.80,-2263.40,-3.00,-1601.30,-2231.70,200.00}},
  618. {"Shady Creeks", {-1820.60,-2643.60,-8.00,-1226.70,-1771.60,200.00}},
  619. {"Shady Creeks", {-2030.10,-2174.80,-6.10,-1820.60,-1771.60,200.00}},
  620. {"Sobell Rail Yards", {2749.90,1548.90,-89.00,2923.30,1937.20,110.90}},
  621. {"Spinybed", {2121.40,2663.10,-89.00,2498.20,2861.50,110.90}},
  622. {"Starfish Casino", {2437.30,1783.20,-89.00,2685.10,2012.10,110.90}},
  623. {"Starfish Casino", {2437.30,1858.10,-39.00,2495.00,1970.80,60.90}},
  624. {"Starfish Casino", {2162.30,1883.20,-89.00,2437.30,2012.10,110.90}},
  625. {"Temple", {1252.30,-1130.80,-89.00,1378.30,-1026.30,110.90}},
  626. {"Temple", {1252.30,-1026.30,-89.00,1391.00,-926.90,110.90}},
  627. {"Temple", {1252.30,-926.90,-89.00,1357.00,-910.10,110.90}},
  628. {"Temple", {952.60,-1130.80,-89.00,1096.40,-937.10,110.90}},
  629. {"Temple", {1096.40,-1130.80,-89.00,1252.30,-1026.30,110.90}},
  630. {"Temple", {1096.40,-1026.30,-89.00,1252.30,-910.10,110.90}},
  631. {"The Camel's Toe", {2087.30,1203.20,-89.00,2640.40,1383.20,110.90}},
  632. {"The Clown's Pocket", {2162.30,1783.20,-89.00,2437.30,1883.20,110.90}},
  633. {"The Emerald Isle", {2011.90,2202.70,-89.00,2237.40,2508.20,110.90}},
  634. {"The Farm", {-1209.60,-1317.10,114.90,-908.10,-787.30,251.90}},
  635. {"The Four Dragons Casino", {1817.30,863.20,-89.00,2027.30,1083.20,110.90}},
  636. {"The High Roller", {1817.30,1283.20,-89.00,2027.30,1469.20,110.90}},
  637. {"The Mako Span", {1664.60,401.70,0.00,1785.10,567.20,200.00}},
  638. {"The Panopticon", {-947.90,-304.30,-1.10,-319.60,327.00,200.00}},
  639. {"The Pink Swan", {1817.30,1083.20,-89.00,2027.30,1283.20,110.90}},
  640. {"The Sherman Dam", {-968.70,1929.40,-3.00,-481.10,2155.20,200.00}},
  641. {"The Strip", {2027.40,863.20,-89.00,2087.30,1703.20,110.90}},
  642. {"The Strip", {2106.70,1863.20,-89.00,2162.30,2202.70,110.90}},
  643. {"The Strip", {2027.40,1783.20,-89.00,2162.30,1863.20,110.90}},
  644. {"The Strip", {2027.40,1703.20,-89.00,2137.40,1783.20,110.90}},
  645. {"The Visage", {1817.30,1863.20,-89.00,2106.70,2011.80,110.90}},
  646. {"The Visage", {1817.30,1703.20,-89.00,2027.40,1863.20,110.90}},
  647. {"Unity Station", {1692.60,-1971.80,-20.40,1812.60,-1932.80,79.50}},
  648. {"Valle Ocultado", {-936.60,2611.40,2.00,-715.90,2847.90,200.00}},
  649. {"Verdant Bluffs", {930.20,-2488.40,-89.00,1249.60,-2006.70,110.90}},
  650. {"Verdant Bluffs", {1073.20,-2006.70,-89.00,1249.60,-1842.20,110.90}},
  651. {"Verdant Bluffs", {1249.60,-2179.20,-89.00,1692.60,-1842.20,110.90}},
  652. {"Verdant Meadows", {37.00,2337.10,-3.00,435.90,2677.90,200.00}},
  653. {"Verona Beach", {647.70,-2173.20,-89.00,930.20,-1804.20,110.90}},
  654. {"Verona Beach", {930.20,-2006.70,-89.00,1073.20,-1804.20,110.90}},
  655. {"Verona Beach", {851.40,-1804.20,-89.00,1046.10,-1577.50,110.90}},
  656. {"Verona Beach", {1161.50,-1722.20,-89.00,1323.90,-1577.50,110.90}},
  657. {"Verona Beach", {1046.10,-1722.20,-89.00,1161.50,-1577.50,110.90}},
  658. {"Vinewood", {787.40,-1310.20,-89.00,952.60,-1130.80,110.90}},
  659. {"Vinewood", {787.40,-1130.80,-89.00,952.60,-954.60,110.90}},
  660. {"Vinewood", {647.50,-1227.20,-89.00,787.40,-1118.20,110.90}},
  661. {"Vinewood", {647.70,-1416.20,-89.00,787.40,-1227.20,110.90}},
  662. {"Whitewood Estates", {883.30,1726.20,-89.00,1098.30,2507.20,110.90}},
  663. {"Whitewood Estates", {1098.30,1726.20,-89.00,1197.30,2243.20,110.90}},
  664. {"Willowfield", {1970.60,-2179.20,-89.00,2089.00,-1852.80,110.90}},
  665. {"Willowfield", {2089.00,-2235.80,-89.00,2201.80,-1989.90,110.90}},
  666. {"Willowfield", {2089.00,-1989.90,-89.00,2324.00,-1852.80,110.90}},
  667. {"Willowfield", {2201.80,-2095.00,-89.00,2324.00,-1989.90,110.90}},
  668. {"Willowfield", {2541.70,-1941.40,-89.00,2703.50,-1852.80,110.90}},
  669. {"Willowfield", {2324.00,-2059.20,-89.00,2541.70,-1852.80,110.90}},
  670. {"Willowfield", {2541.70,-2059.20,-89.00,2703.50,-1941.40,110.90}},
  671. {"Yellow Bell Station", {1377.40,2600.40,-21.90,1492.40,2687.30,78.00}},
  672. // Main Zones
  673. {"Los Santos", {44.60,-2892.90,-242.90,2997.00,-768.00,900.00}},
  674. {"Las Venturas", {869.40,596.30,-242.90,2997.00,2993.80,900.00}},
  675. {"Bone County", {-480.50,596.30,-242.90,869.40,2993.80,900.00}},
  676. {"Tierra Robada", {-2997.40,1659.60,-242.90,-480.50,2993.80,900.00}},
  677. {"Tierra Robada", {-1213.90,596.30,-242.90,-480.50,1659.60,900.00}},
  678. {"San Fierro", {-2997.40,-1115.50,-242.90,-1213.90,1659.60,900.00}},
  679. {"Red County", {-1213.90,-768.00,-242.90,2997.00,596.30,900.00}},
  680. {"Flint County", {-1213.90,-2892.90,-242.90,44.60,-768.00,900.00}},
  681. {"Whetstone", {-2997.40,-2892.90,-242.90,-1213.90,-1115.50,900.00}}
  682. };
  683. new Float:OldCoordsX[MAX_PLAYERS], Float:OldCoordsY[MAX_PLAYERS];
  684. new Text:Speedom[MAX_PLAYERS], Text:black, ShowSpeed[MAX_PLAYERS];
  685. new ReFuelTimer[MAX_PLAYERS], Float:Fuel[MAX_VEHICLES], Refueling[MAX_PLAYERS], OldFuel[MAX_PLAYERS];
  686. new IsLocked[MAX_VEHICLES];
  687. new Engine[MAX_VEHICLES];
  688. new veh1[MAX_PLAYERS], veh2[MAX_PLAYERS], veh3[MAX_PLAYERS], veh4[MAX_PLAYERS], veh5[MAX_PLAYERS];
  689. new IsOwned[MAX_VEHICLES];
  690. new FALSE = false;
  691. new vehaS[MAX_PLAYERS];
  692. new Float:roda[MAX_PLAYERS];
  693. new vCheck1[MAX_PLAYERS], vCheck2[MAX_PLAYERS], vCheck3[MAX_PLAYERS], vCheck4[MAX_PLAYERS], vCheck5[MAX_PLAYERS];
  694. forward SaveCars();
  695. forward LoadCars();
  696. forward Speedometer();
  697. forward ReFill(playerid);
  698. forward Random(min, max);
  699. forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
  700. forward IsAtFuelStation(playerid);
  701. forward UnlockVehicle(vehicleid);
  702. forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
  703.  
  704. enum vInfo
  705. {
  706. vModel,
  707. Float:vX,
  708. Float:vY,
  709. Float:vZ,
  710. Float:vAngle,
  711. vColorOne,
  712. vColorTwo,
  713. vOwner[MAX_PLAYER_NAME],
  714. vDescription[128],
  715. vOwned,
  716. vLock,
  717. vLockBuyed,
  718. vRentPrice,
  719. vAlarm,
  720. };
  721. new VehicleInfo[MAX_VEHICLES][vInfo];
  722.  
  723. enum pVeh
  724. {
  725. pVeh1[128],
  726. pVeh2[128],
  727. pVeh3[128],
  728. pVeh4[128],
  729. pVeh5[128],
  730. }
  731. new PlayerVehicle[MAX_PLAYERS][pVeh];
  732.  
  733. public OnFilterScriptInit()
  734. {
  735. print("\n--------------------------------------");
  736. print(" Vehicles_system filterscript by Frank Mcshot");
  737. print(" Spolszczone by Minokon");
  738. print("--------------------------------------\n");
  739.  
  740. for(new Vehicles = 0; Vehicles < MAX_VEHICLES; Vehicles++)
  741. {
  742. Fuel[Vehicles] = Random(SPAWN_GAS_MIN, SPAWN_GAS_MAX);
  743. //Engine[Vehicles] = 0; or Engine[Vehicles] = random(1);
  744. }
  745. for(new i = 0; i < MAX_PLAYERS; i++)
  746. {
  747. ShowSpeed[i] = 1;
  748. Refueling[i] = 0;
  749. }
  750. SetTimer("Speedometer", 1000, true);
  751. Colors = CreateMenu("Vehicle Colors", 1, 50.0, 180.0, 200.0, 200.0);
  752.  
  753. AddMenuItem(Colors, 0, "Black");
  754. AddMenuItem(Colors, 0, "White");
  755. AddMenuItem(Colors, 0, "Light Blue");
  756. AddMenuItem(Colors, 0, "Red");
  757. AddMenuItem(Colors, 0, "Green");
  758. AddMenuItem(Colors, 0, "Pink");
  759. AddMenuItem(Colors, 0, "Yellow");
  760. AddMenuItem(Colors, 0, "Blue");
  761. AddMenuItem(Colors, 0, "Grey");
  762. AddMenuItem(Colors, 0, "Light red");
  763. AddMenuItem(Colors, 0, "Light Green");
  764. AddMenuItem(Colors, 0, "Purple");
  765.  
  766. Colors2 = CreateMenu("Vehicle Colors Two", 1, 50.0, 180.0, 200.0, 200.0);
  767.  
  768. AddMenuItem(Colors2, 0, "Black");
  769. AddMenuItem(Colors2, 0, "White");
  770. AddMenuItem(Colors2, 0, "Light Blue");
  771. AddMenuItem(Colors2, 0, "Red");
  772. AddMenuItem(Colors2, 0, "Green");
  773. AddMenuItem(Colors2, 0, "Pink");
  774. AddMenuItem(Colors2, 0, "Yellow");
  775. AddMenuItem(Colors2, 0, "Blue");
  776. AddMenuItem(Colors2, 0, "Grey");
  777. AddMenuItem(Colors2, 0, "Light red");
  778. AddMenuItem(Colors2, 0, "Light Green");
  779. AddMenuItem(Colors2, 0, "Purple");
  780.  
  781. ColorsS = CreateMenu("Vehicle Colors", 1, 50.0, 180.0, 200.0, 200.0);
  782.  
  783. AddMenuItem(ColorsS, 0, "Black");
  784. AddMenuItem(ColorsS, 0, "White");
  785. AddMenuItem(ColorsS, 0, "Light Blue");
  786. AddMenuItem(ColorsS, 0, "Red");
  787. AddMenuItem(ColorsS, 0, "Green");
  788. AddMenuItem(ColorsS, 0, "Pink");
  789. AddMenuItem(ColorsS, 0, "Yellow");
  790. AddMenuItem(ColorsS, 0, "Blue");
  791. AddMenuItem(ColorsS, 0, "Grey");
  792. AddMenuItem(ColorsS, 0, "Light red");
  793. AddMenuItem(ColorsS, 0, "Light Green");
  794. AddMenuItem(ColorsS, 0, "Purple");
  795.  
  796. Colors2S = CreateMenu("Vehicle Colors Two", 1, 50.0, 180.0, 200.0, 200.0);
  797.  
  798. AddMenuItem(Colors2S, 0, "Black");
  799. AddMenuItem(Colors2S, 0, "White");
  800. AddMenuItem(Colors2S, 0, "Light Blue");
  801. AddMenuItem(Colors2S, 0, "Red");
  802. AddMenuItem(Colors2S, 0, "Green");
  803. AddMenuItem(Colors2S, 0, "Pink");
  804. AddMenuItem(Colors2S, 0, "Yellow");
  805. AddMenuItem(Colors2S, 0, "Blue");
  806. AddMenuItem(Colors2S, 0, "Grey");
  807. AddMenuItem(Colors2S, 0, "Light red");
  808. AddMenuItem(Colors2S, 0, "Light Green");
  809. AddMenuItem(Colors2S, 0, "Purple");
  810. return 1;
  811. }
  812.  
  813. public OnFilterScriptExit()
  814. {
  815. TextDrawDestroy(Text:black);
  816. for(new i = 0; i <MAX_PLAYERS; i++)
  817. {
  818. TextDrawDestroy(Text:Speedom[i]);
  819. }
  820. return 1;
  821. }
  822.  
  823. public EngineOn(veha, playerid)
  824. {
  825. new string[256];
  826. new name[MAX_PLAYER_NAME];
  827. GetPlayerName(playerid, name, sizeof(name));
  828. if(IsPlayerInAnyVehicle(playerid))
  829. {
  830. if(VehicleInfo[veha][vOwned] == 1)
  831. {
  832. if(strcmp(name, VehicleInfo[veha][vOwner], true) == 0)
  833. {
  834. Engine[veha] = 1;
  835. TogglePlayerControllable(playerid, 1);
  836. format(string, sizeof(string), "%s odpalił silnik %s.", name, VehicleNames[GetVehicleModel(veha)-400]);
  837. ProxDetector(20, playerid, string, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN);
  838. return 1;
  839. }
  840. else
  841. {
  842. if(pRent[playerid] == veha)
  843. {
  844. Engine[veha] = 1;
  845. TogglePlayerControllable(playerid, 1);
  846. format(string, sizeof(string), "%s odpalił silnik %s.", name, VehicleNames[GetVehicleModel(veha)-400]);
  847. ProxDetector(20, playerid, string, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN);
  848. return 1;
  849. }
  850. else
  851. {
  852. Engine[veha] = 0;
  853. TogglePlayerControllable(playerid, 0);
  854. format(string, sizeof(string), "%s nie może odpalić silnika swojego %s.", name, VehicleNames[GetVehicleModel(veha)-400]);
  855. ProxDetector(20, playerid, string, COLOR_LIGHTRED, COLOR_LIGHTRED, COLOR_LIGHTRED, COLOR_LIGHTRED, COLOR_LIGHTRED);
  856. return 1;
  857. }
  858. }
  859. }
  860. else
  861. {
  862. Engine[veha] = 1;
  863. TogglePlayerControllable(playerid, 1);
  864. format(string, sizeof(string), "%s odpalił silnik %s.", name, VehicleNames[GetVehicleModel(veha)-400]);
  865. ProxDetector(20, playerid, string, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN);
  866. return 1;
  867. }
  868. }
  869. else
  870. {
  871. Engine[veha] = 0;
  872. format(string, sizeof(string), "%s nie może odpalić silnika swojego %s.", name, VehicleNames[GetVehicleModel(veha)-400]);
  873. ProxDetector(20, playerid, string, COLOR_LIGHTRED, COLOR_LIGHTRED, COLOR_LIGHTRED, COLOR_LIGHTRED, COLOR_LIGHTRED);
  874. return 1;
  875. }
  876. }
  877.  
  878. public EnableSearch(playerid)
  879. {
  880. pSearched[playerid] = 0;
  881. return 1;
  882. }
  883.  
  884. public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
  885. {
  886. if(IsPlayerConnected(playerid))
  887. {
  888. new Float:posx, Float:posy, Float:posz;
  889. new Float:oldposx, Float:oldposy, Float:oldposz;
  890. new Float:tempposx, Float:tempposy, Float:tempposz;
  891. GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  892. //radi = 2.0; //Trigger Radius
  893. for(new i = 0; i < MAX_PLAYERS; i++)
  894. {
  895. if(IsPlayerConnected(i))
  896. {
  897. GetPlayerPos(i, posx, posy, posz);
  898. tempposx = (oldposx -posx);
  899. tempposy = (oldposy -posy);
  900. tempposz = (oldposz -posz);
  901. //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
  902. if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
  903. {
  904. SendClientMessage(i, col1, string);
  905. }
  906. else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
  907. {
  908. SendClientMessage(i, col2, string);
  909. }
  910. else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
  911. {
  912. SendClientMessage(i, col3, string);
  913. }
  914. else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
  915. {
  916. SendClientMessage(i, col4, string);
  917. }
  918. else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  919. {
  920. SendClientMessage(i, col5, string);
  921. }
  922. }
  923. }
  924. }//not connected
  925. return 1;
  926. }
  927. public SaveVehicles(playerid, car)
  928. {
  929. new file[256];
  930. new plname[MAX_PLAYER_NAME];
  931. GetPlayerName(playerid, plname, sizeof(plname));
  932. format(file, sizeof(file), "Vehicles/Vehicles/%s.%s.cfg", plname, VehicleNames[GetVehicleModel(car)-400]);
  933. if(dini_Exists(file))
  934. {
  935. dini_IntSet(file, "Model", VehicleInfo[car][vModel]);
  936. dini_FloatSet(file, "ParkX", VehicleInfo[car][vX]);
  937. dini_FloatSet(file, "ParkY", VehicleInfo[car][vY]);
  938. dini_FloatSet(file, "ParkZ", VehicleInfo[car][vZ]);
  939. dini_FloatSet(file, "ParkAngle", VehicleInfo[car][vAngle]);
  940. dini_IntSet(file, "Color1", VehicleInfo[car][vColorOne]);
  941. dini_IntSet(file, "Color2", VehicleInfo[car][vColorTwo]);
  942. dini_Set(file, "Owner", VehicleInfo[car][vOwner]);
  943. dini_Set(file, "Description", VehicleInfo[car][vDescription]);
  944. dini_IntSet(file, "Owned", VehicleInfo[car][vOwned]);
  945. dini_IntSet(file, "Lock", VehicleInfo[car][vLock]);
  946. dini_IntSet(file, "LockBuyed", VehicleInfo[car][vLockBuyed]);
  947. dini_IntSet(file, "RentPrice", VehicleInfo[car][vRentPrice]);
  948. dini_IntSet(file, "Alarm", VehicleInfo[car][vAlarm]);
  949. }
  950. else
  951. {
  952. dini_Create(file);
  953. dini_IntSet(file, "Model", VehicleInfo[car][vModel]);
  954. dini_FloatSet(file, "ParkX", VehicleInfo[car][vX]);
  955. dini_FloatSet(file, "ParkY", VehicleInfo[car][vY]);
  956. dini_FloatSet(file, "ParkZ", VehicleInfo[car][vZ]);
  957. dini_FloatSet(file, "ParkAngle", VehicleInfo[car][vAngle]);
  958. dini_IntSet(file, "Color1", VehicleInfo[car][vColorOne]);
  959. dini_IntSet(file, "Color2", VehicleInfo[car][vColorTwo]);
  960. dini_Set(file, "Owner", VehicleInfo[car][vOwner]);
  961. dini_Set(file, "Description", VehicleInfo[car][vDescription]);
  962. dini_IntSet(file, "Owned", VehicleInfo[car][vOwned]);
  963. dini_IntSet(file, "Lock", VehicleInfo[car][vLock]);
  964. dini_IntSet(file, "LockBuyed", VehicleInfo[car][vLockBuyed]);
  965. dini_IntSet(file, "RentPrice", VehicleInfo[car][vRentPrice]);
  966. dini_IntSet(file, "Alarm", VehicleInfo[car][vAlarm]);
  967. }
  968. return 1;
  969. }
  970.  
  971. public LoadVehicles(playerid, string[])
  972. {
  973. new file[256];
  974. new plname[MAX_PLAYER_NAME];
  975. GetPlayerName(playerid, plname, sizeof(plname));
  976. format(file, sizeof(file), "Vehicles/Vehicles/%s.cfg", string);
  977. if(strcmp(string, PlayerVehicle[playerid][pVeh1], true) == 0)
  978. {
  979. veh1[playerid] = CreateVehicle(dini_Int(file, "Model"), dini_Float(file, "ParkX"), dini_Float(file, "ParkY"), dini_Float(file, "ParkZ"), dini_Float(file, "ParkAngle"), dini_Int(file, "Color1"), dini_Int(file, "Color2"), 60000);
  980. strmid(VehicleInfo[veh1[playerid]][vOwner], dini_Get(file, "Owner"), 0, strlen(dini_Get(file, "Owner")), 255);
  981. strmid(VehicleInfo[veh1[playerid]][vDescription], dini_Get(file, "Description"), 0, strlen(dini_Get(file, "Description")), 255);
  982. VehicleInfo[veh1[playerid]][vModel] = dini_Int(file, "Model");
  983. VehicleInfo[veh1[playerid]][vX] = dini_Float(file, "ParkX");
  984. VehicleInfo[veh1[playerid]][vY] = dini_Float(file, "ParkY");
  985. VehicleInfo[veh1[playerid]][vZ] = dini_Float(file, "ParkZ");
  986. VehicleInfo[veh1[playerid]][vAngle] = dini_Float(file, "ParkAngle");
  987. VehicleInfo[veh1[playerid]][vColorOne] = dini_Int(file, "color1");
  988. VehicleInfo[veh1[playerid]][vColorTwo] = dini_Int(file, "color2");
  989. VehicleInfo[veh1[playerid]][vOwned] = dini_Int(file, "Owned");
  990. VehicleInfo[veh1[playerid]][vLock] = dini_Int(file, "Lock");
  991. VehicleInfo[veh1[playerid]][vLockBuyed] = dini_Int(file, "LockBuyed");
  992. VehicleInfo[veh1[playerid]][vRentPrice] = dini_Int(file, "RentPrice");
  993. VehicleInfo[veh1[playerid]][vAlarm] = dini_Int(file, "Alarm");
  994. IsOwned[veh1[playerid]] = 1;
  995. new sb[256]; format(sb, sizeof(sb), "Twój %s został zespawnowany w miejscu gdzie go zaparkowałeś.", VehicleNames[GetVehicleModel(veh1[playerid])-400]); SendClientMessage(playerid, COLOR_YELLOW, sb);
  996. format(sb, sizeof(sb), "INFO: Model:[%s] |Własciciel:[%s] |Opis:[%s] |PoziomZamknięcia:[%d] |CenaWynajmu: [$%d] |PoziomAlarmu:[%d]", VehicleNames[GetVehicleModel(veh1[playerid])-400], VehicleInfo[veh1[playerid]][vOwner], string,
  997. VehicleInfo[veh1[playerid]][vLock], VehicleInfo[veh1[playerid]][vRentPrice], VehicleInfo[veh1[playerid]][vAlarm]);
  998. SendClientMessage(playerid, COLOR_GREEN, sb);
  999. if(VehicleInfo[veh1[playerid]][vLock] > 0)
  1000. {
  1001. SetVehicleParamsForPlayer(veh1[playerid], 0, 0, 1);
  1002. return 1;
  1003. }
  1004. return 1;
  1005. }
  1006. else if(strcmp(string, PlayerVehicle[playerid][pVeh2], true) == 0)
  1007. {
  1008. veh2[playerid] = CreateVehicle(dini_Int(file, "Model"), dini_Float(file, "ParkX"), dini_Float(file, "ParkY"), dini_Float(file, "ParkZ"), dini_Float(file, "ParkAngle"), dini_Int(file, "Color1"), dini_Int(file, "Color2"), 60000);
  1009. strmid(VehicleInfo[veh2[playerid]][vOwner], dini_Get(file, "Owner"), 0, strlen(dini_Get(file, "Owner")), 255);
  1010. strmid(VehicleInfo[veh2[playerid]][vDescription], dini_Get(file, "Description"), 0, strlen(dini_Get(file, "Description")), 255);
  1011. VehicleInfo[veh2[playerid]][vModel] = dini_Int(file, "Model");
  1012. VehicleInfo[veh2[playerid]][vX] = dini_Float(file, "ParkX");
  1013. VehicleInfo[veh2[playerid]][vY] = dini_Float(file, "ParkY");
  1014. VehicleInfo[veh2[playerid]][vZ] = dini_Float(file, "ParkZ");
  1015. VehicleInfo[veh2[playerid]][vAngle] = dini_Float(file, "ParkAngle");
  1016. VehicleInfo[veh2[playerid]][vColorOne] = dini_Int(file, "color1");
  1017. VehicleInfo[veh2[playerid]][vColorTwo] = dini_Int(file, "color2");
  1018. VehicleInfo[veh2[playerid]][vOwned] = dini_Int(file, "Owned");
  1019. VehicleInfo[veh2[playerid]][vLock] = dini_Int(file, "Lock");
  1020. VehicleInfo[veh2[playerid]][vLockBuyed] = dini_Int(file, "LockBuyed");
  1021. VehicleInfo[veh2[playerid]][vRentPrice] = dini_Int(file, "RentPrice");
  1022. VehicleInfo[veh2[playerid]][vAlarm] = dini_Int(file, "Alarm");
  1023. IsOwned[veh2[playerid]] = 1;
  1024. new sb[256]; format(sb, sizeof(sb), "Twój %s został zespawnowany w miejscu gdzie go zaparkowałeś.", VehicleNames[GetVehicleModel(veh2[playerid])-400]); SendClientMessage(playerid, COLOR_YELLOW, sb);
  1025. format(sb, sizeof(sb), "INFO: Model:[%s] |Własciciel:[%s] |Opis:[%s] |PoziomZamknięcia:[%d] |CenaWynajmu: [$%d] |PoziomAlarmu:[%d]", VehicleNames[GetVehicleModel(veh2[playerid])-400], VehicleInfo[veh2[playerid]][vOwner], string,
  1026. VehicleInfo[veh2[playerid]][vLock], VehicleInfo[veh2[playerid]][vRentPrice], VehicleInfo[veh2[playerid]][vAlarm]);
  1027. SendClientMessage(playerid, COLOR_GREEN, sb);
  1028. if(VehicleInfo[veh2[playerid]][vLock] > 0)
  1029. {
  1030. SetVehicleParamsForPlayer(veh2[playerid], 0, 0, 1);
  1031. return 1;
  1032. }
  1033. return 1;
  1034. }
  1035. else if(strcmp(string, PlayerVehicle[playerid][pVeh3], true) == 0)
  1036. {
  1037. veh3[playerid] = CreateVehicle(dini_Int(file, "Model"), dini_Float(file, "ParkX"), dini_Float(file, "ParkY"), dini_Float(file, "ParkZ"), dini_Float(file, "ParkAngle"), dini_Int(file, "Color1"), dini_Int(file, "Color2"), 60000);
  1038. strmid(VehicleInfo[veh3[playerid]][vOwner], dini_Get(file, "Owner"), 0, strlen(dini_Get(file, "Owner")), 255);
  1039. strmid(VehicleInfo[veh3[playerid]][vDescription], dini_Get(file, "Description"), 0, strlen(dini_Get(file, "Description")), 255);
  1040. VehicleInfo[veh3[playerid]][vModel] = dini_Int(file, "Model");
  1041. VehicleInfo[veh3[playerid]][vX] = dini_Float(file, "ParkX");
  1042. VehicleInfo[veh3[playerid]][vY] = dini_Float(file, "ParkY");
  1043. VehicleInfo[veh3[playerid]][vZ] = dini_Float(file, "ParkZ");
  1044. VehicleInfo[veh3[playerid]][vAngle] = dini_Float(file, "ParkAngle");
  1045. VehicleInfo[veh3[playerid]][vColorOne] = dini_Int(file, "color1");
  1046. VehicleInfo[veh3[playerid]][vColorTwo] = dini_Int(file, "color2");
  1047. VehicleInfo[veh3[playerid]][vOwned] = dini_Int(file, "Owned");
  1048. VehicleInfo[veh3[playerid]][vLock] = dini_Int(file, "Lock");
  1049. VehicleInfo[veh3[playerid]][vLockBuyed] = dini_Int(file, "LockBuyed");
  1050. VehicleInfo[veh3[playerid]][vRentPrice] = dini_Int(file, "RentPrice");
  1051. VehicleInfo[veh3[playerid]][vAlarm] = dini_Int(file, "Alarm");
  1052. IsOwned[veh3[playerid]] = 1;
  1053. new sb[256]; format(sb, sizeof(sb), "Twój %s został zespawnowany w miejscu gdzie go zaparkowałeś.", VehicleNames[GetVehicleModel(veh3[playerid])-400]); SendClientMessage(playerid, COLOR_YELLOW, sb);
  1054. format(sb, sizeof(sb), "INFO: Model:[%s] |Własciciel:[%s] |Opis:[%s] |PoziomZamknięcia:[%d] |CenaWynajmu: [$%d] |PoziomAlarmu:[%d]", VehicleNames[GetVehicleModel(veh3[playerid])-400], VehicleInfo[veh3[playerid]][vOwner], string,
  1055. VehicleInfo[veh3[playerid]][vLock], VehicleInfo[veh3[playerid]][vRentPrice], VehicleInfo[veh3[playerid]][vAlarm]);
  1056. SendClientMessage(playerid, COLOR_GREEN, sb);
  1057. if(VehicleInfo[veh3[playerid]][vLock] > 0)
  1058. {
  1059. SetVehicleParamsForPlayer(veh3[playerid], 0, 0, 1);
  1060. return 1;
  1061. }
  1062. return 1;
  1063. }
  1064. else if(strcmp(string, PlayerVehicle[playerid][pVeh4], true) == 0)
  1065. {
  1066. veh2[playerid] = CreateVehicle(dini_Int(file, "Model"), dini_Float(file, "ParkX"), dini_Float(file, "ParkY"), dini_Float(file, "ParkZ"), dini_Float(file, "ParkAngle"), dini_Int(file, "Color1"), dini_Int(file, "Color2"), 60000);
  1067. strmid(VehicleInfo[veh4[playerid]][vOwner], dini_Get(file, "Owner"), 0, strlen(dini_Get(file, "Owner")), 255);
  1068. strmid(VehicleInfo[veh4[playerid]][vDescription], dini_Get(file, "Description"), 0, strlen(dini_Get(file, "Description")), 255);
  1069. VehicleInfo[veh4[playerid]][vModel] = dini_Int(file, "Model");
  1070. VehicleInfo[veh4[playerid]][vX] = dini_Float(file, "ParkX");
  1071. VehicleInfo[veh4[playerid]][vY] = dini_Float(file, "ParkY");
  1072. VehicleInfo[veh4[playerid]][vZ] = dini_Float(file, "ParkZ");
  1073. VehicleInfo[veh4[playerid]][vAngle] = dini_Float(file, "ParkAngle");
  1074. VehicleInfo[veh4[playerid]][vColorOne] = dini_Int(file, "color1");
  1075. VehicleInfo[veh4[playerid]][vColorTwo] = dini_Int(file, "color2");
  1076. VehicleInfo[veh4[playerid]][vOwned] = dini_Int(file, "Owned");
  1077. VehicleInfo[veh4[playerid]][vLock] = dini_Int(file, "Lock");
  1078. VehicleInfo[veh4[playerid]][vLockBuyed] = dini_Int(file, "LockBuyed");
  1079. VehicleInfo[veh4[playerid]][vRentPrice] = dini_Int(file, "RentPrice");
  1080. VehicleInfo[veh4[playerid]][vAlarm] = dini_Int(file, "Alarm");
  1081. IsOwned[veh4[playerid]] = 1;
  1082. new sb[256]; format(sb, sizeof(sb), "Twój %s został zespawnowany w miejscu gdzie go zaparkowałeś.", VehicleNames[GetVehicleModel(veh4[playerid])-400]); SendClientMessage(playerid, COLOR_YELLOW, sb);
  1083. format(sb, sizeof(sb), "INFO: Model:[%s] |Własciciel:[%s] |Opis:[%s] |PoziomZamknięcia:[%d] |CenaWynajmu: [$%d] |PoziomAlarmu:[%d]", VehicleNames[GetVehicleModel(veh2[playerid])-400], VehicleInfo[veh2[playerid]][vOwner], string,
  1084. VehicleInfo[veh4[playerid]][vLock], VehicleInfo[veh4[playerid]][vRentPrice], VehicleInfo[veh4[playerid]][vAlarm]);
  1085. SendClientMessage(playerid, COLOR_GREEN, sb);
  1086. if(VehicleInfo[veh4[playerid]][vLock] > 0)
  1087. {
  1088. SetVehicleParamsForPlayer(veh4[playerid], 0, 0, 1);
  1089. return 1;
  1090. }
  1091. return 1;
  1092. }
  1093. else if(strcmp(string, PlayerVehicle[playerid][pVeh5], true) == 0)
  1094. {
  1095. veh5[playerid] = CreateVehicle(dini_Int(file, "Model"), dini_Float(file, "ParkX"), dini_Float(file, "ParkY"), dini_Float(file, "ParkZ"), dini_Float(file, "ParkAngle"), dini_Int(file, "Color1"), dini_Int(file, "Color2"), 60000);
  1096. strmid(VehicleInfo[veh5[playerid]][vOwner], dini_Get(file, "Owner"), 0, strlen(dini_Get(file, "Owner")), 255);
  1097. strmid(VehicleInfo[veh5[playerid]][vDescription], dini_Get(file, "Description"), 0, strlen(dini_Get(file, "Description")), 255);
  1098. VehicleInfo[veh5[playerid]][vModel] = dini_Int(file, "Model");
  1099. VehicleInfo[veh5[playerid]][vX] = dini_Float(file, "ParkX");
  1100. VehicleInfo[veh5[playerid]][vY] = dini_Float(file, "ParkY");
  1101. VehicleInfo[veh5[playerid]][vZ] = dini_Float(file, "ParkZ");
  1102. VehicleInfo[veh5[playerid]][vAngle] = dini_Float(file, "ParkAngle");
  1103. VehicleInfo[veh5[playerid]][vColorOne] = dini_Int(file, "color1");
  1104. VehicleInfo[veh5[playerid]][vColorTwo] = dini_Int(file, "color2");
  1105. VehicleInfo[veh5[playerid]][vOwned] = dini_Int(file, "Owned");
  1106. VehicleInfo[veh5[playerid]][vLock] = dini_Int(file, "Lock");
  1107. VehicleInfo[veh5[playerid]][vLockBuyed] = dini_Int(file, "LockBuyed");
  1108. VehicleInfo[veh5[playerid]][vRentPrice] = dini_Int(file, "RentPrice");
  1109. VehicleInfo[veh5[playerid]][vAlarm] = dini_Int(file, "Alarm");
  1110. IsOwned[veh5[playerid]] = 1;
  1111. new sb[256]; format(sb, sizeof(sb), "Twój %s został zespawnowany w miejscu gdzie go zaparkowałeś.", VehicleNames[GetVehicleModel(veh5[playerid])-400]); SendClientMessage(playerid, COLOR_YELLOW, sb);
  1112. format(sb, sizeof(sb), "INFO: Model:[%s] |Własciciel:[%s] |Opis:[%s] |PoziomZamknięcia:[%d] |CenaWynajmu: [$%d] |PoziomAlarmu:[%d]", VehicleNames[GetVehicleModel(veh5[playerid])-400], VehicleInfo[veh5[playerid]][vOwner], string,
  1113. VehicleInfo[veh5[playerid]][vLock], VehicleInfo[veh5[playerid]][vRentPrice], VehicleInfo[veh5[playerid]][vAlarm]);
  1114. SendClientMessage(playerid, COLOR_GREEN, sb);
  1115. if(VehicleInfo[veh5[playerid]][vLock] > 0)
  1116. {
  1117. SetVehicleParamsForPlayer(veh5[playerid], 0, 0, 1);
  1118. return 1;
  1119. }
  1120. return 1;
  1121. }
  1122. return 1;
  1123. }
  1124.  
  1125. stock GetOwnedVehicleID(playerid)
  1126. {
  1127. for(new v = 1; v < MAX_VEHICLES; v++)
  1128. {
  1129. if (IsVehicleSpawned(v))
  1130. {
  1131. if (!strcmp(VehicleInfo[v][vOwner], GetName(playerid))) return v;
  1132. }
  1133. }
  1134. return INVALID_VEHICLE_ID;
  1135. }
  1136.  
  1137. public split(const strsrc[], strdest[][], delimiter)
  1138. {
  1139. new i, li;
  1140. new aNum;
  1141. new len;
  1142. while(i <= strlen(strsrc)){
  1143. if(strsrc[i]==delimiter || i==strlen(strsrc)){
  1144. len = strmid(strdest[aNum], strsrc, li, i, 128);
  1145. strdest[aNum][len] = 0;
  1146. li = i+1;
  1147. aNum++;
  1148. }
  1149. i++;
  1150. }
  1151. return 1;
  1152. }
  1153.  
  1154. public OnPlayerConnect(playerid)
  1155. {
  1156. new str[256], plname[MAX_PLAYER_NAME];
  1157. GetPlayerName(playerid, plname, sizeof(plname));
  1158. new str2[256];
  1159. format(str2, sizeof(str2), "Witaj %s. Ten serwer używa systemu pojazdów by James_Alex, użyj /vcmd aby zobaczyć komendy pojazdów.", plname);
  1160. SendClientMessage(playerid, COLOR_WHITE, str2);
  1161. format(str, sizeof(str), "Vehicles/Players/%s.cfg", plname);
  1162. if(dini_Exists(str))
  1163. {
  1164. strmid(PlayerVehicle[playerid][pVeh1], dini_Get(str, "Vehicle1"), 0, strlen(dini_Get(str, "Vehicle1")), 255);
  1165. strmid(PlayerVehicle[playerid][pVeh2], dini_Get(str, "Vehicle2"), 0, strlen(dini_Get(str, "Vehicle2")), 255);
  1166. strmid(PlayerVehicle[playerid][pVeh3], dini_Get(str, "Vehicle3"), 0, strlen(dini_Get(str, "Vehicle3")), 255);
  1167. strmid(PlayerVehicle[playerid][pVeh4], dini_Get(str, "Vehicle4"), 0, strlen(dini_Get(str, "Vehicle4")), 255);
  1168. strmid(PlayerVehicle[playerid][pVeh5], dini_Get(str, "Vehicle5"), 0, strlen(dini_Get(str, "Vehicle5")), 255);
  1169. pToolkit[playerid] = dini_Int(str, "Toolkit");
  1170. return 1;
  1171. }
  1172. else
  1173. {
  1174. dini_Create(str);
  1175. strmid(PlayerVehicle[playerid][pVeh1], "None", 0, strlen("None"), 255);
  1176. strmid(PlayerVehicle[playerid][pVeh2], "None", 0, strlen("None"), 255);
  1177. strmid(PlayerVehicle[playerid][pVeh3], "None", 0, strlen("None"), 255);
  1178. strmid(PlayerVehicle[playerid][pVeh4], "None", 0, strlen("None"), 255);
  1179. strmid(PlayerVehicle[playerid][pVeh5], "None", 0, strlen("None"), 255);
  1180. //return 1;
  1181. }
  1182. pColor[playerid] = -1;
  1183. pToAccept[playerid] = 255;
  1184. vToAccept[playerid] = 999;
  1185. prToAccept[playerid] = 0;
  1186. pRent[playerid] = 999;
  1187. pSearched[playerid] = 0;
  1188. Egale[playerid] = 0;
  1189. return 1;
  1190. }
  1191.  
  1192. public OnPlayerDisconnect(playerid, reason)
  1193. {
  1194. new str[256], plname[MAX_PLAYER_NAME];
  1195. GetPlayerName(playerid, plname, sizeof(plname));
  1196. format(str, sizeof(str), "Vehicles/Players/%s.cfg", plname);
  1197. dini_Set(str, "Vehicle1", PlayerVehicle[playerid][pVeh1]);
  1198. dini_Set(str, "Vehicle2", PlayerVehicle[playerid][pVeh2]);
  1199. dini_Set(str, "Vehicle3", PlayerVehicle[playerid][pVeh3]);
  1200. dini_Set(str, "Vehicle4", PlayerVehicle[playerid][pVeh4]);
  1201. dini_Set(str, "Vehicle5", PlayerVehicle[playerid][pVeh5]);
  1202. dini_IntSet(str, "Toolkit", pToolkit[playerid]);
  1203. if(pRent[playerid] != 999)
  1204. {
  1205. vRented[pRent[playerid]] = 255;
  1206. pRent[playerid] = 999;
  1207. return 1;
  1208. }
  1209. return 1;
  1210. }
  1211.  
  1212. public OnVehicleSpawn(vehicleid)
  1213. {
  1214. Fuel[vehicleid] = Random(SPAWN_GAS_MIN, SPAWN_GAS_MAX);
  1215. return 1;
  1216. }
  1217.  
  1218. public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
  1219. {
  1220. if(IsPlayerConnected(playerid))
  1221. {
  1222. new Float:oldposx, Float:oldposy, Float:oldposz;
  1223. new Float:tempposx, Float:tempposy, Float:tempposz;
  1224. GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  1225. tempposx = (oldposx -x);
  1226. tempposy = (oldposy -y);
  1227. tempposz = (oldposz -z);
  1228. //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
  1229. if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  1230. {
  1231. return 1;
  1232. }
  1233. }
  1234. return 0;
  1235. }
  1236. forward ProxDetectorS(Float:radi, playerid, targetid);
  1237. public ProxDetectorS(Float:radi, playerid, targetid)
  1238. {
  1239. if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
  1240. {
  1241. new Float:posx, Float:posy, Float:posz;
  1242. new Float:oldposx, Float:oldposy, Float:oldposz;
  1243. new Float:tempposx, Float:tempposy, Float:tempposz;
  1244. GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  1245. //radi = 2.0; //Trigger Radius
  1246. GetPlayerPos(targetid, posx, posy, posz);
  1247. tempposx = (oldposx -posx);
  1248. tempposy = (oldposy -posy);
  1249. tempposz = (oldposz -posz);
  1250. //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
  1251. if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  1252. {
  1253. return 1;
  1254. }
  1255. }
  1256. return 0;
  1257. }
  1258. forward RobVeh(playerid, v);
  1259. public RobVeh(playerid, v)
  1260. {
  1261. new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name));
  1262. new str[256];
  1263. if(ProxDetectorV(2, playerid, v))
  1264. {
  1265. if(Egale[playerid] == 1)
  1266. {
  1267. new Rob;
  1268. Rob = random(8);
  1269. switch(Rob)
  1270. {
  1271. case 0,1,2,3,4:
  1272. {
  1273. VehicleInfo[v][vLock] = 0;
  1274. SetVehicleParamsForPlayer(pRent[playerid], 0, 0, 0);
  1275. format(str, sizeof(str), "%s ukaradł pojazd", name);
  1276. ProxDetector(15, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1277. Egale[playerid] = 0;
  1278. return 1;
  1279. }
  1280. case 6,7:
  1281. {
  1282. format(str, sizeof(str), "%s nie ukradł pojazdu", name);
  1283. ProxDetector(15, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1284. Egale[playerid] = 0;
  1285. return 1;
  1286. }
  1287. }
  1288. }
  1289. else
  1290. {
  1291. VehicleInfo[v][vLock] = 0;
  1292. SetVehicleParamsForPlayer(pRent[playerid], 0, 0, 0);
  1293. format(str, sizeof(str), "%s ukradł pojazd", name);
  1294. ProxDetector(15, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1295. return 1;
  1296. }
  1297. }
  1298. return 1;
  1299. }
  1300. forward ClearPRent(playerid, vehi);
  1301. public ClearPRent(playerid, vehi)
  1302. {
  1303. if(IsPlayerConnected(playerid))
  1304. {
  1305. vRented[vehi] = 255;
  1306. pRent[playerid] = 999;
  1307. SendClientMessage(playerid, COLOR_WHITE, "Twój czas wynajmu się skończył");
  1308. return 1;
  1309. }
  1310. return 1;
  1311. }
  1312.  
  1313. public OnPlayerCommandText(playerid, cmdtext[])
  1314. {
  1315. new cmd[256];
  1316. new tmp[256];
  1317. new idx;
  1318. new playername[MAX_PLAYER_NAME];
  1319. new string[256];
  1320. cmd = strtok(cmdtext, idx);
  1321. new vehicleid = GetPlayerVehicleID(playerid);
  1322. if(strcmp(cmdtext, "/tankuj", true) == 0)
  1323. {
  1324. if(IsPlayerConnected(playerid)){
  1325. if(IsAtFuelStation(playerid)){
  1326. if(Refueling[playerid] == 0){
  1327. if(!IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510) return SendClientMessage(playerid,COLOR_YELLOW,".: Error: You are not in a vehicle or this vehicle does not need fuel :.");
  1328. if(Fuel[vehicleid] >= 100){
  1329. SendClientMessage(playerid,COLOR_YELLOW,".:: [PALIWO]: Twój bank jest pełny.");
  1330. } else {
  1331. OldFuel[playerid] = floatround(Fuel[vehicleid]);
  1332. ReFuelTimer[playerid] = SetTimerEx("ReFill", 1000, true, "i", playerid);
  1333. Refueling[playerid] = 1;
  1334. }
  1335. } else { SendClientMessage(playerid,COLOR_YELLOW,".: [PALIWO]: Już tankujesz swój samochód!"); }
  1336. } else { SendClientMessage(playerid,COLOR_YELLOW,".:: [PALIWO]: Musisz jechać na stację benzynową, żeby zatankować."); }
  1337. }
  1338. return true;
  1339. }
  1340.  
  1341. if(strcmp(cmd, "/licznik", true) == 0)
  1342. {
  1343. if(IsPlayerConnected(playerid)){
  1344. new x_nr[256]; x_nr = strtok(cmdtext, idx);
  1345. if(!strlen(x_nr)) return SendClientMessage(playerid, COLOR_WHITE, "[UŻYJ]: /licznik [on/off]");
  1346. if(strcmp(x_nr,"on",true) == 0){
  1347. ShowSpeed[playerid] = 1;
  1348. GameTextForPlayer(playerid,"~w~Licznik ~g~Wlaczony",3000,3);
  1349. return true;}
  1350. else if(strcmp(x_nr,"off",true) == 0){
  1351. ShowSpeed[playerid] = 0;
  1352. GameTextForPlayer(playerid,"~w~Licznik ~r~Wylaczony",3000,3);
  1353. return true;}
  1354. }
  1355. }
  1356.  
  1357. if(strcmp(cmd, "/wywal", true) == 0)
  1358. {
  1359. if(IsPlayerConnected(playerid))
  1360. {
  1361. tmp = strtok(cmdtext, idx);
  1362. if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "[UŻYJ]: /wywal [Gracz/ID]");
  1363. new giveplayerid = ReturnUser(tmp);
  1364. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && IsPlayerInVehicle(giveplayerid,GetPlayerVehicleID(playerid)))
  1365. {
  1366. if(IsPlayerConnected(giveplayerid) && playerid != giveplayerid)
  1367. {
  1368. SendFormattedText(playerid,COLOR_ORANGE,"[WYWAL]: Wywaliłeś %s(%i) ze swojego pojazdu.", GetName(giveplayerid), giveplayerid);
  1369. SendFormattedText(giveplayerid,COLOR_ORANGE,"[WYWAL]: Zostałeś wywalony z pojazu %s(%d).", GetName(playerid), playerid);
  1370. RemovePlayerFromVehicle(giveplayerid);
  1371. }
  1372. }
  1373. }
  1374. }
  1375. //-------------------------------[RENT]-------------------------------------------//
  1376. if (strcmp(cmd, "/wynajety", true) == 0)
  1377. {
  1378. new vehi = GetPlayerVehicleID(playerid);
  1379. tmp = strtok(cmdtext, idx);
  1380. if(!strlen(tmp))
  1381. {
  1382. SendClientMessage(playerid, COLOR_LIGHTBLUE, "UŻYJ: /wynajety [Akcja]");
  1383. SendClientMessage(playerid, COLOR_YELLOW2, "wynajmij, zamknij, otworz, znajdz");
  1384. return 1;
  1385. }
  1386. if(!strcmp(tmp, "wynajmij",true,4))
  1387. {
  1388. if(IsPlayerConnected(playerid))
  1389. {
  1390. if(!IsPlayerInAnyVehicle(playerid))
  1391. {
  1392. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  1393. return 1;
  1394. }
  1395. if(VehicleInfo[vehi][vRentPrice] == 0)
  1396. {
  1397. SendClientMessage(playerid, COLOR_LIGHTRED, "Ten pojazd nie jest do wynajmu!");
  1398. return 1;
  1399. }
  1400. if(vRented[vehi] != 255 && pRent[playerid] != 999)
  1401. {
  1402. SendClientMessage(playerid, COLOR_LIGHTRED, "Ten pojazd jest już wynajęty lub ty już wynająłeś pojazd!");
  1403. return 1;
  1404. }
  1405. if(GetPlayerMoney(playerid) >= VehicleInfo[vehi][vRentPrice])
  1406. {
  1407. pRent[playerid] = vehi;
  1408. vRented[vehi] = playerid;
  1409. format(string, sizeof(string), "Wynająłeś %s for $%d.", VehicleNames[GetVehicleModel(vehi)-400], VehicleInfo[vehi][vRentPrice]);
  1410. SendClientMessage(playerid, COLOR_YELLOW, string);
  1411. SendClientMessage(playerid, COLOR_LIGHTRED, "OSTRZEŻENIE: jeśli opuścisz serwer z wynajętym pojazdem, ten pojazd przestanie być wynajęty za jedną godzine");
  1412. SetTimerEx("ClearPRent", 60000, false, "d", playerid, vehi);
  1413. GivePlayerMoney(playerid, -VehicleInfo[vehi][vRentPrice]);
  1414. GivePlayerMoney(VehicleInfo[vehi][vOwner], VehicleInfo[vehi][vRentPrice]);
  1415. return 1;
  1416. }
  1417. else
  1418. {
  1419. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie masz tyle pieniędzy!");
  1420. return 1;
  1421. }
  1422. }
  1423. }
  1424. if(!strcmp(tmp, "zamknij",true,4))
  1425. {
  1426. if(IsPlayerConnected(playerid))
  1427. {
  1428. if(!IsPlayerInAnyVehicle(playerid))
  1429. {
  1430. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  1431. return 1;
  1432. }
  1433. if(pRent[playerid] == vehi && vRented[vehi] == playerid)
  1434. {
  1435. SetVehicleParamsForPlayer(vehi, 0, 0, 1);
  1436. new str[256];
  1437. format(str, sizeof(str), "~w~%s ~n~~r~zamkniety", VehicleNames[GetVehicleModel(vehi)-400]);
  1438. GameTextForPlayer(playerid, str, 7000, 5);
  1439. return 1;
  1440. }
  1441. else
  1442. {
  1443. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie wynajmujesz pojazdu!");
  1444. return 1;
  1445. }
  1446. }
  1447. }
  1448. if(!strcmp(tmp, "otworz",true,4))
  1449. {
  1450. if(IsPlayerConnected(playerid))
  1451. {
  1452. if(pRent[playerid] == 999)
  1453. {
  1454. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie wynajmujesz pojazdu!");
  1455. return 1;
  1456. }
  1457. if(ProxDetectorV(6, playerid, pRent[playerid]))
  1458. {
  1459. SetVehicleParamsForPlayer(pRent[playerid], 0, 0, 0);
  1460. new str[256];
  1461. format(str, sizeof(str), "~w~%s ~n~~g~otwarty", VehicleNames[GetVehicleModel(pRent[playerid])-400]);
  1462. GameTextForPlayer(playerid, str, 7000, 5);
  1463. return 1;
  1464. }
  1465. else
  1466. {
  1467. SendClientMessage(playerid, COLOR_LIGHTRED, "Jesteś za daleko od wynajmowanego pojazdu!");
  1468. return 1;
  1469. }
  1470. }
  1471. }
  1472. if(!strcmp(tmp, "znajdz",true,4))
  1473. {
  1474. if(IsPlayerConnected(playerid))
  1475. {
  1476. if(pRent[playerid] == 999)
  1477. {
  1478. SendClientMessage(playerid, COLOR_LIGHTRED, "Wynajmujesz już pojazd!");
  1479. return 1;
  1480. }
  1481. if(ProxDetectorV(50, playerid, pRent[playerid]))
  1482. {
  1483. SendClientMessage(playerid, COLOR_LIGHTRED, "Jesteś za daleko od wynajmowanego pojazdu!");
  1484. return 1;
  1485. }
  1486. if(pSearched[playerid] == 1)
  1487. {
  1488. SendClientMessage(playerid, COLOR_LIGHTRED, "Szukałeś przed chwilą swojego pojazdu, poczekaj 5 minut!");
  1489. return 1;
  1490. }
  1491. new Float:X, Float:Y, Float:Z;
  1492. GetVehiclePos(pRent[playerid], X, Y, Z);
  1493. RentCheck[playerid] = SetPlayerCheckpoint(playerid, X, Y, Z, 5);
  1494. new vZone[MAX_ZONE_NAME];
  1495. GetVehicleZone(pRent[playerid], vZone, MAX_ZONE_NAME);
  1496. format(string, sizeof(string), "Twój %s jest w %s, idź do czerwonego markera odebrać go", VehicleNames[GetVehicleModel(pRent[playerid])-400], vZone);
  1497. SendClientMessage(playerid, COLOR_YELLOW, string);
  1498. pSearched[playerid] = 1;
  1499. SetTimerEx("EnableSearch", 300000, false, "d", playerid);
  1500. return 1;
  1501. }
  1502. }
  1503. else
  1504. {
  1505. SendClientMessage(playerid, COLOR_LIGHTBLUE, "UŻYJ /wynajety [Akcja]");
  1506. SendClientMessage(playerid, COLOR_YELLOW2, "wynajmij, zamknij, otworz, znajdz");
  1507. return 1;
  1508. }
  1509. }
  1510. //-------------------------------[VEHCMDS]-------------------------------------------//
  1511. if (strcmp(cmd, "/vcmd", true) == 0)
  1512. {
  1513. SendClientMessage(playerid, COLOR_LIGHTBLUE, "=======================|Vehicles_system|=====================");
  1514. SendClientMessage(playerid, COLOR_WHITE, "/pojazd /wynajety /vinfo /odpal /tankuj /wywal /licznik /about /opis /kupnarzedzia /vukradnij");
  1515. SendClientMessage(playerid, COLOR_LIGHTBLUE, "=======================|-by: James_Alex|=====================");
  1516. return 1;
  1517. }
  1518. //-------------------------------[ABOUT]-------------------------------------------//
  1519. if (strcmp(cmd, "/about", true) == 0)
  1520. {
  1521. SendClientMessage(playerid, COLOR_LIGHTBLUE, "=======================|System Pojazdów|=====================");
  1522. SendClientMessage(playerid, COLOR_WHITE, "Ten system pojazdów ma wiele możliwości.");
  1523. SendClientMessage(playerid, COLOR_WHITE, "Wpisz /opis aby je zobaczyć.");
  1524. SendClientMessage(playerid, COLOR_LIGHTBLUE, "=======================|-by: James_Alex|=====================");
  1525. return 1;
  1526. }
  1527. //-------------------------------[FEATURES]-------------------------------------------//
  1528. if (strcmp(cmd, "/opis", true) == 0)
  1529. {
  1530. SendClientMessage(playerid, COLOR_LIGHTBLUE, "=======================|System Pojazdów|=====================");
  1531. SendClientMessage(playerid, COLOR_WHITE, "1-możesz kupić pojazd.");
  1532. SendClientMessage(playerid, COLOR_WHITE, "2-każdy pojad ma swoją cenę");
  1533. SendClientMessage(playerid, COLOR_WHITE, "3-licznik prędkości");
  1534. SendClientMessage(playerid, COLOR_WHITE, "4-system silnika");
  1535. SendClientMessage(playerid, COLOR_WHITE, "5-system tankowania");
  1536. SendClientMessage(playerid, COLOR_WHITE, "6-system wynajmowania");
  1537. SendClientMessage(playerid, COLOR_WHITE, "7-Systemy parkowania, brania, znajdowania...");
  1538. SendClientMessage(playerid, COLOR_LIGHTBLUE, "=======================|by: James_Alex|=====================");
  1539. return 1;
  1540. }
  1541. //-------------------------------[ROBVEH]-------------------------------------------//
  1542. if (strcmp(cmd, "/vukradnij", true) == 0)
  1543. {
  1544. if(pToolkit[playerid] == 0)
  1545. {
  1546. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie masz narzędzi!");
  1547. return 1;
  1548. }
  1549. for(new v=0;v<MAX_VEHICLES;v++)
  1550. {
  1551. if(IsPlayerInAnyVehicle(playerid))
  1552. {
  1553. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  1554. return 1;
  1555. }
  1556. if(!ProxDetectorV(4, playerid, v))
  1557. {
  1558. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w okolicy żadnego pojazdu!");
  1559. return 1;
  1560. }
  1561. if(VehicleInfo[v][vLock] == 0)
  1562. {
  1563. SendClientMessage(playerid, COLOR_LIGHTRED, "Ten pojazd nie jest zamknięty!");
  1564. return 1;
  1565. }
  1566. new name[MAX_PLAYER_NAME];
  1567. GetPlayerName(playerid, name, sizeof(name));
  1568. if(strcmp(name, VehicleInfo[v][vOwner], true) == 0)
  1569. {
  1570. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie możesz ukraść tego pojazdu!");
  1571. return 1;
  1572. }
  1573. if(pToolkit[playerid] < VehicleInfo[v][vLock])
  1574. {
  1575. format(string, sizeof(string), "%s nie ukradłeś pojazdu", name);
  1576. ProxDetector(15, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1577. return 1;
  1578. }
  1579. else if(pToolkit[playerid] == VehicleInfo[v][vLock])
  1580. {
  1581. format(string, sizeof(string), "%s próbuje ukraść pojazd", name);
  1582. ProxDetector(15, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1583. SetTimerEx("RobVeh", 5000, false, "d", playerid, v);
  1584. Egale[playerid] = 1;
  1585. return 1;
  1586. }
  1587. else if(pToolkit[playerid] > VehicleInfo[v][vLock])
  1588. {
  1589. format(string, sizeof(string), "%s próbuje ukraśc pojazd", name);
  1590. ProxDetector(15, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1591. SetTimerEx("RobVeh", 5000, false, "d", playerid, v);
  1592. Egale[playerid] = 0;
  1593. return 1;
  1594. }
  1595. }
  1596. }
  1597. //-------------------------------[BUYTOOLKIT]-------------------------------------------//
  1598. if (strcmp(cmd, "/kupnarzedzia", true) == 0)
  1599. {
  1600. tmp = strtok(cmdtext, idx);
  1601. if(!strlen(tmp))
  1602. {
  1603. SendClientMessage(playerid, COLOR_GREY, "USAGE: /kupnarzedzia [poziom(1-5)]");
  1604. return 1;
  1605. }
  1606. new tool;
  1607. tool = strval(tmp);
  1608. if(tool < 1 || tool > 5) { SendClientMessage(playerid, COLOR_LIGHTRED, "Poziom narzędzi nie może być mniejszy niż 1 i wiekszy niż 5 !"); return 1; }
  1609. if(pToolkit[playerid] >= tool) { format(string, sizeof(string), "Masz już system narzedzi %d poziomu lub wyższy!", tool); SendClientMessage(playerid, COLOR_LIGHTRED, string); return 1; }
  1610. new PriceT = tool*7000;
  1611. if(GetPlayerMoney(playerid) < PriceT)
  1612. {
  1613. format(string, sizeof(string), "Nie masz $%d aby kupić narzędzia poziomu %d", PriceT, tool);
  1614. SendClientMessage(playerid, COLOR_LIGHTRED, string);
  1615. return 1;
  1616. }
  1617. pToolkit[playerid] = tool;
  1618. format(string, sizeof(string), "Kupiłeś narzędzia poziomu %d za $%d.", tool, PriceT);
  1619. SendClientMessage(playerid, COLOR_YELLOW, string);
  1620. GivePlayerMoney(playerid, -PriceT);
  1621. return 1;
  1622.  
  1623. }
  1624. //-------------------------------[VEHINFO]-------------------------------------------//
  1625. if (strcmp(cmd, "/vinfo", true) == 0)
  1626. {
  1627. if(!IsPlayerInAnyVehicle(playerid))
  1628. {
  1629. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  1630. return 1;
  1631. }
  1632. new vehi = GetPlayerVehicleID(playerid);
  1633. if(VehicleInfo[vehi][vOwned] == 1)
  1634. {
  1635. new btext[20];
  1636. if(VehicleInfo[vehi][vColorOne] == 0) { btext = "black"; }
  1637. else if(VehicleInfo[vehi][vColorOne] == 1) { btext = "white"; }
  1638. else if(VehicleInfo[vehi][vColorOne] == 2) { btext = "lightblue"; }
  1639. else if(VehicleInfo[vehi][vColorOne] == 3) { btext = "red"; }
  1640. else if(VehicleInfo[vehi][vColorOne] == 4) { btext = "green"; }
  1641. else if(VehicleInfo[vehi][vColorOne] == 5) { btext = "pink"; }
  1642. else if(VehicleInfo[vehi][vColorOne] == 6) { btext = "yellow"; }
  1643. else if(VehicleInfo[vehi][vColorOne] == 7) { btext = "blue"; }
  1644. else if(VehicleInfo[vehi][vColorOne] == 8) { btext = "grey"; }
  1645. else if(VehicleInfo[vehi][vColorOne] == 42) { btext = "lightred"; }
  1646. else if(VehicleInfo[vehi][vColorOne] == 16) { btext = "lightgreen"; }
  1647. else if(VehicleInfo[vehi][vColorOne] == 20) { btext = "purple"; }
  1648. new etext2[20];
  1649. if(VehicleInfo[vehi][vColorTwo] == 0) { etext2 = "black"; }
  1650. else if(VehicleInfo[vehi][vColorTwo] == 1) { etext2 = "white"; }
  1651. else if(VehicleInfo[vehi][vColorTwo] == 2) { etext2= "lightblue"; }
  1652. else if(VehicleInfo[vehi][vColorTwo] == 3) { etext2 = "red"; }
  1653. else if(VehicleInfo[vehi][vColorTwo] == 4) { etext2 = "green"; }
  1654. else if(VehicleInfo[vehi][vColorTwo] == 5) { etext2 = "pink"; }
  1655. else if(VehicleInfo[vehi][vColorTwo] == 6) { etext2 = "yellow"; }
  1656. else if(VehicleInfo[vehi][vColorTwo] == 7) { etext2 = "blue"; }
  1657. else if(VehicleInfo[vehi][vColorTwo] == 8) { etext2 = "grey"; }
  1658. else if(VehicleInfo[vehi][vColorTwo] == 42) { etext2 = "lightred"; }
  1659. else if(VehicleInfo[vehi][vColorTwo] == 16) { etext2 = "lightgreen"; }
  1660. else if(VehicleInfo[vehi][vColorTwo] == 20) { etext2 = "purple"; }
  1661. new ltext[20];
  1662. if(VehicleInfo[vehi][vLock] >= 1) { ltext = "yes"; }
  1663. else if(VehicleInfo[vehi][vLock] == 0) { ltext = "no"; }
  1664. new atext[20];
  1665. if(VehicleInfo[vehi][vAlarm] >= 1) { atext = "yes"; }
  1666. else if(VehicleInfo[vehi][vAlarm] == 0) { atext = "no"; }
  1667. new rtext[20];
  1668. if(Engine[vehi] == 0) { rtext = "stoped"; }
  1669. else if(Engine[vehi] == 1) { rtext = "started"; }
  1670. new rtext2[20];
  1671. if(VehicleInfo[vehi][vRentPrice] == 0) { rtext2 = "no"; }
  1672. else { rtext2 = "yes"; }
  1673. format(string, sizeof(string), "Model:%s|Własciciel:%s|Opis:%s|Silnik:%s|Alarm:%s|AlarmPoziom:%d|Kolor1:%s|Kolor2:%s|Zamknięty:%s|ZamkniętyPozioml:%s|Wynajęty:%s|WynajętyPoziom:$%d", VehicleNames[GetVehicleModel(vehi)-400],
  1674. VehicleInfo[vehi][vOwner], VehicleInfo[vehi][vDescription], rtext, atext, VehicleInfo[vehi][vAlarm], btext, etext2, ltext, VehicleInfo[vehi][vLockBuyed], rtext2, VehicleInfo[vehi][vRentPrice]);
  1675. return 1;
  1676. }
  1677. else
  1678. {
  1679. SendClientMessage(playerid, COLOR_WHITE, "Możesz zobaczyć info tylko swojego pojazdu!");
  1680. return 1;
  1681. }
  1682. }
  1683. //-------------------------------[ENGINE]-------------------------------------------//
  1684. if (strcmp(cmd, "/odpal", true) ==0 )
  1685. {
  1686. new name[MAX_PLAYER_NAME];
  1687. GetPlayerName(playerid, name, sizeof(name));
  1688. if(!IsPlayerInAnyVehicle(playerid))
  1689. {
  1690. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  1691. return 1;
  1692. }
  1693. new veha = GetPlayerVehicleID(playerid);
  1694. if(Engine[veha] == 0)
  1695. {
  1696. if(VehicleInfo[veha][vRentPrice] == 0)
  1697. {
  1698. SetTimerEx("EngineOn", 7000, false, "i", veha, playerid);
  1699. format(string, sizeof(string), "~y~Odpalanie silnika %s", VehicleNames[GetVehicleModel(veha)-400]);
  1700. GameTextForPlayer(playerid, string, 6000, 5);
  1701. format(string, sizeof(string), "%s próbuje odpalić silnik %s.", name, VehicleNames[GetVehicleModel(veha)-400]);
  1702. ProxDetector(20, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1703. return 1;
  1704. }
  1705. else
  1706. {
  1707. if(vRented[veha] == playerid && pRent[playerid] == veha || strcmp(name, VehicleInfo[veha][vOwner], true) == 0)
  1708. {
  1709. SetTimerEx("EngineOn", 7000, false, "i", veha, playerid);
  1710. format(string, sizeof(string), "~y~Odpalanie silnika %s", VehicleNames[GetVehicleModel(veha)-400]);
  1711. GameTextForPlayer(playerid, string, 6000, 5);
  1712. format(string, sizeof(string), "%s próbuje odpalić silnik %s.", name, VehicleNames[GetVehicleModel(veha)-400]);
  1713. ProxDetector(20, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1714. return 1;
  1715. }
  1716. }
  1717. }
  1718. else
  1719. {
  1720. TogglePlayerControllable(playerid, 0);
  1721. Engine[veha] = 0;
  1722. format(string, sizeof(string), "%s zatrzymał silnik %s.", name, VehicleNames[GetVehicleModel(veha)-400]);
  1723. ProxDetector(20, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
  1724. return 1;
  1725. }
  1726. }
  1727. //-------------------------------[V]-------------------------------------------//
  1728. if (strcmp(cmd, "/diler", true) ==0 )
  1729. {
  1730. SetPlayerPos(playerid,-145.5565,1173.3936,19.7422);
  1731. SetCameraBehindPlayer(playerid);
  1732. return 1;
  1733. }
  1734. if (strcmp(cmd, "/pojazd", true) ==0 )
  1735. {
  1736. tmp = strtok(cmdtext, idx);
  1737. if(!strlen(tmp))
  1738. {
  1739. SendClientMessage(playerid, COLOR_LIGHTBLUE, "UŻYJ: /pojazd [Akcja]");
  1740. SendClientMessage(playerid, COLOR_YELLOW2, "kup, pomoc, sprzedaj, oferta, parkuj, znajdz, wez, zamknij, otworz, zmienkolor");
  1741. SendClientMessage(playerid, COLOR_YELLOW2, "kupzamek, kupalarm, cenawynajmu, cenaodwynajmu, reklama");
  1742. SendClientMessage(playerid, COLOR_YELLOW2, "akceptuj, odmow");
  1743. return 1;
  1744. }
  1745. if(!strcmp(tmp, "kup",true,4))
  1746. {
  1747. if(IsPlayerConnected(playerid))
  1748. {
  1749. tmp = strtok(cmdtext, idx);
  1750. if(!strlen(tmp))
  1751. {
  1752. SendClientMessage(playerid, COLOR_GRAD2, "UŻYJ: /pojazd kup [Model]");
  1753. SendClientMessage(playerid, COLOR_GRAD2, "Użyj /pojazd pomoc aby zobaczyć modele pojazdów i ich ceny.");
  1754. return 1;
  1755. }
  1756. if (PlayerToPoint(4.0,playerid,-145.5565,1173.3936,19.7422))
  1757. {
  1758. new car;
  1759. car = strval(tmp);
  1760. if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_LIGHTRED, "Numer pojazdu nie może być mniejszy niż 400 i wiekszy niż 611!"); return 1; }
  1761. if(CarsPrices[car-400] == 0)
  1762. {
  1763. SendClientMessage(playerid, COLOR_LIGHTRED, "Ten pojazd nie jest na sprzedaż!");
  1764. return 1;
  1765. }
  1766. if(GetPlayerMoney(playerid) < CarsPrices[car-400])
  1767. {
  1768. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie masz tyle pieniędzy!");
  1769. return 1;
  1770. }
  1771. pCar[playerid] = car;
  1772. ShowMenuForPlayer(ColorsS, playerid);
  1773. return 1;
  1774. }
  1775. else
  1776. {
  1777. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w sklepie dilera!");
  1778. return 1;
  1779. }
  1780. }
  1781. }
  1782. if(!strcmp(tmp, "cenawynajmu",true,4))
  1783. {
  1784. if(!IsPlayerInAnyVehicle(playerid))
  1785. {
  1786. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  1787. return 1;
  1788. }
  1789. new vehi = GetPlayerVehicleID(playerid);
  1790. if(VehicleInfo[vehi][vOwned] != 1)
  1791. {
  1792. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  1793. return 1;
  1794. }
  1795. new plname[MAX_PLAYER_NAME];
  1796. GetPlayerName(playerid, plname, sizeof(plname));
  1797. if(strcmp(plname, VehicleInfo[vehi][vOwner], true) == 0)
  1798. {
  1799. tmp = strtok(cmdtext, idx);
  1800. if(!strlen(tmp))
  1801. {
  1802. SendClientMessage(playerid, COLOR_WHITE, "UŻYJ: /pojazd cenawynajmu [cena]");
  1803. return 1;
  1804. }
  1805. new pp = strval(tmp);
  1806. if(pp < 500 || pp > 100000) { SendClientMessage(playerid, COLOR_LIGHTRED, "Cena wynajmu nie może być mniejsza niż $500 i większa niż $100000"); return 1; }
  1807. VehicleInfo[vehi][vRentPrice] = pp;
  1808. format(string, sizeof(string), "Twój %s jest teraz do wynajmu za $%d.", VehicleNames[GetVehicleModel(vehi)-400], pp);
  1809. SendClientMessage(playerid, COLOR_YELLOW, string);
  1810. SaveVehicles(playerid, vehi);
  1811. return 1;
  1812. }
  1813. else
  1814. {
  1815. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  1816. return 1;
  1817. }
  1818. }
  1819. if(!strcmp(tmp, "cenaodwynajmu",true,4))
  1820. {
  1821. if(!IsPlayerInAnyVehicle(playerid))
  1822. {
  1823. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  1824. return 1;
  1825. }
  1826. new vehi = GetPlayerVehicleID(playerid);
  1827. if(VehicleInfo[vehi][vOwned] != 1)
  1828. {
  1829. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  1830. return 1;
  1831. }
  1832. new plname[MAX_PLAYER_NAME];
  1833. GetPlayerName(playerid, plname, sizeof(plname));
  1834. if(strcmp(plname, VehicleInfo[vehi][vOwner], true) == 0)
  1835. {
  1836. if(VehicleInfo[vehi][vRentPrice] > 0)
  1837. {
  1838. VehicleInfo[vehi][vRentPrice] = 0;
  1839. format(string, sizeof(string), "Twój %s został odwynajmowany..", VehicleNames[GetVehicleModel(vehi)-400]);
  1840. SendClientMessage(playerid, COLOR_YELLOW, string);
  1841. SaveVehicles(playerid, vehi);
  1842. return 1;
  1843. }
  1844. else
  1845. {
  1846. SendClientMessage(playerid, COLOR_LIGHTRED, "Ten pojazd nie jest od wynajmu!");
  1847. return 1;
  1848. }
  1849. }
  1850. else
  1851. {
  1852. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  1853. return 1;
  1854. }
  1855. }
  1856. if(!strcmp(tmp, "reklama",true,4))
  1857. {
  1858. if(!IsPlayerInAnyVehicle(playerid))
  1859. {
  1860. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  1861. return 1;
  1862. }
  1863. new vehi = GetPlayerVehicleID(playerid);
  1864. if(VehicleInfo[vehi][vOwned] != 1)
  1865. {
  1866. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  1867. return 1;
  1868. }
  1869. new plname[MAX_PLAYER_NAME];
  1870. GetPlayerName(playerid, plname, sizeof(plname));
  1871. if(strcmp(plname, VehicleInfo[vehi][vOwner], true) == 0)
  1872. {
  1873. tmp = strtok(cmdtext, idx);
  1874. if(!strlen(tmp))
  1875. {
  1876. SendClientMessage(playerid, COLOR_WHITE, "UŻYJ: /pojazd reklama [cena]");
  1877. return 1;
  1878. }
  1879. new pp = strval(tmp);
  1880. format(string, sizeof(string), "%s zaoferował swojego %s za $%d", plname, VehicleNames[GetVehicleModel(vehi)-400], pp);
  1881. SendClientMessageToAll(COLOR_WHITE, string);
  1882. new btext[20];
  1883. if(VehicleInfo[vehi][vColorOne] == 0) { btext = "black"; }
  1884. else if(VehicleInfo[vehi][vColorOne] == 1) { btext = "white"; }
  1885. else if(VehicleInfo[vehi][vColorOne] == 2) { btext = "lightblue"; }
  1886. else if(VehicleInfo[vehi][vColorOne] == 3) { btext = "red"; }
  1887. else if(VehicleInfo[vehi][vColorOne] == 4) { btext = "green"; }
  1888. else if(VehicleInfo[vehi][vColorOne] == 5) { btext = "pink"; }
  1889. else if(VehicleInfo[vehi][vColorOne] == 6) { btext = "yellow"; }
  1890. else if(VehicleInfo[vehi][vColorOne] == 7) { btext = "blue"; }
  1891. else if(VehicleInfo[vehi][vColorOne] == 8) { btext = "grey"; }
  1892. else if(VehicleInfo[vehi][vColorOne] == 42) { btext = "lightred"; }
  1893. else if(VehicleInfo[vehi][vColorOne] == 16) { btext = "lightgreen"; }
  1894. else if(VehicleInfo[vehi][vColorOne] == 20) { btext = "purple"; }
  1895. new etext2[20];
  1896. if(VehicleInfo[vehi][vColorTwo] == 0) { etext2 = "black"; }
  1897. else if(VehicleInfo[vehi][vColorTwo] == 1) { etext2 = "white"; }
  1898. else if(VehicleInfo[vehi][vColorTwo] == 2) { etext2= "lightblue"; }
  1899. else if(VehicleInfo[vehi][vColorTwo] == 3) { etext2 = "red"; }
  1900. else if(VehicleInfo[vehi][vColorTwo] == 4) { etext2 = "green"; }
  1901. else if(VehicleInfo[vehi][vColorTwo] == 5) { etext2 = "pink"; }
  1902. else if(VehicleInfo[vehi][vColorTwo] == 6) { etext2 = "yellow"; }
  1903. else if(VehicleInfo[vehi][vColorTwo] == 7) { etext2 = "blue"; }
  1904. else if(VehicleInfo[vehi][vColorTwo] == 8) { etext2 = "grey"; }
  1905. else if(VehicleInfo[vehi][vColorTwo] == 42) { etext2 = "lightred"; }
  1906. else if(VehicleInfo[vehi][vColorTwo] == 16) { etext2 = "lightgreen"; }
  1907. else if(VehicleInfo[vehi][vColorTwo] == 20) { etext2 = "purple"; }
  1908. new ltext[20];
  1909. if(VehicleInfo[vehi][vLock] >= 1) { ltext = "yes"; }
  1910. else if(VehicleInfo[vehi][vLock] == 0) { ltext = "no"; }
  1911. new atext[20];
  1912. if(VehicleInfo[vehi][vAlarm] >= 1) { atext = "yes"; }
  1913. else if(VehicleInfo[vehi][vAlarm] == 0) { atext = "no"; }
  1914. format(string, sizeof(string), "Model:[%s] |Kolor1:[%s] |Kolor2:[%s] |Zamknięty:[%s] |PoziomZamka:[%d] |Alarm:[%s] |PoziomAlarmu:[%d].", VehicleNames[GetVehicleModel(vehi)-400], btext, etext2, ltext, VehicleInfo[vehi][vLockBuyed], atext, VehicleInfo[vehi][vAlarm]);
  1915. SendClientMessageToAll(COLOR_LIGHTBLUE, string);
  1916. return 1;
  1917. }
  1918. else
  1919. {
  1920. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  1921. return 1;
  1922. }
  1923. }
  1924. if(!strcmp(tmp, "pomoc",true,4))
  1925. {
  1926. if(IsPlayerConnected(playerid))
  1927. {
  1928. new length = strlen(cmdtext);
  1929. while ((idx < length) && (cmdtext[idx] <= ' '))
  1930. {
  1931. idx++;
  1932. }
  1933. new offset = idx;
  1934. new result[64];
  1935. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  1936. {
  1937. result[idx - offset] = cmdtext[idx];
  1938. idx++;
  1939. }
  1940. result[idx - offset] = EOS;
  1941. if(!strlen(result))
  1942. {
  1943. SendClientMessage(playerid, COLOR_GRAD2, "UŻYJ: /pojazd pomoc [nazwa pojazdu]");
  1944. return 1;
  1945. }
  1946. new veh = GetVehicleModelIDFromName(result);
  1947. format(string, sizeof(string), "Nazwa:[%s] |Model:[%d] |Cena:[$%d]", VehicleNames[veh-400], veh, CarsPrices[veh-400]);
  1948. SendClientMessage(playerid, COLOR_WHITE, string);
  1949. return 1;
  1950. }
  1951. }
  1952. if(!strcmp(tmp, "sprzedaj",true,4))
  1953. {
  1954. if(!IsPlayerInAnyVehicle(playerid))
  1955. {
  1956. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  1957. return 1;
  1958. }
  1959. new vehi = GetPlayerVehicleID(playerid);
  1960. if(VehicleInfo[vehi][vOwned] != 1)
  1961. {
  1962. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  1963. return 1;
  1964. }
  1965. new plname[MAX_PLAYER_NAME];
  1966. GetPlayerName(playerid, plname, sizeof(plname));
  1967. if(strcmp(plname, VehicleInfo[vehi][vOwner], true) == 0)
  1968. {
  1969. new PriceS = (CarsPrices[GetVehicleModel(vehi)-400]*30)/100;
  1970. new Price = CarsPrices[GetVehicleModel(vehi)-400]-PriceS;
  1971. format(string, sizeof(string), "Sprzedałeś swojego %s i dostałeś $%d", VehicleNames[GetVehicleModel(vehi)-400], Price);
  1972. SendClientMessage(playerid, COLOR_GREEN, string);
  1973. format(string, sizeof(string), "Vehicles/Vehicles/%s.%s.cfg", plname, VehicleNames[GetVehicleModel(vehi)-400]);
  1974. GivePlayerMoney(playerid, Price);
  1975. new str[256];
  1976. format(str, sizeof(str), "%s.%s.cfg", plname, VehicleNames[GetVehicleModel(vehi)-400]);
  1977. if(strfind(str, PlayerVehicle[playerid][pVeh1], true) == 0)
  1978. {
  1979. DestroyVehicle(vehi);
  1980. fremove(string);
  1981. strmid(PlayerVehicle[playerid][pVeh1], "None", 0, strlen("None"), 255);
  1982. return 1;
  1983. }
  1984. else if(strcmp(str, PlayerVehicle[playerid][pVeh2], true) == 0)
  1985. {
  1986. DestroyVehicle(vehi);
  1987. fremove(string);
  1988. strmid(PlayerVehicle[playerid][pVeh2], "None", 0, strlen("None"), 255);
  1989. return 1;
  1990. }
  1991. else if(strcmp(str, PlayerVehicle[playerid][pVeh3], true) == 0)
  1992. {
  1993. DestroyVehicle(vehi);
  1994. fremove(string);
  1995. strmid(PlayerVehicle[playerid][pVeh3], "None", 0, strlen("None"), 255);
  1996. return 1;
  1997. }
  1998. else if(strcmp(str, PlayerVehicle[playerid][pVeh4], true) == 0)
  1999. {
  2000. DestroyVehicle(vehi);
  2001. fremove(string);
  2002. strmid(PlayerVehicle[playerid][pVeh4], "None", 0, strlen("None"), 255);
  2003. return 1;
  2004. }
  2005. else if(strcmp(str, PlayerVehicle[playerid][pVeh5], true) == 0)
  2006. {
  2007. DestroyVehicle(vehi);
  2008. fremove(string);
  2009. strmid(PlayerVehicle[playerid][pVeh5], "None", 0, strlen("None"), 255);
  2010. return 1;
  2011. }
  2012. return 1;
  2013. }
  2014. else
  2015. {
  2016. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  2017. return 1;
  2018. }
  2019. }
  2020. if(!strcmp(tmp, "oferta",true,4))
  2021. {
  2022. if(!IsPlayerInAnyVehicle(playerid))
  2023. {
  2024. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jesteś w pojeździe!");
  2025. return 1;
  2026. }
  2027. new vehi = GetPlayerVehicleID(playerid);
  2028. if(VehicleInfo[vehi][vOwned] != 1)
  2029. {
  2030. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  2031. return 1;
  2032. }
  2033. new plname[MAX_PLAYER_NAME];
  2034. GetPlayerName(playerid, plname, sizeof(plname));
  2035. if(strcmp(plname, VehicleInfo[vehi][vOwner], true) == 0)
  2036. {
  2037. tmp = strtok(cmdtext, idx);
  2038. if(!strlen(tmp))
  2039. {
  2040. SendClientMessage(playerid, COLOR_WHITE, "UŻYJ: /pojazd oferta [IdGracza/KawałekImienia] [Cena]");
  2041. return 1;
  2042. }
  2043. new user = ReturnUser(tmp);
  2044. if(user == INVALID_PLAYER_ID)
  2045. {
  2046. SendClientMessage(playerid, COLOR_LIGHTRED, "Nieprawidłowy id gracza!");
  2047. return 1;
  2048. }
  2049. if(user == playerid)
  2050. {
  2051. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie możesz sobie sprzedać pojazdu!");
  2052. return 1;
  2053. }
  2054. tmp = strtok(cmdtext, idx);
  2055. if(!strlen(tmp))
  2056. {
  2057. SendClientMessage(playerid, COLOR_WHITE, "UŻYJ: /pojazd oferta [IdGracza/KawałekImienia] [Cena]");
  2058. return 1;
  2059. }
  2060. if(!ProxDetectorS(8, playerid, user))
  2061. {
  2062. SendClientMessage(playerid, COLOR_LIGHTRED, "Jesteś za daleko!");
  2063. return 1;
  2064. }
  2065. new price = strval(tmp);
  2066. new pName[MAX_PLAYER_NAME];
  2067. GetPlayerName(user, pName, sizeof(pName));
  2068. GetPlayerName(playerid, playername, sizeof(playername));
  2069. format(string, sizeof(string), "%s zaoferował ci swojego %s za $%d, użyj /pojazd akceptuj lub odmow.", playername, VehicleNames[GetVehicleModel(vehi)-400], price);
  2070. SendClientMessage(user, COLOR_YELLOW, string);
  2071. format(string, sizeof(string), "Sprzedałeś swojego %s osobie %s za $%d.", VehicleNames[GetVehicleModel(vehi)-400], pName, price);
  2072. SendClientMessage(playerid, COLOR_GREEN, string);
  2073. pToAccept[user] = playerid;
  2074. vToAccept[user] = vehi;
  2075. prToAccept[user] = price;
  2076. return 1;
  2077. }
  2078. else
  2079. {
  2080. SendClientMessage(playerid, COLOR_LIGHTRED, "To nie twój pojazd!");
  2081. return 1;
  2082. }
  2083. }
  2084. if(!strcmp(tmp, "akceptuj",true,4))
  2085. {
  2086. if(pToAccept[playerid] == 255)
  2087. {
  2088. SendClientMessage(playerid, COLOR_LIGHTRED, "Nie masz niczego do akceptacji");
  2089. return 1;
  2090. }
  2091. if(GetPlayerMoney(playerid) >= prToAccept[playerid])
  2092. {
  2093. new pName[MAX_PLAYER_NAME];
  2094. GetPlayerName(pToAccept[playerid], pName, sizeof(pName));
  2095. GetPlayerName(playerid, playername, sizeof(playername));
  2096. format(string, sizeof(string), "Akceptowałeś %s od %s za $%d.", VehicleNames[GetVehicleModel(vToAccept[playerid])-400], pName, prToAccept[playerid]);
  2097. SendClientMessage(playerid, COLOR_GREEN, string);
  2098. format(string, sizeof(string), "%s akceptował twojego %s za $%d.", playername, VehicleNames[GetVehicleModel(vToAccept[playerid])-400], prToAccept[playerid]);
  2099. SendClientMessage(pToAccept[playerid], COLOR_GREEN, string);
  2100. new str2[256];
  2101. format(str2, sizeof(str2), "%s.%s", playername, VehicleNames[GetVehicleModel(vToAccept[playerid])-400]);
  2102. new str[256];
  2103. format(str, sizeof(str), "%s.%s.cfg", pName, VehicleNames[GetVehicleModel(vToAccept[playerid])-400]);
  2104. GivePlayerMoney(pToAccept[playerid], prToAccept[playerid]);
  2105. GivePlayerMoney(playerid, -prToAccept[playerid]);
  2106. if(strfind(str, PlayerVehicle[pToAccept[playerid]][pVeh1], true) == 0)
  2107. {
  2108. if(strcmp(PlayerVehicle[playerid][pVeh1], "None", true) == 0)
  2109. {
  2110. strmid(PlayerVehicle[playerid][pVeh1], str2, 0, strlen(str2), 255);
  2111. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playername), 255);
  2112. strmid(PlayerVehicle[pToAccept[playerid]][pVeh1], "None", 0, strlen("None"), 255);
  2113. SaveVehicles(playerid, vToAccept[playerid]);
  2114. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2115. return 1;
  2116. }
  2117. else if(strcmp(PlayerVehicle[playerid][pVeh2], "None", true) == 0)
  2118. {
  2119. strmid(PlayerVehicle[playerid][pVeh2], str2, 0, strlen(str2), 255);
  2120. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playername), 255);
  2121. strmid(PlayerVehicle[pToAccept[playerid]][pVeh1], "None", 0, strlen("None"), 255);
  2122. SaveVehicles(playerid, vToAccept[playerid]);
  2123. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2124. return 1;
  2125. }
  2126. else if(strcmp(PlayerVehicle[playerid][pVeh3], "None", true) == 0)
  2127. {
  2128. strmid(PlayerVehicle[playerid][pVeh3], str2, 0, strlen(str2), 255);
  2129. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playername), 255);
  2130. strmid(PlayerVehicle[pToAccept[playerid]][pVeh1], "None", 0, strlen("None"), 255);
  2131. SaveVehicles(playerid, vToAccept[playerid]);
  2132. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2133. return 1;
  2134. }
  2135. else if(strcmp(PlayerVehicle[playerid][pVeh4], "None", true) == 0)
  2136. {
  2137. strmid(PlayerVehicle[playerid][pVeh4], str2, 0, strlen(str2), 255);
  2138. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playername), 255);
  2139. strmid(PlayerVehicle[pToAccept[playerid]][pVeh1], "None", 0, strlen("None"), 255);
  2140. SaveVehicles(playerid, vToAccept[playerid]);
  2141. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2142. return 1;
  2143. }
  2144. else if(strcmp(PlayerVehicle[playerid][pVeh5], "None", true) == 0)
  2145. {
  2146. strmid(PlayerVehicle[playerid][pVeh5], str2, 0, strlen(str2), 255);
  2147. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playername), 255);
  2148. strmid(PlayerVehicle[pToAccept[playerid]][pVeh1], "None", 0, strlen("None"), 255);
  2149. SaveVehicles(playerid, vToAccept[playerid]);
  2150. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2151. return 1;
  2152. }
  2153. else
  2154. {
  2155. SendClientMessage(playerid, COLOR_LIGHTRED, "Masz już 5 pojazdów!");
  2156. SendClientMessage(pToAccept[playerid], COLOR_LIGHTRED, "Twój pojazd nie może zostać sprzedany, ponieważ kupiec ma już 5 pojazdów.");
  2157. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2158. return 1;
  2159. }
  2160. }
  2161. else if(strcmp(str, PlayerVehicle[pToAccept[playerid]][pVeh2], true) == 0)
  2162. {
  2163. if(strcmp(PlayerVehicle[playerid][pVeh1], "None", true) == 0)
  2164. {
  2165. strmid(PlayerVehicle[playerid][pVeh1], str2, 0, strlen(str2), 255);
  2166. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playername), 255);
  2167. strmid(PlayerVehicle[pToAccept[playerid]][pVeh2], "None", 0, strlen("None"), 255);
  2168. SaveVehicles(playerid, vToAccept[playerid]);
  2169. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2170. return 1;
  2171. }
  2172. else if(strcmp(PlayerVehicle[playerid][pVeh2], "None", true) == 0)
  2173. {
  2174. strmid(PlayerVehicle[playerid][pVeh2], str2, 0, strlen(str2), 255);
  2175. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playername), 255);
  2176. strmid(PlayerVehicle[pToAccept[playerid]][pVeh2], "None", 0, strlen("None"), 255);
  2177. SaveVehicles(playerid, vToAccept[playerid]);
  2178. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2179. return 1;
  2180. }
  2181. else if(strcmp(PlayerVehicle[playerid][pVeh3], "None", true) == 0)
  2182. {
  2183. strmid(PlayerVehicle[playerid][pVeh3], str2, 0, strlen(str2), 255);
  2184. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playername), 255);
  2185. strmid(PlayerVehicle[pToAccept[playerid]][pVeh2], "None", 0, strlen("None"), 255);
  2186. SaveVehicles(playerid, vToAccept[playerid]);
  2187. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2188. return 1;
  2189. }
  2190. else if(strcmp(PlayerVehicle[playerid][pVeh4], "None", true) == 0)
  2191. {
  2192. strmid(PlayerVehicle[playerid][pVeh4], str2, 0, strlen(str2), 255);
  2193. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playername), 255);
  2194. strmid(PlayerVehicle[pToAccept[playerid]][pVeh2], "None", 0, strlen("None"), 255);
  2195. SaveVehicles(playerid, vToAccept[playerid]);
  2196. pToAccept[playerid] = 255; vToAccept[playerid] = 999; prToAccept[playerid] = 0;
  2197. return 1;
  2198. }
  2199. else if(strcmp(PlayerVehicle[playerid][pVeh5], "None", true) == 0)
  2200. {
  2201. strmid(PlayerVehicle[playerid][pVeh5], str2, 0, strlen(str2), 255);
  2202. strmid(VehicleInfo[vToAccept[playerid]][vOwner], playername, 0, strlen(playernam
  2203.  
  2204. strtok(const string[], &index)
  2205. {
  2206. new length = strlen(string);
  2207. while ((index < length) && (string[index] <= ' '))
  2208. {
  2209. index++;
  2210. }
  2211.  
  2212. new offset = index;
  2213. new result[20];
  2214. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  2215. {
  2216. result[index - offset] = string[index];
  2217. index++;
  2218. }
  2219. result[index - offset] = EOS;
  2220. return result;
  2221. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement