error 021: symbol already defined: "strcat"
#1

when I compile this filter script I get that error. Actually it is not defined anywhere else what I know

it appears at the VERY end

pawn Код:
strcat(DialogText5, "{FF0A00}* No cheating or modifications of any kind that give you advantages over other players!(BANNABLE)\n\n* No flaming, racism or any sort of discrimination towards any other player!(BANNABLE)\n\n* No spamming/flooding chat for any reason!\n\n* Avoid the unnecessary use of sexual language (pussy, dick, etc.)!\n\n");
    strcat(DialogText5, "* The abuse of server bugs, such as RPG Bug is forbidden!(BANNABLE)\n\n* Spawn kill is allowed as long as it is not done with a Sea-Sparrow...\n\n ...In any race Spawn killing is strictly forbidden!\n");
    strcat(DialogText5, "\n* Use /report [ID/first letters of the offender's name] [reason] to report a cheater!\n\n{FFD200}Play Fair & Have Fun!");



Код:
//----------------------------------------------------------
//
//  GRAND LARCENY  1.0
//  A freeroam gamemode for SA-MP 0.3
//
//----------------------------------------------------------

#include <irc>
#include <a_samp>
#include <core>
#include <ircfs>
#include <float>
#include <YSI\y_ini>
#include <streamer>
#include <sscanf2>
#include <ZCMD> //Like so!
#include <DynamicRadioStations>
#include "../include/gl_common.inc"
#include "../include/gl_spawns.inc"

#pragma tabsize 0

//----------------------------------------------------------

#define COLOR_WHITE         0xFFFFFFFF
#define COLOR_NORMAL_PLAYER 0xFFBB7777
#define COLOR_RED 0xFF444499
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GREEN 0xB1FB44FF

#define loop(%1,%2) for (new %1 = 0; %1 < %2; %1++) // loop (used for gamemode)

#define CITY_LOS_SANTOS     0
#define CITY_SAN_FIERRO     1
#define CITY_LAS_VENTURAS   2
#define Skinid 1
#define Money 2
#define Faction 3
#define irc
#define STREAMER_TYPE_OBJECT (0)
#define STREAMER_TYPE_PICKUP (1)
#define STREAMER_TYPE_CP (2)
#define STREAMER_TYPE_RACE_CP (3)
#define STREAMER_TYPE_MAP_ICON (4)
#define STREAMER_TYPE_3D_TEXT_LABEL (5)
#define STREAMER_TYPE_AREA (6)

#define STREAMER_AREA_TYPE_CIRCLE (0)
#define STREAMER_AREA_TYPE_RECTANGLE (1)
#define STREAMER_AREA_TYPE_SPHERE (2)
#define STREAMER_AREA_TYPE_CUBE (3)
#define STREAMER_AREA_TYPE_POLYGON (4)

#define STREAMER_OBJECT_TYPE_GLOBAL (0)
#define STREAMER_OBJECT_TYPE_PLAYER (1)
#define STREAMER_OBJECT_TYPE_DYNAMIC (2)

#define GAMETEXT_COLOR 2 //Change this to change the color of the text. 0 = yellow(default), 1 = blue, 2 = green, 3 = red, 4 = purple, 5 = white, 6 = black.

#define COL_WHITE "{FFFFFF}"
#define COL_RED "{F81414}"
#define COL_GREEN "{00FF22}"

// Name that everyone will see
#define BOT_1_NICKNAME "Julius95Bot"
// Name that will only be visible in a whois
#define BOT_1_REALNAME "Julius95Bot"
// Name that will be in front of the hostname (username@hostname)
#define BOT_1_USERNAME "Julius95Bot"

#define BOT_2_NICKNAME "AdrenalineBot"
#define BOT_2_REALNAME "AdrenalineBot"
#define BOT_2_USERNAME "AdrenalineBot"

#define IRC_SERVER "exnet.fr.irc.tl"
#define IRC_PORT (6667)
#define IRC_CHANNEL "#Julius95"
#define IRC_CHANNEL2 "#Julius95" // IRC Channel #2

// If your bot names are registered put a password here to identify them with
#define IRC_PASSWORD "password"
#define IRC_PASSWORD "password"

// Maximum number of bots in the filterscript
#define MAX_BOTS (2)

#define PLUGIN_VERSION "1.4.3"

new Text:welcomeText;

new gBotID[MAX_BOTS], gGroupID;

new szString[32];

new DialogText5[1024];

new total_vehicles_from_files=0;

new botIDs[MAX_BOTS], groupID;

// Class selection globals
new gPlayerCitySelection[MAX_PLAYERS];
new gPlayerHasCitySelected[MAX_PLAYERS];
new gPlayerLastCitySelectionTick[MAX_PLAYERS];

enum zoneinfo {
	zone_name[256],
    Float:zone_minx,
    Float:zone_miny,
    Float:zone_minz,
    Float:zone_maxx,
    Float:zone_maxy,
    Float:zone_maxz
}

