Advertisement
Chip7

[FS] FilterScript Sistema de veículo próprio - Set

Sep 28th, 2013
568
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 67.82 KB | None | 0 0
  1. /* -------------------------------------------------------------------
  2.  
  3.    FilterScript Sistema de veículo próprio criado por Maklister
  4.  
  5.    Arquivos necessários:
  6.  
  7.         includes a_samp, sscanf2, DOF2, zcmd, streamer
  8.  
  9.         Plugins streamer.dll ( Windows ) - streamer.so ( Linux )
  10.  
  11.         Pasta SeuServidor\scriptfiles\Carros
  12.  
  13.  
  14.     Créditos:
  15.  
  16.         Maklister: Criação do código e desenvolvimento
  17.  
  18.         SAMP Team, Zeex, Double o seven, Y_Less
  19.  
  20.   VISITE NOSSO SITE: http://www.sampknd.com/
  21.   VISITE NOSSO FACEBOOK: http://www.facebook.com/SampKnd
  22.   SAMP KND MELHOR BLOG DE SAMP DO BRASIL
  23. ----------------------------------------------------------------------- */
  24.  
  25.  
  26.  
  27.  
  28. // --------[ Includes ]-----------
  29.  
  30. #include < a_samp   >
  31. #include < sscanf2  >
  32. #include < streamer >
  33. #include <   zcmd   >
  34. #include <   DOF2   >
  35.  
  36.  
  37. // --------[ Defines ] -----------
  38.  
  39.  
  40. #define MAX_CARROS              100
  41. #define DIALOG_CMDSET           101
  42.  
  43. #define AMARELO            0xE8E800AA
  44. #define VERDE_CLARO        0x00FF00AA
  45. #define VERMELHO_ESCURO    0xFC0000FF
  46.  
  47. #if defined MAX_PLAYERS
  48. #undef MAX_PLAYERS
  49. #define MAX_PLAYERS 100
  50. #endif
  51.  
  52.  
  53. // --------[  New's  ] ------------
  54.  
  55. new
  56.  
  57.     SetProprio = 0,
  58.     Set[MAX_CARROS],
  59.     Text3D:Textcarro[MAX_CARROS],
  60.  
  61.     GPSTimerCar[MAX_PLAYERS],
  62.  
  63.     Text:LocalizarDistancia[MAX_PLAYERS],
  64.     Text:LocalizarLocalizacao[MAX_PLAYERS],
  65.  
  66.     bool: NaoUsado[MAX_VEHICLES]
  67. ;
  68.  
  69. new NomeCarro[212][] =
  70. {
  71.     "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana",
  72.     "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat",
  73.     "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife",
  74.     "Trailer 1", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo",
  75.     "Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
  76.     "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow",
  77.     "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito",
  78.     "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring",
  79.     "Sandking", "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B",
  80.     "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster","Stunt",  "Tanker",
  81.     "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
  82.     "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak",
  83.     "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck LA", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit",
  84.     "Utility", "Nevada", "Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance",
  85.     "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway",
  86.     "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer 3", "Emperor", "Wayfarer", "Euros", "Hotdog",
  87.     "Club", "Freight Carriage", "Trailer 4", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)", "Police Car (SFPD)",
  88.     "Police Car (LVPD)", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
  89.     "Luggage Trailer B", "Stairs", "BoxVille", "Tiller", "Utility Trailer"
  90. };
  91.  
  92. enum GPSInfo
  93. {
  94.     zone_name[30],
  95.     Float:zone_minx,
  96.     Float:zone_miny,
  97.     Float:zone_minz,
  98.     Float:zone_maxx,
  99.     Float:zone_maxy,
  100.     Float:zone_maxz
  101. }
  102.  
  103. new Float:Zones[][GPSInfo] =
  104. {
  105.     { "The Big Ear",                 -410.00,  1403.30,    -3.00,  -137.90,  1681.20,   200.00},
  106.     { "Aldea Malvada",               -1372.10,  2498.50,     0.00, -1277.50,  2615.30,   200.00},
  107.     { "Angel Pine",                  -2324.90, -2584.20,    -6.10, -1964.20, -2212.10,   200.00},
  108.     { "Arco del Oeste",               -901.10,  2221.80,     0.00,  -592.00,  2571.90,   200.00},
  109.     { "Avispa Country Club",         -2646.40,  -355.40,     0.00, -2270.00,  -222.50,   200.00},
  110.     { "Avispa Country Club",         -2831.80,  -430.20,    -6.10, -2646.40,  -222.50,   200.00},
  111.     { "Avispa Country Club",         -2361.50,  -417.10,     0.00, -2270.00,  -355.40,   200.00},
  112.     { "Avispa Country Club",         -2667.80,  -302.10,   -28.80, -2646.40,  -262.30,    71.10},
  113.     { "Avispa Country Club",         -2470.00,  -355.40,     0.00, -2270.00,  -318.40,    46.10},
  114.     { "Avispa Country Club",         -2550.00,  -355.40,     0.00, -2470.00,  -318.40,    39.70},
  115.     { "Back o Beyond",               -1166.90, -2641.10,     0.00,  -321.70, -1856.00,   200.00},
  116.     { "Battery Point",               -2741.00,  1268.40,    -4.50, -2533.00,  1490.40,   200.00},
  117.     { "Bayside",                     -2741.00,  2175.10,     0.00, -2353.10,  2722.70,   200.00},
  118.     { "Bayside Marina",              -2353.10,  2275.70,     0.00, -2153.10,  2475.70,   200.00},
  119.     { "Beacon Hill",                  -399.60, -1075.50,    -1.40,  -319.00,  -977.50,   198.50},
  120.     { "Blackfield",                    964.30,  1203.20,   -89.00,  1197.30,  1403.20,   110.90},
  121.     { "Blackfield",                    964.30,  1403.20,   -89.00,  1197.30,  1726.20,   110.90},
  122.     { "Blackfield Chapel",            1375.60,   596.30,   -89.00,  1558.00,   823.20,   110.90},
  123.     { "Blackfield Chapel",            1325.60,   596.30,   -89.00,  1375.60,   795.00,   110.90},
  124.     { "Blackfield Intersection",      1197.30,  1044.60,   -89.00,  1277.00,  1163.30,   110.90},
  125.     { "Blackfield Intersection",      1166.50,   795.00,   -89.00,  1375.60,  1044.60,   110.90},
  126.     { "Blackfield Intersection",      1277.00,  1044.60,   -89.00,  1315.30,  1087.60,   110.90},
  127.     { "Blackfield Intersection",      1375.60,   823.20,   -89.00,  1457.30,   919.40,   110.90},
  128.     { "Blueberry",                     104.50,  -220.10,     2.30,   349.60,   152.20,   200.00},
  129.     { "Blueberry",                      19.60,  -404.10,     3.80,   349.60,  -220.10,   200.00},
  130.     { "Blueberry Acres",              -319.60,  -220.10,     0.00,   104.50,   293.30,   200.00},
  131.     { "Caligula's Palace",            2087.30,  1543.20,   -89.00,  2437.30,  1703.20,   110.90},
  132.     { "Caligula's Palace",            2137.40,  1703.20,   -89.00,  2437.30,  1783.20,   110.90},
  133.     { "Calton Heights",              -2274.10,   744.10,    -6.10, -1982.30,  1358.90,   200.00},
  134.     { "Chinatown",                   -2274.10,   578.30,    -7.60, -2078.60,   744.10,   200.00},
  135.     { "City Hall",                   -2867.80,   277.40,    -9.10, -2593.40,   458.40,   200.00},
  136.     { "Come-A-Lot",                   2087.30,   943.20,   -89.00,  2623.10,  1203.20,   110.90},
  137.     { "Commerce",                     1323.90, -1842.20,   -89.00,  1701.90, -1722.20,   110.90},
  138.     { "Commerce",                     1323.90, -1722.20,   -89.00,  1440.90, -1577.50,   110.90},
  139.     { "Commerce",                     1370.80, -1577.50,   -89.00,  1463.90, -1384.90,   110.90},
  140.     { "Commerce",                     1463.90, -1577.50,   -89.00,  1667.90, -1430.80,   110.90},
  141.     { "Commerce",                     1583.50, -1722.20,   -89.00,  1758.90, -1577.50,   110.90},
  142.     { "Commerce",                     1667.90, -1577.50,   -89.00,  1812.60, -1430.80,   110.90},
  143.     { "Conference Center",            1046.10, -1804.20,   -89.00,  1323.90, -1722.20,   110.90},
  144.     { "Conference Center",            1073.20, -1842.20,   -89.00,  1323.90, -1804.20,   110.90},
  145.     { "Cranberry Station",           -2007.80,    56.30,     0.00, -1922.00,   224.70,   100.00},
  146.     { "Creek",                        2749.90,  1937.20,   -89.00,  2921.60,  2669.70,   110.90},
  147.     { "Dillimore",                     580.70,  -674.80,    -9.50,   861.00,  -404.70,   200.00},
  148.     { "Doherty",                     -2270.00,  -324.10,    -0.00, -1794.90,  -222.50,   200.00},
  149.     { "Doherty",                     -2173.00,  -222.50,    -0.00, -1794.90,   265.20,   200.00},
  150.     { "Downtown",                    -1982.30,   744.10,    -6.10, -1871.70,  1274.20,   200.00},
  151.     { "Downtown",                    -1871.70,  1176.40,    -4.50, -1620.30,  1274.20,   200.00},
  152.     { "Downtown",                    -1700.00,   744.20,    -6.10, -1580.00,  1176.50,   200.00},
  153.     { "Downtown",                    -1580.00,   744.20,    -6.10, -1499.80,  1025.90,   200.00},
  154.     { "Downtown",                    -2078.60,   578.30,    -7.60, -1499.80,   744.20,   200.00},
  155.     { "Downtown",                    -1993.20,   265.20,    -9.10, -1794.90,   578.30,   200.00},
  156.     { "Downtown Los Santos",          1463.90, -1430.80,   -89.00,  1724.70, -1290.80,   110.90},
  157.     { "Downtown Los Santos",          1724.70, -1430.80,   -89.00,  1812.60, -1250.90,   110.90},
  158.     { "Downtown Los Santos",          1463.90, -1290.80,   -89.00,  1724.70, -1150.80,   110.90},
  159.     { "Downtown Los Santos",          1370.80, -1384.90,   -89.00,  1463.90, -1170.80,   110.90},
  160.     { "Downtown Los Santos",          1724.70, -1250.90,   -89.00,  1812.60, -1150.80,   110.90},
  161.     { "Downtown Los Santos",          1370.80, -1170.80,   -89.00,  1463.90, -1130.80,   110.90},
  162.     { "Downtown Los Santos",          1378.30, -1130.80,   -89.00,  1463.90, -1026.30,   110.90},
  163.     { "Downtown Los Santos",          1391.00, -1026.30,   -89.00,  1463.90,  -926.90,   110.90},
  164.     { "Downtown Los Santos",          1507.50, -1385.20,   110.90,  1582.50, -1325.30,   335.90},
  165.     { "East Beach",                   2632.80, -1852.80,   -89.00,  2959.30, -1668.10,   110.90},
  166.     { "East Beach",                   2632.80, -1668.10,   -89.00,  2747.70, -1393.40,   110.90},
  167.     { "East Beach",                   2747.70, -1668.10,   -89.00,  2959.30, -1498.60,   110.90},
  168.     { "East Beach",                   2747.70, -1498.60,   -89.00,  2959.30, -1120.00,   110.90},
  169.     { "East Los Santos",              2421.00, -1628.50,   -89.00,  2632.80, -1454.30,   110.90},
  170.     { "East Los Santos",              2222.50, -1628.50,   -89.00,  2421.00, -1494.00,   110.90},
  171.     { "East Los Santos",              2266.20, -1494.00,   -89.00,  2381.60, -1372.00,   110.90},
  172.     { "East Los Santos",              2381.60, -1494.00,   -89.00,  2421.00, -1454.30,   110.90},
  173.     { "East Los Santos",              2281.40, -1372.00,   -89.00,  2381.60, -1135.00,   110.90},
  174.     { "East Los Santos",              2381.60, -1454.30,   -89.00,  2462.10, -1135.00,   110.90},
  175.     { "East Los Santos",              2462.10, -1454.30,   -89.00,  2581.70, -1135.00,   110.90},
  176.     { "Easter Basin",                 -1794.90,   249.90,    -9.10, -1242.90,   578.30,   200.00},
  177.     { "Easter Basin",                 -1794.90,   -50.00,    -0.00, -1499.80,   249.90,   200.00},
  178.     { "Aeroporto de Easter Bay",      -1499.80,   -50.00,    -0.00, -1242.90,   249.90,   200.00},
  179.     { "Aeroporto de Easter Bay",      -1794.90,  -730.10,    -3.00, -1213.90,   -50.00,   200.00},
  180.     { "Aeroporto de Easter Bay",      -1213.90,  -730.10,     0.00, -1132.80,   -50.00,   200.00},
  181.     { "Aeroporto de Easter Bay",      -1242.90,   -50.00,     0.00, -1213.90,   578.30,   200.00},
  182.     { "Aeroporto de Easter Bay",      -1213.90,   -50.00,    -4.50,  -947.90,   578.30,   200.00},
  183.     { "Aeroporto de Easter Bay",      -1315.40,  -405.30,    15.40, -1264.40,  -209.50,    25.40},
  184.     { "Aeroporto de Easter Bay",      -1354.30,  -287.30,    15.40, -1315.40,  -209.50,    25.40},
  185.     { "Aeroporto de Easter Bay",      -1490.30,  -209.50,    15.40, -1264.40,  -148.30,    25.40},
  186.     { "Easter Bay Chemicals",         -1132.80,  -768.00,     0.00,  -956.40,  -578.10,   200.00},
  187.     { "Easter Bay Chemicals",         -1132.80,  -787.30,     0.00,  -956.40,  -768.00,   200.00},
  188.     { "El Castillo del Diablo",       -464.50,  2217.60,     0.00,  -208.50,  2580.30,   200.00},
  189.     { "El Castillo del Diablo",       -208.50,  2123.00,    -7.60,   114.00,  2337.10,   200.00},
  190.     { "El Castillo del Diablo",       -208.50,  2337.10,     0.00,     8.40,  2487.10,   200.00},
  191.     { "El Corona",                    1812.60, -2179.20,   -89.00,  1970.60, -1852.80,   110.90},
  192.     { "El Corona",                    1692.60, -2179.20,   -89.00,  1812.60, -1842.20,   110.90},
  193.     { "El Quebrados",                -1645.20,  2498.50,     0.00, -1372.10,  2777.80,   200.00},
  194.     { "Esplanade East",              -1620.30,  1176.50,    -4.50, -1580.00,  1274.20,   200.00},
  195.     { "Esplanade East",              -1580.00,  1025.90,    -6.10, -1499.80,  1274.20,   200.00},
  196.     { "Esplanade East",              -1499.80,   578.30,   -79.60, -1339.80,  1274.20,    20.30},
  197.     { "Esplanade North",             -2533.00,  1358.90,    -4.50, -1996.60,  1501.20,   200.00},
  198.     { "Esplanade North",             -1996.60,  1358.90,    -4.50, -1524.20,  1592.50,   200.00},
  199.     { "Esplanade North",             -1982.30,  1274.20,    -4.50, -1524.20,  1358.90,   200.00},
  200.     { "Fallen Tree",                  -792.20,  -698.50,    -5.30,  -452.40,  -380.00,   200.00},
  201.     { "Fallow Bridge",                 434.30,   366.50,     0.00,   603.00,   555.60,   200.00},
  202.     { "Fern Ridge",                    508.10,  -139.20,     0.00,  1306.60,   119.50,   200.00},
  203.     { "Financial",                   -1871.70,   744.10,    -6.10, -1701.30,  1176.40,   300.00},
  204.     { "Fisher's Lagoon",              1916.90,  -233.30,  -100.00,  2131.70,    13.80,   200.00},
  205.     { "Flint Intersection",           -187.70, -1596.70,   -89.00,    17.00, -1276.60,   110.90},
  206.     { "Flint Range",                  -594.10, -1648.50,     0.00,  -187.70, -1276.60,   200.00},
  207.     { "Fort Carson",                  -376.20,   826.30,    -3.00,   123.70,  1220.40,   200.00},
  208.     { "Foster Valley",               -2270.00,  -430.20,    -0.00, -2178.60,  -324.10,   200.00},
  209.     { "Foster Valley",               -2178.60,  -599.80,    -0.00, -1794.90,  -324.10,   200.00},
  210.     { "Foster Valley",               -2178.60, -1115.50,     0.00, -1794.90,  -599.80,   200.00},
  211.     { "Foster Valley",               -2178.60, -1250.90,     0.00, -1794.90, -1115.50,   200.00},
  212.     { "Frederick Bridge",             2759.20,   296.50,     0.00,  2774.20,   594.70,   200.00},
  213.     { "Gant Bridge",                 -2741.40,  1659.60,    -6.10, -2616.40,  2175.10,   200.00},
  214.     { "Gant Bridge",                 -2741.00,  1490.40,    -6.10, -2616.40,  1659.60,   200.00},
  215.     { "Ganton",                       2222.50, -1852.80,   -89.00,  2632.80, -1722.30,   110.90},
  216.     { "Ganton",                       2222.50, -1722.30,   -89.00,  2632.80, -1628.50,   110.90},
  217.     { "Garcia",                      -2411.20,  -222.50,    -0.00, -2173.00,   265.20,   200.00},
  218.     { "Garcia",                      -2395.10,  -222.50,    -5.30, -2354.00,  -204.70,   200.00},
  219.     { "Garver Bridge",               -1339.80,   828.10,   -89.00, -1213.90,  1057.00,   110.90},
  220.     { "~yGarver Bridge",               -1213.90,   950.00,   -89.00, -1087.90,  1178.90,   110.90},
  221.     { "Garver Bridge",               -1499.80,   696.40,  -179.60, -1339.80,   925.30,    20.30},
  222.     { "Parque Glen",                    1812.60, -1449.60,   -89.00,  1996.90, -1350.70,   110.90},
  223.     { "Parque Glen",                    1812.60, -1100.80,   -89.00,  1994.30,  -973.30,   110.90},
  224.     { "Parque Glen",                    1812.60, -1350.70,   -89.00,  2056.80, -1100.80,   110.90},
  225.     { "Green Palms",                   176.50,  1305.40,    -3.00,   338.60,  1520.70,   200.00},
  226.     { "Greenglass College",            964.30,  1044.60,   -89.00,  1197.30,  1203.20,   110.90},
  227.     { "Greenglass College",            964.30,   930.80,   -89.00,  1166.50,  1044.60,   110.90},
  228.     { "Hampton Barns",                 603.00,   264.30,     0.00,   761.90,   366.50,   200.00},
  229.     { "Hankypanky Point",             2576.90,    62.10,     0.00,  2759.20,   385.50,   200.00},
  230.     { "Harry Gold Parkway",           1777.30,   863.20,   -89.00,  1817.30,  2342.80,   110.90},
  231.     { "Hashbury",                    -2593.40,  -222.50,    -0.00, -2411.20,    54.70,   200.00},
  232.     { "Hilltop Farm",                  967.30,  -450.30,    -3.00,  1176.70,  -217.90,   200.00},
  233.     { "Hunter Quarry",                 337.20,   710.80,  -115.20,   860.50,  1031.70,   203.70},
  234.     { "Idlewood",                     1812.60, -1852.80,   -89.00,  1971.60, -1742.30,   110.90},
  235.     { "Idlewood",                     1812.60, -1742.30,   -89.00,  1951.60, -1602.30,   110.90},
  236.     { "Idlewood",                     1951.60, -1742.30,   -89.00,  2124.60, -1602.30,   110.90},
  237.     { "Idlewood",                     1812.60, -1602.30,   -89.00,  2124.60, -1449.60,   110.90},
  238.     { "Idlewood",                     2124.60, -1742.30,   -89.00,  2222.50, -1494.00,   110.90},
  239.     { "Idlewood",                     1971.60, -1852.80,   -89.00,  2222.50, -1742.30,   110.90},
  240.     { "Jefferson",                    1996.90, -1449.60,   -89.00,  2056.80, -1350.70,   110.90},
  241.     { "Jefferson",                    2124.60, -1494.00,   -89.00,  2266.20, -1449.60,   110.90},
  242.     { "Jefferson",                    2056.80, -1372.00,   -89.00,  2281.40, -1210.70,   110.90},
  243.     { "Jefferson",                    2056.80, -1210.70,   -89.00,  2185.30, -1126.30,   110.90},
  244.     { "Jefferson",                    2185.30, -1210.70,   -89.00,  2281.40, -1154.50,   110.90},
  245.     { "Jefferson",                    2056.80, -1449.60,   -89.00,  2266.20, -1372.00,   110.90},
  246.     { "Julius Thruway East",          2623.10,   943.20,   -89.00,  2749.90,  1055.90,   110.90},
  247.     { "Julius Thruway East",          2685.10,  1055.90,   -89.00,  2749.90,  2626.50,   110.90},
  248.     { "Julius Thruway East",          2536.40,  2442.50,   -89.00,  2685.10,  2542.50,   110.90},
  249.     { "Julius Thruway East",          2625.10,  2202.70,   -89.00,  2685.10,  2442.50,   110.90},
  250.     { "Julius Thruway North",         2498.20,  2542.50,   -89.00,  2685.10,  2626.50,   110.90},
  251.     { "Julius Thruway North",         2237.40,  2542.50,   -89.00,  2498.20,  2663.10,   110.90},
  252.     { "Julius Thruway North",         2121.40,  2508.20,   -89.00,  2237.40,  2663.10,   110.90},
  253.     { "Julius Thruway North",         1938.80,  2508.20,   -89.00,  2121.40,  2624.20,   110.90},
  254.     { "Julius Thruway North",         1534.50,  2433.20,   -89.00,  1848.40,  2583.20,   110.90},
  255.     { "Julius Thruway North",         1848.40,  2478.40,   -89.00,  1938.80,  2553.40,   110.90},
  256.     { "Julius Thruway North",         1704.50,  2342.80,   -89.00,  1848.40,  2433.20,   110.90},
  257.     { "Julius Thruway North",         1377.30,  2433.20,   -89.00,  1534.50,  2507.20,   110.90},
  258.     { "Julius Thruway South",         1457.30,   823.20,   -89.00,  2377.30,   863.20,   110.90},
  259.     { "Julius Thruway South",         2377.30,   788.80,   -89.00,  2537.30,   897.90,   110.90},
  260.     { "Julius Thruway West",          1197.30,  1163.30,   -89.00,  1236.60,  2243.20,   110.90},
  261.     { "Julius Thruway West",          1236.60,  2142.80,   -89.00,  1297.40,  2243.20,   110.90},
  262.     { "Juniper Hill",                -2533.00,   578.30,    -7.60, -2274.10,   968.30,   200.00},
  263.     { "Juniper Hollow",              -2533.00,   968.30,    -6.10, -2274.10,  1358.90,   200.00},
  264.     { "K.A.C.C. Military Fuels",      2498.20,  2626.50,   -89.00,  2749.90,  2861.50,   110.90},
  265.     { "Kincaid Bridge",              -1339.80,   599.20,   -89.00, -1213.90,   828.10,   110.90},
  266.     { "Kincaid Bridge",              -1213.90,   721.10,   -89.00, -1087.90,   950.00,   110.90},
  267.     { "Kincaid Bridge",              -1087.90,   855.30,   -89.00,  -961.90,   986.20,   110.90},
  268.     { "King's",                      -2329.30,   458.40,    -7.60, -1993.20,   578.30,   200.00},
  269.     { "King's",                      -2411.20,   265.20,    -9.10, -1993.20,   373.50,   200.00},
  270.     { "King's",                      -2253.50,   373.50,    -9.10, -1993.20,   458.40,   200.00},
  271.     { "LVA Freight Depot",            1457.30,   863.20,   -89.00,  1777.40,  1143.20,   110.90},
  272.     { "LVA Freight Depot",            1375.60,   919.40,   -89.00,  1457.30,  1203.20,   110.90},
  273.     { "LVA Freight Depot",            1277.00,  1087.60,   -89.00,  1375.60,  1203.20,   110.90},
  274.     { "LVA Freight Depot",            1315.30,  1044.60,   -89.00,  1375.60,  1087.60,   110.90},
  275.     { "LVA Freight Depot",            1236.60,  1163.40,   -89.00,  1277.00,  1203.20,   110.90},
  276.     { "Las Barrancas",                -926.10,  1398.70,    -3.00,  -719.20,  1634.60,   200.00},
  277.     { "Las Brujas",                   -365.10,  2123.00,    -3.00,  -208.50,  2217.60,   200.00},
  278.     { "Las Colinas",                  1994.30, -1100.80,   -89.00,  2056.80,  -920.80,   110.90},
  279.     { "Las Colinas",                  2056.80, -1126.30,   -89.00,  2126.80,  -920.80,   110.90},
  280.     { "Las Colinas",                  2185.30, -1154.50,   -89.00,  2281.40,  -934.40,   110.90},
  281.     { "Las Colinas",                  2126.80, -1126.30,   -89.00,  2185.30,  -934.40,   110.90},
  282.     { "Las Colinas",                  2747.70, -1120.00,   -89.00,  2959.30,  -945.00,   110.90},
  283.     { "Las Colinas",                  2632.70, -1135.00,   -89.00,  2747.70,  -945.00,   110.90},
  284.     { "Las Colinas",                  2281.40, -1135.00,   -89.00,  2632.70,  -945.00,   110.90},
  285.     { "Las Payasadas",                -354.30,  2580.30,     2.00,  -133.60,  2816.80,   200.00},
  286.     { "Aeroporto de LV",              1236.60,  1203.20,   -89.00,  1457.30,  1883.10,   110.90},
  287.     { "Aeroporto de LV",              1457.30,  1203.20,   -89.00,  1777.30,  1883.10,   110.90},
  288.     { "Aeroporto de LV",              1457.30,  1143.20,   -89.00,  1777.40,  1203.20,   110.90},
  289.     { "Aeroporto de LV",              1515.80,  1586.40,   -12.50,  1729.90,  1714.50,    87.50},
  290.     { "Last Dime Motel",              1823.00,   596.30,   -89.00,  1997.20,   823.20,   110.90},
  291.     { "Leafy Hollow",                -1166.90, -1856.00,     0.00,  -815.60, -1602.00,   200.00},
  292.     { "Lil' Probe Inn",                -90.20,  1286.80,    -3.00,   153.80,  1554.10,   200.00},
  293.     { "Linden Side",                  2749.90,   943.20,   -89.00,  2923.30,  1198.90,   110.90},
  294.     { "Linden Station",               2749.90,  1198.90,   -89.00,  2923.30,  1548.90,   110.90},
  295.     { "Linden Station",               2811.20,  1229.50,   -39.50,  2861.20,  1407.50,    60.40},
  296.     { "Little Mexico",                1701.90, -1842.20,   -89.00,  1812.60, -1722.20,   110.90},
  297.     { "Little Mexico",                1758.90, -1722.20,   -89.00,  1812.60, -1577.50,   110.90},
  298.     { "Los Flores",                   2581.70, -1454.30,   -89.00,  2632.80, -1393.40,   110.90},
  299.     { "Los Flores",                   2581.70, -1393.40,   -89.00,  2747.70, -1135.00,   110.90},
  300.     { "Aeroporto de LS",              1249.60, -2394.30,   -89.00,  1852.00, -2179.20,   110.90},
  301.     { "Aeroporto de LS",              1852.00, -2394.30,   -89.00,  2089.00, -2179.20,   110.90},
  302.     { "Aeroporto de LS",              1382.70, -2730.80,   -89.00,  2201.80, -2394.30,   110.90},
  303.     { "Aeroporto de LS",              1974.60, -2394.30,   -39.00,  2089.00, -2128.50,    60.90},
  304.     { "Aeroporto de LS",              1400.90, -2669.20,   -39.00,  2189.80, -2597.20,    60.90},
  305.     { "Aeroporto de LS",              2051.60, -2597.20,   -39.00,  2152.40, -2394.30,    60.90},
  306.     { "Marina",                        647.70, -1804.20,   -89.00,   851.40, -1577.50,   110.90},
  307.     { "Marina",                        647.70, -1577.50,   -89.00,   807.90, -1416.20,   110.90},
  308.     { "Marina",                        807.90, -1577.50,   -89.00,   926.90, -1416.20,   110.90},
  309.     { "Market",                        787.40, -1416.20,   -89.00,  1072.60, -1310.20,   110.90},
  310.     { "Market",                        952.60, -1310.20,   -89.00,  1072.60, -1130.80,   110.90},
  311.     { "Market",                       1072.60, -1416.20,   -89.00,  1370.80, -1130.80,   110.90},
  312.     { "Market",                        926.90, -1577.50,   -89.00,  1370.80, -1416.20,   110.90},
  313.     { "Market Station",                787.40, -1410.90,   -34.10,   866.00, -1310.20,    65.80},
  314.     { "Martin Bridge",                -222.10,   293.30,     0.00,  -122.10,   476.40,   200.00},
  315.     { "Missionary Hill",             -2994.40,  -811.20,     0.00, -2178.60,  -430.20,   200.00},
  316.     { "Montgomery",                   1119.50,   119.50,    -3.00,  1451.40,   493.30,   200.00},
  317.     { "Montgomery",                   1451.40,   347.40,    -6.10,  1582.40,   420.80,   200.00},
  318.     { "Montgomery Intersection",      1546.60,   208.10,     0.00,  1745.80,   347.40,   200.00},
  319.     { "Montgomery Intersection",      1582.40,   347.40,     0.00,  1664.60,   401.70,   200.00},
  320.     { "Mulholland",                   1414.00,  -768.00,   -89.00,  1667.60,  -452.40,   110.90},
  321.     { "Mulholland",                   1281.10,  -452.40,   -89.00,  1641.10,  -290.90,   110.90},
  322.     { "Mulholland",                   1269.10,  -768.00,   -89.00,  1414.00,  -452.40,   110.90},
  323.     { "Mulholland",                   1357.00,  -926.90,   -89.00,  1463.90,  -768.00,   110.90},
  324.     { "Mulholland",                   1318.10,  -910.10,   -89.00,  1357.00,  -768.00,   110.90},
  325.     { "Mulholland",                   1169.10,  -910.10,   -89.00,  1318.10,  -768.00,   110.90},
  326.     { "Mulholland",                    768.60,  -954.60,   -89.00,   952.60,  -860.60,   110.90},
  327.     { "Mulholland",                    687.80,  -860.60,   -89.00,   911.80,  -768.00,   110.90},
  328.     { "Mulholland",                    737.50,  -768.00,   -89.00,  1142.20,  -674.80,   110.90},
  329.     { "Mulholland",                   1096.40,  -910.10,   -89.00,  1169.10,  -768.00,   110.90},
  330.     { "Mulholland",                    952.60,  -937.10,   -89.00,  1096.40,  -860.60,   110.90},
  331.     { "Mulholland",                    911.80,  -860.60,   -89.00,  1096.40,  -768.00,   110.90},
  332.     { "Mulholland",                    861.00,  -674.80,   -89.00,  1156.50,  -600.80,   110.90},
  333.     { "Mulholland Intersection",      1463.90, -1150.80,   -89.00,  1812.60,  -768.00,   110.90},
  334.     { "North Rock",                   2285.30,  -768.00,     0.00,  2770.50,  -269.70,   200.00},
  335.     { "Ocean Docks",                  2373.70, -2697.00,   -89.00,  2809.20, -2330.40,   110.90},
  336.     { "Ocean Docks",                  2201.80, -2418.30,   -89.00,  2324.00, -2095.00,   110.90},
  337.     { "Ocean Docks",                  2324.00, -2302.30,   -89.00,  2703.50, -2145.10,   110.90},
  338.     { "Ocean Docks",                  2089.00, -2394.30,   -89.00,  2201.80, -2235.80,   110.90},
  339.     { "Ocean Docks",                  2201.80, -2730.80,   -89.00,  2324.00, -2418.30,   110.90},
  340.     { "Ocean Docks",                  2703.50, -2302.30,   -89.00,  2959.30, -2126.90,   110.90},
  341.     { "Ocean Docks",                  2324.00, -2145.10,   -89.00,  2703.50, -2059.20,   110.90},
  342.     { "Ocean Flats",                 -2994.40,   277.40,    -9.10, -2867.80,   458.40,   200.00},
  343.     { "Ocean Flats",                 -2994.40,  -222.50,    -0.00, -2593.40,   277.40,   200.00},
  344.     { "Ocean Flats",                 -2994.40,  -430.20,    -0.00, -2831.80,  -222.50,   200.00},
  345.     { "Octane Springs",                338.60,  1228.50,     0.00,   664.30,  1655.00,   200.00},
  346.     { "Old Venturas Strip",           2162.30,  2012.10,   -89.00,  2685.10,  2202.70,   110.90},
  347.     { "Palisades",                   -2994.40,   458.40,    -6.10, -2741.00,  1339.60,   200.00},
  348.     { "Palomino Creek",               2160.20,  -149.00,     0.00,  2576.90,   228.30,   200.00},
  349.     { "Paradiso",                    -2741.00,   793.40,    -6.10, -2533.00,  1268.40,   200.00},
  350.     { "Pershing Square",              1440.90, -1722.20,   -89.00,  1583.50, -1577.50,   110.90},
  351.     { "Pilgrim",                      2437.30,  1383.20,   -89.00,  2624.40,  1783.20,   110.90},
  352.     { "Pilgrim",                      2624.40,  1383.20,   -89.00,  2685.10,  1783.20,   110.90},
  353.     { "Pilson Intersection",          1098.30,  2243.20,   -89.00,  1377.30,  2507.20,   110.90},
  354.     { "Pirates in Men's Pants",       1817.30,  1469.20,   -89.00,  2027.40,  1703.20,   110.90},
  355.     { "Playa del Seville",            2703.50, -2126.90,   -89.00,  2959.30, -1852.80,   110.90},
  356.     { "Prickle Pine",                 1534.50,  2583.20,   -89.00,  1848.40,  2863.20,   110.90},
  357.     { "Prickle Pine",                 1117.40,  2507.20,   -89.00,  1534.50,  2723.20,   110.90},
  358.     { "Prickle Pine",                 1848.40,  2553.40,   -89.00,  1938.80,  2863.20,   110.90},
  359.     { "Prickle Pine",                 1938.80,  2624.20,   -89.00,  2121.40,  2861.50,   110.90},
  360.     { "Queens",                      -2533.00,   458.40,     0.00, -2329.30,   578.30,   200.00},
  361.     { "Queens",                      -2593.40,    54.70,     0.00, -2411.20,   458.40,   200.00},
  362.     { "Queens",                      -2411.20,   373.50,     0.00, -2253.50,   458.40,   200.00},
  363.     { "Randolph Industrial",          1558.00,   596.30,   -89.00,  1823.00,   823.20,   110.90},
  364.     { "Redsands East",                1817.30,  2011.80,   -89.00,  2106.70,  2202.70,   110.90},
  365.     { "Redsands East",                1817.30,  2202.70,   -89.00,  2011.90,  2342.80,   110.90},
  366.     { "Redsands East",                1848.40,  2342.80,   -89.00,  2011.90,  2478.40,   110.90},
  367.     { "Redsands West",                1236.60,  1883.10,   -89.00,  1777.30,  2142.80,   110.90},
  368.     { "Redsands West",                1297.40,  2142.80,   -89.00,  1777.30,  2243.20,   110.90},
  369.     { "Redsands West",                1377.30,  2243.20,   -89.00,  1704.50,  2433.20,   110.90},
  370.     { "Redsands West",                1704.50,  2243.20,   -89.00,  1777.30,  2342.80,   110.90},
  371.     { "Regular Tom",                  -405.70,  1712.80,    -3.00,  -276.70,  1892.70,   200.00},
  372.     { "Richman",                       647.50, -1118.20,   -89.00,   787.40,  -954.60,   110.90},
  373.     { "Richman",                       647.50,  -954.60,   -89.00,   768.60,  -860.60,   110.90},
  374.     { "Richman",                       225.10, -1369.60,   -89.00,   334.50, -1292.00,   110.90},
  375.     { "Richman",                       225.10, -1292.00,   -89.00,   466.20, -1235.00,   110.90},
  376.     { "Richman",                        72.60, -1404.90,   -89.00,   225.10, -1235.00,   110.90},
  377.     { "Richman",                        72.60, -1235.00,   -89.00,   321.30, -1008.10,   110.90},
  378.     { "Richman",                       321.30, -1235.00,   -89.00,   647.50, -1044.00,   110.90},
  379.     { "Richman",                       321.30, -1044.00,   -89.00,   647.50,  -860.60,   110.90},
  380.     { "Richman",                       321.30,  -860.60,   -89.00,   687.80,  -768.00,   110.90},
  381.     { "Richman",                       321.30,  -768.00,   -89.00,   700.70,  -674.80,   110.90},
  382.     { "Robada Intersection",         -1119.00,  1178.90,   -89.00,  -862.00,  1351.40,   110.90},
  383.     { "Roca Escalante",               2237.40,  2202.70,   -89.00,  2536.40,  2542.50,   110.90},
  384.     { "Roca Escalante",               2536.40,  2202.70,   -89.00,  2625.10,  2442.50,   110.90},
  385.     { "Rockshore East",               2537.30,   676.50,   -89.00,  2902.30,   943.20,   110.90},
  386.     { "Rockshore West",               1997.20,   596.30,   -89.00,  2377.30,   823.20,   110.90},
  387.     { "Rockshore West",               2377.30,   596.30,   -89.00,  2537.30,   788.80,   110.90},
  388.     { "Rodeo",                        72.60, -1684.60,   -89.00,   225.10, -1544.10,   110.90},
  389.     { "Rodeo",                        72.60, -1544.10,   -89.00,   225.10, -1404.90,   110.90},
  390.     { "Rodeo",                         225.10, -1684.60,   -89.00,   312.80, -1501.90,   110.90},
  391.     { "Rodeo",                         225.10, -1501.90,   -89.00,   334.50, -1369.60,   110.90},
  392.     { "Rodeo",                         334.50, -1501.90,   -89.00,   422.60, -1406.00,   110.90},
  393.     { "Rodeo",                         312.80, -1684.60,   -89.00,   422.60, -1501.90,   110.90},
  394.     { "Rodeo",                         422.60, -1684.60,   -89.00,   558.00, -1570.20,   110.90},
  395.     { "Rodeo",                         558.00, -1684.60,   -89.00,   647.50, -1384.90,   110.90},
  396.     { "Rodeo",                         466.20, -1570.20,   -89.00,   558.00, -1385.00,   110.90},
  397.     { "Rodeo",                         422.60, -1570.20,   -89.00,   466.20, -1406.00,   110.90},
  398.     { "Rodeo",                         466.20, -1385.00,   -89.00,   647.50, -1235.00,   110.90},
  399.     { "Rodeo",                         334.50, -1406.00,   -89.00,   466.20, -1292.00,   110.90},
  400.     { "Royal Cassino",                 2087.30,  1383.20,   -89.00,  2437.30,  1543.20,   110.90},
  401.     { "San Andreas Sound",            2450.30,   385.50,  -100.00,  2759.20,   562.30,   200.00},
  402.     { "Santa Flora",                 -2741.00,   458.40,    -7.60, -2533.00,   793.40,   200.00},
  403.     { "Praia de Santa Maria",         342.60, -2173.20,   -89.00,   647.70, -1684.60,   110.90},
  404.     { "Praia de Santa Maria",         72.60, -2173.20,   -89.00,   342.60, -1684.60,   110.90},
  405.     { "Shady Cabin",                 -1632.80, -2263.40,    -3.00, -1601.30, -2231.70,   200.00},
  406.     { "Shady Creeks",                -1820.60, -2643.60,    -8.00, -1226.70, -1771.60,   200.00},
  407.     { "Shady Creeks",                -2030.10, -2174.80,    -6.10, -1820.60, -1771.60,   200.00},
  408.     { "Sobell Rail Yards",            2749.90,  1548.90,   -89.00,  2923.30,  1937.20,   110.90},
  409.     { "Spinybed",                     2121.40,  2663.10,   -89.00,  2498.20,  2861.50,   110.90},
  410.     { "Starfish Cassino",             2437.30,  1783.20,   -89.00,  2685.10,  2012.10,   110.90},
  411.     { "Starfish Cassino",             2437.30,  1858.10,   -39.00,  2495.00,  1970.80,    60.90},
  412.     { "Starfish Cassino",             2162.30,  1883.20,   -89.00,  2437.30,  2012.10,   110.90},
  413.     { "Temple",                       1252.30, -1130.80,   -89.00,  1378.30, -1026.30,   110.90},
  414.     { "Temple",                       1252.30, -1026.30,   -89.00,  1391.00,  -926.90,   110.90},
  415.     { "Temple",                       1252.30,  -926.90,   -89.00,  1357.00,  -910.10,   110.90},
  416.     { "Temple",                        952.60, -1130.80,   -89.00,  1096.40,  -937.10,   110.90},
  417.     { "Temple",                       1096.40, -1130.80,   -89.00,  1252.30, -1026.30,   110.90},
  418.     { "Temple",                       1096.40, -1026.30,   -89.00,  1252.30,  -910.10,   110.90},
  419.     { "The Camel's Toe",              2087.30,  1203.20,   -89.00,  2640.40,  1383.20,   110.90},
  420.     { "The Clown's Pocket",           2162.30,  1783.20,   -89.00,  2437.30,  1883.20,   110.90},
  421.     { "The Emerald Isle",             2011.90,  2202.70,   -89.00,  2237.40,  2508.20,   110.90},
  422.     { "Fazenda do Guh & Xeh",         -1209.60, -1317.10,   114.90,  -908.10,  -787.30,   251.90},
  423.     { "The Four Dragons Casino",      1817.30,   863.20,   -89.00,  2027.30,  1083.20,   110.90},
  424.     { "The High Roller",              1817.30,  1283.20,   -89.00,  2027.30,  1469.20,   110.90},
  425.     { "The Mako Span",                1664.60,   401.70,     0.00,  1785.10,   567.20,   200.00},
  426.     { "The Panopticon",               -947.90,  -304.30,    -1.10,  -319.60,   327.00,   200.00},
  427.     { "The Pink Swan",                1817.30,  1083.20,   -89.00,  2027.30,  1283.20,   110.90},
  428.     { "The Sherman Dam",              -968.70,  1929.40,    -3.00,  -481.10,  2155.20,   200.00},
  429.     { "The Strip",                    2027.40,   863.20,   -89.00,  2087.30,  1703.20,   110.90},
  430.     { "The Strip",                    2106.70,  1863.20,   -89.00,  2162.30,  2202.70,   110.90},
  431.     { "The Strip",                    2027.40,  1783.20,   -89.00,  2162.30,  1863.20,   110.90},
  432.     { "The Strip",                    2027.40,  1703.20,   -89.00,  2137.40,  1783.20,   110.90},
  433.     { "The Visage",                   1817.30,  1863.20,   -89.00,  2106.70,  2011.80,   110.90},
  434.     { "The Visage",                   1817.30,  1703.20,   -89.00,  2027.40,  1863.20,   110.90},
  435.     { "Unity Station",                1692.60, -1971.80,   -20.40,  1812.60, -1932.80,    79.50},
  436.     { "Valle Ocultado",               -936.60,  2611.40,     2.00,  -715.90,  2847.90,   200.00},
  437.     { "Verdant Bluffs",                930.20, -2488.40,   -89.00,  1249.60, -2006.70,   110.90},
  438.     { "Verdant Bluffs",               1073.20, -2006.70,   -89.00,  1249.60, -1842.20,   110.90},
  439.     { "Verdant Bluffs",               1249.60, -2179.20,   -89.00,  1692.60, -1842.20,   110.90},
  440.     { "Verdant Meadows",              37.00,  2337.10,    -3.00,   435.90,  2677.90,   200.00},
  441.     { "Praia de Verona",              647.70, -2173.20,   -89.00,   930.20, -1804.20,   110.90},
  442.     { "Praia de Verona",              930.20, -2006.70,   -89.00,  1073.20, -1804.20,   110.90},
  443.     { "Praia de Verona",              851.40, -1804.20,   -89.00,  1046.10, -1577.50,   110.90},
  444.     { "Praia de Verona",              1161.50, -1722.20,   -89.00,  1323.90, -1577.50,   110.90},
  445.     { "Praia de Verona",              1046.10, -1722.20,   -89.00,  1161.50, -1577.50,   110.90},
  446.     { "Vinewood",                      787.40, -1310.20,   -89.00,   952.60, -1130.80,   110.90},
  447.     { "Vinewood",                      787.40, -1130.80,   -89.00,   952.60,  -954.60,   110.90},
  448.     { "Vinewood",                      647.50, -1227.20,   -89.00,   787.40, -1118.20,   110.90},
  449.     { "Vinewood",                      647.70, -1416.20,   -89.00,   787.40, -1227.20,   110.90},
  450.     { "Whitewood Estates",             883.30,  1726.20,   -89.00,  1098.30,  2507.20,   110.90},
  451.     { "Whitewood Estates",            1098.30,  1726.20,   -89.00,  1197.30,  2243.20,   110.90},
  452.     { "Willowfield",                  1970.60, -2179.20,   -89.00,  2089.00, -1852.80,   110.90},
  453.     { "Willowfield",                  2089.00, -2235.80,   -89.00,  2201.80, -1989.90,   110.90},
  454.     { "Willowfield",                  2089.00, -1989.90,   -89.00,  2324.00, -1852.80,   110.90},
  455.     { "Willowfield",                  2201.80, -2095.00,   -89.00,  2324.00, -1989.90,   110.90},
  456.     { "Willowfield",                  2541.70, -1941.40,   -89.00,  2703.50, -1852.80,   110.90},
  457.     { "Willowfield",                  2324.00, -2059.20,   -89.00,  2541.70, -1852.80,   110.90},
  458.     { "Willowfield",                  2541.70, -2059.20,   -89.00,  2703.50, -1941.40,   110.90},
  459.     { "Yellow Bell Station",          1377.40,  2600.40,   -21.90,  1492.40,  2687.30,    78.00},
  460.     { "Los Santos",                   44.60, -2892.90,  -242.90,  2997.00,  -768.00,   900.00},
  461.     { "Las Venturas",                 869.40,   596.30,  -242.90,  2997.00,  2993.80,   900.00},
  462.     { "Bone County",                  -480.50,   596.30,  -242.90,   869.40,  2993.80,   900.00},
  463.     { "Tierra Robada",               -2997.40,  1659.60,  -242.90,  -480.50,  2993.80,   900.00},
  464.     { "Tierra Robada",               -1213.90,   596.30,  -242.90,  -480.50,  1659.60,   900.00},
  465.     { "San Fierro",                  -2997.40, -1115.50,  -242.90, -1213.90,  1659.60,   900.00},
  466.     { "Red County",                  -1213.90,  -768.00,  -242.90,  2997.00,   596.30,   900.00},
  467.     { "Flint County",                -1213.90, -2892.90,  -242.90,    44.60,  -768.00,   900.00},
  468.     { "Whetstone",                   -2997.40, -2892.90,  -242.90, -1213.90, -1115.50,   900.00}
  469. };
  470.  
  471.  
  472. // ---------[ Publics ] -----------
  473.  
  474. public OnFilterScriptInit()
  475. {
  476.  
  477.     // TextDraw GPS
  478.  
  479.     for(new i = 0; i < MAX_PLAYERS; i++)
  480.     {
  481.         LocalizarDistancia[i] = TextDrawCreate(254.000000, 384.000000, " ");
  482.         TextDrawBackgroundColor(LocalizarDistancia[i], 255);
  483.         TextDrawFont(LocalizarDistancia[i], 2);
  484.         TextDrawLetterSize(LocalizarDistancia[i], 0.290000, 1.300000);
  485.         TextDrawColor(LocalizarDistancia[i], -2130771798);
  486.         TextDrawSetOutline(LocalizarDistancia[i], 0);
  487.         TextDrawSetProportional(LocalizarDistancia[i], 1);
  488.         TextDrawSetShadow(LocalizarDistancia[i], 1);
  489.  
  490.         LocalizarLocalizacao[i] = TextDrawCreate(235.000000, 408.000000, " ");
  491.         TextDrawBackgroundColor(LocalizarLocalizacao[i], 255);
  492.         TextDrawFont(LocalizarLocalizacao[i], 2);
  493.         TextDrawLetterSize(LocalizarLocalizacao[i], 0.290000, 1.300000);
  494.         TextDrawColor(LocalizarLocalizacao[i], -14408534);
  495.         TextDrawSetOutline(LocalizarLocalizacao[i], 0);
  496.         TextDrawSetProportional(LocalizarLocalizacao[i], 1);
  497.         TextDrawSetShadow(LocalizarLocalizacao[i], 1);
  498.     }
  499.  
  500.     // Contagem dos Sets
  501.     new
  502.         iSetsCount
  503.     ;
  504.     for(new car = 0; car < MAX_CARROS; car++)
  505.     {
  506.         new
  507.             string[80],
  508.             strings[80]
  509.         ;
  510.         format(string,sizeof(string),"Carros/carro%d.ini",car);
  511.         if(DOF2_FileExists(string))
  512.         {
  513.             Set[car] = AddStaticVehicleEx(DOF2_GetInt(string,"Modelo"),DOF2_GetInt(string,"CarroX"),DOF2_GetInt(string,"CarroY"),DOF2_GetInt(string,"CarroZ"), DOF2_GetInt(string,"CarroR"),DOF2_GetInt(string,"Cor1"),DOF2_GetInt(string,"Cor2"), -1);
  514.             format(strings,sizeof(strings),"%s", DOF2_GetString(string,"Mensagem"));
  515.             Textcarro[car] = CreateDynamic3DTextLabel(strings, -1, 0.0, -2.5, 0.5, 50.0, INVALID_PLAYER_ID, Set[car]);
  516.             SetVehicleNumberPlate(Set[car], DOF2_GetString(string, "Placa"));
  517.             iSetsCount ++;
  518.             SetProprio = iSetsCount;
  519.         }
  520.     }
  521.     print("\n--------------------------------------\n");
  522.     print("         Sistema de veículo               \n");
  523.     print("       Carregado com sucesso              \n");
  524.     printf("   Total de %i set(s) carregado(s)       \n", iSetsCount);
  525.     printf("   Limite de %i Set(s) próprio(s)        \n",   MAX_CARROS);
  526.     print("--------------------------------------");
  527.  
  528.     return 1;
  529. }
  530.  
  531. public OnFilterScriptExit()
  532. {
  533.     DOF2_Exit();
  534.     return 1;
  535. }
  536.  
  537. public OnPlayerConnect(playerid)
  538. {
  539.     // Créditos
  540.  
  541.     for(new i = 0; i < 50; i++)
  542.     {
  543.         SendClientMessage(playerid, -1, " ");
  544.     }
  545.     SendClientMessage(playerid, -1, "------------------------------------------------------------------------------------" );
  546.     SendClientMessage(playerid, -1, " Esse gamemode contém o sistema de veículo próprio ");
  547.     SendClientMessage(playerid, -1, " desenvolvido por Maklister, Bom jogo !");
  548.     SendClientMessage(playerid, -1, "------------------------------------------------------------------------------------" );
  549.  
  550.     return 1;
  551. }
  552.  
  553. public OnPlayerDisconnect(playerid, reason)
  554. {
  555.     new
  556.         vid
  557.     ;
  558.  
  559.     vid = GetPlayerVehicleID(playerid);
  560.  
  561.     NaoUsado[vid] = false;
  562.  
  563.     TextDrawHideForPlayer(playerid, LocalizarDistancia[playerid]);
  564.     TextDrawHideForPlayer(playerid, LocalizarLocalizacao[playerid]);
  565.  
  566.     DisablePlayerCheckpoint(playerid);
  567.     KillTimer(GPSTimerCar[playerid]);
  568.  
  569.     return 1;
  570. }
  571.  
  572. public OnPlayerEnterVehicle(playerid, vehicleid)
  573. {
  574.     new vid = GetPlayerVehicleID(playerid);
  575.     NaoUsado[vid] = false;
  576.     return 1;
  577. }
  578.  
  579. public OnPlayerExitVehicle(playerid, vehicleid)
  580. {
  581.     new vid = GetPlayerVehicleID(playerid);
  582.     NaoUsado[vid] = true;
  583.     return 1;
  584. }
  585.  
  586. public OnPlayerStateChange(playerid, newstate, oldstate)
  587. {
  588.     new
  589.         vid,
  590.         Float:X,
  591.         Float:Y,
  592.         Float:Z,
  593.         msg[80],
  594.         string[80]
  595.     ;
  596.  
  597.     vid = GetPlayerVehicleID(playerid);
  598.     GetPlayerPos(playerid, X, Y, Z);
  599.  
  600.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  601.     {
  602.         for(new car = 0; car < MAX_CARROS; car++)
  603.         {
  604.             if(vid == Set[car])
  605.             {
  606.                 format(string,sizeof(string),"Carros/carro%d.ini",car);
  607.                 if(strcmp(DOF2_GetString(string,"Dono"),Nome(playerid), true) == 0)
  608.                 {
  609.                     format(msg,sizeof(msg),"» %s Seja bem vindo ao seu veículo próprio ( Modelo: %s )",Nome(playerid) ,NomeCarro[GetVehicleModel(vid)-400]);
  610.                     SendClientMessage(playerid, AMARELO,msg);
  611.                 }
  612.                 else
  613.                 {
  614.                     PlayerPlaySound(playerid, 1147, X, Y, Z);
  615.  
  616.                     SendClientMessage(playerid, VERMELHO_ESCURO,"» {FFFFFF}Você não é dono(a) deste veículo.");
  617.  
  618.                     format(msg,sizeof(msg), "• Dono: {FFFFFF}%s", DOF2_GetString(string,"Dono"));
  619.                     SendClientMessage(playerid, VERMELHO_ESCURO ,msg);
  620.  
  621.                     format(msg,sizeof(msg), "• Modelo: {FFFFFF}%s", NomeCarro[GetVehicleModel(vid)-400]);
  622.                     SendClientMessage(playerid, VERMELHO_ESCURO ,msg);
  623.  
  624.                     RemovePlayerFromVehicle(playerid);
  625.                 }
  626.             }
  627.         }
  628.     }
  629.     return 1;
  630. }
  631.  
  632. forward GPSUpdateSet(playerid, car);
  633. public GPSUpdateSet(playerid, car)
  634. {
  635.     new
  636.  
  637.         Float:X,
  638.         Float:Y,
  639.         Float:Z,
  640.         Float:Distancia,
  641.         string[80],
  642.         string2[80]
  643.     ;
  644.  
  645.     Distancia = GetarDistanciaVeiculo(playerid, car);
  646.  
  647.     GetVehiclePos(Set[car],X,Y,Z);
  648.  
  649.     DisablePlayerCheckpoint(playerid);
  650.     SetPlayerCheckpoint(playerid,X,Y,Z,1.0);
  651.  
  652.     format(string, sizeof(string), "Distancia: ~w~%0.1f Metros", Distancia);
  653.     TextDrawSetString(LocalizarDistancia[playerid], string);
  654.  
  655.     format(string2, sizeof(string2), "Localizacao: ~w~%s", GetarAreaVeiculo(Set[car]));
  656.     TextDrawSetString(LocalizarLocalizacao[playerid], string2);
  657.  
  658.     TextDrawShowForPlayer(playerid, LocalizarDistancia[playerid]);
  659.     TextDrawShowForPlayer(playerid, LocalizarLocalizacao[playerid]);
  660.  
  661.     if(Distancia <= 4.0)
  662.     {
  663.         DisablePlayerCheckpoint(playerid);
  664.         KillTimer(GPSTimerCar[playerid]);
  665.         TextDrawHideForPlayer(playerid, LocalizarDistancia[playerid]);
  666.         TextDrawHideForPlayer(playerid, LocalizarLocalizacao[playerid]);
  667.     }
  668.     return 1;
  669. }
  670.  
  671. // ---------- [ Comandos ] ----------
  672.  
  673.  
  674. CMD:setarveh(playerid, params[])
  675. {
  676.     new
  677.         msg[126],
  678.         msg2[126],
  679.         string[80],
  680.         strings[80],
  681.         giverid,
  682.         Modeloset,
  683.         Cor1,
  684.         Cor2
  685.     ;
  686.  
  687.     if(IsPlayerAdmin(playerid))
  688.     {
  689.         if(sscanf(params, "uiii", giverid, Modeloset, Cor1, Cor2)) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Uso: /Setarveh [ ID ] [ Modelo ] [ Cor 1 ] [ Cor 2 ]");
  690.         if(giverid == INVALID_PLAYER_ID) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | ID Inválido.");
  691.         if(!IsPlayerConnected(giverid)) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Jogador não está conectado.");
  692.         if(Modeloset < 400 || Modeloset > 611 ) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Modelos apenas de 400 a 611");
  693.  
  694.         if(Cor1 < 0|| Cor1 > 255) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Primeira cor entre 0 e 255");
  695.         if(Cor2 < 0|| Cor2 > 255) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Segunda cor entre 0 e 255");
  696.  
  697.         new
  698.             Float:PlayerX,
  699.             Float:PlayerY,
  700.             Float:PlayerZ,
  701.             Float:PlayerR
  702.         ;
  703.  
  704.         GetPlayerPos(playerid,PlayerX,PlayerY,PlayerZ);
  705.         GetPlayerFacingAngle(playerid,PlayerR);
  706.  
  707.         for(new car = 0; car < MAX_CARROS; car++)
  708.         {
  709.             format(string,sizeof(string),"Carros/carro%d.ini",car);
  710.  
  711.             if(!DOF2_FileExists(string))
  712.             {
  713.                 DOF2_CreateFile(string);
  714.                 DOF2_SetString(string,"Dono", Nome(giverid));
  715.                 DOF2_SetString(string,"Mensagem", Nome(giverid));
  716.                 DOF2_SetInt(string,"Modelo",Modeloset);
  717.                 DOF2_SetInt(string,"Cor1", Cor1);
  718.                 DOF2_SetInt(string,"Cor2", Cor2);
  719.                 DOF2_SetString(string, "Placa", "SemPlaca");
  720.                 DOF2_SetFloat(string,"CarroX",PlayerX);
  721.                 DOF2_SetFloat(string,"CarroY",PlayerY);
  722.                 DOF2_SetFloat(string,"CarroZ",PlayerZ);
  723.                 DOF2_SetFloat(string,"CarroR",PlayerR);
  724.  
  725.                 format(strings,sizeof(strings), "%s", Nome(giverid));
  726.  
  727.                 DestroyDynamic3DTextLabel(Textcarro[car]);
  728.                 Delete3DTextLabel(Textcarro[car]);
  729.  
  730.                 Set[car] = AddStaticVehicleEx(Modeloset,PlayerX,PlayerY,PlayerZ,PlayerR,Cor1,Cor2, -1);
  731.                 Textcarro[car] = CreateDynamic3DTextLabel(strings, -1, 0.0, -2.5, 0.5, 50.0, INVALID_PLAYER_ID, Set[car]);
  732.  
  733.                 GameTextForPlayer(giverid, "~g~SET PROPRIO ~n~~r~SETADO", 5000, 0);
  734.  
  735.                 PlayerPlaySound(giverid, 1057, 0.0, 0.0, 10.0);
  736.  
  737.                 format( msg, sizeof( msg ),"[ Servidor ] Set próprio setado com sucesso para o jogador %s ( Modelo: %s )", Nome(giverid), NomeCarro[Modeloset -400]);
  738.                 SendClientMessage(playerid, VERDE_CLARO, msg);
  739.  
  740.                 format( msg2, sizeof( msg2 ), "[ Servidor ] O Administrador(a) %s setou um set próprio para você ( Modelo: %s )", Nome(playerid), NomeCarro[Modeloset -400]);
  741.  
  742.                 SendClientMessage(giverid, AMARELO, msg2);
  743.  
  744.                 SetVehicleNumberPlate(Set[car], "SemPlaca");
  745.  
  746.                 SetProprio ++;
  747.                 DOF2_SaveFile();
  748.                 break;
  749.             }
  750.         }
  751.     }
  752.     else
  753.     {
  754.         SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Comando extremamente reservado!");
  755.     }
  756.     return 1;
  757. }
  758.  
  759.  
  760. CMD:meuset(playerid, params[])
  761. {
  762.     new
  763.         msg[80],
  764.         string[80],
  765.         result = 0
  766.     ;
  767.  
  768.     for(new car = 0; car < MAX_CARROS; car++)
  769.     {
  770.  
  771.         format(string,sizeof(string),"Carros/carro%d.ini", car);
  772.         if(DOF2_FileExists(string))
  773.         {
  774.             if(strcmp(DOF2_GetString(string,"Dono"), Nome(playerid), true) == 0)
  775.             {
  776.                 format(msg, sizeof(msg), "| x | Set Modelo: %s  {FF0000}»  {FFFFFF}Set ID: %d", NomeCarro[DOF2_GetInt(string, "Modelo") -400], car);
  777.                 SendClientMessage(playerid, VERMELHO_ESCURO, msg);
  778.                 PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0);
  779.                 result = 1;
  780.             }
  781.         }
  782.     }
  783.     if(result == 0)
  784.     {
  785.         SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não possui nenhum set.");
  786.     }
  787.     return 1;
  788. }
  789.  
  790. CMD:respawnarset(playerid, params[])
  791. {
  792.     new
  793.         id,
  794.         string[80]
  795.     ;
  796.  
  797.     if(sscanf(params, "d", id)) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Uso: /Respawnarset [ ID ]");
  798.     if(id < 0 || id > MAX_CARROS) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | ID Inválido.");
  799.     for(new car = 0; car < MAX_CARROS; car++)
  800.     {
  801.         format(string,sizeof(string),"Carros/carro%d.ini", car);
  802.         if(DOF2_FileExists(string))
  803.         {
  804.             if(car == id)
  805.             {
  806.                 if(strcmp(DOF2_GetString(string,"Dono"), Nome(playerid), true) == 0)
  807.                 {
  808.                     SetVehicleToRespawn(Set[car]);
  809.                     SetVehiclePos(Set[car], DOF2_GetFloat(string, "CarroX"),DOF2_GetFloat(string, "CarroY"),DOF2_GetFloat(string, "CarroZ"));
  810.                     SetVehicleZAngle(Set[car],DOF2_GetFloat(string, "CarroR"));
  811.  
  812.                     SendClientMessage(playerid, AMARELO, "» Veículo set respawnado.");
  813.  
  814.                     PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0);
  815.                     DOF2_SaveFile();
  816.                     return 1;
  817.                 }
  818.                 else
  819.                 {
  820.                     SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não pode estacionar um veiculo que não é seu.");
  821.                     return 1;
  822.                 }
  823.             }
  824.         }
  825.     }
  826.     return 1;
  827. }
  828.  
  829. CMD:estacionarset(playerid)
  830. {
  831.     new
  832.         string[80],
  833.         strings[80],
  834.         Float:PlayerX[MAX_PLAYERS],
  835.         Float:PlayerY[MAX_PLAYERS],
  836.         Float:PlayerZ[MAX_PLAYERS],
  837.         Float:PlayerR[MAX_PLAYERS],
  838.  
  839.         vid = GetPlayerVehicleID(playerid)
  840.     ;
  841.  
  842.     for(new car = 0; car < MAX_CARROS; car++)
  843.     {
  844.         format(string,sizeof(string),"Carros/carro%d.ini", car);
  845.         if(DOF2_FileExists(string))
  846.         {
  847.             if(vid == Set[car])
  848.             {
  849.                 if(strcmp(DOF2_GetString(string,"Dono"), Nome(playerid), true) == 0)
  850.                 {
  851.                     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  852.                     {
  853.                         GetVehiclePos(vid, PlayerX[playerid],PlayerY[playerid], PlayerZ[playerid]);
  854.                         GetVehicleZAngle(vid, PlayerR[playerid]);
  855.  
  856.                         DOF2_SetFloat(string,"CarroX", PlayerX[playerid]);
  857.                         DOF2_SetFloat(string,"CarroY", PlayerY[playerid]);
  858.                         DOF2_SetFloat(string,"CarroZ", PlayerZ[playerid]);
  859.                         DOF2_SetFloat(string,"CarroR", PlayerR[playerid]);
  860.  
  861.                         SendClientMessage(playerid, AMARELO, "» Veículo set estacionado.");
  862.  
  863.                         PlayerPlaySound(playerid, 1057, 0.0, 0.0, 10.0);
  864.  
  865.                         DestroyDynamic3DTextLabel(Textcarro[car]);
  866.                         Delete3DTextLabel(Textcarro[car]);
  867.                         DestroyVehicle(Set[car]);
  868.  
  869.                         format(strings,sizeof(strings),"%s", DOF2_GetString(string,"Mensagem"));
  870.  
  871.                         Set[car] = AddStaticVehicleEx(DOF2_GetInt(string,"Modelo"),DOF2_GetInt(string,"CarroX"),DOF2_GetInt(string,"CarroY"),DOF2_GetInt(string,"CarroZ"), DOF2_GetInt(string,"CarroR"),DOF2_GetInt(string,"Cor1"),DOF2_GetInt(string,"Cor2"), -1);
  872.  
  873.                         Textcarro[car] = CreateDynamic3DTextLabel(strings, -1, 0.0, -2.5, 0.5, 50.0, INVALID_PLAYER_ID, Set[car]);
  874.                         PutPlayerInVehicle(playerid, Set[car], 0);
  875.                         DOF2_SaveFile();
  876.                         return 1;
  877.                     }
  878.                     else
  879.                     {
  880.                         SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você só pode estacionar seu veiculo, caso esteja dirigindo o mesmo.");
  881.                     }
  882.                 }
  883.                 else
  884.                 {
  885.                     SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não pode estacionar um veiculo que não é seu.");
  886.                 }
  887.             }
  888.         }
  889.     }
  890.     return 1;
  891. }
  892.  
  893.  
  894. CMD:emplacarset(playerid, params[])
  895. {
  896.     new
  897.         Float:X,
  898.         Float:Y,
  899.         Float:Z,
  900.         Float:A,
  901.         msg[60],
  902.         Placa[12],
  903.         string[80],
  904.         strings[80],
  905.         vid = GetPlayerVehicleID(playerid)
  906.     ;
  907.  
  908.     GetVehiclePos(vid, X, Y, Z);
  909.     GetVehicleZAngle(vid, A);
  910.  
  911.     for(new car = 0; car < MAX_CARROS; car++)
  912.     {
  913.         format(string,sizeof(string),"Carros/carro%d.ini", car);
  914.         if(DOF2_FileExists(string))
  915.         {
  916.             if(vid == Set[car])
  917.             {
  918.                 if(strcmp(DOF2_GetString(string,"Dono"), Nome(playerid), true) == 0)
  919.                 {
  920.                     if(sscanf(params, "s[12]", Placa)) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Uso: /EmplacarSet [ Placa ]");
  921.                     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  922.                     {
  923.                         if(strlen(Placa) < 4) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Digite no minimo 4 Letras");
  924.                         if(strlen(Placa) > 12) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Digite no máximo 12 Letras");
  925.  
  926.                         DOF2_SetString(string, "Placa", Placa);
  927.  
  928.                         DestroyDynamic3DTextLabel(Textcarro[car]);
  929.                         Delete3DTextLabel(Textcarro[car]);
  930.                         DestroyVehicle(Set[car]);
  931.  
  932.                         format(strings,sizeof(strings),"%s", DOF2_GetString(string,"Mensagem"));
  933.  
  934.                         Set[car] = AddStaticVehicleEx(DOF2_GetInt(string,"Modelo"), X, Y, Z, A, DOF2_GetInt(string,"Cor1"),DOF2_GetInt(string,"Cor2"), -1);
  935.  
  936.                         Textcarro[car] = CreateDynamic3DTextLabel(strings, -1, 0.0, -2.5, 0.5, 50.0, INVALID_PLAYER_ID, Set[car]);
  937.                         PutPlayerInVehicle(playerid, Set[car], 0);
  938.                         SetVehicleNumberPlate(Set[car], Placa);
  939.  
  940.                         format( msg, sizeof(msg), "» Você trocou a placa de seu veículo para: {FF0000}%s ", Placa);
  941.                         SendClientMessage(playerid, AMARELO, msg);
  942.                     }
  943.                     else
  944.                     {
  945.                         SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você só pode mudar a placa do seu veículo, caso esteja dirigindo o mesmo.");
  946.                     }
  947.                 }
  948.                 else
  949.                 {
  950.                     SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não pode mudar a placa de um veiculo que não é seu.");
  951.                 }
  952.             }
  953.         }
  954.     }
  955.     return 1;
  956. }
  957.  
  958. CMD:mensagemset(playerid, params[])
  959. {
  960.     new
  961.         Float:X,
  962.         Float:Y,
  963.         Float:Z,
  964.         Float:A,
  965.         msg[126],
  966.         string[80],
  967.         NomeSet[15],
  968.         strings[80],
  969.         vid = GetPlayerVehicleID(playerid)
  970.     ;
  971.  
  972.     GetVehiclePos(vid, X, Y, Z);
  973.     GetVehicleZAngle(vid, A);
  974.  
  975.     for(new car = 0; car < MAX_CARROS; car++)
  976.     {
  977.         format(string,sizeof(string),"Carros/carro%d.ini", car);
  978.         if(DOF2_FileExists(string))
  979.         {
  980.             if(vid == Set[car])
  981.             {
  982.                 if(strcmp(DOF2_GetString(string,"Dono"), Nome(playerid), true) == 0)
  983.                 {
  984.                     if(sscanf(params, "s[15]", NomeSet)) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Uso: /MensagemSet [ Nome ]");
  985.                     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  986.                     {
  987.                         if(strlen(NomeSet) < 4) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Digite no minimo 4 Letras");
  988.                         if(strlen(NomeSet) > 15) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Digite no máximo 15 Letras");
  989.  
  990.                         DOF2_SetString(string,"Mensagem", NomeSet);
  991.  
  992.                         format( msg, sizeof( msg ), "» Você mudou o Nome do seu veiculo para: {FF0000}%s", NomeSet);
  993.                         SendClientMessage(playerid, AMARELO, msg);
  994.  
  995.                         format(strings,sizeof(strings), "%s", NomeSet);
  996.  
  997.                         DestroyDynamic3DTextLabel(Textcarro[car]);
  998.                         Delete3DTextLabel(Textcarro[car]);
  999.                         DestroyVehicle(Set[car]);
  1000.  
  1001.                         Set[car] = AddStaticVehicleEx(DOF2_GetInt(string,"Modelo"), X, Y, Z, A, DOF2_GetInt(string,"Cor1"),DOF2_GetInt(string,"Cor2"), -1);
  1002.  
  1003.                         Textcarro[car] = CreateDynamic3DTextLabel(strings, -1, 0.0, -2.5, 0.5, 50.0, INVALID_PLAYER_ID, Set[car]);
  1004.                         PutPlayerInVehicle(playerid, Set[car], 0);
  1005.                         SetVehicleNumberPlate(Set[car], DOF2_GetString(string, "Placa"));
  1006.                         DOF2_SaveFile();
  1007.                         return 1;
  1008.                     }
  1009.                     else
  1010.                     {
  1011.                         SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você só pode mudar o Nome do seu veiculo, caso esteja dirigindo o mesmo.");
  1012.                     }
  1013.                 }
  1014.                 else
  1015.                 {
  1016.                     SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não pode mudar o Nome de um veiculo que não é seu.");
  1017.                 }
  1018.             }
  1019.         }
  1020.     }
  1021.     return 1;
  1022. }
  1023.  
  1024. CMD:pintarset(playerid, params[])
  1025. {
  1026.     new
  1027.         cor1,
  1028.         cor2,
  1029.         Float:X,
  1030.         Float:Y,
  1031.         Float:Z,
  1032.         Float:A,
  1033.         msg[126],
  1034.         string[80],
  1035.         strings[80],
  1036.         vid = GetPlayerVehicleID(playerid)
  1037.     ;
  1038.  
  1039.     GetVehiclePos(vid, X, Y, Z);
  1040.     GetVehicleZAngle(vid, A);
  1041.  
  1042.     for(new car = 0; car < MAX_CARROS; car++)
  1043.     {
  1044.         format(string,sizeof(string),"Carros/carro%d.ini",car);
  1045.         if(DOF2_FileExists(string))
  1046.         {
  1047.             if(vid == Set[car])
  1048.             {
  1049.                 if(strcmp(DOF2_GetString(string,"Dono"), Nome(playerid), true) == 0)
  1050.                 {
  1051.                     if(sscanf(params, "dd", cor1, cor2)) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Uso: /PintarSet [ cor1 ] [ cor2 ]");
  1052.                     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  1053.                     {
  1054.                         DOF2_SetInt(string,"Cor1", cor1);
  1055.                         DOF2_SetInt(string,"Cor2", cor2);
  1056.  
  1057.                         format( msg, sizeof( msg ), "» Você mudou as cores de seu veiculo para: {FFFFFF}| Cor 1: %d |  Cor 2: %d |", cor1, cor2);
  1058.                         SendClientMessage(playerid, AMARELO, msg);
  1059.  
  1060.                         DestroyDynamic3DTextLabel(Textcarro[car]);
  1061.                         Delete3DTextLabel(Textcarro[car]);
  1062.                         DestroyVehicle(Set[car]);
  1063.  
  1064.                         Set[car] = AddStaticVehicleEx(DOF2_GetInt(string,"Modelo"), X, Y, Z, A, DOF2_GetInt(string,"Cor1"),DOF2_GetInt(string,"Cor2"), -1);
  1065.  
  1066.                         format(strings,sizeof(strings),"%s", DOF2_GetString(string,"Mensagem"));
  1067.                         Textcarro[car] = CreateDynamic3DTextLabel(strings, -1, 0.0, -2.5, 0.5, 50.0, INVALID_PLAYER_ID, Set[car]);
  1068.                         PutPlayerInVehicle(playerid, Set[car], 0);
  1069.                         SetVehicleNumberPlate(Set[car], DOF2_GetString(string, "Placa"));
  1070.                         DOF2_SaveFile();
  1071.                         return 1;
  1072.                     }
  1073.                     else
  1074.                     {
  1075.                         SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você só pode mudar a cor do seu veiculo, caso esteja dirigindo o mesmo.");
  1076.                     }
  1077.                 }
  1078.                 else
  1079.                 {
  1080.                     SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não pode mudar a cor de um veiculo que não é seu.");
  1081.                 }
  1082.             }
  1083.         }
  1084.     }
  1085.     return 1;
  1086. }
  1087.  
  1088.  
  1089. CMD:localizarsetoff(playerid)
  1090. {
  1091.     new
  1092.         string[80],
  1093.         result = 0
  1094.     ;
  1095.  
  1096.     for(new car = 0; car < MAX_CARROS; car++)
  1097.     {
  1098.         format(string,sizeof(string),"Carros/carro%d.ini", car);
  1099.         if(DOF2_FileExists(string))
  1100.         {
  1101.             if(strcmp(DOF2_GetString(string,"Dono"), Nome(playerid), false) == 0)
  1102.             {
  1103.  
  1104.                 result = 1;
  1105.  
  1106.                 DisablePlayerCheckpoint(playerid);
  1107.                 KillTimer(GPSTimerCar[playerid]);
  1108.                 TextDrawHideForPlayer(playerid, LocalizarDistancia[playerid]);
  1109.                 TextDrawHideForPlayer(playerid, LocalizarLocalizacao[playerid]);
  1110.  
  1111.                 SendClientMessage(playerid, AMARELO, "[ GPS Set ] Você desativou seu GPS ! ");
  1112.  
  1113.             }
  1114.         }
  1115.     }
  1116.     if(result == 0)
  1117.     {
  1118.         SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não possui nenhum set.");
  1119.         return 1;
  1120.     }
  1121.     return 1;
  1122. }
  1123.  
  1124. CMD:localizarset(playerid, params[])
  1125. {
  1126.     new
  1127.         str[80],
  1128.         string[80],
  1129.         result = 0
  1130.     ;
  1131.  
  1132.     for(new car = 0; car < MAX_CARROS; car++)
  1133.     {
  1134.         if(sscanf(params, "d", car)) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Uso: /LocalizarSet [ ID Set ]");
  1135.         format(string,sizeof(string),"Carros/carro%d.ini", car);
  1136.         if(DOF2_FileExists(string))
  1137.         {
  1138.             if(strcmp(DOF2_GetString(string,"Dono"), Nome(playerid), false) == 0)
  1139.             {
  1140.                 DisablePlayerCheckpoint(playerid);
  1141.                 KillTimer(GPSTimerCar[playerid]);
  1142.                 GPSTimerCar[playerid] = SetTimerEx("GPSUpdateSet", 1000, true, "ii", playerid, car);
  1143.                 format(str,80,"[ GPS Set ] Você está localizando o set ID %i ", car);
  1144.                 SendClientMessage(playerid, AMARELO, str);
  1145.                 result = 1;
  1146.                 return 1;
  1147.  
  1148.             }
  1149.             else
  1150.             {
  1151.                 SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Esse Set não é seu.");
  1152.                 return 1;
  1153.             }
  1154.         }
  1155.         else
  1156.         {
  1157.             SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Esse Set não existe.");
  1158.             return 1;
  1159.         }
  1160.     }
  1161.     if(result == 0)
  1162.     {
  1163.         SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não possui nenhum set.");
  1164.         return 1;
  1165.     }
  1166.     return 1;
  1167. }
  1168.  
  1169. CMD:comandosset(playerid)
  1170. {
  1171.     new
  1172.         var[348]
  1173.     ;
  1174.  
  1175.     strcat(var, "{CFCFCF}• {FFFF00}/MeuSet                    \
  1176.               \n{CFCFCF}• {FFFF00}/PintarSet                 \
  1177.               \n{CFCFCF}• {FFFF00}/RespawnarSet              \
  1178.               \n{CFCFCF}• {FFFF00}/EstacionarSet             \
  1179.               \n{CFCFCF}• {FFFF00}/EmplacarSet [ Placa ]     \
  1180.               \n{CFCFCF}• {FFFF00}/MensagemSet [ Nome ]      \n \
  1181.               \n{CFCFCF}• {FFFF00}/LocalizarSet [ ID ]        \
  1182.               \n{CFCFCF}• {FFFF00}/localizarSetOff            ");
  1183.  
  1184.     ShowPlayerDialog(playerid, DIALOG_CMDSET, DIALOG_STYLE_MSGBOX,  "» Comandos - Set ", var, "Ok", "");
  1185.     return 1;
  1186. }
  1187.  
  1188.  
  1189. CMD:rvsets(playerid)
  1190. {
  1191.     new
  1192.         string[80]
  1193.     ;
  1194.  
  1195.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não é um Administrador(a)!");
  1196.  
  1197.     for(new car = 0; car < MAX_CARROS; car++)
  1198.     {
  1199.         if(NaoUsado[Set[car]] == true)
  1200.         {
  1201.             if(!IsVehicleOccupied(Set[car]))
  1202.             {
  1203.                 SetVehicleToRespawn(Set[car]);
  1204.                 NaoUsado[Set[car]] = false;
  1205.             }
  1206.         }
  1207.     }
  1208.  
  1209.     format(string, sizeof(string), "[ Servidor ] O Administrador(a) %s respawnou todos os veículos Set´s.", Nome(playerid));
  1210.     SendClientMessageToAll(VERDE_CLARO, string);
  1211.  
  1212.     return 1;
  1213. }
  1214.  
  1215.  
  1216. // ---------------------------------------- //
  1217. //
  1218. //  Caso tenha um comando para Deletar
  1219. //  veículos em seu servidor, adcione
  1220. //  esse código abaixo no comando para não
  1221. //  deletar Set's e bugar seus veículos !
  1222.  
  1223. CMD:dv(playerid)
  1224. {
  1225.     new
  1226.         vid = GetPlayerVehicleID(playerid)
  1227.     ;
  1228.  
  1229.     for(new car = 0; car < MAX_CARROS; car++)
  1230.     {
  1231.         if(vid == Set[car])
  1232.         {
  1233.             SendClientMessage(playerid, VERMELHO_ESCURO, "| x | Você não pode deletar um veículo próprio !");
  1234.             return 1;
  1235.         }
  1236.     }
  1237.     return 1;
  1238. }
  1239.  
  1240.  
  1241. // ------------ [ Stock's ] -----------
  1242.  
  1243. stock Nome(playerid)
  1244. {
  1245.     new GetNome[MAX_PLAYER_NAME];
  1246.     GetPlayerName(playerid, GetNome, sizeof(GetNome));
  1247.     return GetNome;
  1248. }
  1249.  
  1250. stock IsVehicleOccupied(vid)
  1251. {
  1252.     for(new i = 0; i < MAX_PLAYERS; i++)
  1253.     {
  1254.         if(IsPlayerConnected(i))
  1255.         {
  1256.             if(GetPlayerState(i) == PLAYER_STATE_DRIVER || GetPlayerState(i) == PLAYER_STATE_PASSENGER)
  1257.             {
  1258.                 if(GetPlayerVehicleID(i) == vid)
  1259.                 {
  1260.                     return 1;
  1261.                 }
  1262.             }
  1263.         }
  1264.     }
  1265.     return 0;
  1266. }
  1267.  
  1268. stock GetarAreaVeiculo(car)
  1269. {
  1270.     new str[126];
  1271.     format(str,sizeof(str),"%s",Zones[GetarZonaVeiculo(car)][zone_name]);
  1272.     return str;
  1273. }
  1274.  
  1275. stock GetarZonaVeiculo(car)
  1276. {
  1277.     new
  1278.         Float:x,
  1279.         Float:y,
  1280.         Float:z
  1281.     ;
  1282.  
  1283.     GetVehiclePos(car,x,y,z);
  1284.  
  1285.     for(new i = 0; i <sizeof(Zones); i++)
  1286.     {
  1287.         if(x > Zones[i][zone_minx] && y > Zones[i][zone_miny] && z > Zones[i][zone_minz] && x < Zones[i][zone_maxx] && y < Zones[i][zone_maxy] && z < Zones[i][zone_maxz])
  1288.         return i;
  1289.     }
  1290.     return 0;
  1291. }
  1292.  
  1293. stock GetarDistanciaVeiculo(playerid, car)
  1294. {
  1295.     new
  1296.         Float:x1,
  1297.         Float:y1,
  1298.         Float:z1,
  1299.         Float:x2,
  1300.         Float:y2,
  1301.         Float:z2,
  1302.         Float:dis
  1303.     ;
  1304.  
  1305.     GetPlayerPos(playerid,x1,y1,z1);
  1306.     GetVehiclePos(Set[car],x2,y2,z2);
  1307.  
  1308.     dis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  1309.     return floatround(dis);
  1310. }
  1311.  
  1312.  
  1313. /* ------------------------[ FIM DO SISTEMA ] --------------------------------*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement