Saving system stats reset
#1

I used this tutorial to make a login/register/saving system https://sampforum.blast.hk/showthread.php?tid=273088
Sometimes money and score randomly reset after restarting the server.
I know my code is a mess right now, but here's what I got:
Код:
//includes
#include <a_samp>
#include <YSI\y_ini>
#include <zcmd>
#include <sscanf2>
#include <foreach>
#include <streamer>
//ignores tabs, no indent shit warnings
#pragma tabsize 0
//saving system defines
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define DIALOG_SUCCESS_1 3
#define DIALOG_SUCCESS_2 4

#define PATH "/Users/%s.ini"

#define COL_WHITE "{FFFFFF}"
#define COL_RED "{F81414}"
#define COL_GREEN "{00FF22}"
#define COL_LIGHTBLUE "{00CED1}"
//end of saving system defines

//color defines
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_RED 0xAA3333AA
#define COLOR_LIME 0x10F441AA
#define COLOR_MAGENTA 0xFF00FFFF
#define COLOR_NAVY 0x000080AA
#define COLOR_AQUA 0xF0F8FFAA
#define COLOR_CRIMSON 0xDC143CAA
#define COLOR_FLBLUE 0x6495EDAA
#define COLOR_BISQUE 0xFFE4C4AA
#define COLOR_BLACK 0x000000AA
#define COLOR_CHARTREUSE 0x7FFF00AA
#define COLOR_BROWN 0XA52A2AAA
#define COLOR_CORAL 0xFF7F50AA
#define COLOR_GOLD 0xB8860BAA
#define COLOR_GREENYELLOW 0xADFF2FAA
#define COLOR_INDIGO 0x4B00B0AA
#define COLOR_IVORY 0xFFFF82AA
#define COLOR_LAWNGREEN 0x7CFC00AA
#define COLOR_SEAGREEN 0x20B2AAAA
#define COLOR_LIMEGREEN 0x32CD32AA //<--- Dark lime
#define COLOR_MIDNIGHTBLUE 0X191970AA
#define COLOR_MAROON 0x800000AA
#define COLOR_OLIVE 0x808000AA
#define COLOR_ORANGERED 0xFF4500AA
#define COLOR_PINK 0xFFC0CBAA // - Light light pink
#define COLOR_SPRINGGREEN 0x00FF7FAA
#define COLOR_TOMATO 0xFF6347AA // - Tomato >:/ sounds wrong lol... well... :P
#define COLOR_YELLOWGREEN 0x9ACD32AA //- like military green
#define COLOR_MEDIUMAQUA 0x83BFBFAA
#define COLOR_MEDIUMMAGENTA 0x8B008BAA // dark magenta ^^
//end of color defines

#define TEAM_TRUCKER 1
#define TEAM_POLICE 2

#define error SendClientMessage(playerid, COLOR_RED, "You don't have permission to use this command!");
#define notadmin (PlayerInfo[playerid][pLevel] < 1)
#define notconnected SendClientMessage(playerid,COLOR_RED,"That player is not connected");

new nitrotimer[MAX_PLAYERS];
new T_OnMission[MAX_PLAYERS];
new GodMode[MAX_PLAYERS];

enum pInfo
{
    pPass,
    pCash,
    pLevel,
    pScore,
    pFly
}
new PlayerInfo[MAX_PLAYERS][pInfo];

forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
    INI_Int("Password",PlayerInfo[playerid][pPass]);
    INI_Int("Cash",PlayerInfo[playerid][pCash]);
    INI_Int("Level",PlayerInfo[playerid][pLevel]);
    INI_Int("Score",PlayerInfo[playerid][pScore]);
    return 1;
}

stock UserPath(playerid)
{
    new string[128],playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),PATH,playername);
    return string;
}

/*Credits to Dracoblue*/
stock udb_hash(buf[]) {
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
       s1 = (s1 + buf[n]) % 65521;
       s2 = (s2 + s1)     % 65521;
    }
    return (s2 << 16) + s1;
}

new VehicleNames[][] =
{
    "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
    "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
    "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
    "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection",
    "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
    "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
    "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
    "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "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", "Cropduster", "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", "Hustler", "Intruder", "Primo",
    "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
    "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
    "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
    "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper",
    "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
    "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
    "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car",
    "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha",
    "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
    "Tiller", "Utility Trailer"
};

new Float:unx[MAX_PLAYERS], Float:uny[MAX_PLAYERS], Float:unz[MAX_PLAYERS], iPay[MAX_PLAYERS];
enum MisLocationsEnum
{
    ID,
    LoadName[128],
    Float:LoadX,
    Float:LoadY,
    Float:LoadZ,
    Float:UnloadX,
    Float:UnloadY,
    Float:UnloadZ,
    Pay
}