new Float:zones[][zoneinfo] = {
{ "The Big Ear'",                -410.00,  1403.30,    -3.00,  -137.90,  1681.20,   200.00},
{ "Aldea Malvada",               -1372.10,  2498.50,     0.00, -1277.50,  2615.30,   200.00},
{ "Angel Pine",                  -2324.90, -2584.20,    -6.10, -1964.20, -2212.10,   200.00},
{ "Arco del Oeste",               -901.10,  2221.80,     0.00,  -592.00,  2571.90,   200.00},
{ "Avispa Country Club",         -2646.40,  -355.40,     0.00, -2270.00,  -222.50,   200.00},
{ "Avispa Country Club",         -2831.80,  -430.20,    -6.10, -2646.40,  -222.50,   200.00},
{ "Avispa Country Club",         -2361.50,  -417.10,     0.00, -2270.00,  -355.40,   200.00},
{ "Avispa Country Club",         -2667.80,  -302.10,   -28.80, -2646.40,  -262.30,    71.10},
{ "Avispa Country Club",         -2470.00,  -355.40,     0.00, -2270.00,  -318.40,    46.10},
{ "Avispa Country Club",         -2550.00,  -355.40,     0.00, -2470.00,  -318.40,    39.70},
{ "Back o Beyond",               -1166.90, -2641.10,     0.00,  -321.70, -1856.00,   200.00},
{ "Battery Point",               -2741.00,  1268.40,    -4.50, -2533.00,  1490.40,   200.00},
{ "Bayside",                     -2741.00,  2175.10,     0.00, -2353.10,  2722.70,   200.00},
{ "Bayside Marina",              -2353.10,  2275.70,     0.00, -2153.10,  2475.70,   200.00},
{ "Beacon Hill",                  -399.60, -1075.50,    -1.40,  -319.00,  -977.50,   198.50},
{ "Blackfield",                    964.30,  1203.20,   -89.00,  1197.30,  1403.20,   110.90},
{ "Blackfield",                    964.30,  1403.20,   -89.00,  1197.30,  1726.20,   110.90},
{ "Blackfield Chapel",            1375.60,   596.30,   -89.00,  1558.00,   823.20,   110.90},
{ "Blackfield Chapel",            1325.60,   596.30,   -89.00,  1375.60,   795.00,   110.90},
{ "Blackfield Intersection",      1197.30,  1044.60,   -89.00,  1277.00,  1163.30,   110.90},
{ "Blackfield Intersection",      1166.50,   795.00,   -89.00,  1375.60,  1044.60,   110.90},
{ "Blackfield Intersection",      1277.00,  1044.60,   -89.00,  1315.30,  1087.60,   110.90},
{ "Blackfield Intersection",      1375.60,   823.20,   -89.00,  1457.30,   919.40,   110.90},
{ "Blueberry",                     104.50,  -220.10,     2.30,   349.60,   152.20,   200.00},
{ "Blueberry",                      19.60,  -404.10,     3.80,   349.60,  -220.10,   200.00},
{ "Blueberry Acres",              -319.60,  -220.10,     0.00,   104.50,   293.30,   200.00},
{ "Caligula's Palace",            2087.30,  1543.20,   -89.00,  2437.30,  1703.20,   110.90},
{ "Caligula's Palace",            2137.40,  1703.20,   -89.00,  2437.30,  1783.20,   110.90},
{ "Calton Heights",              -2274.10,   744.10,    -6.10, -1982.30,  1358.90,   200.00},
{ "Chinatown",                   -2274.10,   578.30,    -7.60, -2078.60,   744.10,   200.00},
{ "City Hall",                   -2867.80,   277.40,    -9.10, -2593.40,   458.40,   200.00},
{ "Come-A-Lot",                   2087.30,   943.20,   -89.00,  2623.10,  1203.20,   110.90},
{ "Commerce",                     1323.90, -1842.20,   -89.00,  1701.90, -1722.20,   110.90},
{ "Commerce",                     1323.90, -1722.20,   -89.00,  1440.90, -1577.50,   110.90},
{ "Commerce",                     1370.80, -1577.50,   -89.00,  1463.90, -1384.90,   110.90},
{ "Commerce",                     1463.90, -1577.50,   -89.00,  1667.90, -1430.80,   110.90},
{ "Commerce",                     1583.50, -1722.20,   -89.00,  1758.90, -1577.50,   110.90},
{ "Commerce",                     1667.90, -1577.50,   -89.00,  1812.60, -1430.80,   110.90},
{ "Conference Center",            1046.10, -1804.20,   -89.00,  1323.90, -1722.20,   110.90},
{ "Conference Center",            1073.20, -1842.20,   -89.00,  1323.90, -1804.20,   110.90},
{ "Cranberry Station",           -2007.80,    56.30,     0.00, -1922.00,   224.70,   100.00},
{ "Creek",                        2749.90,  1937.20,   -89.00,  2921.60,  2669.70,   110.90},
{ "Dillimore",                     580.70,  -674.80,    -9.50,   861.00,  -404.70,   200.00},
{ "Doherty",                     -2270.00,  -324.10,    -0.00, -1794.90,  -222.50,   200.00},
{ "Doherty",                     -2173.00,  -222.50,    -0.00, -1794.90,   265.20,   200.00},
{ "Downtown",                    -1982.30,   744.10,    -6.10, -1871.70,  1274.20,   200.00},
{ "Downtown",                    -1871.70,  1176.40,    -4.50, -1620.30,  1274.20,   200.00},
{ "Downtown",                    -1700.00,   744.20,    -6.10, -1580.00,  1176.50,   200.00},
{ "Downtown",                    -1580.00,   744.20,    -6.10, -1499.80,  1025.90,   200.00},
{ "Downtown",                    -2078.60,   578.30,    -7.60, -1499.80,   744.20,   200.00},
{ "Downtown",                    -1993.20,   265.20,    -9.10, -1794.90,   578.30,   200.00},
{ "Downtown Los Santos",          1463.90, -1430.80,   -89.00,  1724.70, -1290.80,   110.90},
{ "Downtown Los Santos",          1724.70, -1430.80,   -89.00,  1812.60, -1250.90,   110.90},
{ "Downtown Los Santos",          1463.90, -1290.80,   -89.00,  1724.70, -1150.80,   110.90},
{ "Downtown Los Santos",          1370.80, -1384.90,   -89.00,  1463.90, -1170.80,   110.90},
{ "Downtown Los Santos",          1724.70, -1250.90,   -89.00,  1812.60, -1150.80,   110.90},
{ "Downtown Los Santos",          1370.80, -1170.80,   -89.00,  1463.90, -1130.80,   110.90},
{ "Downtown Los Santos",          1378.30, -1130.80,   -89.00,  1463.90, -1026.30,   110.90},
{ "Downtown Los Santos",          1391.00, -1026.30,   -89.00,  1463.90,  -926.90,   110.90},
{ "Downtown Los Santos",          1507.50, -1385.20,   110.90,  1582.50, -1325.30,   335.90},
{ "East Beach",                   2632.80, -1852.80,   -89.00,  2959.30, -1668.10,   110.90},
{ "East Beach",                   2632.80, -1668.10,   -89.00,  2747.70, -1393.40,   110.90},
{ "East Beach",                   2747.70, -1668.10,   -89.00,  2959.30, -1498.60,   110.90},
{ "East Beach",                   2747.70, -1498.60,   -89.00,  2959.30, -1120.00,   110.90},
{ "East Los Santos",              2421.00, -1628.50,   -89.00,  2632.80, -1454.30,   110.90},
{ "East Los Santos",              2222.50, -1628.50,   -89.00,  2421.00, -1494.00,   110.90},
{ "East Los Santos",              2266.20, -1494.00,   -89.00,  2381.60, -1372.00,   110.90},
{ "East Los Santos",              2381.60, -1494.00,   -89.00,  2421.00, -1454.30,   110.90},
{ "East Los Santos",              2281.40, -1372.00,   -89.00,  2381.60, -1135.00,   110.90},
{ "East Los Santos",              2381.60, -1454.30,   -89.00,  2462.10, -1135.00,   110.90},
{ "East Los Santos",              2462.10, -1454.30,   -89.00,  2581.70, -1135.00,   110.90},
{ "Easter Basin",                -1794.90,   249.90,    -9.10, -1242.90,   578.30,   200.00},
{ "Easter Basin",                -1794.90,   -50.00,    -0.00, -1499.80,   249.90,   200.00},
{ "Easter Bay Airport",          -1499.80,   -50.00,    -0.00, -1242.90,   249.90,   200.00},
{ "Easter Bay Airport",          -1794.90,  -730.10,    -3.00, -1213.90,   -50.00,   200.00},
{ "Easter Bay Airport",          -1213.90,  -730.10,     0.00, -1132.80,   -50.00,   200.00},
{ "Easter Bay Airport",          -1242.90,   -50.00,     0.00, -1213.90,   578.30,   200.00},
{ "Easter Bay Airport",          -1213.90,   -50.00,    -4.50,  -947.90,   578.30,   200.00},
{ "Easter Bay Airport",          -1315.40,  -405.30,    15.40, -1264.40,  -209.50,    25.40},
{ "Easter Bay Airport",          -1354.30,  -287.30,    15.40, -1315.40,  -209.50,    25.40},
{ "Easter Bay Airport",          -1490.30,  -209.50,    15.40, -1264.40,  -148.30,    25.40},
{ "Easter Bay Chemicals",        -1132.80,  -768.00,     0.00,  -956.40,  -578.10,   200.00},
{ "Easter Bay Chemicals",        -1132.80,  -787.30,     0.00,  -956.40,  -768.00,   200.00},
{ "El Castillo del Diablo",       -464.50,  2217.60,     0.00,  -208.50,  2580.30,   200.00},
{ "El Castillo del Diablo",       -208.50,  2123.00,    -7.60,   114.00,  2337.10,   200.00},
{ "El Castillo del Diablo",       -208.50,  2337.10,     0.00,     8.40,  2487.10,   200.00},
{ "El Corona",                    1812.60, -2179.20,   -89.00,  1970.60, -1852.80,   110.90},
{ "El Corona",                    1692.60, -2179.20,   -89.00,  1812.60, -1842.20,   110.90},
{ "El Quebrados",                -1645.20,  2498.50,     0.00, -1372.10,  2777.80,   200.00},
{ "Esplanade East",              -1620.30,  1176.50,    -4.50, -1580.00,  1274.20,   200.00},
{ "Esplanade East",              -1580.00,  1025.90,    -6.10, -1499.80,  1274.20,   200.00},
{ "Esplanade East",              -1499.80,   578.30,   -79.60, -1339.80,  1274.20,    20.30},
{ "Esplanade North",             -2533.00,  1358.90,    -4.50, -1996.60,  1501.20,   200.00},
{ "Esplanade North",             -1996.60,  1358.90,    -4.50, -1524.20,  1592.50,   200.00},
{ "Esplanade North",             -1982.30,  1274.20,    -4.50, -1524.20,  1358.90,   200.00},
{ "Fallen Tree",                  -792.20,  -698.50,    -5.30,  -452.40,  -380.00,   200.00},
{ "Fallow Bridge",                 434.30,   366.50,     0.00,   603.00,   555.60,   200.00},
{ "Fern Ridge",                    508.10,  -139.20,     0.00,  1306.60,   119.50,   200.00},
{ "Financial",                   -1871.70,   744.10,    -6.10, -1701.30,  1176.40,   300.00},
{ "Fisher's Lagoon",              1916.90,  -233.30,  -100.00,  2131.70,    13.80,   200.00},
{ "Flint Intersection",           -187.70, -1596.70,   -89.00,    17.00, -1276.60,   110.90},
{ "Flint Range",                  -594.10, -1648.50,     0.00,  -187.70, -1276.60,   200.00},
{ "Fort Carson",                  -376.20,   826.30,    -3.00,   123.70,  1220.40,   200.00},
{ "Foster Valley",               -2270.00,  -430.20,    -0.00, -2178.60,  -324.10,   200.00},
{ "Foster Valley",               -2178.60,  -599.80,    -0.00, -1794.90,  -324.10,   200.00},
{ "Foster Valley",               -2178.60, -1115.50,     0.00, -1794.90,  -599.80,   200.00},
{ "Foster Valley",               -2178.60, -1250.90,     0.00, -1794.90, -1115.50,   200.00},
{ "Frederick Bridge",             2759.20,   296.50,     0.00,  2774.20,   594.70,   200.00},
{ "Gant Bridge",                 -2741.40,  1659.60,    -6.10, -2616.40,  2175.10,   200.00},
{ "Gant Bridge",                 -2741.00,  1490.40,    -6.10, -2616.40,  1659.60,   200.00},
{ "Ganton",                       2222.50, -1852.80,   -89.00,  2632.80, -1722.30,   110.90},
{ "Ganton",                       2222.50, -1722.30,   -89.00,  2632.80, -1628.50,   110.90},
{ "Garcia",                      -2411.20,  -222.50,    -0.00, -2173.00,   265.20,   200.00},
{ "Garcia",                      -2395.10,  -222.50,    -5.30, -2354.00,  -204.70,   200.00},
{ "Garver Bridge",               -1339.80,   828.10,   -89.00, -1213.90,  1057.00,   110.90},
{ "Garver Bridge",               -1213.90,   950.00,   -89.00, -1087.90,  1178.90,   110.90},
{ "Garver Bridge",               -1499.80,   696.40,  -179.60, -1339.80,   925.30,    20.30},
{ "Glen Park",                    1812.60, -1449.60,   -89.00,  1996.90, -1350.70,   110.90},
{ "Glen Park",                    1812.60, -1100.80,   -89.00,  1994.30,  -973.30,   110.90},
{ "Glen Park",                    1812.60, -1350.70,   -89.00,  2056.80, -1100.80,   110.90},
{ "Green Palms",                   176.50,  1305.40,    -3.00,   338.60,  1520.70,   200.00},
{ "Greenglass College",            964.30,  1044.60,   -89.00,  1197.30,  1203.20,   110.90},
{ "Greenglass College",            964.30,   930.80,   -89.00,  1166.50,  1044.60,   110.90},
{ "Hampton Barns",                 603.00,   264.30,     0.00,   761.90,   366.50,   200.00},
{ "Hankypanky Point",             2576.90,    62.10,     0.00,  2759.20,   385.50,   200.00},
{ "Harry Gold Parkway",           1777.30,   863.20,   -89.00,  1817.30,  2342.80,   110.90},
{ "Hashbury",                    -2593.40,  -222.50,    -0.00, -2411.20,    54.70,   200.00},
{ "Hilltop Farm",                  967.30,  -450.30,    -3.00,  1176.70,  -217.90,   200.00},
{ "Hunter Quarry",                 337.20,   710.80,  -115.20,   860.50,  1031.70,   203.70},
{ "Idlewood",                     1812.60, -1852.80,   -89.00,  1971.60, -1742.30,   110.90},
{ "Idlewood",                     1812.60, -1742.30,   -89.00,  1951.60, -1602.30,   110.90},
{ "Idlewood",                     1951.60, -1742.30,   -89.00,  2124.60, -1602.30,   110.90},
{ "Idlewood",                     1812.60, -1602.30,   -89.00,  2124.60, -1449.60,   110.90},
{ "Idlewood",                     2124.60, -1742.30,   -89.00,  2222.50, -1494.00,   110.90},
{ "Idlewood",                     1971.60, -1852.80,   -89.00,  2222.50, -1742.30,   110.90},
{ "Jefferson",                    1996.90, -1449.60,   -89.00,  2056.80, -1350.70,   110.90},
{ "Jefferson",                    2124.60, -1494.00,   -89.00,  2266.20, -1449.60,   110.90},
{ "Jefferson",                    2056.80, -1372.00,   -89.00,  2281.40, -1210.70,   110.90},
{ "Jefferson",                    2056.80, -1210.70,   -89.00,  2185.30, -1126.30,   110.90},
{ "Jefferson",                    2185.30, -1210.70,   -89.00,  2281.40, -1154.50,   110.90},
{ "Jefferson",                    2056.80, -1449.60,   -89.00,  2266.20, -1372.00,   110.90},
{ "Julius Thruway East",          2623.10,   943.20,   -89.00,  2749.90,  1055.90,   110.90},
{ "Julius Thruway East",          2685.10,  1055.90,   -89.00,  2749.90,  2626.50,   110.90},
{ "Julius Thruway East",          2536.40,  2442.50,   -89.00,  2685.10,  2542.50,   110.90},
{ "Julius Thruway East",          2625.10,  2202.70,   -89.00,  2685.10,  2442.50,   110.90},
{ "Julius Thruway North",         2498.20,  2542.50,   -89.00,  2685.10,  2626.50,   110.90},
{ "Julius Thruway North",         2237.40,  2542.50,   -89.00,  2498.20,  2663.10,   110.90},
{ "Julius Thruway North",         2121.40,  2508.20,   -89.00,  2237.40,  2663.10,   110.90},
{ "Julius Thruway North",         1938.80,  2508.20,   -89.00,  2121.40,  2624.20,   110.90},
{ "Julius Thruway North",         1534.50,  2433.20,   -89.00,  1848.40,  2583.20,   110.90},
{ "Julius Thruway North",         1848.40,  2478.40,   -89.00,  1938.80,  2553.40,   110.90},
{ "Julius Thruway North",         1704.50,  2342.80,   -89.00,  1848.40,  2433.20,   110.90},
{ "Julius Thruway North",         1377.30,  2433.20,   -89.00,  1534.50,  2507.20,   110.90},
{ "Julius Thruway South",         1457.30,   823.20,   -89.00,  2377.30,   863.20,   110.90},
{ "Julius Thruway South",         2377.30,   788.80,   -89.00,  2537.30,   897.90,   110.90},
{ "Julius Thruway West",          1197.30,  1163.30,   -89.00,  1236.60,  2243.20,   110.90},
{ "Julius Thruway West",          1236.60,  2142.80,   -89.00,  1297.40,  2243.20,   110.90},
{ "Juniper Hill",                -2533.00,   578.30,    -7.60, -2274.10,   968.30,   200.00},
{ "Juniper Hollow",              -2533.00,   968.30,    -6.10, -2274.10,  1358.90,   200.00},
{ "K.A.C.C. Military Fuels",      2498.20,  2626.50,   -89.00,  2749.90,  2861.50,   110.90},
{ "Kincaid Bridge",              -1339.80,   599.20,   -89.00, -1213.90,   828.10,   110.90},
{ "Kincaid Bridge",              -1213.90,   721.10,   -89.00, -1087.90,   950.00,   110.90},
{ "Kincaid Bridge",              -1087.90,   855.30,   -89.00,  -961.90,   986.20,   110.90},
{ "King's",                      -2329.30,   458.40,    -7.60, -1993.20,   578.30,   200.00},
{ "King's",                      -2411.20,   265.20,    -9.10, -1993.20,   373.50,   200.00},
{ "King's",                      -2253.50,   373.50,    -9.10, -1993.20,   458.40,   200.00},
{ "LVA Freight Depot",            1457.30,   863.20,   -89.00,  1777.40,  1143.20,   110.90},
{ "LVA Freight Depot",            1375.60,   919.40,   -89.00,  1457.30,  1203.20,   110.90},
{ "LVA Freight Depot",            1277.00,  1087.60,   -89.00,  1375.60,  1203.20,   110.90},
{ "LVA Freight Depot",            1315.30,  1044.60,   -89.00,  1375.60,  1087.60,   110.90},
{ "LVA Freight Depot",            1236.60,  1163.40,   -89.00,  1277.00,  1203.20,   110.90},
{ "Las Barrancas",                -926.10,  1398.70,    -3.00,  -719.20,  1634.60,   200.00},
{ "Las Brujas",                   -365.10,  2123.00,    -3.00,  -208.50,  2217.60,   200.00},
{ "Las Colinas",                  1994.30, -1100.80,   -89.00,  2056.80,  -920.80,   110.90},
{ "Las Colinas",                  2056.80, -1126.30,   -89.00,  2126.80,  -920.80,   110.90},
{ "Las Colinas",                  2185.30, -1154.50,   -89.00,  2281.40,  -934.40,   110.90},
{ "Las Colinas",                  2126.80, -1126.30,   -89.00,  2185.30,  -934.40,   110.90},
{ "Las Colinas",                  2747.70, -1120.00,   -89.00,  2959.30,  -945.00,   110.90},
{ "Las Colinas",                  2632.70, -1135.00,   -89.00,  2747.70,  -945.00,   110.90},
{ "Las Colinas",                  2281.40, -1135.00,   -89.00,  2632.70,  -945.00,   110.90},
{ "Las Payasadas",                -354.30,  2580.30,     2.00,  -133.60,  2816.80,   200.00},
{ "Las Venturas Airport",         1236.60,  1203.20,   -89.00,  1457.30,  1883.10,   110.90},
{ "Las Venturas Airport",         1457.30,  1203.20,   -89.00,  1777.30,  1883.10,   110.90},
{ "Las Venturas Airport",         1457.30,  1143.20,   -89.00,  1777.40,  1203.20,   110.90},
{ "Las Venturas Airport",         1515.80,  1586.40,   -12.50,  1729.90,  1714.50,    87.50},
{ "Last Dime Motel",              1823.00,   596.30,   -89.00,  1997.20,   823.20,   110.90},
{ "Leafy Hollow",                -1166.90, -1856.00,     0.00,  -815.60, -1602.00,   200.00},
{ "Lil' Probe Inn",                -90.20,  1286.80,    -3.00,   153.80,  1554.10,   200.00},
{ "Linden Side",                  2749.90,   943.20,   -89.00,  2923.30,  1198.90,   110.90},
{ "Linden Station",               2749.90,  1198.90,   -89.00,  2923.30,  1548.90,   110.90},
{ "Linden Station",               2811.20,  1229.50,   -39.50,  2861.20,  1407.50,    60.40},
{ "Little Mexico",                1701.90, -1842.20,   -89.00,  1812.60, -1722.20,   110.90},
{ "Little Mexico",                1758.90, -1722.20,   -89.00,  1812.60, -1577.50,   110.90},
{ "Los Flores",                   2581.70, -1454.30,   -89.00,  2632.80, -1393.40,   110.90},
{ "Los Flores",                   2581.70, -1393.40,   -89.00,  2747.70, -1135.00,   110.90},
{ "Los Santos International",     1249.60, -2394.30,   -89.00,  1852.00, -2179.20,   110.90},
{ "Los Santos International",     1852.00, -2394.30,   -89.00,  2089.00, -2179.20,   110.90},
{ "Los Santos International",     1382.70, -2730.80,   -89.00,  2201.80, -2394.30,   110.90},
{ "Los Santos International",     1974.60, -2394.30,   -39.00,  2089.00, -2256.50,    60.90},
{ "Los Santos International",     1400.90, -2669.20,   -39.00,  2189.80, -2597.20,    60.90},
{ "Los Santos International",     2051.60, -2597.20,   -39.00,  2152.40, -2394.30,    60.90},
{ "Marina",                        647.70, -1804.20,   -89.00,   851.40, -1577.50,   110.90},
{ "Marina",                        647.70, -1577.50,   -89.00,   807.90, -1416.20,   110.90},
{ "Marina",                        807.90, -1577.50,   -89.00,   926.90, -1416.20,   110.90},
{ "Market",                        787.40, -1416.20,   -89.00,  1072.60, -1310.20,   110.90},
{ "Market",                        952.60, -1310.20,   -89.00,  1072.60, -1130.80,   110.90},
{ "Market",                       1072.60, -1416.20,   -89.00,  1370.80, -1130.80,   110.90},
{ "Market",                        926.90, -1577.50,   -89.00,  1370.80, -1416.20,   110.90},
{ "Market Station",                787.40, -1410.90,   -34.10,   866.00, -1310.20,    65.80},
{ "Martin Bridge",                -222.10,   293.30,     0.00,  -122.10,   476.40,   200.00},
{ "Missionary Hill",             -2994.40,  -811.20,     0.00, -2178.60,  -430.20,   200.00},
{ "Montgomery",                   1119.50,   119.50,    -3.00,  1451.40,   493.30,   200.00},
{ "Montgomery",                   1451.40,   347.40,    -6.10,  1582.40,   420.80,   200.00},
{ "Montgomery Intersection",      1546.60,   208.10,     0.00,  1745.80,   347.40,   200.00},
{ "Montgomery Intersection",      1582.40,   347.40,     0.00,  1664.60,   401.70,   200.00},
{ "Mulholland",                   1414.00,  -768.00,   -89.00,  1667.60,  -452.40,   110.90},
{ "Mulholland",                   1281.10,  -452.40,   -89.00,  1641.10,  -290.90,   110.90},
{ "Mulholland",                   1269.10,  -768.00,   -89.00,  1414.00,  -452.40,   110.90},
{ "Mulholland",                   1357.00,  -926.90,   -89.00,  1463.90,  -768.00,   110.90},
{ "Mulholland",                   1318.10,  -910.10,   -89.00,  1357.00,  -768.00,   110.90},
{ "Mulholland",                   1169.10,  -910.10,   -89.00,  1318.10,  -768.00,   110.90},
{ "Mulholland",                    768.60,  -954.60,   -89.00,   952.60,  -860.60,   110.90},
{ "Mulholland",                    687.80,  -860.60,   -89.00,   911.80,  -768.00,   110.90},
{ "Mulholland",                    737.50,  -768.00,   -89.00,  1142.20,  -674.80,   110.90},
{ "Mulholland",                   1096.40,  -910.10,   -89.00,  1169.10,  -768.00,   110.90},
{ "Mulholland",                    952.60,  -937.10,   -89.00,  1096.40,  -860.60,   110.90},
{ "Mulholland",                    911.80,  -860.60,   -89.00,  1096.40,  -768.00,   110.90},
{ "Mulholland",                    861.00,  -674.80,   -89.00,  1156.50,  -600.80,   110.90},
{ "Mulholland Intersection",      1463.90, -1150.80,   -89.00,  1812.60,  -768.00,   110.90},
{ "North Rock",                   2285.30,  -768.00,     0.00,  2770.50,  -269.70,   200.00},
{ "Ocean Docks",                  2373.70, -2697.00,   -89.00,  2809.20, -2330.40,   110.90},
{ "Ocean Docks",                  2201.80, -2418.30,   -89.00,  2324.00, -2095.00,   110.90},
{ "Ocean Docks",                  2324.00, -2302.30,   -89.00,  2703.50, -2145.10,   110.90},
{ "Ocean Docks",                  2089.00, -2394.30,   -89.00,  2201.80, -2235.80,   110.90},
{ "Ocean Docks",                  2201.80, -2730.80,   -89.00,  2324.00, -2418.30,   110.90},
{ "Ocean Docks",                  2703.50, -2302.30,   -89.00,  2959.30, -2126.90,   110.90},
{ "Ocean Docks",                  2324.00, -2145.10,   -89.00,  2703.50, -2059.20,   110.90},
{ "Ocean Flats",                 -2994.40,   277.40,    -9.10, -2867.80,   458.40,   200.00},
{ "Ocean Flats",                 -2994.40,  -222.50,    -0.00, -2593.40,   277.40,   200.00},
{ "Ocean Flats",                 -2994.40,  -430.20,    -0.00, -2831.80,  -222.50,   200.00},
{ "Octane Springs",                338.60,  1228.50,     0.00,   664.30,  1655.00,   200.00},
{ "Old Venturas Strip",           2162.30,  2012.10,   -89.00,  2685.10,  2202.70,   110.90},
{ "Palisades",                   -2994.40,   458.40,    -6.10, -2741.00,  1339.60,   200.00},
{ "Palomino Creek",               2160.20,  -149.00,     0.00,  2576.90,   228.30,   200.00},
{ "Paradiso",                    -2741.00,   793.40,    -6.10, -2533.00,  1268.40,   200.00},
{ "Pershing Square",              1440.90, -1722.20,   -89.00,  1583.50, -1577.50,   110.90},
{ "Pilgrim",                      2437.30,  1383.20,   -89.00,  2624.40,  1783.20,   110.90},
{ "Pilgrim",                      2624.40,  1383.20,   -89.00,  2685.10,  1783.20,   110.90},
{ "Pilson Intersection",          1098.30,  2243.20,   -89.00,  1377.30,  2507.20,   110.90},
{ "Pirates in Men's Pants",       1817.30,  1469.20,   -89.00,  2027.40,  1703.20,   110.90},
{ "Playa del Seville",            2703.50, -2126.90,   -89.00,  2959.30, -1852.80,   110.90},
{ "Prickle Pine",                 1534.50,  2583.20,   -89.00,  1848.40,  2863.20,   110.90},
{ "Prickle Pine",                 1117.40,  2507.20,   -89.00,  1534.50,  2723.20,   110.90},
{ "Prickle Pine",                 1848.40,  2553.40,   -89.00,  1938.80,  2863.20,   110.90},
{ "Prickle Pine",                 1938.80,  2624.20,   -89.00,  2121.40,  2861.50,   110.90},
{ "Queens",                      -2533.00,   458.40,     0.00, -2329.30,   578.30,   200.00},
{ "Queens",                      -2593.40,    54.70,     0.00, -2411.20,   458.40,   200.00},
{ "Queens",                      -2411.20,   373.50,     0.00, -2253.50,   458.40,   200.00},
{ "Randolph Industrial Estate",   1558.00,   596.30,   -89.00,  1823.00,   823.20,   110.90},
{ "Redsands East",                1817.30,  2011.80,   -89.00,  2106.70,  2202.70,   110.90},
{ "Redsands East",                1817.30,  2202.70,   -89.00,  2011.90,  2342.80,   110.90},
{ "Redsands East",                1848.40,  2342.80,   -89.00,  2011.90,  2478.40,   110.90},
{ "Redsands West",                1236.60,  1883.10,   -89.00,  1777.30,  2142.80,   110.90},
{ "Redsands West",                1297.40,  2142.80,   -89.00,  1777.30,  2243.20,   110.90},
{ "Redsands West",                1377.30,  2243.20,   -89.00,  1704.50,  2433.20,   110.90},
{ "Redsands West",                1704.50,  2243.20,   -89.00,  1777.30,  2342.80,   110.90},
{ "Regular Tom",                  -405.70,  1712.80,    -3.00,  -276.70,  1892.70,   200.00},
{ "Richman",                       647.50, -1118.20,   -89.00,   787.40,  -954.60,   110.90},
{ "Richman",                       647.50,  -954.60,   -89.00,   768.60,  -860.60,   110.90},
{ "Richman",                       225.10, -1369.60,   -89.00,   334.50, -1292.00,   110.90},
{ "Richman",                       225.10, -1292.00,   -89.00,   466.20, -1235.00,   110.90},
{ "Richman",                        72.60, -1404.90,   -89.00,   225.10, -1235.00,   110.90},
{ "Richman",                        72.60, -1235.00,   -89.00,   321.30, -1008.10,   110.90},
{ "Richman",                       321.30, -1235.00,   -89.00,   647.50, -1044.00,   110.90},
{ "Richman",                       321.30, -1044.00,   -89.00,   647.50,  -860.60,   110.90},
{ "Richman",                       321.30,  -860.60,   -89.00,   687.80,  -768.00,   110.90},
{ "Richman",                       321.30,  -768.00,   -89.00,   700.70,  -674.80,   110.90},
{ "Robada Intersection",         -1119.00,  1178.90,   -89.00,  -862.00,  1351.40,   110.90},
{ "Roca Escalante",               2237.40,  2202.70,   -89.00,  2536.40,  2542.50,   110.90},
{ "Roca Escalante",               2536.40,  2202.70,   -89.00,  2625.10,  2442.50,   110.90},
{ "Rockshore East",               2537.30,   676.50,   -89.00,  2902.30,   943.20,   110.90},
{ "Rockshore West",               1997.20,   596.30,   -89.00,  2377.30,   823.20,   110.90},
{ "Rockshore West",               2377.30,   596.30,   -89.00,  2537.30,   788.80,   110.90},
{ "Rodeo",                          72.60, -1684.60,   -89.00,   225.10, -1544.10,   110.90},
{ "Rodeo",                          72.60, -1544.10,   -89.00,   225.10, -1404.90,   110.90},
{ "Rodeo",                         225.10, -1684.60,   -89.00,   312.80, -1501.90,   110.90},
{ "Rodeo",                         225.10, -1501.90,   -89.00,   334.50, -1369.60,   110.90},
{ "Rodeo",                         334.50, -1501.90,   -89.00,   422.60, -1406.00,   110.90},
{ "Rodeo",                         312.80, -1684.60,   -89.00,   422.60, -1501.90,   110.90},
{ "Rodeo",                         422.60, -1684.60,   -89.00,   558.00, -1570.20,   110.90},
{ "Rodeo",                         558.00, -1684.60,   -89.00,   647.50, -1384.90,   110.90},
{ "Rodeo",                         466.20, -1570.20,   -89.00,   558.00, -1385.00,   110.90},
{ "Rodeo",                         422.60, -1570.20,   -89.00,   466.20, -1406.00,   110.90},
{ "Rodeo",                         466.20, -1385.00,   -89.00,   647.50, -1235.00,   110.90},
{ "Rodeo",                         334.50, -1406.00,   -89.00,   466.20, -1292.00,   110.90},
{ "Royal Casino",                 2087.30,  1383.20,   -89.00,  2437.30,  1543.20,   110.90},
{ "San Andreas Sound",            2450.30,   385.50,  -100.00,  2759.20,   562.30,   200.00},
{ "Santa Flora",                 -2741.00,   458.40,    -7.60, -2533.00,   793.40,   200.00},
{ "Santa Maria Beach",             342.60, -2173.20,   -89.00,   647.70, -1684.60,   110.90},
{ "Santa Maria Beach",              72.60, -2173.20,   -89.00,   342.60, -1684.60,   110.90},
{ "Shady Cabin",                 -1632.80, -2263.40,    -3.00, -1601.30, -2231.70,   200.00},
{ "Shady Creeks",                -1820.60, -2643.60,    -8.00, -1226.70, -1771.60,   200.00},
{ "Shady Creeks",                -2030.10, -2174.80,    -6.10, -1820.60, -1771.60,   200.00},
{ "Sobell Rail Yards",            2749.90,  1548.90,   -89.00,  2923.30,  1937.20,   110.90},
{ "Spinybed",                     2121.40,  2663.10,   -89.00,  2498.20,  2861.50,   110.90},
{ "Starfish Casino",              2437.30,  1783.20,   -89.00,  2685.10,  2012.10,   110.90},
{ "Starfish Casino",              2437.30,  1858.10,   -39.00,  2495.00,  1970.80,    60.90},
{ "Starfish Casino",              2162.30,  1883.20,   -89.00,  2437.30,  2012.10,   110.90},
{ "Temple",                       1252.30, -1130.80,   -89.00,  1378.30, -1026.30,   110.90},
{ "Temple",                       1252.30, -1026.30,   -89.00,  1391.00,  -926.90,   110.90},
{ "Temple",                       1252.30,  -926.90,   -89.00,  1357.00,  -910.10,   110.90},
{ "Temple",                        952.60, -1130.80,   -89.00,  1096.40,  -937.10,   110.90},
{ "Temple",                       1096.40, -1130.80,   -89.00,  1252.30, -1026.30,   110.90},
{ "Temple",                       1096.40, -1026.30,   -89.00,  1252.30,  -910.10,   110.90},
{ "The Camel's Toe",              2087.30,  1203.20,   -89.00,  2640.40,  1383.20,   110.90},
{ "The Clown's Pocket",           2162.30,  1783.20,   -89.00,  2437.30,  1883.20,   110.90},
{ "The Emerald Isle",             2011.90,  2202.70,   -89.00,  2237.40,  2508.20,   110.90},
{ "The Farm",                    -1209.60, -1317.10,   114.90,  -908.10,  -787.30,   251.90},
{ "The Four Dragons Casino",      1817.30,   863.20,   -89.00,  2027.30,  1083.20,   110.90},
{ "The High Roller",              1817.30,  1283.20,   -89.00,  2027.30,  1469.20,   110.90},
{ "The Mako Span",                1664.60,   401.70,     0.00,  1785.10,   567.20,   200.00},
{ "The Panopticon",               -947.90,  -304.30,    -1.10,  -319.60,   327.00,   200.00},
{ "The Pink Swan",                1817.30,  1083.20,   -89.00,  2027.30,  1283.20,   110.90},
{ "The Sherman Dam",              -968.70,  1929.40,    -3.00,  -481.10,  2155.20,   200.00},
{ "The Strip",                    2027.40,   863.20,   -89.00,  2087.30,  1703.20,   110.90},
{ "The Strip",                    2106.70,  1863.20,   -89.00,  2162.30,  2202.70,   110.90},
{ "The Strip",                    2027.40,  1783.20,   -89.00,  2162.30,  1863.20,   110.90},
{ "The Strip",                    2027.40,  1703.20,   -89.00,  2137.40,  1783.20,   110.90},
{ "The Visage",                   1817.30,  1863.20,   -89.00,  2106.70,  2011.80,   110.90},
{ "The Visage",                   1817.30,  1703.20,   -89.00,  2027.40,  1863.20,   110.90},
{ "Unity Station",                1692.60, -1971.80,   -20.40,  1812.60, -1932.80,    79.50},
{ "Valle Ocultado",               -936.60,  2611.40,     2.00,  -715.90,  2847.90,   200.00},
{ "Verdant Bluffs",                930.20, -2488.40,   -89.00,  1249.60, -2006.70,   110.90},
{ "Verdant Bluffs",               1073.20, -2006.70,   -89.00,  1249.60, -1842.20,   110.90},
{ "Verdant Bluffs",               1249.60, -2179.20,   -89.00,  1692.60, -1842.20,   110.90},
{ "Verdant Meadows",                37.00,  2337.10,    -3.00,   435.90,  2677.90,   200.00},
{ "Verona Beach",                  647.70, -2173.20,   -89.00,   930.20, -1804.20,   110.90},
{ "Verona Beach",                  930.20, -2006.70,   -89.00,  1073.20, -1804.20,   110.90},
{ "Verona Beach",                  851.40, -1804.20,   -89.00,  1046.10, -1577.50,   110.90},
{ "Verona Beach",                 1161.50, -1722.20,   -89.00,  1323.90, -1577.50,   110.90},
{ "Verona Beach",                 1046.10, -1722.20,   -89.00,  1161.50, -1577.50,   110.90},
{ "Vinewood",                      787.40, -1310.20,   -89.00,   952.60, -1130.80,   110.90},
{ "Vinewood",                      787.40, -1130.80,   -89.00,   952.60,  -954.60,   110.90},
{ "Vinewood",                      647.50, -1227.20,   -89.00,   787.40, -1118.20,   110.90},
{ "Vinewood",                      647.70, -1416.20,   -89.00,   787.40, -1227.20,   110.90},
{ "Whitewood Estates",             883.30,  1726.20,   -89.00,  1098.30,  2507.20,   110.90},
{ "Whitewood Estates",            1098.30,  1726.20,   -89.00,  1197.30,  2243.20,   110.90},
{ "Willowfield",                  1970.60, -2179.20,   -89.00,  2089.00, -1852.80,   110.90},
{ "Willowfield",                  2089.00, -2235.80,   -89.00,  2201.80, -1989.90,   110.90},
{ "Willowfield",                  2089.00, -1989.90,   -89.00,  2324.00, -1852.80,   110.90},
{ "Willowfield",                  2201.80, -2095.00,   -89.00,  2324.00, -1989.90,   110.90},
{ "Willowfield",                  2541.70, -1941.40,   -89.00,  2703.50, -1852.80,   110.90},
{ "Willowfield",                  2324.00, -2059.20,   -89.00,  2541.70, -1852.80,   110.90},
{ "Willowfield",                  2541.70, -2059.20,   -89.00,  2703.50, -1941.40,   110.90},
{ "Yellow Bell Station",          1377.40,  2600.40,   -21.90,  1492.40,  2687.30,    78.00},
// Main Zones
{ "Los Santos",                     44.60, -2892.90,  -242.90,  2997.00,  -768.00,   900.00},
{ "Las Venturas",                  869.40,   596.30,  -242.90,  2997.00,  2993.80,   900.00},
{ "Bone County",                  -480.50,   596.30,  -242.90,   869.40,  2993.80,   900.00},
{ "Tierra Robada",               -2997.40,  1659.60,  -242.90,  -480.50,  2993.80,   900.00},
{ "Tierra Robada",               -1213.90,   596.30,  -242.90,  -480.50,  1659.60,   900.00},
{ "San Fierro",                  -2997.40, -1115.50,  -242.90, -1213.90,  1659.60,   900.00},
{ "Red County",                  -1213.90,  -768.00,  -242.90,  2997.00,   596.30,   900.00},
{ "Flint County",                -1213.90, -2892.90,  -242.90,    44.60,  -768.00,   900.00},
{ "Whetstone",                   -2997.40, -2892.90,  -242.90, -1213.90, -1115.50,   900.00}
};

new VehicleNames[212][] = {
{"Landstalker"},{"Bravura"},{"Buffalo"},{"Linerunner"},{"Perrenial"},{"Sentinel"},{"Dumper"},
{"Firetruck"},{"Trashmaster"},{"Stretch"},{"Manana"},{"Infernus"},{"Voodoo"},{"Pony"},{"Mule"},
{"Cheetah"},{"Ambulance"},{"Leviathan"},{"Moonbeam"},{"Esperanto"},{"Taxi"},{"Washington"},
{"Bobcat"},{"Mr Whoopee"},{"BF Injection"},{"Hunter"},{"Premier"},{"Enforcer"},{"Securicar"},
{"Banshee"},{"Predator"},{"Bus"},{"Rhino"},{"Barracks"},{"Hotknife"},{"Trailer 1"},{"Previon"},
{"Coach"},{"Cabbie"},{"Stallion"},{"Rumpo"},{"RC Bandit"},{"Romero"},{"Packer"},{"Monster"},
{"Admiral"},{"Squalo"},{"Seasparrow"},{"Pizzaboy"},{"Tram"},{"Trailer 2"},{"Turismo"},
{"Speeder"},{"Reefer"},{"Tropic"},{"Flatbed"},{"Yankee"},{"Caddy"},{"Solair"},{"Berkley's RC Van"},
{"Skimmer"},{"PCJ-600"},{"Faggio"},{"Freeway"},{"RC Baron"},{"RC Raider"},{"Glendale"},{"Oceanic"},
{"Sanchez"},{"Sparrow"},{"Patriot"},{"Quad"},{"Coastguard"},{"Dinghy"},{"Hermes"},{"Sabre"},
{"Rustler"},{"ZR-350"},{"Walton"},{"Regina"},{"Comet"},{"BMX"},{"Burrito"},{"Camper"},{"Marquis"},
{"Baggage"},{"Dozer"},{"Maverick"},{"News Chopper"},{"Rancher"},{"FBI Rancher"},{"Virgo"},{"Greenwood"},
{"Jetmax"},{"Hotring"},{"Sandking"},{"Blista Compact"},{"Police Maverick"},{"Boxville"},{"Benson"},
{"Mesa"},{"RC Goblin"},{"Hotring Racer A"},{"Hotring Racer B"},{"Bloodring Banger"},{"Rancher"},
{"Super GT"},{"Elegant"},{"Journey"},{"Bike"},{"Mountain Bike"},{"Beagle"},{"Cropdust"},{"Stunt"},
{"Tanker"}, {"Roadtrain"},{"Nebula"},{"Majestic"},{"Buccaneer"},{"Shamal"},{"Hydra"},{"FCR-900"},
{"NRG-500"},{"HPV1000"},{"Cement Truck"},{"Tow Truck"},{"Fortune"},{"Cadrona"},{"FBI Truck"},
{"Willard"},{"Forklift"},{"Tractor"},{"Combine"},{"Feltzer"},{"Remington"},{"Slamvan"},
{"Blade"},{"Freight"},{"Streak"},{"Vortex"},{"Vincent"},{"Bullet"},{"Clover"},{"Sadler"},
{"Firetruck LA"},{"Hustler"},{"Intruder"},{"Primo"},{"Cargobob"},{"Tampa"},{"Sunrise"},{"Merit"},
{"Utility"},{"Nevada"},{"Yosemite"},{"Windsor"},{"Monster A"},{"Monster B"},{"Uranus"},{"Jester"},
{"Sultan"},{"Stratum"},{"Elegy"},{"Raindance"},{"RC Tiger"},{"Flash"},{"Tahoma"},{"Savanna"},
{"Bandito"},{"Freight Flat"},{"Streak Carriage"},{"Kart"},{"Mower"},{"Duneride"},{"Sweeper"},
{"Broadway"},{"Tornado"},{"AT-400"},{"DFT-30"},{"Huntley"},{"Stafford"},{"BF-400"},{"Newsvan"},
{"Tug"},{"Trailer 3"},{"Emperor"},{"Wayfarer"},{"Euros"},{"Hotdog"},{"Club"},{"Freight Carriage"},
{"Trailer 3"},{"Andromada"},{"Dodo"},{"RC Cam"},{"Launch"},{"Police Car (LSPD)"},{"Police Car (SFPD)"},
{"Police Car (LVPD)"},{"Police Ranger"},{"Picador"},{"S.W.A.T. Van"},{"Alpha"},{"Phoenix"},{"Glendale"},
{"Sadler"},{"Luggage Trailer A"},{"Luggage Trailer B"},{"Stair Trailer"},{"Boxville"},{"Farm Plow"},
{"Utility Trailer"}
};