new MisLocations[][MisLocationsEnum] =
{
    {0, "Beer from Red County Brewery to Bone County Diner",-24.4073,-281.8898,5.9985,-305.4319,1315.6797,54.6189},
    {1, "Fuel from LV Oil Refinery to LV Dirtring",266.8981,1416.5417,10.2001,1097.5164,1741.7422,10.5474},
    {2, "Vehicle Parts from SF Airport ATC to Wang Cars",-1268.8223,13.6925,14.8682,-1986.3477,253.9728,35.8985},
    {3, "Fuel from SF Oil Refinery to RS Haul",-1016.3634,-688.2434,32.7284,-55.3397,-1138.2479,0.8052},
    {4, "Trucking Job, Deliver the Goods",-1690.3000, -93.8587, 5.9922,-1878.6992, -1726.9730, 23.3750},
	{5, "Trucking Job, Deliver the Goods",-373.1002, -1053.5399, 57.8594,2349.0000, -1411.6610, 26.2266},
	{6, "Trucking Job, Deliver the Goods",2774.1663, -2401.0645, 14.1719,868.6686, -1233.7817, 17.6406},
	{7, "Trucking Job, Deliver the Goods",-1522.2748, -631.8068, 25.3359,-2326.2029, -172.0190, 34.6719},
	{8, "Trucking Job, Deliver the Goods",-2532.1748, -613.5323, 132.4539,0.0, 0.0, 3.0},
	{9, "Trucking Job, Deliver the Goods",0.0,0.0,3.0,-1491.2068, 2564.9553, 54.7266},
	{10, "Deliver AK-47 from ammunition store to main army base", -307.1,836.4,12.2, 135.1,1946.2,19.0},
	{11, "Deliver beer from LV Brewery to LS McDonalds", 275.1,1355.2,10.3, 1194.7,-880.5,42.7}
};
stock pName2(PN)
{
    new PX[MAX_PLAYER_NAME];
    GetPlayerName(PN, PX, sizeof(PX));
    return PX;
}
stock GetDistance(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
{
    return floatround(floatsqroot(((x1 - x2) * (x1 - x2)) + ((y1 - y2) * (y1 - y2)) + ((z1 - z2) * (z1 - z2))));
}
stock T_NewJob(playerid)
{
        new vID = GetPlayerVehicleID(playerid); //gets called on the next line
	if(T_OnMission[playerid] == 1) return SendClientMessage(playerid, COLOR_RED,"You are already working.");
    if(GetVehicleModel(vID)== 403 || GetVehicleModel(vID)== 515 || GetVehicleModel(vID) == 514)//this checks wether the player is in a Roadtrain, Tanker or Linerunner
    {
        if(IsTrailerAttachedToVehicle(vID))// This checks wether the player has a trailer attached
        {
            new MisRand = random(sizeof(MisLocations));// this is the line that will call a random mission.
            new LoadText[128], Float:x, Float:y, Float:z;// these are where we will store each co-ord and the text for the mission
            x = MisLocations[MisRand][LoadX];//this sets one of the above
            y = MisLocations[MisRand][LoadY];//this sets one of the above
            z = MisLocations[MisRand][LoadZ];//this sets one of the above
            unx[playerid] = MisLocations[MisRand][UnloadX];//these set what we made in step 10.
            uny[playerid] = MisLocations[MisRand][UnloadY];//these set what we made in step 10.
            unz[playerid] = MisLocations[MisRand][UnloadZ];//these set what we made in step 10.
			iPay[playerid] = GetDistance(x,y,z,unx[playerid],uny[playerid],unz[playerid]);
			SetPlayerCheckpoint(playerid, x, y, z, 7);
            format(LoadText, 128, "%s",MisLocations[MisRand][LoadName]);// this is formatting the text the player will see in the console
            SendClientMessage(playerid, 0xFFFFFF, "_____________________");//sends message in console
            SendClientMessage(playerid, 0xFFFFFF, "");//sends message in console
            SendClientMessage(playerid, 0x33CCFFAA, LoadText);//sends the text we formatted earlier in console
            SendClientMessage(playerid, 0xFFFFFF, "_____________________");//sends message in console
            T_OnMission[playerid] = 1;
        }
        else//if the player doesnt have a trailer attached
        {
            SendClientMessage(playerid, COLOR_WHITE, "You need a trailer!");//sends message in console
        }
    }
    else//if the player isnt in a truck
    {
        SendClientMessage(playerid, COLOR_WHITE, "You must be in a Truck in order to work!");//sends message in console
    }
    return 1;
}
//-------------------[Stop Work]---------------------------------------
stock StopWork(playerid)
{
	if(T_OnMission[playerid] == 0) return SendClientMessage(playerid, COLOR_RED, "You are not on mission.");
    T_OnMission[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid, COLOR_WHITE, "You chose to cancel the mission and got fined $1000");
    GivePlayerMoney(playerid, -1000);
    return 1;
}
stock CheckpointEntered(playerid)
{
	new string[300];
    new vID = GetPlayerVehicleID(playerid);//Explained earlier
    if(!IsTrailerAttachedToVehicle(vID)) return SendClientMessage(playerid, COLOR_WHITE, "You need a trailer to unload!");//This line checks wether the player has a trailer attached to their truck.
    if(T_OnMission[playerid] == 1)//checks the players mission status
    {
        DisablePlayerCheckpoint(playerid);//disables the checkpoint
        SetPlayerCheckpoint(playerid, unx[playerid], uny[playerid], unz[playerid], 7);//creates the new checkpoint from the saved positions we made earlier
        SendClientMessage(playerid, COLOR_WHITE, "Loaded. Please head to the second checkpoint!");//sends message
        T_OnMission[playerid] = 2;//sets the players mission status
    }
    else if(T_OnMission[playerid] == 2)//checks the mission status of the player
    {
        DisablePlayerCheckpoint(playerid);//disables the checkpoint
        T_OnMission[playerid] = 0;
		format(string,sizeof(string),"Well done. You have completed your mission and earned %d$",iPay[playerid]*8);
        GivePlayerMoney(playerid,iPay[playerid]*8);
        SendClientMessage(playerid, COLOR_YELLOW, string);
        SetPlayerScore(playerid, GetPlayerScore(playerid)+2);//gives the player 2 score
    }
    return 1;
}

main()
{
        print("\nBrutal Haulers 0.1 BETA sucessfully loaded!");
}

public OnGameModeInit()
{
	SetGameModeText("Trucking");
	EnableStuntBonusForAll(0);
	SetTimer("savedata", 300000, true);
	UsePlayerPedAnims();
	//-----------------------[Trucker class]------------------------------
	AddPlayerClass(16,1708.2423,986.9780,10.8203,76.6057,0,0,0,0,0,0); //
	AddPlayerClass(67,2809.9092,900.1211,10.7578,76.6057,0,0,0,0,0,0); //
	AddPlayerClass(133,-2186.3499,-212.2025,36.5156,76.6057,0,0,0,0,0,0); //
	AddPlayerClass(181,2134.6189,-2158.6831,13.5469,76.6057,0,0,0,0,0,0); //     
	//-------------------------[Police]---------------------------------
	AddPlayerClass(288,2296.5662,2451.6270,10.8203,87.8270,0,0,0,0,0,0);//Police - LV
    AddPlayerClass(283,2296.5662,2451.6270,10.8203,87.8270,0,0,0,0,0,0);//Police - LV
    AddPlayerClass(282,2296.5662,2451.6270,10.8203,87.8270,0,0,0,0,0,0);//Police - LV
    AddPlayerClass(280,-1575.3557, 650.2045, 6.0781,0.2497,0,0,0,0,0,0); //Police - SF
	AddPlayerClass(281,1573.4183, -1634.8721, 13.0952,0.2497,0,0,0,0,0,0); //Police - SF
	AddPlayerClass(282,1573.4183, -1634.8721, 13.0952,0.2497,0,0,0,0,0,0); //Police - SF
	AddPlayerClass(283,-544.7503, 2594.2329, 52.9706 ,0.2497,0,0,0,0,0,0); //Police - SF
	//VEHICLES
AddStaticVehicleEx(403,270.799987,559.299987,7.000000,209.845001,37,37,300);
AddStaticVehicleEx(403,267.000000,556.900024,7.000000,209.843994,37,37,300);
AddStaticVehicleEx(403,263.399993,554.599975,7.000000,209.843994,37,37,300);
AddStaticVehicleEx(515,258.600006,551.700012,7.500000,209.921997,88,89,300);
AddStaticVehicleEx(515,254.000000,548.900024,7.500000,209.921005,88,89,300);
AddStaticVehicleEx(435,284.100006,549.400024,7.000000,118.472999,245,245,300);
AddStaticVehicleEx(435,281.200012,555.200012,7.000000,118.471000,245,245,300);
AddStaticVehicleEx(435,223.000000,521.299987,7.000000,298.471008,245,245,300);
AddStaticVehicleEx(435,225.300003,516.599975,7.000000,298.471008,245,245,300);
AddStaticVehicleEx(403,1680.900024,986.599975,11.500000,0.000000,63,62,300);
AddStaticVehicleEx(403,1677.800048,986.599975,11.500000,0.000000,63,62,300);
AddStaticVehicleEx(403,1674.599975,986.599975,11.500000,0.000000,63,62,300);
AddStaticVehicleEx(403,1671.500000,986.599975,11.500000,0.000000,63,62,300);
AddStaticVehicleEx(403,1668.400024,986.700012,11.500000,0.000000,63,62,300);
AddStaticVehicleEx(514,1681.000000,1000.900024,11.500000,180.845001,61,74,300);
AddStaticVehicleEx(514,1677.599975,1000.900024,11.500000,180.839996,61,74,300);
AddStaticVehicleEx(514,1674.300048,1000.900024,11.500000,180.839996,61,74,300);
AddStaticVehicleEx(514,1671.000000,1000.900024,11.500000,180.839996,61,74,300);
AddStaticVehicleEx(514,1668.099975,1000.900024,11.500000,180.839996,61,74,300);
AddStaticVehicleEx(515,1651.900024,985.900024,12.000000,0.000000,39,47,300);
AddStaticVehicleEx(515,1658.800048,985.799987,12.000000,0.000000,39,47,300);
AddStaticVehicleEx(591,1634.000000,957.099975,11.399999,269.894012,245,245,300);
AddStaticVehicleEx(591,1634.000000,962.799987,11.399999,269.890014,245,245,300);
AddStaticVehicleEx(591,1634.199951,969.799987,11.399999,269.890014,245,245,300);
AddStaticVehicleEx(591,1634.099975,977.099975,11.399999,269.890014,245,245,300);
AddStaticVehicleEx(591,1634.000000,983.799987,11.399999,269.890014,245,245,300);
AddStaticVehicleEx(435,1692.900024,921.400024,11.500000,0.000000,245,245,300);
AddStaticVehicleEx(435,1697.500000,921.500000,11.500000,0.000000,245,245,300);
AddStaticVehicleEx(435,1688.800048,921.299987,11.500000,0.000000,245,245,300);
AddStaticVehicleEx(435,1684.099975,921.200012,11.500000,0.000000,245,245,300);
AddStaticVehicleEx(403,2832.399902,897.400024,11.500000,0.000000,45,58,300);
AddStaticVehicleEx(403,2837.399902,897.299987,11.500000,0.000000,45,58,300);
AddStaticVehicleEx(403,2842.699951,897.200012,11.500000,0.000000,45,58,300);
AddStaticVehicleEx(403,2848.300048,897.099975,11.500000,0.000000,45,58,300);
AddStaticVehicleEx(403,2862.399902,896.900024,11.500000,0.000000,45,58,300);
AddStaticVehicleEx(403,2867.899902,896.799987,11.500000,0.000000,45,58,300);
AddStaticVehicleEx(403,2873.300048,896.700012,11.500000,0.000000,45,58,300);
AddStaticVehicleEx(435,2872.399902,937.400024,11.399999,93.158996,245,245,300);
AddStaticVehicleEx(435,2872.600097,932.900024,11.399999,93.158996,245,245,300);
AddStaticVehicleEx(435,2872.800048,928.200012,11.399999,93.158996,245,245,300);
AddStaticVehicleEx(435,2873.000000,923.599975,11.399999,93.158996,245,245,300);
AddStaticVehicleEx(435,2873.199951,919.500000,11.399999,93.158996,245,245,300);
AddStaticVehicleEx(435,2873.399902,914.900024,11.399999,93.158996,245,245,300);
AddStaticVehicleEx(515,2800.399902,966.299987,11.899999,0.000000,88,89,300);
AddStaticVehicleEx(515,2805.500000,966.000000,11.899999,0.000000,88,89,300);
AddStaticVehicleEx(515,2810.699951,965.700012,11.899999,0.000000,88,89,300);
AddStaticVehicleEx(515,2816.300048,965.900024,11.899999,0.000000,88,89,300);
AddStaticVehicleEx(515,2822.600097,965.700012,11.899999,0.000000,88,89,300);
AddStaticVehicleEx(403,-2162.100097,-217.699996,36.000000,0.000000,63,62,300);
AddStaticVehicleEx(403,-2167.000000,-217.699996,36.000000,0.000000,63,62,300);
AddStaticVehicleEx(403,-2172.300048,-217.300003,36.000000,0.000000,63,62,300);
AddStaticVehicleEx(403,-2155.600097,-197.399993,36.000000,179.787002,63,62,300);
AddStaticVehicleEx(435,-2102.000000,-204.800003,36.000000,88.580001,245,245,300);
AddStaticVehicleEx(435,-2102.000000,-210.500000,36.000000,88.579002,245,245,300);
AddStaticVehicleEx(435,-2101.800048,-216.899993,36.000000,89.342002,245,245,300);
AddStaticVehicleEx(435,-2102.000000,-223.199996,36.000000,87.816001,245,245,300);
AddStaticVehicleEx(435,-2101.800048,-229.699996,36.000000,87.816001,245,245,300);
AddStaticVehicleEx(435,-2102.100097,-236.100006,36.000000,89.342002,245,245,300);
AddStaticVehicleEx(435,2154.800048,-2144.000000,14.199999,46.580001,245,245,300);
AddStaticVehicleEx(435,2150.300048,-2148.600097,14.199999,46.576999,245,245,300);
AddStaticVehicleEx(435,2145.399902,-2153.500000,14.199999,46.576999,245,245,300);
AddStaticVehicleEx(435,2141.199951,-2158.000000,14.199999,46.576999,245,245,300);
AddStaticVehicleEx(403,2115.300048,-2141.800048,14.300000,271.420013,71,53,300);
AddStaticVehicleEx(403,2115.199951,-2147.300048,14.300000,271.416992,71,53,300);
AddStaticVehicleEx(403,2115.100097,-2152.800048,14.300000,271.416992,71,53,300);
AddStaticVehicleEx(403,2115.100097,-2136.500000,14.300000,271.416992,71,53,300);
AddStaticVehicleEx(403,2115.000000,-2131.000000,14.300000,271.416992,71,53,300);
AddStaticVehicleEx(403,270.799987,559.299987,7.000000,209.845001,37,37,300);
AddStaticVehicleEx(403,267.000000,556.900024,7.000000,209.843994,37,37,300);
AddStaticVehicleEx(403,263.399993,554.599975,7.000000,209.843994,37,37,300);
AddStaticVehicleEx(515,258.600006,551.700012,7.500000,209.921997,88,89,300);
AddStaticVehicleEx(515,254.000000,548.900024,7.500000,209.921005,88,89,300);
AddStaticVehicleEx(435,284.100006,549.400024,7.000000,118.472999,245,245,300);
AddStaticVehicleEx(435,281.200012,555.200012,7.000000,118.471000,245,245,300);
AddStaticVehicleEx(435,223.000000,521.299987,7.000000,298.471008,245,245,300);
AddStaticVehicleEx(435,225.300003,516.599975,7.000000,298.471008,245,245,300);
AddStaticVehicleEx(403,28.799999,191.100006,1.799999,325.763000,63,62,300);
AddStaticVehicleEx(403,32.700000,188.600006,1.799999,325.760986,63,62,300);
AddStaticVehicleEx(403,36.400001,185.899993,1.799999,325.760986,63,62,300);
AddStaticVehicleEx(403,40.799999,207.399993,1.799999,238.205993,63,62,300);
AddStaticVehicleEx(403,36.799800,202.000000,1.799999,238.205993,63,62,300);
AddStaticVehicleEx(435,65.199996,229.800003,1.799999,145.212005,245,245,300);
AddStaticVehicleEx(435,60.900001,233.000000,1.799999,145.212005,245,245,300);
AddStaticVehicleEx(435,26.299999,257.100006,1.799999,235.949996,245,245,300);
AddStaticVehicleEx(435,23.399999,252.600006,1.799999,235.947998,245,245,300);
AddStaticVehicleEx(435,20.700000,248.399993,1.799999,235.947998,245,245,300);
	//MAPS
	CreateDynamicObject(5191, 172.3, 620.29999, -0.8, 0, 0, 28.551);
	CreateDynamicObject(8531, 242.10001, 556.09998, 5.9, 0, 0, 299.314);
	CreateDynamicObject(987, 220.5, 578.09998, 5.3, 0, 0, 209.159);
	CreateDynamicObject(987, 230.7, 583.79999, 5.3, 0, 0, 209.158);
	CreateDynamicObject(987, 241, 589.59998, 5.3, 0, 0, 209.158);
	CreateDynamicObject(987, 251.39999, 595.5, 5.3, 0, 0, 209.158);
	CreateDynamicObject(987, 261.79999, 601.40002, 5.3, 0, 0, 209.158);
	CreateDynamicObject(10843, 257, 572.59998, 13.2, 0, 0, 119.69);
	CreateDynamicObject(1337, 189.8, 471.70001, 106.3, 0, 0, 0);
	CreateDynamicObject(10789, 161.3, 135.7, 471.79999, 0, 0, 0);
	CreateDynamicObject(3567, 236, 556.29999, 6.3, 0, 0, 30);
	CreateDynamicObject(3566, 225.5, 567.90002, 7.9, 0, 0, 118.473);
	CreateDynamicObject(3573, 229.60001, 548.40002, 8.2, 0, 0, 29.237);
	CreateDynamicObject(3475, 231.2, 574.29999, 7.6, 0, 0, 120.078);
	CreateDynamicObject(3475, 226.2, 571.5, 7.6, 0, 0, 119.312);
	CreateDynamicObject(3475, 221.5, 568.79999, 7.6, 0, 0, 120.075);
	CreateDynamicObject(3475, 216.7, 566.20001, 7.6, 0, 0, 118.543);
	CreateDynamicObject(3475, 214.10001, 564.79999, 7.6, 0, 0, 118.542);
	CreateDynamicObject(3475, 211.39999, 560.40002, 7.6, 0, 0, 182.423);
	CreateDynamicObject(3475, 212.89999, 554.70001, 7.6, 0, 0, 208.373);
	CreateDynamicObject(3475, 219.5, 543.29999, 7.6, 0, 0, 209.135);
	CreateDynamicObject(3475, 223.7, 540.40002, 7.6, 0, 0, 274.008);
	CreateDynamicObject(3475, 229, 542.09998, 7.6, 0, 0, 299.193);
	CreateDynamicObject(3475, 233.8, 544.90002, 7.6, 0, 0, 300.717);
	CreateDynamicObject(3475, 238.8, 547.90002, 7.6, 0, 0, 299.186);
	CreateDynamicObject(3475, 243.89999, 550.79999, 7.6, 0, 0, 299.185);
	CreateDynamicObject(1259, 143.5, 694.70001, 19.5, 0, 0, 26.715);
	CreateDynamicObject(978, 114.5, 675.5, 5.5, 0, 0, 30.841);
	CreateDynamicObject(978, 114.5, 675.59998, 5.5, 0, 0, 210.075);
	CreateDynamicObject(978, 122.4, 680.09998, 5.5, 0, 0, 30.606);
	CreateDynamicObject(978, 122.4, 680.29999, 5.5, 0, 0, 210.679);
	CreateDynamicObject(978, 128.5, 683.79999, 5.5, 0, 0, 30.602);
	CreateDynamicObject(978, 128.5, 683.7998, 5.5, 0, 0, 210.525);
	CreateDynamicObject(978, 136.60001, 688.70001, 5.5, 0, 0, 210.52);
	CreateDynamicObject(978, 136.59961, 688.69922, 5.5, 0, 0, 30.52);
	CreateDynamicObject(978, 144.39999, 693.29999, 5.5, 0, 0, 30.515);
	CreateDynamicObject(978, 144.39941, 693.2998, 5.5, 0, 0, 210.515);
	CreateDynamicObject(978, 149, 678.70001, 5.5, 0, 0, 108.147);
	CreateDynamicObject(978, 149, 678.70001, 6.1, 0, 0, 105.093);
	CreateDynamicObject(978, 149, 678.70001, 6.7, 0, 0, 105.093);
	CreateDynamicObject(978, 150.8, 686.29999, 5.8, 0, 0, 44.795);
	CreateDynamicObject(978, 150.89999, 686.29999, 6.4, 0, 0, 44.793);
	CreateDynamicObject(978, 150.89999, 686.20001, 6.7, 0, 0, 42.503);
	CreateDynamicObject(978, 129.7, 671.70001, 5.5, 0, 0, 0.521);
	CreateDynamicObject(978, 120.6, 669.90002, 5.5, 0, 0, 21.125);
	CreateDynamicObject(978, 120.59961, 669.89941, 5.5, 0, 0, 201.121);
	CreateDynamicObject(978, 129.8, 671.70001, 5.5, 0, 0, 178.987);
	CreateDynamicObject(978, 129.8, 671.70001, 6.2, 0, 0, 178.984);
	CreateDynamicObject(978, 129.8, 671.70001, 6.2, 0, 0, 358.984);
	CreateDynamicObject(978, 129.8, 671.70001, 6.8, 0, 0, 358.984);
	CreateDynamicObject(978, 129.7998, 671.69922, 6.8, 0, 0, 179.061);
	CreateDynamicObject(978, 129.7998, 671.69922, 6.8, 0, 0, 179.061);
	CreateDynamicObject(978, 120.6, 669.90002, 5.5, 0, 0, 201.121);
	CreateDynamicObject(978, 120.6, 669.90002, 6.4, 0, 0, 201.121);
	CreateDynamicObject(978, 120.59961, 669.89941, 6.4, 0, 0, 21.121);
	CreateDynamicObject(978, 120.6, 669.90002, 7, 0, 0, 21.116);
	CreateDynamicObject(978, 120.59961, 669.89941, 7, 0, 0, 200.352);
	CreateDynamicObject(8843, 124.7, 685.59998, 4.9, 0, 0, 301.527);
	CreateDynamicObject(8843, 133.89999, 691.29999, 5, 0, 0, 301.525);
	CreateDynamicObject(1290, 110, 672.90002, 10.7, 0, 0, 309.546);
	CreateDynamicObject(7662, 72.8, 653.5, 5.5, 0, 0, 296.947);
	CreateDynamicObject(3463, 79.9, 657.20001, 4.9, 0, 0, 297.865);
	CreateDynamicObject(5269, 261.79999, 593, 7.6, 0, 0, 300.155);
	CreateDynamicObject(5269, 254.89999, 589, 7.6, 0, 0, 300.152);
	CreateDynamicObject(5269, 248.3, 585.20001, 7.6, 0, 0, 300.152);
	CreateDynamicObject(5269, 241.39999, 581.29999, 7.6, 0, 0, 300.152);
	CreateDynamicObject(5269, 236.7, 578.59998, 7.6, 0, 0, 300.152);
	CreateDynamicObject(2934, 259, 597.40002, 6.7, 0, 0, 299.16);
	CreateDynamicObject(2934, 260.5, 594.90002, 6.7, 0, 0, 299.158);
	CreateDynamicObject(2934, 259.20001, 597.5, 9.5, 0, 0, 299.158);
	CreateDynamicObject(1226, 205.39999, 571, 9.1, 0, 0, 29.923);
	CreateDynamicObject(1226, 195, 565.20001, 9.1, 0, 0, 210.155);
	CreateDynamicObject(16421,819.7000100,597.7999900,10.4000000,0.0000000,0.0000000,39.8940000); //object(s_bit_06_2) (1)
	CreateDynamicObject(3442,845.0999800,648.9000200,14.6000000,0.0000000,0.0000000,283.2610000); //object(vegasxrexhse1) (1)
	CreateDynamicObject(3443,795.7999900,638.9000200,13.4000000,0.0000000,0.0000000,103.4200000); //object(vegasxrexhse2) (1)
	CreateDynamicObject(3466,849.5000000,618.2999900,13.0000000,0.0000000,0.0000000,13.9930000); //object(shabbyhouse01_lvs) (1)
	CreateDynamicObject(3483,752.9000200,600.4000200,17.4000000,0.0000000,0.0000000,13.2370000); //object(vegasxrexhse09) (1)
	CreateDynamicObject(3487,777.5999800,606.2000100,17.1000000,0.0000000,0.0000000,13.3680000); //object(vegasxrexhse06) (1)
	CreateDynamicObject(3304,801.0000000,606.7000100,13.5000000,0.0000000,0.0000000,103.7140000); //object(des_bighus02) (1)
	CreateDynamicObject(3314,819.0000000,559.2000100,11.4000000,0.0000000,0.0000000,193.0240000); //object(sw_bigburb_04) (1)
	CreateDynamicObject(3587,768.7999900,561.5000000,12.8000000,0.0000000,0.0000000,103.6160000); //object(nwsnpedhus1_las) (1)
	CreateDynamicObject(3587,770.9000200,552.5999800,12.8000000,0.0000000,0.0000000,103.6120000); //object(nwsnpedhus1_las) (2)
	CreateDynamicObject(8657,740.7000100,646.0000000,9.1000000,0.0000000,0.0000000,283.0000000); //object(shbbyhswall10_lvs) (1)
	CreateDynamicObject(8657,740.7000100,646.0000000,11.5000000,0.0000000,0.0000000,282.9970000); //object(shbbyhswall10_lvs) (2)
	CreateDynamicObject(8657,770.5999800,652.9000200,11.5000000,0.0000000,0.0000000,282.9970000); //object(shbbyhswall10_lvs) (3)
	CreateDynamicObject(8657,789.7999900,657.2999900,11.5000000,0.0000000,0.0000000,282.9970000); //object(shbbyhswall10_lvs) (4)
	CreateDynamicObject(8657,838.4000200,668.2999900,11.5000000,0.0000000,0.0000000,278.5860000); //object(shbbyhswall10_lvs) (5)
	CreateDynamicObject(8657,867.0999800,673.2000100,11.5000000,0.0000000,0.0000000,280.4480000); //object(shbbyhswall10_lvs) (6)
	CreateDynamicObject(8657,729.7000100,628.2000100,11.5000000,0.0000000,0.0000000,193.3670000); //object(shbbyhswall10_lvs) (7)
	CreateDynamicObject(8657,730.5000000,627.5999800,11.5000000,0.0000000,0.0000000,193.3650000); //object(shbbyhswall10_lvs) (8)
	CreateDynamicObject(8657,729.7999900,627.5000000,11.5000000,0.0000000,0.0000000,193.3650000); //object(shbbyhswall10_lvs) (9)
	CreateDynamicObject(8657,736.9000200,597.7999900,11.5000000,0.0000000,0.0000000,193.3650000); //object(shbbyhswall10_lvs) (10)
	CreateDynamicObject(8657,742.0999800,576.0999800,11.5000000,0.0000000,0.0000000,193.3650000); //object(shbbyhswall10_lvs) (11)
	CreateDynamicObject(8657,737.5000000,597.9000200,11.5000000,0.0000000,0.0000000,193.3650000); //object(shbbyhswall10_lvs) (12)
	CreateDynamicObject(8657,885.2000100,661.0000000,11.5000000,0.0000000,0.0000000,193.2200000); //object(shbbyhswall10_lvs) (14)
	CreateDynamicObject(8657,891.7999900,632.5999800,11.5000000,0.0000000,0.0000000,193.2170000); //object(shbbyhswall10_lvs) (15)
	CreateDynamicObject(8657,891.9000200,632.0999800,11.5000000,0.0000000,0.0000000,193.2170000); //object(shbbyhswall10_lvs) (16)
	CreateDynamicObject(3850,765.5000000,565.0999800,10.4000000,0.0780000,88.5410000,281.1030000); //object(carshowbann_sfsx) (1)
	CreateDynamicObject(3850,763.2999900,564.5999800,10.4000000,0.0180000,89.3020000,282.6260000); //object(carshowbann_sfsx) (2)
	CreateDynamicObject(3850,759.7999900,564.0999800,11.0000000,359.2180000,358.4730000,284.1130000); //object(carshowbann_sfsx) (3)
	CreateDynamicObject(3850,756.5000000,563.2999900,11.0000000,359.2140000,358.4730000,283.4260000); //object(carshowbann_sfsx) (4)
	CreateDynamicObject(3850,753.2000100,562.5000000,11.0000000,359.2140000,358.4730000,283.3280000); //object(carshowbann_sfsx) (5)
	CreateDynamicObject(3850,750.2000100,561.7999900,11.0000000,359.2090000,358.4670000,283.3260000); //object(carshowbann_sfsx) (6)
	CreateDynamicObject(3850,747.0000000,561.0000000,11.0000000,359.2090000,358.4670000,283.3260000); //object(carshowbann_sfsx) (7)
	CreateDynamicObject(5112,853.2999900,489.5000000,6.3000000,0.0000000,0.0000000,283.1300000); //object(laroads_26_las2) (4)
	CreateDynamicObject(5112,862.9000200,448.8999900,2.2000000,0.7500000,349.3130000,283.2700000); //object(laroads_26_las2) (5)
	CreateDynamicObject(1696,886.7000100,371.2999900,20.8000000,347.0290000,1.5660000,14.8540000); //object(roofstuff15) (1)
	CreateDynamicObject(1696,881.5000000,370.0000000,20.8000000,347.0240000,359.2130000,12.0350000); //object(roofstuff15) (2)
	CreateDynamicObject(1696,876.2000100,368.7999900,20.7000000,347.7870000,359.2150000,11.2830000); //object(roofstuff15) (3)
	CreateDynamicObject(1696,874.5000000,368.5000000,20.7000000,347.0280000,358.4300000,11.8600000); //object(roofstuff15) (4)
	CreateDynamicObject(1696,876.0000000,362.8999900,19.5000000,0.7590000,358.4690000,12.2270000); //object(roofstuff15) (5)
	CreateDynamicObject(1696,881.2000100,364.0000000,19.5000000,0.7580000,358.4670000,14.5120000); //object(roofstuff15) (6)
	CreateDynamicObject(1696,886.2999900,365.3999900,19.5000000,0.7580000,358.4670000,19.0870000); //object(roofstuff15) (7)
	CreateDynamicObject(1696,888.7999900,366.2999900,19.5000000,2.2840000,358.4660000,24.4670000); //object(roofstuff15) (8)
	CreateDynamicObject(8657,860.7999900,566.7000100,11.5000000,0.0000000,0.0000000,282.9970000); //object(shbbyhswall10_lvs) (17)
	CreateDynamicObject(8657,866.0000000,567.7999900,11.5000000,0.0000000,0.0000000,282.9970000); //object(shbbyhswall10_lvs) (18)
	CreateDynamicObject(8657,877.2999900,585.7999900,11.5000000,0.0000000,0.0000000,193.5230000); //object(shbbyhswall10_lvs) (19)
	CreateDynamicObject(8657,874.7999900,596.0000000,11.5000000,0.0000000,0.0000000,193.5190000); //object(shbbyhswall10_lvs) (20)
	CreateDynamicObject(8657,881.7999900,613.7000100,11.5000000,0.0000000,0.0000000,104.1760000); //object(shbbyhswall10_lvs) (21)
	CreateDynamicObject(8657,799.0999800,535.7999900,11.5000000,0.0000000,0.0000000,104.1720000); //object(shbbyhswall10_lvs) (22)
	CreateDynamicObject(8132,800.4000200,660.5999800,12.9000000,0.0000000,0.0000000,295.6040000); //object(vgschurch03_lvs) (1)
	CreateDynamicObject(10837,803.4000200,664.9000200,14.9000000,0.0000000,0.0000000,0.0000000); //object(ap_bigsign_sfse) (1)
	CreateDynamicObject(11489,744.9000200,570.7000100,10.3000000,0.0000000,0.0000000,104.7390000); //object(dam_statues) (1)
	CreateDynamicObject(1211,821.9000200,597.2000100,11.1000000,0.0000000,0.0000000,0.0000000); //object(fire_hydrant) (1)
	CreateDynamicObject(1283,828.7999900,601.0999800,13.6000000,0.0000000,0.0000000,12.2120000); //object(mtraffic1) (1)
	CreateDynamicObject(4113,749.5999800,630.9000200,-25.7000000,0.0000000,0.0000000,24.8160000); //object(lanofficeblok1) (1)
	CreateDynamicObject(4113,756.2000100,602.0999800,-25.7000000,0.0000000,0.0000000,24.8130000); //object(lanofficeblok1) (2)
	CreateDynamicObject(4113,761.4000200,579.0000000,-25.7000000,0.0000000,0.0000000,24.8130000); //object(lanofficeblok1) (3)
	CreateDynamicObject(4113,867.4000200,656.5000000,-25.6000000,0.0000000,0.0000000,28.5360000); //object(lanofficeblok1) (5)
	CreateDynamicObject(4113,875.0000000,626.2000100,-25.6000000,0.0000000,0.0000000,28.5310000); //object(lanofficeblok1) (6)
	CreateDynamicObject(4113,857.2000100,589.0999800,-25.9000000,0.0000000,0.0000000,28.5310000); //object(lanofficeblok1) (7)
	CreateDynamicObject(4113,859.7999900,581.2999900,-25.8000000,0.0000000,0.0000000,28.5310000); //object(lanofficeblok1) (8)
	CreateDynamicObject(4113,808.0000000,551.7000100,-25.9000000,0.0000000,0.0000000,28.5310000); //object(lanofficeblok1) (9)
	CreateDynamicObject(4113,800.0000000,550.2999900,-25.8000000,0.0000000,0.0000000,28.5310000); //object(lanofficeblok1) (10)
	CreateDynamicObject(1283,830.5999800,581.7999900,13.6000000,0.0000000,0.0000000,193.6560000); //object(mtraffic1) (2)
	CreateDynamicObject(1283,819.7999900,590.0000000,13.6000000,0.0000000,0.0000000,105.2020000); //object(mtraffic1) (3)
	CreateDynamicObject(3578,782.9000200,536.2999900,11.0000000,0.0000000,0.0000000,282.3670000); //object(dockbarr1_la) (1)
	CreateDynamicObject(3578,777.0000000,539.0999800,11.0000000,0.0000000,0.0000000,14.6310000); //object(dockbarr1_la) (2)
	CreateDynamicObject(18452,851.7999900,576.4000200,13.4000000,0.0000000,0.0000000,13.7390000); //object(cw_tscanopy01) (1)
	CreateDynamicObject(8657,794.9000200,618.5000000,9.8000000,0.0000000,0.0000000,103.2590000); //object(shbbyhswall10_lvs) (24)
	CreateDynamicObject(11417,843.9000200,583.5000000,15.3000000,0.0000000,0.0000000,58.4210000); //object(xenonsign2_sfse) (1)
	CreateDynamicObject(1244,849.9000200,579.0999800,11.4000000,0.0000000,0.0000000,283.2610000); //object(petrolpump) (1)
	CreateDynamicObject(1244,852.0999800,579.7999900,11.4000000,0.0000000,0.0000000,283.2600000); //object(petrolpump) (2)
	CreateDynamicObject(1244,853.7999900,574.2000100,11.4000000,0.0000000,0.0000000,283.2600000); //object(petrolpump) (3)
	CreateDynamicObject(1244,850.9000200,573.2999900,11.4000000,0.0000000,0.0000000,283.2600000); //object(petrolpump) (4)
	CreateDynamicObject(4113,767.7999900,550.7000100,-25.9000000,0.0000000,0.0000000,24.8130000); //object(lanofficeblok1) (11)
	CreateDynamicObject(3578,767.2999900,536.7000100,11.0000000,0.0000000,0.0000000,14.6280000); //object(dockbarr1_la) (3)
	CreateDynamicObject(3578,758.5999800,534.5000000,11.0000000,0.0000000,0.0000000,14.6280000); //object(dockbarr1_la) (4)
	CreateDynamicObject(3578,755.4000200,533.7999900,11.0000000,0.0000000,0.0000000,14.6280000); //object(dockbarr1_la) (5)
	CreateDynamicObject(3578,749.9000200,537.5000000,11.0000000,0.0000000,0.0000000,102.9470000); //object(dockbarr1_la) (6)
	CreateDynamicObject(3578,748.2000100,545.2999900,11.0000000,0.0000000,0.0000000,102.9420000); //object(dockbarr1_la) (7)
	CreateDynamicObject(3578,746.0999800,554.9000200,11.0000000,0.0000000,0.0000000,102.9420000); //object(dockbarr1_la) (8)
	CreateDynamicObject(3578,745.7000100,556.7000100,11.0000000,0.0000000,0.0000000,102.9420000); //object(dockbarr1_la) (9)
	CreateDynamicObject(5191,172.3000000,620.2999900,-0.8000000,0.0000000,0.0000000,28.5510000); //object(nwdkbridd_las2) (1)
	CreateDynamicObject(8531,242.1000100,556.0999800,5.9000000,0.0000000,0.0000000,299.3140000); //object(vgseland18_lvs) (1)
	CreateDynamicObject(987,220.5000000,578.0999800,5.3000000,0.0000000,0.0000000,209.1590000); //object(elecfence_bar) (1)
	CreateDynamicObject(987,230.7000000,583.7999900,5.3000000,0.0000000,0.0000000,209.1580000); //object(elecfence_bar) (2)
	CreateDynamicObject(987,241.0000000,589.5999800,5.3000000,0.0000000,0.0000000,209.1580000); //object(elecfence_bar) (3)
	CreateDynamicObject(987,251.3999900,595.5000000,5.3000000,0.0000000,0.0000000,209.1580000); //object(elecfence_bar) (4)
	CreateDynamicObject(987,261.7999900,601.4000200,5.3000000,0.0000000,0.0000000,209.1580000); //object(elecfence_bar) (5)
	CreateDynamicObject(10843,257.0000000,572.5999800,13.2000000,0.0000000,0.0000000,119.6900000); //object(bigshed_sfse01) (1)
	CreateDynamicObject(1337,189.8000000,471.7000100,106.3000000,0.0000000,0.0000000,0.0000000); //object(binnt07_la) (1)
	CreateDynamicObject(10789,161.3000000,135.7000000,471.7999900,0.0000000,0.0000000,0.0000000); //object(xenonroof_sfse) (2)
	CreateDynamicObject(3567,236.0000000,556.2999900,6.3000000,0.0000000,0.0000000,30.0000000); //object(lasnfltrail) (1)
	CreateDynamicObject(3566,225.5000000,567.9000200,7.9000000,0.0000000,0.0000000,118.4730000); //object(lasntrk1) (1)
	CreateDynamicObject(3573,229.6000100,548.4000200,8.2000000,0.0000000,0.0000000,29.2370000); //object(lasdkrtgrp1) (1)
	CreateDynamicObject(3475,231.2000000,574.2999900,7.6000000,0.0000000,0.0000000,120.0780000); //object(vgsn_fncelec_pst) (1)
	CreateDynamicObject(3475,226.2000000,571.5000000,7.6000000,0.0000000,0.0000000,119.3120000); //object(vgsn_fncelec_pst) (2)
	CreateDynamicObject(3475,221.5000000,568.7999900,7.6000000,0.0000000,0.0000000,120.0750000); //object(vgsn_fncelec_pst) (3)
	CreateDynamicObject(3475,216.7000000,566.2000100,7.6000000,0.0000000,0.0000000,118.5430000); //object(vgsn_fncelec_pst) (4)
	CreateDynamicObject(3475,214.1000100,564.7999900,7.6000000,0.0000000,0.0000000,118.5420000); //object(vgsn_fncelec_pst) (5)
	CreateDynamicObject(3475,211.3999900,560.4000200,7.6000000,0.0000000,0.0000000,182.4230000); //object(vgsn_fncelec_pst) (6)
	CreateDynamicObject(3475,212.8999900,554.7000100,7.6000000,0.0000000,0.0000000,208.3730000); //object(vgsn_fncelec_pst) (7)
	CreateDynamicObject(3475,219.5000000,543.2999900,7.6000000,0.0000000,0.0000000,209.1350000); //object(vgsn_fncelec_pst) (8)
	CreateDynamicObject(3475,223.7000000,540.4000200,7.6000000,0.0000000,0.0000000,274.0080000); //object(vgsn_fncelec_pst) (9)
	CreateDynamicObject(3475,229.0000000,542.0999800,7.6000000,0.0000000,0.0000000,299.1930000); //object(vgsn_fncelec_pst) (10)
	CreateDynamicObject(3475,233.8000000,544.9000200,7.6000000,0.0000000,0.0000000,300.7170000); //object(vgsn_fncelec_pst) (11)
	CreateDynamicObject(3475,238.8000000,547.9000200,7.6000000,0.0000000,0.0000000,299.1860000); //object(vgsn_fncelec_pst) (12)
	CreateDynamicObject(3475,243.8999900,550.7999900,7.6000000,0.0000000,0.0000000,299.1850000); //object(vgsn_fncelec_pst) (13)
	CreateDynamicObject(1259,143.5000000,694.7000100,19.5000000,0.0000000,0.0000000,26.7150000); //object(billbd1) (1)
	CreateDynamicObject(978,114.5000000,675.5000000,5.5000000,0.0000000,0.0000000,30.8410000); //object(sub_roadright) (2)
	CreateDynamicObject(978,114.5000000,675.5999800,5.5000000,0.0000000,0.0000000,210.0750000); //object(sub_roadright) (3)
	CreateDynamicObject(978,122.4000000,680.0999800,5.5000000,0.0000000,0.0000000,30.6060000); //object(sub_roadright) (4)
	CreateDynamicObject(978,122.4000000,680.2999900,5.5000000,0.0000000,0.0000000,210.6790000); //object(sub_roadright) (5)
	CreateDynamicObject(978,128.5000000,683.7999900,5.5000000,0.0000000,0.0000000,30.6020000); //object(sub_roadright) (6)
	CreateDynamicObject(978,128.5000000,683.7998000,5.5000000,0.0000000,0.0000000,210.5250000); //object(sub_roadright) (7)
	CreateDynamicObject(978,136.6000100,688.7000100,5.5000000,0.0000000,0.0000000,210.5200000); //object(sub_roadright) (8)
	CreateDynamicObject(978,136.5996100,688.6992200,5.5000000,0.0000000,0.0000000,30.5200000); //object(sub_roadright) (9)
	CreateDynamicObject(978,144.3999900,693.2999900,5.5000000,0.0000000,0.0000000,30.5150000); //object(sub_roadright) (10)
	CreateDynamicObject(978,144.3994100,693.2998000,5.5000000,0.0000000,0.0000000,210.5150000); //object(sub_roadright) (11)
	CreateDynamicObject(978,149.0000000,678.7000100,5.5000000,0.0000000,0.0000000,108.1470000); //object(sub_roadright) (12)
	CreateDynamicObject(978,149.0000000,678.7000100,6.1000000,0.0000000,0.0000000,105.0930000); //object(sub_roadright) (13)
	CreateDynamicObject(978,149.0000000,678.7000100,6.7000000,0.0000000,0.0000000,105.0930000); //object(sub_roadright) (14)
	CreateDynamicObject(978,150.8000000,686.2999900,5.8000000,0.0000000,0.0000000,44.7950000); //object(sub_roadright) (15)
	CreateDynamicObject(978,150.8999900,686.2999900,6.4000000,0.0000000,0.0000000,44.7930000); //object(sub_roadright) (16)
	CreateDynamicObject(978,150.8999900,686.2000100,6.7000000,0.0000000,0.0000000,42.5030000); //object(sub_roadright) (17)
	CreateDynamicObject(978,129.7000000,671.7000100,5.5000000,0.0000000,0.0000000,0.5210000); //object(sub_roadright) (18)
	CreateDynamicObject(978,120.6000000,669.9000200,5.5000000,0.0000000,0.0000000,21.1250000); //object(sub_roadright) (19)
	CreateDynamicObject(978,120.5996100,669.8994100,5.5000000,0.0000000,0.0000000,201.1210000); //object(sub_roadright) (20)
	CreateDynamicObject(978,129.8000000,671.7000100,5.5000000,0.0000000,0.0000000,178.9870000); //object(sub_roadright) (21)
	CreateDynamicObject(978,129.8000000,671.7000100,6.2000000,0.0000000,0.0000000,178.9840000); //object(sub_roadright) (22)
	CreateDynamicObject(978,129.8000000,671.7000100,6.2000000,0.0000000,0.0000000,358.9840000); //object(sub_roadright) (23)
	CreateDynamicObject(978,129.8000000,671.7000100,6.8000000,0.0000000,0.0000000,358.9840000); //object(sub_roadright) (24)
	CreateDynamicObject(978,129.7998000,671.6992200,6.8000000,0.0000000,0.0000000,179.0610000); //object(sub_roadright) (25)
	CreateDynamicObject(978,129.7998000,671.6992200,6.8000000,0.0000000,0.0000000,179.0610000); //object(sub_roadright) (26)
	CreateDynamicObject(978,120.6000000,669.9000200,5.5000000,0.0000000,0.0000000,201.1210000); //object(sub_roadright) (27)
	CreateDynamicObject(978,120.6000000,669.9000200,6.4000000,0.0000000,0.0000000,201.1210000); //object(sub_roadright) (28)
	CreateDynamicObject(978,120.5996100,669.8994100,6.4000000,0.0000000,0.0000000,21.1210000); //object(sub_roadright) (29)
	CreateDynamicObject(978,120.6000000,669.9000200,7.0000000,0.0000000,0.0000000,21.1160000); //object(sub_roadright) (30)
	CreateDynamicObject(978,120.5996100,669.8994100,7.0000000,0.0000000,0.0000000,200.3520000); //object(sub_roadright) (31)
	CreateDynamicObject(8843,124.7000000,685.5999800,4.9000000,0.0000000,0.0000000,301.5270000); //object(arrows01_lvs) (1)
	CreateDynamicObject(8843,133.8999900,691.2999900,5.0000000,0.0000000,0.0000000,301.5250000); //object(arrows01_lvs) (2)
	CreateDynamicObject(1290,110.0000000,672.9000200,10.7000000,0.0000000,0.0000000,309.5460000); //object(lamppost2) (1)
	CreateDynamicObject(7662,72.8000000,653.5000000,5.5000000,0.0000000,0.0000000,296.9470000); //object(miragehedge14) (1)
	CreateDynamicObject(3463,79.9000000,657.2000100,4.9000000,0.0000000,0.0000000,297.8650000); //object(vegaslampost2) (1)
	CreateDynamicObject(5269,261.7999900,593.0000000,7.6000000,0.0000000,0.0000000,300.1550000); //object(las2dkwar05) (1)
	CreateDynamicObject(5269,254.8999900,589.0000000,7.6000000,0.0000000,0.0000000,300.1520000); //object(las2dkwar05) (2)
	CreateDynamicObject(5269,248.3000000,585.2000100,7.6000000,0.0000000,0.0000000,300.1520000); //object(las2dkwar05) (3)
	CreateDynamicObject(5269,241.3999900,581.2999900,7.6000000,0.0000000,0.0000000,300.1520000); //object(las2dkwar05) (4)
	CreateDynamicObject(5269,236.7000000,578.5999800,7.6000000,0.0000000,0.0000000,300.1520000); //object(las2dkwar05) (5)
	CreateDynamicObject(2934,259.0000000,597.4000200,6.7000000,0.0000000,0.0000000,299.1600000); //object(kmb_container_red) (1)
	CreateDynamicObject(2934,260.5000000,594.9000200,6.7000000,0.0000000,0.0000000,299.1580000); //object(kmb_container_red) (2)
	CreateDynamicObject(2934,259.2000100,597.5000000,9.5000000,0.0000000,0.0000000,299.1580000); //object(kmb_container_red) (3)
	CreateDynamicObject(1226,205.3999900,571.0000000,9.1000000,0.0000000,0.0000000,29.9230000); //object(lamppost3) (2)
	CreateDynamicObject(1226,195.0000000,565.2000100,9.1000000,0.0000000,0.0000000,210.1550000); //object(lamppost3) (3)
	CreateDynamicObject(8671,24.5996100,215.8994100,0.5000000,0.0000000,0.0000000,147.4970000); //object(vgseland26_lvs) (1)
	CreateDynamicObject(987,-20.7998000,198.5996100,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (1)
	CreateDynamicObject(987,-16.0000000,206.2000000,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (2)
	CreateDynamicObject(987,-11.8000000,213.0000000,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (3)
	CreateDynamicObject(987,-5.7000000,222.8000000,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (4)
	CreateDynamicObject(987,-1.3000000,229.8000000,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (5)
	CreateDynamicObject(987,3.4000000,237.3000000,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (6)
	CreateDynamicObject(987,6.1000000,241.6000100,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (7)
	CreateDynamicObject(987,9.5000000,246.8999900,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (8)
	CreateDynamicObject(987,9.6000000,247.1000100,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (9)
	CreateDynamicObject(987,15.3000000,255.6000100,0.1000000,0.0000000,0.0000000,57.8650000); //object(elecfence_bar) (10)
	CreateDynamicObject(987,21.4000000,264.6000100,0.1000000,0.0000000,0.0000000,327.8890000); //object(elecfence_bar) (11)
	CreateDynamicObject(987,29.2000000,259.7000100,0.1000000,0.0000000,0.0000000,327.8870000); //object(elecfence_bar) (12)
	CreateDynamicObject(987,33.3000000,257.1000100,0.1000000,0.0000000,0.0000000,327.8870000); //object(elecfence_bar) (13)
	CreateDynamicObject(987,41.5000000,252.0000000,0.1000000,0.0000000,0.0000000,327.8870000); //object(elecfence_bar) (14)
	CreateDynamicObject(987,49.4000000,247.3000000,0.1000000,0.0000000,0.0000000,327.8870000); //object(elecfence_bar) (15)
	CreateDynamicObject(987,55.9000000,243.2000000,0.1000000,0.0000000,0.0000000,327.8870000); //object(elecfence_bar) (16)
	CreateDynamicObject(987,60.9000000,239.8000000,0.1000000,0.0000000,0.0000000,327.8870000); //object(elecfence_bar) (17)
	CreateDynamicObject(987,71.5000000,234.5000000,0.1000000,0.0000000,0.0000000,237.1480000); //object(elecfence_bar) (18)
	CreateDynamicObject(987,67.1000000,228.0000000,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (19)
	CreateDynamicObject(987,62.0000000,220.1000100,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (20)
	CreateDynamicObject(987,58.3000000,214.1000100,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (21)
	CreateDynamicObject(987,56.6000000,211.3000000,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (22)
	CreateDynamicObject(987,52.8000000,205.7000000,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (23)
	CreateDynamicObject(987,49.2000000,199.8999900,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (24)
	CreateDynamicObject(987,45.8000000,194.7000000,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (25)
	CreateDynamicObject(987,42.6000000,189.8000000,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (26)
	CreateDynamicObject(987,39.1000000,183.8999900,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (27)
	CreateDynamicObject(987,36.0000000,178.8999900,0.1000000,0.0000000,0.0000000,237.1450000); //object(elecfence_bar) (28)
	CreateDynamicObject(987,29.9000000,169.3000000,0.1000000,0.0000000,0.0000000,147.9330000); //object(elecfence_bar) (29)
	CreateDynamicObject(987,16.0000000,178.0000000,0.1000000,0.0000000,0.0000000,328.4820000); //object(elecfence_bar) (30)
	CreateDynamicObject(7496,6.5000000,191.0000000,3.9000000,0.0000000,0.0000000,57.5270000); //object(vgnhseing44) (1)
	CreateDynamicObject(3568,33.3000000,230.3999900,2.9000000,0.0000000,0.0000000,328.3140000); //object(lasntrk2) (1)
	CreateDynamicObject(3568,41.2000000,225.5000000,2.9000000,0.0000000,0.0000000,328.3100000); //object(lasntrk2) (2)
	CreateDynamicObject(8879,33.7000000,222.3999900,6.4000000,0.0000000,0.0000000,327.4200000); //object(vgsecnstrct08) (1)
	CreateDynamicObject(5126,24.3000000,178.0000000,15.2000000,0.0000000,0.0000000,56.6330000); //object(dockcranescale0) (1)
	CreateDynamicObject(8851,1.6992200,197.7998000,0.6000000,0.0000000,0.0000000,327.5960000); //object(vgeplntr01_lvs) (1)
	CreateDynamicObject(8851,1.7000000,197.8000000,0.6000000,0.0000000,0.0000000,328.1840000); //object(vgeplntr01_lvs) (2)
	CreateDynamicObject(8851,13.0000000,215.7000000,0.6000000,0.0000000,0.0000000,327.5900000); //object(vgeplntr01_lvs) (1)
	CreateDynamicObject(1696,-6.7000000,190.3000000,0.5000000,0.0000000,0.0000000,151.3180000); //object(roofstuff15) (1)
	CreateDynamicObject(1696,-11.5000000,192.8999900,0.5000000,0.0000000,0.0000000,151.3150000); //object(roofstuff15) (2)
	CreateDynamicObject(1696,-12.8000000,193.6000100,0.5000000,0.0000000,0.0000000,151.3150000); //object(roofstuff15) (3)
	CreateDynamicObject(987,-3.0000000,188.5000000,-0.3000000,0.0000000,0.0000000,330.9420000); //object(elecfence_bar) (1)
	CreateDynamicObject(987,6.9000000,183.0000000,-0.3000000,0.0000000,0.0000000,328.6510000); //object(elecfence_bar) (1)
	CreateDynamicObject(1696,-9.5000000,185.0000000,1.4000000,343.2080000,0.0000000,151.4490000); //object(roofstuff15) (4)
	CreateDynamicObject(1696,-12.4000000,179.6000100,1.5000000,340.9180000,0.0000000,151.4470000); //object(roofstuff15) (5)
	CreateDynamicObject(1696,-14.2000000,187.6000100,1.4000000,343.2070000,0.0000000,151.4470000); //object(roofstuff15) (6)
	CreateDynamicObject(1696,-15.6000000,188.3999900,1.4000000,343.2070000,0.0000000,151.4470000); //object(roofstuff15) (7)
	CreateDynamicObject(1696,-16.8000000,182.0000000,1.5000000,340.9170000,0.0000000,151.4410000); //object(roofstuff15) (8)
	CreateDynamicObject(1696,-18.6000000,183.1000100,1.5000000,340.9170000,0.0000000,151.4410000); //object(roofstuff15) (9)
	CreateDynamicObject(1290,7.2000000,206.8999900,6.8000000,0.0000000,0.0000000,330.9950000); //object(lamppost2) (1)
	CreateDynamicObject(1290,18.8000000,224.5000000,6.3000000,0.0000000,0.0000000,330.9910000); //object(lamppost2) (2)
	CreateDynamicObject(974,-18.3000000,197.1000100,2.9000000,0.0000000,0.0000000,331.4980000);
	return 1;
}

public OnGameModeExit()
{
        return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerInterior(playerid,0);
	SetPlayerPos(playerid,-2185.3379,-215.7184,36.5156);
	SetPlayerFacingAngle(playerid,1.2634);
	SetPlayerCameraPos(playerid,-2185.4082,-210.2631,36.5156);
	SetPlayerCameraLookAt(playerid,-2185.3379,-215.7184,36.5156);
	SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
	PlayerPlaySound(playerid, 1183, 0,0,0);
	switch(classid)
	{
    case 0,1,2,3:{
	 GameTextForPlayer(playerid, "~b~Truck Driver", 3000, 3);
	 SetPlayerTeam(playerid,TEAM_TRUCKER);
	 }
    case 4,5,6,7,8,9,10:{
	 GameTextForPlayer(playerid, "~r~Police", 3000, 3);
	 SetPlayerTeam(playerid,TEAM_POLICE);
    }
    }
	return 1;
}

public OnPlayerConnect(playerid)
{
    GodMode[playerid] = 0;
    T_OnMission[playerid] = 0;
	PlayerInfo[playerid][pFly] = 0;
    if(fexist(UserPath(playerid)))
    {
        INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
    }
    else
    {
        new msg[128],name[30];
		GetPlayerName(playerid,name,sizeof(name));
		format(msg,sizeof(msg),"%s has joined Brutal Haulers for the first time! Welcome!",name);
        SendClientMessageToAll(COLOR_GREY,msg);
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Level",PlayerInfo[playerid][pLevel]);
    INI_WriteInt(File,"Score",GetPlayerScore(playerid));
    INI_Close(File);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
    PlayerPlaySound(playerid, 1184, 0.0, 0.0, 0.0);
    if(GetPlayerTeam(playerid) == TEAM_TRUCKER)
    {
        SetPlayerColor(playerid, COLOR_GREEN);
    }
	else if (GetPlayerTeam(playerid) == TEAM_POLICE)
	{
		SetPlayerColor(playerid, COLOR_BLUE);
	}
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
        return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
        return 1;
}

public OnPlayerText(playerid, text[])
{
	SetPlayerChatBubble(playerid, text, COLOR_LIGHTBLUE, 50.0, 200);
        return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
        if (strcmp("/mycommand", cmdtext, true, 10) == 0)
        {
                // Do something here
                return 1;
        }
        return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    KillTimer(nitrotimer[playerid]);
    RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
        return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	if (newstate == 2 || newstate == 3){
	new String[128],vehicleid;
	vehicleid = GetPlayerVehicleID(playerid);
    format(String,sizeof(String),"%s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
    GameTextForPlayer(playerid, String, 3000, 1);
    }
        return 1;
}

public OnPlayerEnterCheckpoint(playerid)
    {
            CheckpointEntered(playerid);
            return 1;
    }

public OnPlayerLeaveCheckpoint(playerid)
{
        return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
        return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
        return 1;
}

public OnRconCommand(cmd[])
{
        return 1;
}

public OnPlayerRequestSpawn(playerid)
{
        return 1;
}

public OnObjectMoved(objectid)
{
        return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
        return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
        return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
        return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
        return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
        return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
        return 1;
}

public OnPlayerExitedMenu(playerid)
{
        return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
        return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
        return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
        return 1;
}

public OnPlayerUpdate(playerid)
{
        return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
        return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
        return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
        return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
        return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch( dialogid )
    {
        case DIALOG_REGISTER:
        {
            if (!response) return Kick(playerid);
            if(response)
            {
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
                new INI:File = INI_Open(UserPath(playerid));
                INI_SetTag(File,"data");
                INI_WriteInt(File,"Password",udb_hash(inputtext));
                INI_WriteInt(File,"Cash",0);
                INI_WriteInt(File,"Level",0);
                INI_WriteInt(File,"Score",0);
                INI_Close(File);

                ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Great!",""COL_GREEN"Your account has been sucessfully registered!","Ok","");
               	ForceClassSelection(playerid);
				TogglePlayerSpectating(playerid,true);
				TogglePlayerSpectating(playerid,false);
                
                        }
        }

        case DIALOG_LOGIN:
        {
            if ( !response ) return Kick ( playerid );
            if( response )
            {
                if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                {
                    INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                    GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
                    SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
                    SendClientMessage(playerid,COLOR_GREEN,"You have been sucessfully logged into your account!");
                }
                else
                {
                    SendClientMessage(playerid,COLOR_RED,"You have been kicked for entering wrong password!");
                    Kick(playerid);
                }
                return 1;
            }
        }
    }
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
        return 1;
}

CMD:fly(playerid,params[])
{
	if(PlayerInfo[playerid][pLevel] < 1) return error
	if(PlayerInfo[playerid][pFly] == 0){
	SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);
	PlayerInfo[playerid][pFly] = 1;
	SendClientMessage(playerid,COLOR_GREEN,"Fly mode: ENABLED");
	}
	else{
 	new Float:X,Float:Y,Float:Z;
  	GetPlayerPos(playerid,X,Y,Z);
   	SetPlayerPos(playerid, X, Y, Z);
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
    PlayerInfo[playerid][pFly] = 0;
   	SendClientMessage(playerid,COLOR_GREEN,"Fly mode: DISABLED");
    }
	return 1;
}
CMD:setlevel(playerid,params[])
{
	new target,level,msg[128],name[30],name2[30];
	if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"You don't have permission to use this command!");
  	if(!IsPlayerConnected(target)) return SendClientMessage(playerid,COLOR_RED,"The player must be connected.");
	if sscanf(params,"ui",target,level) *then SendClientMessage(playerid,COLOR_RED,"USAGE: /setlevel <playerid> <Level 0-3>");
	else{
	if (level >= 4 || level < 0) return SendClientMessage(playerid,COLOR_RED,"Please choose a value between 0 and 3");
	GetPlayerName(playerid,name,sizeof(name));
	GetPlayerName(target,name2,sizeof(name2));
	PlayerInfo[target][pLevel] = level;
	format(msg,sizeof(msg),"%s has set %s's level to %i",name,name2,level);
	SendClientMessageToAll(COLOR_LIGHTBLUE,msg);
	}
	return 1;
}
CMD:admins(playerid,params[])
{
    new Count, string[128],n[MAX_PLAYER_NAME];
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "__________|Admins|__________");
    foreach(Player, i)
    {
        if(PlayerInfo[i][pLevel] >=1) {
            GetPlayerName(i,n,sizeof(n));
            format(string,sizeof(string),"%s (Level: %i)",n,PlayerInfo[i][pLevel]);
            SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
            Count++;
        }
    }
    if(Count == 0) SendClientMessage(playerid, COLOR_LIGHTBLUE, "No admins online.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "____________________________");
    return 1;
}
CMD:reclass(playerid,params[])
{
	ForceClassSelection(playerid);
	TogglePlayerSpectating(playerid,true);
	TogglePlayerSpectating(playerid,false);
	return 1;
}
CMD:veh(playerid, params[]) {

	new vehid,vehicle;
	if(PlayerInfo[playerid][pLevel] < 1) return error
	if(sscanf(params, "i", vehid)) SendClientMessage(playerid, COLOR_GREY, "USAGE: /veh <carid>");
	else if (vehid < 400 || vehid > 611) SendClientMessage(playerid, COLOR_GREY, "[ERROR] Invalid car id! [ Car ID's range from 400 - 611 ]");
	else
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(playerid, x, y, z);
		vehicle = CreateVehicle(vehid, x + 3, y, z, 0, 0,0, -1);
		PutPlayerInVehicle(playerid,vehicle,0);
		SendClientMessage(playerid, COLOR_GREEN, "Car spawned!");
	}
	return 1;
}
CMD:restart(playerid,params[])
{
	new reason,msg[128];
    if(!IsPlayerAdmin(playerid)) return error
	if(sscanf(params,"s[64]",reason)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"USAGE:/restart [reason]");
	format(msg,sizeof(msg),"The server will restart in 1 minute. Reason: %s",reason);
	SetTimer("restart",60000,false);
	SendClientMessageToAll(COLOR_LIGHTBLUE,msg);
	GameTextForAll("Server restart in 1 minute", 5000, 4);
	print(msg);
	return savedata(playerid);
}
CMD:detach(playerid,params[])
{
	new vehicleid = GetPlayerVehicleID(playerid);
	if(!IsTrailerAttachedToVehicle(vehicleid)) return SendClientMessage(playerid,-1,"No trailer detected");
	DetachTrailerFromVehicle(vehicleid);
	return 1;
}
CMD:kick(playerid,params[])
{
        if(PlayerInfo[playerid][pLevel] < 1) return error
        new user,reason,string[124],name[30];
        if(sscanf(params,"us[64]",user,reason)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"USAGE:/kick [playerid] [reason]");
        if(!IsPlayerConnected(user)) return SendClientMessage(playerid,COLOR_RED,"That player is not online.");
        GetPlayerName(user,name,sizeof(name));
        format(string,sizeof(string),"%s has been kicked by an admin. Reason %s",name,reason);
        print(string);
        SendClientMessageToAll(COLOR_WHITE,string);
        Kick(user);
        return 1;
}
CMD:clearchat(playerid,params[])
{
    if(PlayerInfo[playerid][pLevel] < 1) return error
	new string[124],name[30];
	for(new i = 0; i < 200; i++) SendClientMessageToAll(0x00000000," ");
	GetPlayerName(playerid,name,sizeof(name));
	format(string,sizeof(string),"Chat has been cleared by %s.",name);
	SendClientMessageToAll(COLOR_LIGHTBLUE,string);
	print(string);
	return 1;
}
CMD:work(playerid,params[])
{
	if (GetPlayerTeam(playerid) == TEAM_TRUCKER) return T_NewJob(playerid);
	return 1;
}
CMD:stopwork(playerid,params[])
{
	if (GetPlayerTeam(playerid) == TEAM_TRUCKER) return StopWork(playerid);
	return 1;
}
CMD:flip(playerid,params[])
{
	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"You are not in a vehicle.");
    new currentveh;
    new Float:angle;
    currentveh = GetPlayerVehicleID(playerid);
    GetVehicleZAngle(currentveh, angle);
    SetVehicleZAngle(currentveh, angle);
    SendClientMessage(playerid, 0xFFFFFFFF, "Your vehicle has been flipped.");
    return 1;
  }
forward NitroReset(playerid);
public NitroReset(playerid)
{
    AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
    return 1;
}
CMD:nos(playerid,params[])
{
    if(PlayerInfo[playerid][pLevel] < 1) return error
	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"You are not in a vehicle.");
		nitrotimer[playerid] = SetTimerEx("NitroReset", 3000, true, "i", playerid);
		AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
		SendClientMessage(playerid, COLOR_LIMEGREEN, "Nos installed to car.");
		GameTextForPlayer(playerid, "~y~HOLD ~b~'~r~LMB~b~' ~y~FOR UNLIMITED NOS", 3000, 4);
		return 1;
 }
CMD:getpos(playerid,params[])
{
	new StrGetPos[150], Float:X, Float:Z, Float:Y;
	GetPlayerPos(playerid, X, Y, Z);
	format(StrGetPos, sizeof(StrGetPos),"Your Current Position: {0080FF}%f, %f, %f,", X, Y, Z);
	SendClientMessage(playerid, COLOR_WHITE, StrGetPos);
	return 1;
}
CMD:ban(playerid,params[])
{

	new
		id,
		reason[64];
	if (PlayerInfo[playerid][pLevel] <= 1) return error
	if (sscanf(params, "uz", id, reason)) SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/ban <playerid/partname> <reason (optional)>\"");
	else if (id == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Player not found");
	else
	{
		BanEx(id, reason);
		format(reason, sizeof (reason), "You have been banned%s%s.", reason[0] ? (" for: ") : (""), reason);
		SendClientMessage(id, 0xFF0000AA, reason);
		SendClientMessage(playerid, 0x00FF00AA, "Player banned");
	}
	return 1;
}
forward savedata(playerid);
public savedata(playerid)
{
	SendClientMessageToAll(COLOR_LIMEGREEN,"Player stats and data have been automatically saved.");
    foreach (new i : Player)
	{
	if(IsPlayerConnected(i)){
 	new INI:File = INI_Open(UserPath(i));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(i));
    INI_WriteInt(File,"Level",PlayerInfo[i][pLevel]);
    INI_WriteInt(File,"Score",GetPlayerScore(i));
    INI_Close(File);
    }
    }
    return 1;
 }
forward restart(playerid);
public restart(playerid)
{
	SendRconCommand("gmx");
	return 1;
}
CMD:go(playerid,params[])
{
	new id,Float:x,Float:y,Float:z;
	if (PlayerInfo[playerid][pLevel] < 1) return error
	if (sscanf(params, "u", id)) SendClientMessage(playerid, COLOR_RED,"USAGE: /go <playerid>");
	GetPlayerPos(id,x,y,z);
	SetPlayerPos(playerid,x,y,z);
	SendClientMessage(playerid,COLOR_LIMEGREEN,"Whoosh!");
	SendClientMessage(id,COLOR_LIMEGREEN,"Whoosh!");
	return 1;
}
CMD:get(playerid,params[])
{
	new id,Float:x,Float:y,Float:z;
	if (PlayerInfo[playerid][pLevel] < 1) return error
	if (sscanf(params, "u", id)) SendClientMessage(playerid, COLOR_RED,"USAGE: /get <playerid>");
	GetPlayerPos(playerid,x,y,z);
	SetPlayerPos(id,x,y,z);
	SendClientMessage(id,COLOR_LIMEGREEN,"Whoosh!");
	SendClientMessage(playerid,COLOR_LIMEGREEN,"Whoosh!");
	return 1;
}
CMD:repairall(playerid,params[])
{
    if(PlayerInfo[playerid][pLevel] < 1) return error
    foreach (new i : Player)
    {
        if(IsPlayerInAnyVehicle(i)) RepairVehicle(GetPlayerVehicleID(i));
        }
        SendClientMessageToAll(-1,"All occupied vehicles have been repaired by admin");
        return 1;
}
CMD:repair(playerid,params[])
{
    if(PlayerInfo[playerid][pLevel] < 1) return error
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED,"You must be in a vehicle.");
    new vehicleid;
    vehicleid = GetPlayerVehicleID(playerid);
    RepairVehicle(vehicleid);
    SendClientMessage(playerid,COLOR_LIMEGREEN,"Your vehicle has been repaired.");
    return 1;
}
CMD:pm(playerid, params[])
{
    new str[256], str2[256], id, Name1[MAX_PLAYER_NAME], Name2[MAX_PLAYER_NAME];
    if(sscanf(params, "us", id, str2))
    {
        SendClientMessage(playerid, 0xFF0000FF, "Usage: /pm <id> <message>");
        return 1;
    }
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Player not connected");
    if(playerid == id) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: You cannot pm yourself!");
    {
        GetPlayerName(playerid, Name1, sizeof(Name1));
        GetPlayerName(id, Name2, sizeof(Name2));
        format(str, sizeof(str), "PM To %s (ID: %d): %s", Name2, id, str2);
        SendClientMessage(playerid, COLOR_GREY, str);
        format(str, sizeof(str), "PM From %s (ID: %d): %s", Name1, playerid, str2);
        SendClientMessage(id, COLOR_GREY, str);
        PlayerPlaySound(id,1085,0.0,0.0,0.0);
    }
    return 1;
}
CMD:tppos(playerid, params[])
{
	new Float:x, Float:y, Float:z;
	if notadmin return error
	if (sscanf(params,"fff",x,y,z)) return SendClientMessage(playerid, COLOR_RED,"USAGE: /tppos X Y Z");
	SetPlayerPos(playerid,x,y,z);
	return 1;
}
CMD:eject(playerid,params[])
{
	new vehicleid,playerstate = GetPlayerState(playerid),target;
	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_YELLOW,"You're not in a vehicle");
    if(playerstate != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,COLOR_YELLOW,"You must be driving a vehicle.");
    if (sscanf(params,"u",target)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /eject <player>");
    if(!IsPlayerConnected(target)) return notconnected
	vehicleid = GetPlayerVehicleID(playerid);
    if(!IsPlayerInVehicle(target,vehicleid)) SendClientMessage(playerid, COLOR_RED, "Player is not in your vehicle.");
    else{
	RemovePlayerFromVehicle(target);
	SendClientMessage(playerid, COLOR_LIGHTBLUE,"Player ejected");
	GameTextForPlayer(target,"~r~EJECTED!",3000,5);
	}
	return 1;
}
CMD:god(playerid,params[])
{
	if (PlayerInfo[playerid][pLevel] < 3) return error
	if(GodMode[playerid] == 0){
	SetPlayerHealth(playerid, 100000);
	GodMode[playerid] = 1;
	SendClientMessage(playerid,COLOR_GREEN,"God mode: ENABLED");
	return 1;
	}
	if(GodMode[playerid] == 1){
	SetPlayerHealth(playerid, 100);
	GodMode[playerid] = 0;
	SendClientMessage(playerid,COLOR_GREEN,"God mode: DISABLED");
	return 1;
	}
	return 1;
}
Help much appreciated
Reply
#2

use the dini and easier!


pawn Код:
#define PATH "/user/%s.ini"
Save

pawn Код:
new pname[128];//OnPlayerDisconnect?
    new file[128];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), PATH,pname);
    if(!dini_Exists(file)) {
    }
    else {
   dini_IntSet(file, "Score", GetPlayerScore(playerid));
   }




load


pawn Код:
new pname[128];//OnPlayerConnect?
 new file[128];
 GetPlayerName(playerid, pname, sizeof(pname));
 format(file, sizeof(file), PATH,pname);
 if(!dini_Exists(file)) {
dini_Create(file);
dini_IntSet(file, "Score",0);
else {
SetPlayerScore(playerid, dini_Int(file, "Score"));
}
Reply
#3

Quote:
Originally Posted by _chimera_
Посмотреть сообщение
use the dini and easier!


pawn Код:
#define PATH "/user/%s.ini"
Save

pawn Код:
new pname[128];//OnPlayerDisconnect?
    new file[128];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), PATH,pname);
    if(!dini_Exists(file)) {
    }
    else {
   dini_IntSet(file, "Score", GetPlayerScore(playerid));
   }




load


pawn Код:
new pname[128];//OnPlayerConnect?
 new file[128];
 GetPlayerName(playerid, pname, sizeof(pname));
 format(file, sizeof(file), PATH,pname);
 if(!dini_Exists(file)) {
dini_Create(file);
dini_IntSet(file, "Score",0);
else {
SetPlayerScore(playerid, dini_Int(file, "Score"));
}
You sure that's better than Y_INI?
Reply
#4

better? no .. but I consider the easiest, to use take it as advice .
Reply
#5

Quote:
Originally Posted by _chimera_
Посмотреть сообщение
better? no .. but I consider the easiest, to use take it as advice .
Well i'm pretty much sure my system is setup correctly. :/
Reply
#6

Don't use dini... -__-

I would recommend you save the user's stats every time they gain score or money or one of their stats changes. So if the server was to restart/crash, then they won't lose any score/money or anything. Or you could set it on a timer to prevent having too much usage etc. (I don't know too much about usage so I won't go into it).

Looking through your code I noticed a few things that didn't belong. First of all, remove this from OnGameModeInit()
pawn Код:
SetTimer("savedata", 300000, true);
Place this AFTER your player logs in:
pawn Код:
SetTimerEx("savedata", 60000, true, "i", playerid);
So:
pawn Код:
SetTimerEx("savedata", 60000, true, "i", playerid);
SendClientMessage(playerid,COLOR_GREEN,"You have been sucessfully logged into your account!");
//etc etc.
EDIT:
There is no 'playerid' parameter in OnGameModeInit, so therefore your 'savedata' will be called with no parameters, meaning that no statistics are saved.
Reply
#7

Quote:
Originally Posted by BenzoAMG
Посмотреть сообщение
Don't use dini... -__-

I would recommend you save the user's stats every time they gain score or money or one of their stats changes. So if the server was to restart/crash, then they won't lose any score/money or anything. Or you could set it on a timer to prevent having too much usage etc. (I don't know too much about usage so I won't go into it).

Looking through your code I noticed a few things that didn't belong. First of all, remove this from OnGameModeInit()
pawn Код:
SetTimer("savedata", 300000, true);
Place this AFTER your player logs in:
pawn Код:
SetTimerEx("savedata", 60000, true, "i", playerid);
So:
pawn Код:
SetTimerEx("savedata", 60000, true, "i", playerid);
SendClientMessage(playerid,COLOR_GREEN,"You have been sucessfully logged into your account!");
//etc etc.
EDIT:
There is no 'playerid' parameter in OnGameModeInit, so therefore your 'savedata' will be called with no parameters, meaning that no statistics are saved.
Well savedata function is made to save everyone's stats
Код:
forward savedata(playerid);
public savedata(playerid)
{
	SendClientMessageToAll(COLOR_LIMEGREEN,"Player stats and data have been automatically saved.");
    foreach (new i : Player)
	{
	if(IsPlayerConnected(i)){
 	new INI:File = INI_Open(UserPath(i));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(i));
    INI_WriteInt(File,"Level",PlayerInfo[i][pLevel]);
    INI_WriteInt(File,"Score",GetPlayerScore(i));
    INI_Close(File);
    }
    }
    return 1;
 }
btw i removed parameter playerid from savedata, because i don't need it anyways.
Reply
#8

Right, well in that case:

pawn Код:
public OnGameModeInit()
{
    SetTimer("savedata", 60000, true); //I think 60 seconds is more suitable.
    //Rest of your stuff
    return 1;
}

forward savedata();
public savedata()
{
    foreach(Player, i)
    {
        if(!IsPlayerLoggedIn(i)) continue; //Replace 'IsPlayerLoggedIn' with your own. Remember, this is if(NOT LOGGED IN), so users aren't getting statistics that have been reset before login.
        INI_WriteInt(... /etc.
    }
    return 1;
}
Reply
#9

Quote:
Originally Posted by BenzoAMG
Посмотреть сообщение
Right, well in that case:

pawn Код:
public OnGameModeInit()
{
    SetTimer("savedata", 60000, true); //I think 60 seconds is more suitable.
    //Rest of your stuff
    return 1;
}

forward savedata();
public savedata()
{
    foreach(Player, i)
    {
        if(!IsPlayerLoggedIn(i)) continue; //Replace 'IsPlayerLoggedIn' with your own. Remember, this is if(NOT LOGGED IN), so users aren't getting statistics that have been reset before login.
        INI_WriteInt(... /etc.
    }
    return 1;
}
But if I just save stats when they finish mission do I even need the savedata function?
Reply
#10

No, not necessarily.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)