new VehicleModel[MAX_PLAYERS];
new CFCTimer;
forward CheckForChange(playerid);
forward ShowGameTextForPlayer(playerid);


forward update_zones(playerid);

new zoneupdates[MAX_PLAYERS];
new player_zone[MAX_PLAYERS];
new zoneupdate;

new Text:txtClassSelHelper;
new Text:txtLosSantos;
new Text:txtSanFierro;
new Text:txtLasVenturas;




//----------------------------------------------------------

main()
{
    print("\n---------------------------------------");
    print("Running Julius95's server\n");
    print("---------------------------------------\n");
}

//----------------------------------------------------------


public OnPlayerConnect(playerid)
{
if(!IsPlayerConnected(playerid)) return 1;
	printf("Passed");
	SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
	printf("Passed");

		new joinMsg[128], name[MAX_PLAYER_NAME];
        GetPlayerName(playerid, name, sizeof(name));
        format(joinMsg, sizeof(joinMsg), "02[%d] 03*** %s has joined the server.", playerid, name);
        IRC_GroupSay(groupID, IRC_CHANNEL, joinMsg);
       

	TextDrawShowForPlayer(playerid,welcomeText);

    // class selection init vars
    gPlayerCitySelection[playerid] = -1;
    gPlayerHasCitySelected[playerid] = 0;
    gPlayerLastCitySelectionTick[playerid] = GetTickCount();

    //SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);

    /*
    Removes vending machines
    RemoveBuildingForPlayer(playerid, 1302, 0.0, 0.0, 0.0, 6000.0);
    RemoveBuildingForPlayer(playerid, 1209, 0.0, 0.0, 0.0, 6000.0);
    RemoveBuildingForPlayer(playerid, 955, 0.0, 0.0, 0.0, 6000.0);
    RemoveBuildingForPlayer(playerid, 1775, 0.0, 0.0, 0.0, 6000.0);
    RemoveBuildingForPlayer(playerid, 1776, 0.0, 0.0, 0.0, 6000.0);
    */

    /*
    new ClientVersion[32];
    GetPlayerVersion(playerid, ClientVersion, 32);
    printf("Player %d reports client version: %s", playerid, ClientVersion);*/

    return 1;
}

//----------------------------------------------------------

public OnPlayerDisconnect(playerid, reason)
{
SendDeathMessage(INVALID_PLAYER_ID, playerid, 201);
        new leaveMsg[128], name[MAX_PLAYER_NAME], reasonMsg[8];
        switch(reason)
        {
                case 0: reasonMsg = "Timeout";
                case 1: reasonMsg = "Leaving";
                case 2: reasonMsg = "Kicked";
        }
        GetPlayerName(playerid, name, sizeof(name));
        format(leaveMsg, sizeof(leaveMsg), "02[%d] 03*** %s has left the server. (%s)", playerid, name, reasonMsg);
        IRC_GroupSay(groupID, IRC_CHANNEL, leaveMsg);
       
        
        zoneupdates[playerid] = 0;
		player_zone[playerid] = -1;
}



//----------------------------------------------------------

public OnPlayerSpawn(playerid)
{
    if(IsPlayerNPC(playerid)) return 1;

    new randSpawn = 0;

	zoneupdates[playerid] = 1;
	player_zone[playerid] = -1;
	if(!zoneupdate) zoneupdate = SetTimer("update_zones",1000,4);
	SetPlayerInterior(playerid,0);
    TogglePlayerClock(playerid,0);
    
    if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid]) {
        randSpawn = random(sizeof(gRandomSpawns_LosSantos));
        SetPlayerPos(playerid,
         gRandomSpawns_LosSantos[randSpawn][0],
         gRandomSpawns_LosSantos[randSpawn][1],
         gRandomSpawns_LosSantos[randSpawn][2]);
        SetPlayerFacingAngle(playerid,gRandomSpawns_LosSantos[randSpawn][3]);
    }
    else if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid]) {
        randSpawn = random(sizeof(gRandomSpawns_SanFierro));
        SetPlayerPos(playerid,
         gRandomSpawns_SanFierro[randSpawn][0],
         gRandomSpawns_SanFierro[randSpawn][1],
         gRandomSpawns_SanFierro[randSpawn][2]);
        SetPlayerFacingAngle(playerid,gRandomSpawns_SanFierro[randSpawn][3]);
    }
    else if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid]) {
        randSpawn = random(sizeof(gRandomSpawns_LasVenturas));
        SetPlayerPos(playerid,
         gRandomSpawns_LasVenturas[randSpawn][0],
         gRandomSpawns_LasVenturas[randSpawn][1],
         gRandomSpawns_LasVenturas[randSpawn][2]);
        SetPlayerFacingAngle(playerid,gRandomSpawns_LasVenturas[randSpawn][3]);
    }

    //SetPlayerColor(playerid,COLOR_NORMAL_PLAYER);

    

    GivePlayerWeapon(playerid,WEAPON_COLT45,100);
    GivePlayerWeapon(playerid,WEAPON_MP5,100);
    TogglePlayerClock(playerid, 0);

    return 1;
}

//----------------------------------------------------------

public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);
    
new msg[128], killerName[MAX_PLAYER_NAME], reasonMsg[32], playerName[MAX_PLAYER_NAME];
        GetPlayerName(killerid, killerName, sizeof(killerName));
        GetPlayerName(playerid, playerName, sizeof(playerName));
        if (killerid != INVALID_PLAYER_ID)
        {
                switch (reason)
                {
                        case 0: reasonMsg = "Unarmed";
                        case 1: reasonMsg = "Brass Knuckles";
                        case 2: reasonMsg = "Golf Club";
                        case 3: reasonMsg = "Night Stick";
                        case 4: reasonMsg = "Knife";
                        case 5: reasonMsg = "Baseball Bat";
                        case 6: reasonMsg = "Shovel";
                        case 7: reasonMsg = "Pool Cue";
                        case 8: reasonMsg = "Katana";
                        case 9: reasonMsg = "Chainsaw";
                        case 10: reasonMsg = "Dildo";
                        case 11: reasonMsg = "Dildo";
                        case 12: reasonMsg = "Vibrator";
                        case 13: reasonMsg = "Vibrator";
                        case 14: reasonMsg = "Flowers";
                        case 15: reasonMsg = "Cane";
                        case 22: reasonMsg = "Pistol";
                        case 23: reasonMsg = "Silenced Pistol";
                        case 24: reasonMsg = "Desert Eagle";
                        case 25: reasonMsg = "Shotgun";
                        case 26: reasonMsg = "Sawn-off Shotgun";
                        case 27: reasonMsg = "Combat Shotgun";
                        case 28: reasonMsg = "MAC-10";
                        case 29: reasonMsg = "MP5";
                        case 30: reasonMsg = "AK-47";
                        case 31: reasonMsg = "M4";
                        case 32: reasonMsg = "TEC-9";
                        case 33: reasonMsg = "Country Rifle";
                        case 34: reasonMsg = "Sniper Rifle";
                        case 37: reasonMsg = "Fire";
                        case 38: reasonMsg = "Minigun";
                        case 41: reasonMsg = "Spray Can";
                        case 42: reasonMsg = "Fire Extinguisher";
                        case 49: reasonMsg = "Vehicle Collision";
                        case 50: reasonMsg = "Vehicle Collision";
                        case 51: reasonMsg = "Explosion";
                        default: reasonMsg = "Unknown";
                }
                format(msg, sizeof(msg), "04*** %s killed %s. (%s)", killerName, playerName, reasonMsg);
        }
        else
        {
                switch (reason)
                {
                        case 53: format(msg, sizeof(msg), "04*** %s died. (Drowned)", playerName);
                        case 54: format(msg, sizeof(msg), "04*** %s died. (Collision)", playerName);
                        default: format(msg, sizeof(msg), "04*** %s died.", playerName);
                }
        }
        IRC_GroupSay(groupID, IRC_CHANNEL, msg);
       

	new playercash;

    // if they ever return to class selection make them city
    // select again first
    gPlayerHasCitySelected[playerid] = 0;

    if(killerid == INVALID_PLAYER_ID) {
        ResetPlayerMoney(playerid);
    } else {
        playercash = GetPlayerMoney(playerid);
        if(playercash > 0)  {
            GivePlayerMoney(killerid, playercash);
            ResetPlayerMoney(playerid);
        }
    }
    return 1;
}

//----------------------------------------------------------

ClassSel_SetupCharSelection(playerid)
{
    if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
        SetPlayerInterior(playerid,11);
        SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
        SetPlayerFacingAngle(playerid,0.0);
        SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
        SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
    }
    else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
        SetPlayerInterior(playerid,3);
        SetPlayerPos(playerid,-2673.8381,1399.7424,918.3516);
        SetPlayerFacingAngle(playerid,181.0);
        SetPlayerCameraPos(playerid,-2673.2776,1394.3859,918.3516);
        SetPlayerCameraLookAt(playerid,-2673.8381,1399.7424,918.3516);
    }
    else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
        SetPlayerInterior(playerid,3);
        SetPlayerPos(playerid,349.0453,193.2271,1014.1797);
        SetPlayerFacingAngle(playerid,286.25);
        SetPlayerCameraPos(playerid,352.9164,194.5702,1014.1875);
        SetPlayerCameraLookAt(playerid,349.0453,193.2271,1014.1797);
    }

}

//----------------------------------------------------------
// Used to init textdraws of city names

ClassSel_InitCityNameText(Text:txtInit)
{
    TextDrawUseBox(txtInit, 0);
    TextDrawLetterSize(txtInit,1.25,3.0);
    TextDrawFont(txtInit, 0);
    TextDrawSetShadow(txtInit,0);
    TextDrawSetOutline(txtInit,1);
    TextDrawColor(txtInit,0xEEEEEEFF);
    TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
}

//----------------------------------------------------------

ClassSel_InitTextDraws()
{
    // Init our observer helper text display
    txtLosSantos = TextDrawCreate(10.0, 380.0, "Los Santos");
    ClassSel_InitCityNameText(txtLosSantos);
    txtSanFierro = TextDrawCreate(10.0, 380.0, "San Fierro");
    ClassSel_InitCityNameText(txtSanFierro);
    txtLasVenturas = TextDrawCreate(10.0, 380.0, "Las Venturas");
    ClassSel_InitCityNameText(txtLasVenturas);

    // Init our observer helper text display
    txtClassSelHelper = TextDrawCreate(10.0, 415.0,
       " Press ~b~~k~~GO_LEFT~ ~w~or ~b~~k~~GO_RIGHT~ ~w~to switch cities.~n~ Press ~r~~k~~PED_FIREWEAPON~ ~w~to select.");
    TextDrawUseBox(txtClassSelHelper, 1);
    TextDrawBoxColor(txtClassSelHelper,0x222222BB);
    TextDrawLetterSize(txtClassSelHelper,0.3,1.0);
    TextDrawTextSize(txtClassSelHelper,400.0,40.0);
    TextDrawFont(txtClassSelHelper, 2);
    TextDrawSetShadow(txtClassSelHelper,0);
    TextDrawSetOutline(txtClassSelHelper,1);
    TextDrawBackgroundColor(txtClassSelHelper,0x000000FF);
    TextDrawColor(txtClassSelHelper,0xFFFFFFFF);
}

//----------------------------------------------------------

ClassSel_SetupSelectedCity(playerid)
{
    if(gPlayerCitySelection[playerid] == -1) {
        gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
    }

    if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) {
        SetPlayerInterior(playerid,0);
        SetPlayerCameraPos(playerid,1630.6136,-2286.0298,110.0);
        SetPlayerCameraLookAt(playerid,1887.6034,-1682.1442,47.6167);

        TextDrawShowForPlayer(playerid,txtLosSantos);
        TextDrawHideForPlayer(playerid,txtSanFierro);
        TextDrawHideForPlayer(playerid,txtLasVenturas);
    }
    else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) {
        SetPlayerInterior(playerid,0);
        SetPlayerCameraPos(playerid,-1300.8754,68.0546,129.4823);
        SetPlayerCameraLookAt(playerid,-1817.9412,769.3878,132.6589);

        TextDrawHideForPlayer(playerid,txtLosSantos);
        TextDrawShowForPlayer(playerid,txtSanFierro);
        TextDrawHideForPlayer(playerid,txtLasVenturas);
    }
    else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) {
        SetPlayerInterior(playerid,0);
        SetPlayerCameraPos(playerid,1310.6155,1675.9182,110.7390);
        SetPlayerCameraLookAt(playerid,2285.2944,1919.3756,68.2275);

        TextDrawHideForPlayer(playerid,txtLosSantos);
        TextDrawHideForPlayer(playerid,txtSanFierro);
        TextDrawShowForPlayer(playerid,txtLasVenturas);
    }
}

//----------------------------------------------------------

ClassSel_SwitchToNextCity(playerid)
{
    gPlayerCitySelection[playerid]++;
    if(gPlayerCitySelection[playerid] > CITY_LAS_VENTURAS) {
        gPlayerCitySelection[playerid] = CITY_LOS_SANTOS;
    }
    PlayerPlaySound(playerid,1052,0.0,0.0,0.0);
    gPlayerLastCitySelectionTick[playerid] = GetTickCount();
    ClassSel_SetupSelectedCity(playerid);
}

//----------------------------------------------------------

ClassSel_SwitchToPreviousCity(playerid)
{
    gPlayerCitySelection[playerid]--;
    if(gPlayerCitySelection[playerid] < CITY_LOS_SANTOS) {
        gPlayerCitySelection[playerid] = CITY_LAS_VENTURAS;
    }
    PlayerPlaySound(playerid,1053,0.0,0.0,0.0);
    gPlayerLastCitySelectionTick[playerid] = GetTickCount();
    ClassSel_SetupSelectedCity(playerid);
}

//----------------------------------------------------------

ClassSel_HandleCitySelection(playerid)
{
    new Keys,ud,lr;
    GetPlayerKeys(playerid,Keys,ud,lr);

    if(gPlayerCitySelection[playerid] == -1) {
        ClassSel_SwitchToNextCity(playerid);
        return;
    }

    // only allow new selection every ~500 ms
    if( (GetTickCount() - gPlayerLastCitySelectionTick[playerid]) < 500 ) return;

    if(Keys & KEY_FIRE) {
        gPlayerHasCitySelected[playerid] = 1;
        TextDrawHideForPlayer(playerid,txtClassSelHelper);
        TextDrawHideForPlayer(playerid,txtLosSantos);
        TextDrawHideForPlayer(playerid,txtSanFierro);
        TextDrawHideForPlayer(playerid,txtLasVenturas);
        TogglePlayerSpectating(playerid,0);
        return;
    }

    if(lr > 0) {
       ClassSel_SwitchToNextCity(playerid);
    }
    else if(lr < 0) {
       ClassSel_SwitchToPreviousCity(playerid);
    }
}

//----------------------------------------------------------

public OnPlayerRequestClass(playerid, classid)
{
    if(IsPlayerNPC(playerid)) return 1;

    if(gPlayerHasCitySelected[playerid]) {
        ClassSel_SetupCharSelection(playerid);
        return 1;
    } else {
        if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) {
            TogglePlayerSpectating(playerid,1);
            TextDrawShowForPlayer(playerid, txtClassSelHelper);
            gPlayerCitySelection[playerid] = -1;
        }
    }
    zoneupdates[playerid] = 0;
	player_zone[playerid] = -1;

    return 0;
}

//----------------------------------------------------------

public OnGameModeInit()
{

        // Connect the first bot
        botIDs[0] = IRC_Connect(IRC_SERVER, IRC_PORT, BOT_1_NICKNAME, BOT_1_REALNAME, BOT_1_USERNAME);
        // Set the connect delay for the first bot to 20 seconds
        IRC_SetIntData(botIDs[0], E_IRC_CONNECT_DELAY, 20);
        // Connect the second bot
        botIDs[1] = IRC_Connect(IRC_SERVER, IRC_PORT, BOT_2_NICKNAME, BOT_2_REALNAME, BOT_2_USERNAME);
        // Set the connect delay for the second bot to 30 seconds
        IRC_SetIntData(botIDs[1], E_IRC_CONNECT_DELAY, 30);
        // Create a group (the bots will be added to it upon connect)
        groupID = IRC_CreateGroup();


#define USE_TEXTDRAW_SET 1
AddRadioStation("Radio Julius", "http://78.72.181.195:8000/listen.pls", 1);
AddRadioStation("Vinylgodis", "http://93.182.176.123/listen.pls", 1);
AddRadioStation("Radio Seven", "http://www.radioseven.se/128.pls", 1);
AddRadioStation("Dansbandskanalen", "http://www.guldkanalen.se/static/streamDBK/128MP3.pls", 1);
AddRadioStation("Din Gata", "http://sverigesradio.se/topsy/direkt/2576-hi-mp3.pls", 1);
AddRadioStation("Big R Radio", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=73131", 1);
AddRadioStation("Radio AF", "http://webradio.af.lu.se:8000/listen.pls", 1);
AddRadioStation("Reggae141.com", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=85742", 1);
AddRadioStation("Hit Radio N1", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=1277314", 1);
AddRadioStation("The 1920s Radio Network", "http://64.5.130.43/listen.pls", 1);
AddRadioStation("LAs HOT Country", "http://46.21.151.98:8000/listen.pls", 1);
AddRadioStation("Fade FM", "http://37.59.61.51/listen.pls", 1);
AddRadioStation("Grand Theft Auto San Andreas", "http://listen.radionomy.com/grand-theft-auto-san-andreas.m3u", 1);
AddRadioStation("Radio Off", "", 1);




    SetGameModeText("Free Mode, stunts, races etc.");
    ShowPlayerMarkers(PLAYER_MARKERS_MODE_GLOBAL);
    ShowNameTags(1);
    SetNameTagDrawDistance(40.0);
    EnableStuntBonusForAll(0);
    DisableInteriorEnterExits();
    SetWeather(2);
    SetWorldTime(11);

    //UsePlayerPedAnims();
    //ManualVehicleEngineAndLights();
    //LimitGlobalChatRadius(300.0);

    ClassSel_InitTextDraws();

    // Player Class
    AddPlayerClass(281,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(282,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(283,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(284,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(285,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(286,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(287,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(288,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(289,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(265,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(266,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(267,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(268,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(269,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(270,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(1,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(2,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(3,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(4,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(5,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(6,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(8,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(42,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(65,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(74,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(86,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(119,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(149,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(208,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(273,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(289,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);

    AddPlayerClass(47,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(48,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(49,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(50,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(51,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(52,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(53,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(54,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(55,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(56,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(57,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(58,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(68,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(69,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(70,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(71,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(72,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(73,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(75,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(76,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(78,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(79,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(80,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(81,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(82,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(83,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(84,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(85,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(87,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(88,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(89,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(91,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(92,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(93,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(95,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(96,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(97,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(98,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(99,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1);
    AddPlayerClass(281,2385.7600,-1281.1403,24.4851,115.8818,0,0,0,0,0,0); //

    //AddVehicles
    AddStaticVehicle(600,2461.7532,-1656.6047,13.0208,90.0551,43,8); // car0
    AddStaticVehicle(439,-1766.9050,613.7802,28.0963,90.1726,79,78); // car1
    AddStaticVehicle(549,-1997.1497,701.7988,45.0459,0.2772,14,14); // car2
    AddStaticVehicle(480,-1997.1570,696.1385,45.1418,0.9108,127,8); // car3
    AddStaticVehicle(555,-1997.1226,690.4085,45.0497,0.4574,58,1); // car4
    AddStaticVehicle(533,-1997.1150,684.5101,45.0449,0.7273,7,1); // car5
    AddStaticVehicle(518,-1997.1124,678.0267,44.9521,1.0255,8,0); // car6
    AddStaticVehicle(542,-1997.1284,671.6221,44.1768,0.8896,45,92); // car7
    AddStaticVehicle(419,-1997.0178,664.9196,42.9615,0.3890,1,76); // car8
    AddStaticVehicle(502,-1944.3131,585.5934,35.0131,0.5602,36,88); // car9
    AddStaticVehicle(451,-1947.4026,585.6334,34.7825,0.5844,1,36); // car10
    AddStaticVehicle(506,-1950.4606,585.7036,34.8199,1.4687,126,52); // car 11
    AddStaticVehicle(477,-1938.2062,585.5255,34.8710,359.9006,65,1); // car12
    AddStaticVehicle(602,-1953.4102,585.8502,34.8846,359.4462,94,1); // car 13
    AddStaticVehicle(496,-1956.5023,585.9746,34.7861,0.1029,2,6); // car14
    AddStaticVehicle(402,-1959.3685,585.6564,34.9014,359.6677,86,110); // car15
    AddStaticVehicle(541,-1935.3408,585.7760,34.7403,0.0132,126,6); // car16
    AddStaticVehicle(415,-1932.3533,585.5296,34.8907,0.0465,119,1); // car17
    AddStaticVehicle(587,-1929.2599,586.0511,34.8377,359.7012,0,1); // car18
    AddStaticVehicle(504,-1926.2498,585.7791,34.9114,359.2645,45,29); // car19
    AddStaticVehicle(598,-1616.6740,651.2231,6.9347,0.8125,0,1); // car20
    AddStaticVehicle(601,-1628.8429,651.0104,6.9463,359.6806,1,1); // car21
    AddStaticVehicle(427,-1605.2008,651.7350,7.3193,359.6695,0,1); // car22
    AddStaticVehicle(596,-1599.6945,651.1352,6.9087,359.4665,0,1); // car23
    AddStaticVehicle(514,-1658.1969,449.0964,7.7671,213.6456,25,1); // car24
    AddStaticVehicle(432,-1450.3162,458.0264,7.1965,358.0674,43,0); // car25
    AddStaticVehicle(596,-1587.6300,651.6120,6.9087,358.3333,0,1); // car26
    AddStaticVehicle(596,-1581.8977,651.7803,6.9078,359.2933,0,1); // car27
    AddStaticVehicle(598,-1594.4235,673.0942,6.9332,179.1243,0,1); // car28
    AddStaticVehicle(598,-1600.0331,673.0317,6.9328,179.5085,0,1); // car29
    AddStaticVehicle(490,-1574.2876,714.2642,-5.1145,89.0129,0,0); // car30
    AddStaticVehicle(490,-1574.2661,710.3427,-5.1147,89.1375,0,0); // car31
    AddStaticVehicle(490,-1574.1755,706.1642,-5.1146,90.7530,0,0); // car32
    AddStaticVehicle(596,-1573.6791,722.1187,-5.5211,90.6117,0,1); // car33
    AddStaticVehicle(596,-1573.8575,730.6639,-5.5217,89.7573,0,1); // car34
    AddStaticVehicle(596,-1573.5385,734.4633,-5.5220,88.8792,0,1); // car35
    AddStaticVehicle(596,-1573.4248,739.0908,-5.5221,90.4690,0,1); // car36
    AddStaticVehicle(596,-1573.2230,742.5228,-5.5208,89.2028,0,1); // car37
    AddStaticVehicle(598,-1600.3463,749.7092,-5.4954,180.3100,0,1); // car38
    AddStaticVehicle(598,-1604.2474,749.6938,-5.4956,179.8932,0,1); // car39
    AddStaticVehicle(598,-1608.4534,749.6821,-5.4960,180.4397,0,1); // car40
    AddStaticVehicle(598,-1612.7340,749.6252,-5.4962,181.2642,0,1); // car41
    AddStaticVehicle(598,-1616.6920,749.7081,-5.4970,179.9954,0,1); // car41
    AddStaticVehicle(598,-1592.1154,749.6444,-5.4973,179.6934,0,1); // car43
    AddStaticVehicle(598,-1587.9971,749.8513,-5.4958,178.9971,0,1); // car44
    AddStaticVehicle(598,-1583.9622,749.8259,-5.4954,179.3184,0,1); // car45
    AddStaticVehicle(598,-1579.9960,749.7203,-5.4958,179.3284,0,1); // car46
    AddStaticVehicle(597,-1622.7053,649.7056,-5.4738,88.5598,0,1); // car47
    AddStaticVehicle(596,-1639.5427,674.1429,-5.5225,269.2240,0,1); // car48
    AddStaticVehicle(596,-1639.6805,682.0773,-5.5206,270.4482,0,1); // car49
    AddStaticVehicle(597,-1639.7576,686.4487,-5.4733,271.0222,0,1); // car50
    AddStaticVehicle(597,-1639.8285,669.9292,-5.4740,269.2921,0,1); // car51
    AddStaticVehicle(596,-1639.7863,666.1780,-5.5219,269.8799,0,1); // car52
    AddStaticVehicle(597,-1639.9882,661.8076,-5.4729,269.4359,0,1); // car53
    AddStaticVehicle(596,-1639.7858,657.7263,-5.5219,270.1051,0,1); // car54
    AddStaticVehicle(597,-1639.8157,653.7025,-5.4737,268.7205,0,1); // car55
    AddStaticVehicle(596,-1639.5710,649.8344,-5.5219,269.4172,0,1); // car56
    AddStaticVehicle(598,-1595.6241,694.0532,-5.4961,180.6208,0,1); // car57
    AddStaticVehicle(598,-1600.1334,693.9891,-5.4959,179.8698,0,1); // car58
    AddStaticVehicle(598,-1604.2416,693.9874,-5.4968,179.3441,0,1); // car59
    AddStaticVehicle(598,-1608.5326,694.0151,-5.4969,179.8332,0,1); // car60
    AddStaticVehicle(598,-1612.3291,694.0125,-5.4954,180.4067,0,1); // car61
    AddStaticVehicle(598,-1616.5938,694.0545,-5.4963,180.0018,0,1); // car62
    AddStaticVehicle(598,-1620.7970,694.0438,-5.4966,179.2025,0,1); // car63
    AddStaticVehicle(598,-1624.8109,693.9700,-5.4957,177.9268,0,1); // car64
    AddStaticVehicle(598,-1628.9708,693.9097,-5.4965,179.0654,0,1); // car65
    AddStaticVehicle(598,-1632.7097,693.9340,-5.4964,178.4928,0,1); // car66
    AddStaticVehicle(427,-1596.4033,678.2721,-5.1103,1.2281,0,1); // car67
    AddStaticVehicle(427,-1611.6322,733.2242,-5.1102,358.4313,0,1); // car68
    AddStaticVehicle(601,-1603.5253,733.0418,-5.4757,0.2952,1,1); // car69
    AddStaticVehicle(601,-1607.4572,732.7892,-5.4819,359.0168,1,1); // car70
    AddStaticVehicle(601,-1590.8903,718.8868,-5.4834,271.2448,1,1); // car71
    AddStaticVehicle(601,-1590.8268,714.7463,-5.4834,268.9313,1,1); // car72
    AddStaticVehicle(601,-1604.3324,676.1072,-5.4834,1.0470,1,1); // car73
    AddStaticVehicle(601,-1608.3807,675.8729,-5.4834,0.8872,1,1); // car74
    AddStaticVehicle(601,-1640.4934,690.0363,-5.4834,267.7431,1,1); // car75
    AddStaticVehicle(601,-1636.2931,694.5077,-5.4834,186.3782,1,1); // car76
    AddStaticVehicle(601,-1622.6899,657.6486,-5.4834,89.5577,1,1); // car77
    AddStaticVehicle(601,-1622.5437,661.3481,-5.4834,88.2688,1,1); // car78
    AddStaticVehicle(601,-1571.8530,745.8903,-5.4834,89.7020,1,1); // car79
    AddStaticVehicle(601,-1576.2029,749.3005,-5.4835,173.8618,1,1); // car80
    AddStaticVehicle(497,-1632.6996,671.5107,7.3643,268.2399,0,1); // car81
    AddStaticVehicle(449,-1857.2998,603.2500,35.4973,270.0000,1,74); // tram82
    AddStaticVehicle(411,1911.1893,-2279.0786,13.4614,179.2485,123,1); // lol1
	AddStaticVehicle(445,1907.7418,-2279.5120,13.6094,179.8117,35,35); // lol2
	AddStaticVehicle(504,1904.7721,-2279.1318,13.5269,179.3161,57,38); // lol3
	AddStaticVehicle(401,1901.4082,-2279.2578,13.5139,180.0869,47,47); // lol4
	AddStaticVehicle(518,1898.2179,-2279.1873,13.4053,180.2076,56,29); // lol5
	AddStaticVehicle(542,1894.9795,-2279.2842,13.4777,180.0437,32,92); // lol6
	AddStaticVehicle(507,1891.8937,-2279.1143,13.5598,179.7240,42,42); // lol8
	AddStaticVehicle(562,1888.6708,-2279.1792,13.3937,179.5717,17,1); // lol7
	AddStaticVehicle(558,1885.4453,-2279.1008,13.3649,179.9285,116,1); // lol9
	AddStaticVehicle(585,1882.3105,-2278.6233,13.3206,179.4485,42,42); // lol10
	AddStaticVehicle(419,1878.8553,-2279.2100,13.5319,179.2855,47,76); // lol11
	AddStaticVehicle(526,1875.7548,-2279.3730,13.5010,179.3397,9,39); // lol12
	AddStaticVehicle(480,1911.1173,-2287.7908,13.5075,359.5498,46,46); // lol13
	AddStaticVehicle(587,1907.8986,-2288.0244,13.4612,0.5045,101,1); // 14
	AddStaticVehicle(434,1904.6763,-2288.2078,13.6972,359.9930,12,12); // 15
	AddStaticVehicle(502,1901.3320,-2288.2546,13.6262,359.5880,79,62); // 17
	AddStaticVehicle(603,1898.3413,-2288.2791,13.5726,359.3993,69,1); // 19
	AddStaticVehicle(506,1895.0903,-2288.1157,13.4389,359.9139,6,6); // lol20
	AddStaticVehicle(451,1891.8843,-2288.2788,13.4408,359.4118,16,16); // lol21
	AddStaticVehicle(529,1888.6558,-2288.2527,13.3676,359.2263,42,42); // lol22
	AddStaticVehicle(421,1885.5139,-2288.0940,13.6169,359.4807,30,1); // lol23
	AddStaticVehicle(540,1882.1724,-2288.2661,13.5956,359.5057,7,7); // lol24
	AddStaticVehicle(550,1878.9658,-2288.3044,13.5483,0.0715,11,11); // lol25
	AddStaticVehicle(560,1875.8556,-2288.1931,13.4395,359.4767,33,0); // lol27
	AddStaticVehicle(580,1923.8180,-2269.1038,13.5305,359.8271,81,81); // lol28
	AddStaticVehicle(458,1920.7224,-2269.0457,13.6129,359.4567,101,1); // lol29
	AddStaticVehicle(405,1917.4686,-2268.8232,13.6094,358.7858,24,1); // lol30
	AddStaticVehicle(442,1914.3392,-2269.3115,13.5632,359.4727,36,0); // lol31
	AddStaticVehicle(479,1911.1680,-2269.1724,13.5300,359.4114,49,23); // lol33
	AddStaticVehicle(547,1908.0110,-2269.2039,13.4693,359.9124,10,1); // lol34
	AddStaticVehicle(426,1904.7115,-2268.9585,13.4777,359.8541,62,62); // lol35
	AddStaticVehicle(420,1901.5040,-2269.0149,13.5146,359.4012,6,1); // lol36
	AddStaticVehicle(597,1898.0305,-2268.9377,13.5027,358.3706,0,1); // lol37
	AddStaticVehicle(596,1895.1246,-2268.8660,13.4557,359.2520,0,1); // lol38
	AddStaticVehicle(598,1891.8759,-2269.0061,13.4802,359.5250,0,1); // lol39
	AddStaticVehicle(467,1888.6821,-2269.2686,13.4743,359.0755,22,1); // lol40
	AddStaticVehicle(516,1885.5570,-2269.2581,13.5683,359.8004,116,1); // lol41
	AddStaticVehicle(551,1882.3090,-2269.2805,13.5350,359.5113,91,1); // lol42
	AddStaticVehicle(546,1878.9924,-2268.9438,13.4587,359.6487,3,87); // lol43
	AddStaticVehicle(492,1875.7860,-2269.0564,13.5162,359.0539,77,26); // lol44
	AddStaticVehicle(466,1872.6475,-2269.1812,13.4762,358.6961,16,76); // lol45
	AddStaticVehicle(585,1869.4386,-2269.1697,13.3187,359.1321,62,62); // lol46
	AddStaticVehicle(602,1866.0898,-2268.8457,13.5410,359.1708,34,1); // lol47
	AddStaticVehicle(402,1862.9867,-2269.0178,13.5661,359.9218,30,30); // lol48
	AddStaticVehicle(429,1859.9293,-2269.0386,13.4141,0.0943,12,12); // lol49
	AddStaticVehicle(541,1856.7625,-2274.5742,13.3593,89.5916,51,1); // lol50
	AddStaticVehicle(415,1856.9264,-2277.6211,13.5063,88.5767,20,1); // lol51
	AddStaticVehicle(431,1862.0280,-2304.1050,13.6462,270.0306,59,83); // lol52
	AddStaticVehicle(437,1873.7074,-2304.0161,13.6802,269.9991,95,16); // lol53
	AddStaticVehicle(554,1856.9506,-2280.5718,13.8178,89.4800,65,32); // lol54
	AddStaticVehicle(478,1856.6708,-2283.6772,13.7288,89.6596,66,1); // lol55
	AddStaticVehicle(495,1856.7122,-2286.5811,14.0823,89.3343,119,122); // lol56
	AddStaticVehicle(422,1856.6270,-2289.3911,13.7232,89.2235,97,25); // lol57
	AddStaticVehicle(543,1856.7506,-2292.5146,13.5551,89.6668,43,8); // lol58
	AddStaticVehicle(489,1859.7606,-2298.5264,13.8834,179.9259,14,123); // lol59
	AddStaticVehicle(599,1863.0787,-2298.5251,13.9349,178.6234,0,1); // lol60
	AddStaticVehicle(490,1866.3394,-2298.1189,13.8696,179.5494,0,0); // lol61
	AddStaticVehicle(601,1869.4817,-2297.9785,13.5007,179.2839,1,1); // lol62
	AddStaticVehicle(528,1872.7810,-2299.0559,13.7821,179.4620,0,0); // lol63
	AddStaticVehicle(427,1875.7861,-2298.1174,13.8663,179.8300,0,1); // lol64
	AddStaticVehicle(433,1879.0906,-2296.8906,14.1710,179.9041,43,0); // lol67
	AddStaticVehicle(579,1882.2793,-2298.7673,13.6687,179.2489,11,11); // lol68
	AddStaticVehicle(400,1885.5701,-2299.2480,13.8267,179.4204,4,1); // lol69
	AddStaticVehicle(500,1888.7135,-2298.7749,13.8403,179.5145,28,119); // lol70
	AddStaticVehicle(444,1891.5771,-2298.2197,14.1174,179.4028,32,36); // lol71
	AddStaticVehicle(470,1895.1737,-2299.0354,13.7274,179.7490,43,0); // lol73
	AddStaticVehicle(600,1898.1533,-2298.6555,13.4504,179.4988,32,8); // lol74
	AddStaticVehicle(536,1901.3976,-2298.9766,13.4717,179.8836,12,1); // lol75
	AddStaticVehicle(534,1904.6555,-2298.5073,13.4587,179.1104,42,42); // lol76
	AddStaticVehicle(575,1907.9175,-2299.1719,13.3361,178.8462,51,96); // lol77
	AddStaticVehicle(567,1910.9651,-2298.3127,13.6028,179.3204,102,114); // lol78
	AddStaticVehicle(561,1914.3330,-2298.5879,13.5480,179.2602,25,78); // lol79
	AddStaticVehicle(559,1917.4224,-2298.8337,13.3907,179.8719,36,8); // lol80
	AddStaticVehicle(566,1920.6310,-2298.8464,13.5141,179.8326,52,8); // lol81
	AddStaticVehicle(576,1923.8184,-2298.8926,13.3433,179.0500,76,8); // lol82








	//Objects
	CreateObject(13592, 1966.19921875, -2460.3994140625, 21.60000038147, 0, 0, 0);
	CreateObject(13592, 1965.4000244141, -2466.6000976563, 21.200000762939, 0, 0, 0);
	CreateObject(634, 1892.5, -2414.1999511719, 12.5, 0, 0, 0);
	CreateObject(655, 1902.4000244141, -2409, 12.5, 0, 0, 0);
	CreateObject(671, 1914.5999755859, -2414.6999511719, 12.5, 0, 0, 0);
	CreateObject(680, 1910.6999511719, -2414.1000976563, 12.5, 0, 0, 0);
	CreateObject(687, 1911.5, -2414.6000976563, 12.5, 0, 0, 0);
	CreateObject(710, 1916.9000244141, -2417.3000488281, 28.10000038147, 0, 0, 0);
	CreateObject(777, 1876.0999755859, -2415, 12.60000038147, 0, 0, 0);
	CreateObject(18270, 1836.0999755859, -2403.3999023438, 19.39999961853, 0, 0, 0);
	CreateObject(1634, 1986.5999755859, -2344.1000976563, 17.60000038147, 0, 0, 300);
	CreateObject(1634, 1979.8000488281, -2348.1000976563, 13.800000190735, 0, 0, 300);
	CreateObject(1634, 2025.3000488281, -2332.6000976563, 24.5, 0, 0, 180);
	CreateObject(18478, 1856.0999755859, -2516, 40.299999237061, 0, 30, 0);
	CreateObject(18478, 1725.0999755859, -2515.8000488281, 75.400001525879, 0, 0, 0);
	CreateObject(13592, 1982.0999755859, -2528.3000488281, 22.60000038147, 0, 0, 0);
	CreateObject(13590, 2034.1999511719, -2526.1999511719, 13.5, 0, 0, 270);
	CreateObject(5754, 1586.0999755859, -2515.5, 82.800003051758, 0, 0, 90);
	CreateObject(6449, 1458.0999755859, -2499.8000488281, 96.199996948242, 0, 0, 90);
	CreateObject(13592, 1966.1999511719, -2460.3999023438, 21.60000038147, 0, 0, 0);
	CreateObject(13592, 1965.4000244141, -2466.6000976563, 21.200000762939, 0, 0, 0);
	CreateObject(634, 1892.5, -2414.1999511719, 12.5, 0, 0, 0);
	CreateObject(655, 1902.4000244141, -2409, 12.5, 0, 0, 0);
	CreateObject(671, 1914.5999755859, -2414.6999511719, 12.5, 0, 0, 0);
	CreateObject(680, 1910.6999511719, -2414.1000976563, 12.5, 0, 0, 0);
	CreateObject(687, 1911.5, -2414.6000976563, 12.5, 0, 0, 0);
	CreateObject(710, 1916.9000244141, -2417.3000488281, 28.10000038147, 0, 0, 0);
	CreateObject(777, 1876.0999755859, -2415, 12.60000038147, 0, 0, 0);
	CreateObject(18270, 1836.0999755859, -2403.3999023438, 19.39999961853, 0, 0, 0);
	CreateObject(1634, 1986.5999755859, -2344.1000976563, 17.60000038147, 0, 0, 300);
	CreateObject(1634, 1979.8000488281, -2348.1000976563, 13.800000190735, 0, 0, 300);
	CreateObject(1634, 2025.3000488281, -2332.6000976563, 24.5, 0, 0, 180);
	CreateObject(18478, 1856.0999755859, -2516, 40.299999237061, 0, 30, 0);
	CreateObject(18478, 1725.099609375, -2515.7998046875, 75.400001525879, 0, 0, 0);
	CreateObject(13592, 1982.0999755859, -2528.3000488281, 22.60000038147, 0, 0, 0);
	CreateObject(13590, 2034.1999511719, -2526.1999511719, 13.5, 0, 0, 270);
	CreateObject(5754, 1586.0999755859, -2515.5, 82.800003051758, 0, 0, 90);
	CreateObject(6449, 1458.0999755859, -2499.8000488281, 96.199996948242, 0, 0, 90);
	CreateObject(5314, 1597, -1196, 343.10000610352, 0, 0, 90);
	CreateObject(615, 1566.5999755859, -1305.5999755859, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1582.4000244141, -1304.6999511719, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1566.1999511719, -1286.6999511719, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1582.1999511719, -1283.9000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1566.3000488281, -1273.6999511719, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1566.1999511719, -1244, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1566, -1262.4000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1582, -1274.5, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1565.6999511719, -1259.3000488281, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1582.6999511719, -1244.4000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1567.5999755859, -1224.8000488281, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1583.0999755859, -1224.9000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1568.5999755859, -1211.0999755859, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1583, -1210.5999755859, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1567.3000488281, -1195.9000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1581.8000488281, -1194.9000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1565.6999511719, -1182.8000488281, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1582.8000488281, -1182.4000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1568.4000244141, -1168.4000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1582.9000244141, -1168.1999511719, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1569.1999511719, -1153.4000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1584.5, -1158.4000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1573.9000244141, -1143.5999755859, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1588.3000488281, -1149.9000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1577.4000244141, -1133.0999755859, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1591, -1139.3000488281, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1582.9000244141, -1123.5, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1597, -1131.4000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1590.4000244141, -1115.0999755859, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1602.6999511719, -1122.3000488281, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1597.1999511719, -1105, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1609, -1115.4000244141, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1606.5999755859, -1095.6999511719, 343.20001220703, 0, 0, 0);
	CreateObject(615, 1615.9000244141, -1106.5999755859, 343.20001220703, 0, 0, 0);
	CreateObject(13592, 1966.1999511719, -2460.3999023438, 21.60000038147, 0, 0, 0);
	CreateObject(13592, 1965.4000244141, -2466.6000976563, 21.200000762939, 0, 0, 0);
	CreateObject(634, 1892.5, -2414.1999511719, 12.5, 0, 0, 0);
	CreateObject(655, 1902.4000244141, -2409, 12.5, 0, 0, 0);
	CreateObject(671, 1914.5999755859, -2414.6999511719, 12.5, 0, 0, 0);
	CreateObject(680, 1910.6999511719, -2414.1000976563, 12.5, 0, 0, 0);
	CreateObject(687, 1911.5, -2414.6000976563, 12.5, 0, 0, 0);
	CreateObject(710, 1916.9000244141, -2417.3000488281, 28.10000038147, 0, 0, 0);
	CreateObject(777, 1876.0999755859, -2415, 12.60000038147, 0, 0, 0);
	CreateObject(18270, 1836.0999755859, -2403.3999023438, 19.39999961853, 0, 0, 0);
	CreateObject(1634, 1986.5999755859, -2344.1000976563, 17.60000038147, 0, 0, 300);
	CreateObject(1634, 1979.8000488281, -2348.1000976563, 13.800000190735, 0, 0, 300);
	CreateObject(1634, 2025.3000488281, -2332.6000976563, 24.5, 0, 0, 180);
	CreateObject(18478, 1856.099609375, -2516, 40.299999237061, 0, 29.998168945313, 0);
	CreateObject(18478, 1725.0999755859, -2515.8000488281, 75.400001525879, 0, 0, 0);
	CreateObject(13592, 1982.0999755859, -2528.3000488281, 22.60000038147, 0, 0, 0);
	CreateObject(13590, 2034.1999511719, -2526.1999511719, 13.5, 0, 0, 270);
	CreateObject(5754, 1586.0999755859, -2515.5, 82.800003051758, 0, 0, 90);
	CreateObject(6449, 1458.0999755859, -2499.8000488281, 96.199996948242, 0, 0, 90);
	CreateObject(17300, -1387.5999755859, -276.79998779297, 46.200000762939, 351.98559570313, 0, 315);
	CreateObject(17300, -1548, -463.29998779297, 83.800003051758, 1, 0, 315);
	CreateObject(17300, -1699.8000488281, -639.90002441406, 113, 355, 0, 315);
	CreateObject(18483, -1803.5999755859, -760, 130.89999389648, 0, 0, 48);
	CreateObject(1634, -1297.5, -176, 14.39999961853, 0, 0, 315);
	CreateObject(1634, -1300.5, -173.10000610352, 14.39999961853, 0, 0, 315);
	CreateObject(5112, -970.40002441406, 514.90002441406, 9.6999998092651, 0, 0, 40);
	CreateObject(5112, -858.5, 617.29998779297, 10, 0, 0, 45);
	CreateObject(1632, -786.79998779297, 695.20001220703, 17.39999961853, 0, 0, 135);
	CreateObject(4710, -1178, 424.5, 13.39999961853, 0, 0, 160);
	CreateObject(4148, -1283.3000488281, 470.70001220703, 6.3000001907349, 353, 0, 70);
	CreateObject(8040, 1648.1999511719, -1064.6999511719, 343.89999389648, 0, 0, 225);
	CreateObject(4150, 1576.6999511719, -1368.4000244141, 343.10000610352, 0, 0, 0);
	CreateObject(4150, 1576.6999511719, -1484.4000244141, 322.60000610352, 20, 0, 0);
	CreateObject(4150, 1576.9000244141, -1572.8000488281, 290.5, 20, 0, 0);
	CreateObject(4150, 1577.0999755859, -1681.5999755859, 245.39999389648, 25, 0, 0);
	CreateObject(4150, 1577.0999755859, -1787.8000488281, 194.73950195313, 26, 0, 0);
	CreateObject(13641, 1578.5, -1845.8000488281, 169.80000305176, 0, 0, 270);
	CreateObject(13641, 1572.0999755859, -1845.9000244141, 169.80000305176, 0, 0, 270);
	CreateObject(13641, 1478.5999755859, -2567.3999023438, 14.5, 0, 0, 0);
	CreateObject(13641, 1477.5999755859, -2552.5, 12.5, 0, 0, 0);
	CreateObject(13640, 1511.3000488281, -2533.6999511719, 13.60000038147, 0, 0, 0);
	CreateObject(13592, 1543.9000244141, -2529.5, 22.700000762939, 0, 0, 5);
	CreateObject(1634, 1775.5999755859, -2569.6000976563, 13.800000190735, 0, 0, 0);
	CreateObject(1634, 1774.5, -2518.8999023438, 13.800000190735, 0, 0, 180);
	CreateObject(3567, 1777, -2455.8000488281, 13.39999961853, 0, 0, 0);
	CreateObject(12932, 1802.5999755859, -2436.6999511719, 15.89999961853, 0, 0, 0);
	CreateObject(7515, 1727.8000488281, -2459.1999511719, 18.5, 0, 0, 0);
	CreateObject(3625, 1557.9000244141, -2460.8000488281, 15.39999961853, 0, 0, 0);
	CreateObject(8302, 1593.5, -2445.3000488281, 14.60000038147, 0, 0, 0);
	CreateObject(8040, 1893.0999755859, -2283.8999023438, 13.5, 0, 0, 0);
	CreateObject(13666, 1929.6999511719, -2343.6999511719, 18.299999237061, 0, 0, 0);
	CreateObject(9076, 1889.4000244141, -2675, 43.400001525879, 0, 0, 270);
	CreateObject(16778, 1896.9000244141, -2449.3999023438, 12.5, 0, 0, 0);
	CreateObject(16776, 1936.5, -2428.8000488281, 12.5, 0, 0, 0);
	CreateObject(13562, 1810.8000488281, -2646.3999023438, 24.10000038147, 0, 0, 0);
	CreateObject(13667, 1841.5, -2641.6999511719, 38.599998474121, 0, 0, 95);
	CreateObject(14608, 1823.5, -2641.3000488281, 27.60000038147, 0, 0, 325);
	CreateObject(16776, 1754.3000488281, -2647.3999023438, 25.39999961853, 0, 0, 180);
	CreateObject(1634, 1970.5999755859, -2428.3999023438, 13.800000190735, 0, 0, 90);
	CreateObject(18483, 2476.5, -1659.0999755859, 12, 0, 329.13635253906, 0);
	CreateObject(18483, 2541.6999511719, -1659, 31, 0, 358.17993164063, 0);
	CreateObject(18483, 2575.1999511719, -1659, 32.099998474121, 0, 330, 0);
	CreateObject(18483, 2605.3999023438, -1659, 49.5, 0, 330, 0);
	CreateObject(18483, 2624.8000488281, -1659.0999755859, 60.700000762939, 0, 330, 0);
	CreateObject(18483, 2655.1000976563, -1659.4000244141, 78.099998474121, 0, 330, 0);
	CreateObject(17300, 2809.8994140625, -1658.69921875, 102.80000305176, 3.8397216796875, 0, 85.995483398438);
	CreateObject(13139, 172.80000305176, 109.5, 492.70001220703, 0, 0, 0);
	CreateObject(17062, 3026.1000976563, -1656.5999755859, 163.5, 331.5, 0, 87);
	CreateObject(8420, 3161.1999511719, -1644.5999755859, 217.69999694824, 346, 0, 19);
	CreateObject(13641, 2369.3999023438, -1658.8000488281, 12.39999961853, 0, 0, 178);

    // SPECIAL
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/trains.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/pilots.txt");

    // LAS VENTURAS
     total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_law.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_airport.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_gen.txt");

    // SAN FIERRO
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_law.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_airport.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_gen.txt");

    // LOS SANTOS
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_law.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_airport.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt");

    // OTHER AREAS
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/whetstone.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/bone.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/flint.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/tierra.txt");
    total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/red_county.txt");


    printf("Total vehicles from files: %d",total_vehicles_from_files);

    
    
    welcomeText = TextDrawCreate(240.0,580.0,"Welcome to Julius95's server!");
    return 0;
}



//----------------------------------------------------------


public OnPlayerUpdate(playerid)
{
    if(!IsPlayerConnected(playerid)) return 0;
    if(IsPlayerNPC(playerid)) return 1;

    // changing cities by inputs
    if( !gPlayerHasCitySelected[playerid] &&
        GetPlayerState(playerid) == PLAYER_STATE_SPECTATING ) {
        ClassSel_HandleCitySelection(playerid);
        return 1;
    }

    // No weapons in interiors
    if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) {
        SetPlayerArmedWeapon(playerid,0); // fists
        return 0; // no syncing until they change their weapon
    }

    // Don't allow minigun
    if(GetPlayerWeapon(playerid) == WEAPON_MINIGUN) {
        Kick(playerid);
        return 0;
    }

    /* No jetpacks allowed
    if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) {
        Kick(playerid);
        return 0;
    }*/

    /* For testing animations
    new msg[128+1];
    new animlib[32+1];
    new animname[32+1];

    thisanimid = GetPlayerAnimationIndex(playerid);
    if(lastanimid != thisanimid)
    {
        GetAnimationName(thisanimid,animlib,32,animname,32);
        format(msg, 128, "anim(%d,%d): %s %s", lastanimid, thisanimid, animlib, animname);
        lastanimid = thisanimid;
        SendClientMessage(playerid, 0xFFFFFFFF, msg);
    }*/

    return 1;
}

//----------------------------------------------------------

enum
{
    E_STREAMER_ATTACHED_OBJECT,
    E_STREAMER_ATTACHED_PLAYER,
    E_STREAMER_ATTACHED_VEHICLE,
    E_STREAMER_ATTACH_OFFSET_X,
    E_STREAMER_ATTACH_OFFSET_Y,
    E_STREAMER_ATTACH_OFFSET_Z,
    E_STREAMER_ATTACH_R_X,
    E_STREAMER_ATTACH_R_Y,
    E_STREAMER_ATTACH_R_Z,
    E_STREAMER_ATTACH_X,
    E_STREAMER_ATTACH_Y,
    E_STREAMER_ATTACH_Z,
    E_STREAMER_COLOR,
    E_STREAMER_DRAW_DISTANCE,
    E_STREAMER_EXTRA_ID,
    E_STREAMER_INTERIOR_ID,
    E_STREAMER_MAX_X,
    E_STREAMER_MAX_Y,
    E_STREAMER_MAX_Z,
    E_STREAMER_MIN_X,
    E_STREAMER_MIN_Y,
    E_STREAMER_MIN_Z,
    E_STREAMER_MODEL_ID,
    E_STREAMER_MOVE_R_X,
    E_STREAMER_MOVE_R_Y,
    E_STREAMER_MOVE_R_Z,
    E_STREAMER_MOVE_SPEED,
    E_STREAMER_MOVE_X,
    E_STREAMER_MOVE_Y,
    E_STREAMER_MOVE_Z,
    E_STREAMER_NEXT_X,
    E_STREAMER_NEXT_Y,
    E_STREAMER_NEXT_Z,
    E_STREAMER_PLAYER_ID,
    E_STREAMER_R_X,
    E_STREAMER_R_Y,
    E_STREAMER_R_Z,
    E_STREAMER_SIZE,
    E_STREAMER_STREAM_DISTANCE,
    E_STREAMER_STYLE,
    E_STREAMER_TEST_LOS,
    E_STREAMER_TYPE,
    E_STREAMER_WORLD_ID,
    E_STREAMER_X,
    E_STREAMER_Y,
    E_STREAMER_Z
}

//----------------------------------------------------------

CMD:healme(playerid, params[])
{
    SetPlayerHealth(playerid, 100);
    SendClientMessage(playerid, 0xFFFFFFFF, "Julius95Bot: You have successfully healed yourself!");
    SendClientMessage(playerid, 0xFFFFFFFF, "Julius95Bot: Don't abuse this command for example during fights or you may get kicked and banned!");
    return 1;
}

CMD:fix(playerid, params[])
{
        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "SpyBot: You are not in a vehicle!");
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, 0xFFFFFFFF, "SpyBot: Your vehicle has been successfully repaired!");
    return 1;
}

CMD:flip(playerid, params[])
{
        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "AdrenalineBot: You are not in a vehicle!");
    new currentveh;
    new Float:angle;
    currentveh = GetPlayerVehicleID(playerid);
    GetVehicleZAngle(currentveh, angle);
    SetVehicleZAngle(currentveh, angle);
    SendClientMessage(playerid, 0xFFFFFFFF, "AdrenalineBot: Your vehicle has been successfully flipped!");
    return 1;
}

new fixtimer[MAX_PLAYERS],bool:actived[MAX_PLAYERS];
CMD:autofix(playerid)
{
    if(actived[playerid]) return SendClientMessage(playerid,-1,"TestBot: You have disabled autofix!"),KillTimer(fixtimer[playerid]),actived[playerid] = false;
    fixtimer[playerid] = SetTimerEx("fixt",1000,true,"i",playerid);
    actived[playerid] = true;
    SendClientMessage(playerid,-1,"TestBot: You have enabled autofix! Don't abuse this command.");
    return 1;
}
forward fixt(playerid);
public fixt(playerid)
{
    if(!IsPlayerInAnyVehicle(playerid)) return 0;
    RepairVehicle(GetPlayerVehicleID(playerid));
    return 1;
}
new lastpm[MAX_PLAYERS][128];
CMD:pm(playerid, params[]) {
    new id, message[1024];
	if(sscanf(params,"ds[1024]",id,message))return SendClientMessage(playerid, COLOR_RED, "USAGE: /pm <playerid> <message>");
  	if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected.");
    if(playerid != id) {
        new PlayerName[MAX_PLAYER_NAME];
		GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
	    new ReturnName[MAX_PLAYER_NAME];
	    GetPlayerName(id, ReturnName, sizeof(ReturnName));
	    format(szString,sizeof(szString), ">> PM To %s (ID:%d): %s", ReturnName, id, message);
	    SendClientMessage(playerid, 0xFFCC2299, szString);
	    format(szString,sizeof(szString),"<< PM From %s (ID:%d): %s",PlayerName, playerid, message);
	    SendClientMessage(id, 0xFFFF22AA, szString);
	    PlayerPlaySound(id, 1085, 0.0, 0.0, 0.0);
	   	format(szString, sizeof(szString), "5*** [PM] From %s (ID:%d) To %s (ID:%d): %s",PlayerName,playerid,ReturnName,id,message);
        IRC_GroupSay(gGroupID, IRC_CHANNEL2, szString);
	}
 	else {
        SendClientMessage(playerid, COLOR_RED, "ERROR: You cannot PM yourself");
    }
	return 1;
}

CMD:paint(playerid, params[]) {
	new PlayerName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    new car1,car2;
    if(IsPlayerInAnyVehicle(playerid)) {
        if(sscanf(params, "dd",car1,car2))
            return SendClientMessage(playerid, COLOR_RED,"USAGE: /paint number number");
        ChangeVehicleColor(GetPlayerVehicleID(playerid), car1,car2);
        format(szString, sizeof(szString), "WinampBot: You have changed your car colors to /paint %d %d", car1, car2);
        SendClientMessage(playerid, COLOR_YELLOW, szString);
		format(szString, sizeof(szString), "WinampBot: [CAR] %s (ID:%d) changed their color to /paint %d %d", PlayerName, playerid, car1, car2);
		IRC_GroupSay(gGroupID, IRC_CHANNEL2, szString);
    }
    else {
        SendClientMessage(playerid, COLOR_RED, "ERROR: You're not in any Vehicle!");
    }
    return 1;
}

CMD:lock(playerid, params[]) {
    if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must be in a vehicle to use this command!");
    if (GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must be the driver of a vehicle to use this command");
	new vID = GetPlayerVehicleID(playerid);
	new PlayerName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
	loop(i, MAX_PLAYERS) {
        if (IsPlayerConnected(i) && i != playerid) {
            SetVehicleParamsForPlayer(vID, i, 0, 1);
        }
	}
    SetVehicleParamsForPlayer(vID, playerid, 0, 0);
    SendClientMessage(playerid, COLOR_GREEN, "HelpBot: Your vehicle is now locked.");
	format(szString, sizeof(szString), "HelpBot: [LOCK] %s (ID:%d) locked his vehicle.", PlayerName, playerid);
	IRC_GroupSay(gGroupID, IRC_CHANNEL2, szString);
    return 1;
}


CMD:unlock(playerid, params[]) {
    if (!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must be in a vehicle to use this command!");
    if (GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must be the driver of a vehicle to use this command");
	new vID = GetPlayerVehicleID(playerid);
	new PlayerName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
	loop(i, MAX_PLAYERS) {
        if (IsPlayerConnected(i)) {
            SetVehicleParamsForPlayer(vID, i, 0, 0);
        }
    }
    SetVehicleParamsForPlayer(vID, playerid, 0, 0);
    SendClientMessage(playerid, COLOR_GREEN, "Julius95Bot: Your vehicle is now unlocked.");
	format(szString, sizeof(szString), "Julius95Bot: [UNLOCK] %s (ID:%d) has unlocked his vehicle.", PlayerName, playerid);
	IRC_GroupSay(gGroupID, IRC_CHANNEL2, szString);
    return 1;
}

CMD:spray(playerid, params[]) {
    new PlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
		if(IsPlayerInAnyVehicle(playerid) == 1) {
		    new vID = GetPlayerVehicleID(playerid);
			SetVehiclePos(vID, -1905.0388,267.0628,40.7519);
			SetVehicleZAngle(vID, 360.0000);
			PutPlayerInVehicle(playerid, vID, 0);
			format(szString, sizeof(szString), "* (/spray) %s (ID:%d) has teleported to the Pay 'N Spray.", PlayerName, playerid);
  			SendClientMessageToAll(0x6B96EFFF, szString);
			format(szString, sizeof(szString), "TestBot: [TELEPORT] (/spray) %s (ID:%d) has teleported to the Pay 'N Spray.", PlayerName, playerid);
  			IRC_GroupSay(gGroupID, IRC_CHANNEL2, szString);
		}
		else {
		    SetPlayerPos(playerid, -1905.0388,267.0628,40.7519);
		    SetPlayerFacingAngle(playerid, 360.0000);
			format(szString, sizeof(szString), "* (/spray) %s (ID:%d) has teleported to the Pay 'N Spray.", PlayerName, playerid);
  			SendClientMessageToAll(0x6B96EFFF, szString);
			format(szString, sizeof(szString), "TestBot: [TELEPORT] (/spray) %s (ID:%d) has teleported to the Pay 'N Spray.", PlayerName, playerid);
  			IRC_GroupSay(gGroupID, IRC_CHANNEL2, szString);
  			return 1;
  }
 }
 

CMD:getid(playerid, params[]) {
    if(sscanf(params, "s[35]",params)) return SendClientMessage(playerid, COLOR_RED, "USAGE:/getid <partofname>");
    new matches;
    format(szString, sizeof(szString), "Matches:");
    loop(i, MAX_PLAYERS) {
        if (IsPlayerConnected(i)) {
			new PlayerName[MAX_PLAYER_NAME];
			GetPlayerName(i, PlayerName, sizeof(PlayerName));
            if (!strfind(PlayerName, params, true)) {
                matches++;
                format(szString, sizeof(szString), "%s %s(%d)", szString, PlayerName, i);
            }
        }
    }

    if (matches == 0) {
        SendClientMessage(playerid, COLOR_RED, "ERROR: No matches found");
    }
    else {
        SendClientMessage(playerid, COLOR_GREEN, szString);
    }
    return 1;
}

CMD:rules(playerid, params[]) {
	ShowPlayerDialog(playerid, 5, DIALOG_STYLE_MSGBOX, "{FFFF00}Ultimate Stunting Rules List", DialogText5,"Okay","Cancel");
	return 1;
}

//----------------------------------------------------------

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_FIRE)
    {
        new veh = GetPlayerVehicleID(playerid);
        AddVehicleComponent(veh,1010);
        return 1;
    }
    return 1;
}


//----------------------------------------------------------

public OnPlayerText(playerid, text[])
{
        new name[MAX_PLAYER_NAME], ircMsg[256];
        GetPlayerName(playerid, name, sizeof(name));
        format(ircMsg, sizeof(ircMsg), "02[%d] 07%s: %s", playerid, name, text);
        IRC_GroupSay(groupID, IRC_CHANNEL, ircMsg);
        return 1;
}


//----------------------------------------------------------

public IRC_OnConnect(botid, ip[], port)
{
        printf("*** IRC_OnConnect: Bot ID %d connected to %s:%d", botid, ip, port);
        // Join the channel
        IRC_JoinChannel(botid, IRC_CHANNEL);
        // Add the bot to the group
        IRC_AddToGroup(groupID, botid);
new str[60];
format(str, 60, "nickserv identify %s", IRC_PASSWORD);
IRC_SendRaw(botid, str);
		return 1;

}

/*
        This callback is executed whenever a current connection is closed. The
        plugin may automatically attempt to reconnect per user settings. IRC_Quit
        may be called at any time to stop the reconnection process.
*/

public IRC_OnDisconnect(botid, ip[], port, reason[])
{


		printf("*** IRC_OnDisconnect: Bot ID %d disconnected from %s:%d (%s)", botid, ip, port, reason);
        // Remove the bot from the group
        IRC_RemoveFromGroup(groupID, botid);
        return 1;
}

/*
        This callback is executed whenever a connection attempt begins. IRC_Quit may
        be called at any time to stop the reconnection process.
*/

public IRC_OnConnectAttempt(botid, ip[], port)
{
        printf("*** IRC_OnConnectAttempt: Bot ID %d attempting to connect to %s:%d...", botid, ip, port);
	    return 1;
}

/*
        This callback is executed whenever a connection attempt fails. IRC_Quit may
        be called at any time to stop the reconnection process.
*/

public IRC_OnConnectAttemptFail(botid, ip[], port, reason[])
{
        printf("*** IRC_OnConnectAttemptFail: Bot ID %d failed to connect to %s:%d (%s)", botid, ip, port, reason);
        return 1;
}

/*
        This callback is executed whenever a bot joins a channel.
*/

public IRC_OnJoinChannel(botid, channel[])
{
        printf("*** IRC_OnJoinChannel: Bot ID %d joined channel %s", botid, channel);
        return 1;
}

/*
        This callback is executed whenevever a bot leaves a channel.
*/

public IRC_OnLeaveChannel(botid, channel[], message[])
{
        printf("*** IRC_OnLeaveChannel: Bot ID %d left channel %s (%s)", botid, channel, message);
        return 1;
}

/*
        This callback is executed whenevever a bot is invited to a channel.
*/

public IRC_OnInvitedToChannel(botid, channel[], invitinguser[], invitinghost[])
{
        printf("*** IRC_OnInvitedToChannel: Bot ID %d invited to channel %s by %s (%s)", botid, channel, invitinguser, invitinghost);
        IRC_JoinChannel(botid, channel);
        return 1;
}

/*
        This callback is executed whenevever a bot is kicked from a channel. If the
        bot cannot immediately rejoin the channel (in the event, for example, that
        the bot is kicked and then banned), you might want to set up a timer here
        for rejoin attempts.
*/

public IRC_OnKickedFromChannel(botid, channel[], oppeduser[], oppedhost[], message[])
{
        printf("*** IRC_OnKickedFromChannel: Bot ID %d kicked by %s (%s) from channel %s (%s)", botid, oppeduser, oppedhost, channel, message);
        IRC_JoinChannel(botid, channel);
        return 1;
}

public IRC_OnUserDisconnect(botid, user[], host[], message[])
{
        printf("*** IRC_OnUserDisconnect (Bot ID %d): User %s (%s) disconnected (%s)", botid, user, host, message);
        return 1;
}

public IRC_OnUserJoinChannel(botid, channel[], user[], host[])
{
        printf("*** IRC_OnUserJoinChannel (Bot ID %d): User %s (%s) joined channel %s", botid, user, host, channel);
        return 1;
}

public IRC_OnUserLeaveChannel(botid, channel[], user[], host[], message[])
{
        printf("*** IRC_OnUserLeaveChannel (Bot ID %d): User %s (%s) left channel %s (%s)", botid, user, host, channel, message);
        return 1;
}

public IRC_OnUserKickedFromChannel(botid, channel[], kickeduser[], oppeduser[], oppedhost[], message[])
{
        printf("*** IRC_OnUserKickedFromChannel (Bot ID %d): User %s kicked by %s (%s) from channel %s (%s)", botid, kickeduser, oppeduser, oppedhost, channel, message);
}

public IRC_OnUserNickChange(botid, oldnick[], newnick[], host[])
{
        printf("*** IRC_OnUserNickChange (Bot ID %d): User %s (%s) changed his/her nick to %s", botid, oldnick, host, newnick);
        return 1;
}

public IRC_OnUserSetChannelMode(botid, channel[], user[], host[], mode[])
{
        printf("*** IRC_OnUserSetChannelMode (Bot ID %d): User %s (%s) on %s set mode: %s", botid, user, host, channel, mode);
        return 1;
}

public IRC_OnUserSetChannelTopic(botid, channel[], user[], host[], topic[])
{
        printf("*** IRC_OnUserSetChannelTopic (Bot ID %d): User %s (%s) on %s set topic: %s", botid, user, host, channel, topic);
        return 1;
}

public IRC_OnUserSay(botid, recipient[], user[], host[], message[])
{
        printf("*** IRC_OnUserSay (Bot ID %d): User %s (%s) sent message to %s: %s", botid, user, host, recipient, message);
        // Someone sent the first bot a private message

       if(strcmp(user,BOT_1_NICKNAME) && strcmp(user,BOT_2_NICKNAME)) // just to check if user that have said anything is not a bot lol, bot_2_name is second bot name if u have any
       {
          new msg[256];
          format(msg, sizeof(msg), "%s: %s", user, message);
          SendClientMessageToAll(0xFFFFFFFF, msg);
       }
        if (!strcmp(recipient, BOT_1_NICKNAME))
        {
                IRC_Say(botid, user, "You sent me a PM!");
        }

        return 1;
}

public IRC_OnUserNotice(botid, recipient[], user[], host[], message[])
{
        printf("*** IRC_OnUserNotice (Bot ID %d): User %s (%s) sent notice to %s: %s", botid, user, host, recipient, message);
        // Someone sent the second bot a notice (probably a network service)
        if (!strcmp(recipient, BOT_2_NICKNAME))
        {
                IRC_Notice(botid, user, "You sent me a notice!");
        }
        return 1;
}

public IRC_OnUserRequestCTCP(botid, user[], host[], message[])
{
        printf("*** IRC_OnUserRequestCTCP (Bot ID %d): User %s (%s) sent CTCP request: %s", botid, user, host, message);
        // Someone sent a CTCP VERSION request
        if (!strcmp(message, "VERSION"))
        {
                IRC_ReplyCTCP(botid, user, "VERSION SA-MP IRC Plugin v" #PLUGIN_VERSION "");
        }
        return 1;
}

public IRC_OnUserReplyCTCP(botid, user[], host[], message[])
{
        printf("*** IRC_OnUserReplyCTCP (Bot ID %d): User %s (%s) sent CTCP reply: %s", botid, user, host, message);
        return 1;
}

/*
        This callback is useful for logging, debugging, or catching error messages
        sent by the IRC server.
*/

public IRC_OnReceiveRaw(botid, message[])
{
        new File:file;
        if (!fexist("irc_log.txt"))
        {
                file = fopen("irc_log.txt", io_write);
        }
        else
        {
                file = fopen("irc_log.txt", io_append);
        }
        if (file)
        {
                fwrite(file, message);
                fwrite(file, "\r\n");
                fclose(file);
        }
        return 1;
}

/*
        Some examples of channel commands are here. You can add more very easily;
        their implementation is identical to that of ZeeX's zcmd.
*/

IRCCMD:say(botid, channel[], user[], host[], params[])
{
        // Check if the user has at least voice in the channel
        if (IRC_IsVoice(botid, channel, user))
        {
                // Check if the user entered any text
                if (!isnull(params))
                {
                        new msg[128];
                        // Echo the formatted message
                        format(msg, sizeof(msg), "02*** %s on IRC: %s", user, params);
                        IRC_GroupSay(groupID, channel, msg);
                        format(msg, sizeof(msg), "*** %s on IRC: %s", user, params);
                        SendClientMessageToAll(0x0000FFFF, msg);
                }
        }
        return 1;
}

IRCCMD:kick(botid, channel[], user[], host[], params[])
{
        // Check if the user is at least a halfop in the channel
        if (IRC_IsHalfop(botid, channel, user))
        {
                new playerid, reason[64];
                // Check if the user at least entered a player ID
                if (sscanf(params, "dS(No reason)[64]", playerid, reason))
                {
                        return 1;
                }
                // Check if the player is connected
                if (IsPlayerConnected(playerid))
                {
                        // Echo the formatted message
                        new msg[128], name[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, name, sizeof(name));
                        format(msg, sizeof(msg), "02*** %s has been kicked by %s on IRC. (%s)", name, user, reason);
                        IRC_GroupSay(groupID, channel, msg);
                        format(msg, sizeof(msg), "*** %s has been kicked by %s on IRC. (%s)", name, user, reason);
                        SendClientMessageToAll(0x0000FFFF, msg);
                        // Kick the player
                        Kick(playerid);
                }
        }
        return 1;
}

IRCCMD:ban(botid, channel[], user[], host[], params[])
{
        // Check if the user is at least an op in the channel
        if (IRC_IsOp(botid, channel, user))
        {
                new playerid, reason[64];
                // Check if the user at least entered a player ID
                if (sscanf(params, "dS(No reason)[64]", playerid, reason))
                {
                        return 1;
                }
                // Check if the player is connected
                if (IsPlayerConnected(playerid))
                {
                        // Echo the formatted message
                        new msg[128], name[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, name, sizeof(name));
                        format(msg, sizeof(msg), "02*** %s has been banned by %s on IRC. (%s)", name, user, reason);
                        IRC_GroupSay(groupID, channel, msg);
                        format(msg, sizeof(msg), "*** %s has been banned by %s on IRC. (%s)", name, user, reason);
                        SendClientMessageToAll(0x0000FFFF, msg);
                        // Ban the player
                        BanEx(playerid, reason);
                }
        }
        return 1;
}

IRCCMD:rcon(botid, channel[], user[], host[], params[])
{
        // Check if the user is at least an op in the channel
        if (IRC_IsOp(botid, channel, user))
        {
                // Check if the user entered any text
                if (!isnull(params))
                {
                        // Check if the user did not enter any invalid commands
                        if (strcmp(params, "exit", true) != 0 && strfind(params, "loadfs irc", true) == -1)
                        {
                                // Echo the formatted message
                                new msg[128];
                                format(msg, sizeof(msg), "RCON command %s has been executed.", params);
                                IRC_GroupSay(groupID, channel, msg);
                                // Send the command
                                SendRconCommand(params);
                        }
                }
        }
        return 1;
}

//----------------------------------------------------------

public update_zones() {

	new
		line1[10],
	    line2[10];

	for(new i=0; i<MAX_PLAYERS; i++) {
		if(IsPlayerConnected(i) && zoneupdates[i] == 1) {
			if(IsPlayerInZone(i,player_zone[i])) {
			}
			else {
				new
					player_zone_before;

				player_zone_before = player_zone[i];
				player_zone[i] = -1;

				for(new j=0; j<sizeof(zones);j++) {
					if(IsPlayerInZone(i,j) && player_zone[i] == -1) {
						if(player_zone_before == -1) GameTextForPlayer(i,zones[j][zone_name],1500,1);
						else if(strcmp(zones[j][zone_name],zones[player_zone_before][zone_name],true) != 0) GameTextForPlayer(i,zones[j][zone_name],1500,1);

						player_zone[i] = j;
						format(line1,10,"p%dzone",i);
						format(line2,10,"%d",j);
						
					}
				}
				if(player_zone[i] == -1) player_zone[i] = player_zone_before;
			}
		}
	}
}

IsPlayerInZone(playerid, zoneid) {
	if(zoneid == -1) return 0;

	new
		Float:x,
		Float:y,
		Float:z;

	GetPlayerPos(playerid,x,y,z);

	if(x >= zones[zoneid][zone_minx] && x < zones[zoneid][zone_maxx]
	&& y >= zones[zoneid][zone_miny] && y < zones[zoneid][zone_maxy]
	&& z >= zones[zoneid][zone_minz] && z < zones[zoneid][zone_maxz]
	&& z < 900.0) return 1;

	return 0;
}


//----------------------------------------------------------

public OnPlayerStateChange(playerid, newstate, oldstate) //checks when the player gets in a vehicle
{
        if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
        {
            VehicleModel[playerid] = GetVehicleModel(GetPlayerVehicleID(playerid));
            ShowGameTextForPlayer(playerid);
                return 1;
        }
        if(newstate != PLAYER_STATE_DRIVER && (oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)) KillTimer(CFCTimer); //kills timer that checks for left vehicle if player exits vehicle
        return 1;
}
public CheckForChange(playerid) //Checks if the player has changed vehicles.
{
        if(GetVehicleModel(GetPlayerVehicleID(playerid)) != VehicleModel[playerid]) //makes sure the new vehicle isn't the same as old vehicle
        {
            VehicleModel[playerid] = GetVehicleModel(GetPlayerVehicleID(playerid));
        ShowGameTextForPlayer(playerid);
        }
        return 1;
}
public ShowGameTextForPlayer(playerid) //optimised code here :D
{
        new string[32];
        switch(GAMETEXT_COLOR) //sets the text's color
    {
                case 0: format(string,sizeof(string),"%s",VehicleNames[VehicleModel[playerid]-400]); //yellow
            case 1: format(string,sizeof(string),"~b~%s",VehicleNames[VehicleModel[playerid]-400]); //blue
            case 2: format(string,sizeof(string),"~g~%s",VehicleNames[VehicleModel[playerid]-400]); //green
            case 3: format(string,sizeof(string),"~r~%s",VehicleNames[VehicleModel[playerid]-400]); //red
            case 4: format(string,sizeof(string),"~p~%s",VehicleNames[VehicleModel[playerid]-400]); //purple
            case 5: format(string,sizeof(string),"~w~%s",VehicleNames[VehicleModel[playerid]-400]); //white
            case 6: format(string,sizeof(string),"%~|~s",VehicleNames[VehicleModel[playerid]-400]); //black
        }
        GameTextForPlayer(playerid,string,2000,1); //shows the text
        CFCTimer = SetTimerEx("CheckForChange",1000,true,"i",playerid); //starts timer to check if player has changed vehicles
        return 1;
}
	strcat(DialogText5, "{FF0A00}* No cheating or modifications of any kind that give you advantages over other players!(BANNABLE)\n\n* No flaming, racism or any sort of discrimination towards any other player!(BANNABLE)\n\n* No spamming/flooding chat for any reason!\n\n* Avoid the unnecessary use of sexual language (pussy, dick, etc.)!\n\n");
	strcat(DialogText5, "* The abuse of server bugs, such as RPG Bug is forbidden!(BANNABLE)\n\n* Spawn kill is allowed as long as it is not done with a Sea-Sparrow...\n\n ...In any race Spawn killing is strictly forbidden!\n");
	strcat(DialogText5, "\n* Use /report [ID/first letters of the offender's name] [reason] to report a cheater!\n\n{FFD200}Play Fair & Have Fun!");
Reply


Messages In This Thread
error 021: symbol already defined: "strcat" - by JEkvall95 - 27.10.2012, 06:54
Re: error 021: symbol already defined: "strcat" - by Yamakei - 27.10.2012, 06:55
Re: error 021: symbol already defined: "strcat" - by JEkvall95 - 27.10.2012, 07:00
Re: error 021: symbol already defined: "strcat" - by JEkvall95 - 27.10.2012, 10:30
Re: error 021: symbol already defined: "strcat" - by JEkvall95 - 28.10.2012, 08:03
Re: error 021: symbol already defined: "strcat" - by Racer99 - 02.01.2013, 07:58
Re: error 021: symbol already defined: "strcat" - by rjjj - 02.01.2013, 11:13

Forum Jump:


Users browsing this thread: 1 Guest(s)