All pastes #897240 Raw Edit

Stuff

public text v1 · immutable
·published 2008-02-09 11:00 UTC
rendered paste body
#include <a_samp>
#include <core>
#include <float>
#include <Dini>
#include <dudb>
#include <dutils>

forward PayDay();
forward MedicCheck(playerid);
forward MedicMake(playerid);
forward MedicQuit(playerid);
forward	CopCheck(playerid);
forward CopMake(playerid);
forward CopQuit(playerid);
forward	FireCheck(playerid);
forward FireMake(playerid);
forward FireQuit(playerid);
forward	AgentCheck(playerid);
forward AgentMake(playerid);
forward AgentQuit(playerid);
forward	TaxiCheck(playerid);
forward TaxiMake(playerid);
forward TaxiQuit(playerid);
forward	PilotCheck(playerid);
forward PilotMake(playerid);
forward PilotQuit(playerid);




fdeleteline(filename[], line[]);
fcreate(filename[]);

new Job[MAX_PLAYERS];
new Jobcp[MAX_PLAYERS];
// Global stuff and defines for our gamemode.

static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player

new GoDown;
new Door;
new Tor;
new Float:Ang;
new Menu:HelpCall;
new Menu:Police;
new Menu:Medic;
new Menu:Firemen;
new Menu:SWAT;

// Stuff
#define PayDay_Amount 10000
// === [Some configuring] ===
#define JOIN_MESSAGES false
#define Leavemessages false
#define leavemessagecolor COLOR_RED
#define joinmessagecolor COLOR_RED

#define Level1Commands1 ">> /a [text], /clearchat, /kick [id] [reason], /akill [id], /warn [id] [reason], /getid [name]"
#define Level1Commands2 ">> /(un)freeze [id], /playerinfo [id], /asay [msg], /ip [id], /mute [id], /ajail [id] [time], /force [id]"
#define Level2Commands1 ">> /tele [teleportee id] [dest. id], /ban [id], /announce [msg], /giveweapon [id] [weaponid] [ammo]"
#define Level2Commands2 ">> /goto [id], /gethere [id], /eject [id], /sethealth [id] [amt], /setarmour [id] [amt] /healall, /armourall"
#define Level3Commands1 ">> /disarm [id], /disarmall, /explode [id], /time [0-23], /weather [weatherid], /getallhere"
#define Level3Commands2 ">> /setmoney [id] [amount], /jetpack, /setname [id] [name]"
#define Level4Commands1 ">> /setlevel [id] [lvl], /restart, /disarmall, /reloadbans, /reloadlogs, /mapname [name], /servername [name]"


// TEAMS
#define TEAM_GROVE 1
#define TEAM_VAGO 2
#define TEAM_BALLA 3
#define TEAM_AZ 4
#define TEAM_AGENT 5
#define TEAM_ADMIN 6

//COLORS
#define TEAM_GROVE_COLOR 0x33AA33AA
#define TEAM_VAGO_COLOR 0xFFFF00AA
#define TEAM_BALLA_COLOR 0x330066AA
#define TEAM_AZ_COLOR 0xF0F8FFAA
#define TEAM_AGENT_COLOR 0x000000AA
#define TEAM_ADMIN_COLOR 0xB8860BAA
#define COLOR_RED 0xAA3333AA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_ORANGE 0xFF9900AA
#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_LIMEGREEN 0x32CD32AA
#define COLOR_MIDNIGHTBLUE 0x191970AA
#define COLOR_MAROON 0x800000AA
#define COLOR_OLIVE 0x808000AA
#define COLOR_ORANGERED 0xFF4500AA
#define COLOR_PINK 0xFFC0CBAA
#define COLOR_SPRINGGREEN 0x00FF7FAA
#define COLOR_TOMATO 0xFF6347AA
#define COLOR_YELLOWGREEN 0x9ACD32AA
#define COLOR_MEDIUMAQUA 0x83BFBFAA
#define COLOR_MEDIUMMAGENTA 0x8B008BAA
#define COLOR_BRIGHTRED 0xDC143CAA
#define COLOR_SYSTEM 0xEFEFF7AA
#define COLOR_PURPLE 0x330066AA

// === [Pragma] ===
#pragma unused ret_memcpy

// === [Forward] ===
forward SetPlayerToTeamColor(playerid);
forward SetupPlayerForClassSelection(playerid);
forward SetPlayerTeamFromClass(playerid,classid);
forward ExitTheGameMode();
forward IsStringAName(string[]);
forward GetPlayerID(string[]);
forward SendMessageToAdmins(color,const string[]);
forward Restart();
forward Unjail(giveplayerid);
// === [Loops] ===
new Mute[MAX_PLAYERS];
new level[MAX_PLAYERS];
new aMessage[MAX_PLAYERS];
new freeze[MAX_PLAYERS];
new WarnedTimes[MAX_PLAYERS];
new logged[MAX_PLAYERS];


// === [Enum] ===
enum pInfo
{
    pAdmin,
}

new PlayerInfo[MAX_PLAYERS][pInfo];


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

main()
{
	print("\n----------------------------------");
	print("  Pirate Wars By Stephen          \n");
	print("----------------------------------\n");
}

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

public OnGameModeInit()
{
	SetGameModeText("ExTrEmE Mode");

    ShowPlayerMarkers(1);
	ShowNameTags(1);
	SetWorldTime(19);
	SetTimer("PayDay", 600000, 1);
	
	HelpCall = CreateMenu("Help call", 1, 150, 150, 100, 0);
	AddMenuItem(HelpCall, 0, "Police");
	AddMenuItem(HelpCall, 0, "Medic");
	AddMenuItem(HelpCall, 0, "Fireman");
	AddMenuItem(HelpCall, 0, "SWAT");
	
	Police = CreateMenu("Police", 1, 150, 150, 100, 0);
	AddMenuItem(Police, 0, "Shot");
	AddMenuItem(Police, 0, "Murderer");
	AddMenuItem(Police, 0, "Robbed");
	
	Medic = CreateMenu("Medic", 1, 150, 150, 100, 0);
	AddMenuItem(Medic, 0, "Injured");
	AddMenuItem(Medic, 0, "Someone Injured");
	AddMenuItem(Medic, 0, "All Injured");
	
	Firemen = CreateMenu("Fireman", 1, 150, 150, 100, 0);
	AddMenuItem(Firemen, 0, "Fire");
	
	SWAT = CreateMenu("Swat", 1, 150, 150, 100, 0);
	AddMenuItem(SWAT, 0, "Serial killer");
	AddMenuItem(SWAT, 0, "Bomber");

   	Tor = CreateObject(975, 1589.096069, -1638.025269, 14.111814, 0, 0, 0);

	AddPlayerClass(105,2492.4685,-1672.2130,13.3359,336.0040,22,999,30,999,28,999); // Grove
	AddPlayerClass(107,2501.4856,-1670.0846,13.3560,349.6059,22,999,30,999,28,999); // Grove
	AddPlayerClass(106,2488.9343,-1680.6752,13.3348,342.1489,22,999,30,999,28,999); // Grove
	AddPlayerClass(108,2217.0159,-1159.5983,25.7266,358.8520,22,999,30,999,28,999); // Vago
	AddPlayerClass(109,2216.8130,-1159.5121,25.7266,358.8520,22,999,30,999,28,999); // Vago
	AddPlayerClass(110,2216.7961,-1159.5057,25.7266,358.8520,22,999,30,999,28,999); // Vago
	AddPlayerClass(104,1827.9546,-1874.6033,13.5541,351.5783,22,999,30,999,28,999); // Balla
	AddPlayerClass(103,1827.9546,-1874.6033,13.5541,351.5783,22,999,30,999,28,999); // Balla
	AddPlayerClass(102,1828.0516,-1874.6609,13.5546,351.5783,22,999,30,999,28,999); // Balla
	AddPlayerClass(114,1711.8724,-1583.4283,13.5464,174.3330,22,999,30,999,28,999); // az
	AddPlayerClass(115,1711.8724,-1583.4283,13.5464,174.3330,22,999,30,999,28,999); // az
	AddPlayerClass(116,1711.8724,-1583.4283,13.5464,174.3330,22,999,30,999,28,999); // az
	AddPlayerClass(165,1546.2742,-1675.2444,13.5620,90.7201,22,999,30,999,28,999); // agent
	AddPlayerClass(217,3310.2212,-1934.3905,11.2627,177.8789,22,999,30,999,28,999); // admin

	GoDown = CreateObject(969, 2748.394287, -3066.668945, 13.171467, 0.0000, 0.0000, 264.6025); //
	Door = CreateObject(17951, 2762.845215, -3094.072754, 16.314705, 0.0000, 0.0000, 357.4217); //

    AddStaticVehicle(541,2472.9719,-1695.4534,13.1407,359.8709,58,16); //
    AddStaticVehicle(451,2516.4617,-1672.5715,13.6277,66.3001,125,16); //
    AddStaticVehicle(451,2228.1079,-1159.3789,25.4983,90.5948,125,16); //
    AddStaticVehicle(402,2205.7688,-1168.8456,25.5613,270.2618,90,90); //
    AddStaticVehicle(451,2496.7820,-1755.5762,13.1479,0.1185,16,16); //
    AddStaticVehicle(522,2452.6362,-1646.5504,13.0330,179.7462,7,79); // nrg
    AddStaticVehicle(521,2440.9153,-1642.1984,13.0243,180.1127,75,13); //
    AddStaticVehicle(451,2445.0198,-1642.7640,13.1629,177.1884,18,18); //
    AddStaticVehicle(522,2510.3201,-1687.0610,13.1304,48.8126,3,8); //
    AddStaticVehicle(522,2497.5601,-1647.2935,13.0958,184.5256,6,25); //
    AddStaticVehicle(522,2412.6982,-1717.6201,13.2903,175.5787,7,79); // NRG
    AddStaticVehicle(562,2416.5205,-1717.3832,13.3938,178.8364,17,1); // elegy
    AddStaticVehicle(562,2386.6377,-1927.6265,13.0417,359.9348,17,1); //
    AddStaticVehicle(559,2376.9871,-1927.6935,13.0391,179.0084,60,1); //
    AddStaticVehicle(550,2396.7603,-1927.5577,13.1728,359.4790,42,42); //
    AddStaticVehicle(550,2495.3110,-1995.5430,13.3350,180.0052,42,42); //
    AddStaticVehicle(451,2498.2227,-2023.5692,13.2532,1.0388,46,46); //
    AddStaticVehicle(451,2228.3743,-1173.6144,25.4264,90.7509,61,61); //
    AddStaticVehicle(415,2205.6855,-1161.0160,25.5063,270.4385,25,1); //
    AddStaticVehicle(451,2492.1448,-1755.7263,13.2079,2.2831,75,75); //
    AddStaticVehicle(562,2501.9771,-1953.4146,13.0846,359.7061,17,1); //
    AddStaticVehicle(506,2489.3237,-1952.8988,13.1347,359.4390,7,7); //
    AddStaticVehicle(522,2482.9861,-1953.6215,12.9855,358.8712,36,105); //
    AddStaticVehicle(522,2381.6836,-2015.0056,14.4043,270.0071,39,106); //
    AddStaticVehicle(522,2157.3599,-1797.5707,12.9426,265.2502,39,106); //
    AddStaticVehicle(451,2157.8821,-1801.8881,13.0799,268.7621,123,123); //
    AddStaticVehicle(426,2095.6030,-1797.9089,13.1282,87.5793,53,53); //
    AddStaticVehicle(596,1535.8269,-1679.2466,13.1041,178.9430,0,1); // cap spawn 1
    AddStaticVehicle(596,1535.9233,-1666.1522,13.1046,179.3573,0,1); // cap spawn 2
    AddStaticVehicle(596,1535.9365,-1672.6100,13.1031,179.5669,0,1); // cop car spawn 3
    AddStaticVehicle(596,1601.1667,-1684.0319,5.6110,89.4829,0,1); // cop car spawn 4
    AddStaticVehicle(596,1591.7263,-1709.7365,5.6119,0.5003,0,1); // cop car spawn 5
    AddStaticVehicle(601,1534.6608,-1644.4474,5.6494,180.6072,1,1); //
    AddStaticVehicle(581,1718.1694,-1614.8508,13.1447,357.7049,66,1); //
    AddStaticVehicle(581,1725.8605,-1615.0702,13.1426,359.7808,66,1); //
    AddStaticVehicle(562,1723.7180,-1611.0464,13.2068,359.1488,113,1); //
    AddStaticVehicle(562,1720.1270,-1611.0165,13.2066,359.7910,101,1); //
    AddStaticVehicle(411,1715.1553,-1578.2877,13.2739,180.4384,64,1); //
    AddStaticVehicle(411,1708.4354,-1578.3151,13.2740,179.6972,64,1); //
    AddStaticVehicle(451,2352.3245,-1185.9651,27.7933,180.7841,125,16); // vagos car
    AddStaticVehicle(451,1883.1598,-1369.2332,13.2769,268.2514,125,16); // stunter car
    AddStaticVehicle(451,1834.7052,-1870.8129,13.0940,0.1619,125,16); // biker car
    AddStaticVehicle(451,1699.2855,-2096.5144,13.2532,179.1972,125,16); // los aztacas car
    AddStaticVehicle(451,1182.9570,-1315.0782,13.2785,2.0912,125,16); // medic car
    AddStaticVehicle(451,258.6558,-1216.5505,75.0166,214.2757,125,16); // rich car
    AddStaticVehicle(603,248.0489,-1224.6903,75.1181,217.4466,75,77); // rich car 2
    AddStaticVehicle(411,282.6087,-1160.8950,80.6412,224.8127,112,1); // rich car 3
    AddStaticVehicle(411,346.8753,-1198.2043,76.2428,37.9072,112,1); // rich car 4
    AddStaticVehicle(416,1177.6628,-1307.8398,14.0212,268.6946,1,3); //
    AddStaticVehicle(416,1176.8754,-1338.5607,14.0754,270.8475,1,3); //
    AddStaticVehicle(562,1282.7782,-1293.6188,13.0299,1.0009,101,1); //
    AddStaticVehicle(562,1276.5453,-1293.5393,12.9763,0.8766,36,1); //
    AddStaticVehicle(562,1276.1611,-1382.1520,12.8660,179.9357,35,1); //
    AddStaticVehicle(562,1282.9939,-1382.0166,13.0165,179.2321,92,1); // 
    AddStaticVehicle(562,1837.9780,-1871.0184,13.0497,358.8051,92,1); //
    AddStaticVehicle(434,1839.9086,-1853.5010,13.3515,178.9397,12,12); //
    AddStaticVehicle(463,1836.7212,-1853.2740,12.9300,182.1040,84,84); //
    AddStaticVehicle(463,1841.2450,-1871.0826,12.9293,359.9516,84,84); //
    AddStaticVehicle(521,1844.4923,-1871.0415,12.9562,359.4178,87,118); //
    AddStaticVehicle(539,3011.6128,-1322.4840,1.0471,358.6463,70,86); //
	AddStaticVehicle(444,2701.1172,-3060.4377,14.0243,184.7115,32,66); //
	AddStaticVehicle(444,2687.9434,-3073.6816,14.0243,180.1827,32,66); //
	AddStaticVehicle(522,2719.0269,-3053.0579,13.2187,178.6977,3,3); //
	AddStaticVehicle(522,2720.2991,-3052.1753,13.2182,181.3392,3,3); //
	AddStaticVehicle(522,2722.0508,-3052.0342,13.2219,179.1486,3,3); //

    
    //Objects for pirateship
    CreateObject(1260, 2025.334106, -2770.327881, 13.085209, 0.0000, 351.4056, 103.1324);
	CreateObject(8493, 2021.467285, -2924.495605, 19.175880, 0.0000, 0.0000, 265.4620);
	CreateObject(8493, 2019.823120, -2946.789551, 19.094521, 0.0000, 0.0000, 265.4620);
	CreateObject(2780, 1985.335571, -2942.718750, -2.256461, 0.0000, 0.0000, 0.0000);
	CreateObject(2780, 1989.541748, -2921.525391, 1.268366, 0.0000, 0.0000, 0.0000);
	CreateObject(1448, 2010.720459, -2940.357422, 6.722838, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2010.828247, -2939.340088, 6.712166, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2010.914673, -2938.364746, 6.701493, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2010.989258, -2937.354248, 6.690820, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2011.074097, -2936.344482, 6.680145, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2011.150879, -2935.352783, 6.694472, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2011.249756, -2934.362793, 6.708798, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2011.344482, -2933.341064, 6.723124, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2011.441895, -2932.375977, 6.737450, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2011.538208, -2931.349121, 6.751775, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2011.635864, -2930.359619, 6.766101, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2011.728516, -2929.422119, 6.778321, 0.0000, 0.0000, 354.8434);
	CreateObject(1448, 2011.832275, -2928.487305, 6.792646, 0.0000, 0.0000, 354.8434);
	CreateObject(3399, 1966.332275, -2767.052246, 2.298753, 0.0000, 0.0000, 0.0000);
	CreateObject(10794, 1720.073730, -2857.596924, 10.347992, 0.0000, 325.6225, 0.0000);
	CreateObject(10795, 1712.731323, -2857.134277, 16.660732, 359.1406, 324.7631, 359.1406);
	CreateObject(10793, 1666.869263, -2857.647949, 8.369761, 0.0000, 34.3775, 180.4817);
	CreateObject(1461, 1759.547607, -2873.542725, 49.767151, 0.0000, 13.7510, 176.1846);
	CreateObject(2780, 1755.507446, -2883.585449, 81.626389, 0.0000, 0.0000, 0.0000);
	CreateObject(1231, 1732.280029, -2846.944336, 80.529747, 47.2690, 146.1043, 0.0000);
	CreateObject(2780, 1682.158813, -2872.689941, -9.234709, 0.0000, 0.0000, 0.0000);
	CreateObject(2780, 1682.505371, -2874.274414, -8.236647, 0.0000, 0.0000, 0.0000);
	CreateObject(900, 1672.470215, -2896.886963, -0.981657, 0.0000, 0.0000, 0.0000);
	CreateObject(900, 1689.210571, -2894.097900, -2.787343, 0.0000, 21.4859, 0.0000);
	CreateObject(906, 1675.760132, -2903.058350, 1.726799, 0.0000, 0.0000, 0.0000);
	CreateObject(16411, 1668.862061, -2904.581299, 3.196027, 0.0000, 0.0000, 0.0000);
	CreateObject(17033, 1667.682129, -2889.149170, -0.626896, 0.0000, 0.0000, 350.5462);
	CreateObject(850, 1669.319336, -2883.931396, 2.154366, 0.0000, 0.0000, 0.0000);
	CreateObject(18259, 2986.088135, -1878.748047, 0.417589, 0.0000, 0.0000, 0.0000);
	CreateObject(18001, 2985.735352, -1871.978638, 2.546899, 0.0000, 0.0000, 2.5783);
	CreateObject(18001, 2981.141113, -1874.817383, 2.576441, 0.0000, 0.0000, 92.8192);
	CreateObject(1504, 2981.134521, -1878.517822, 0.347650, 0.0000, 0.0000, 274.0563);
	CreateObject(1504, 2981.072998, -1878.522705, 1.133689, 0.0000, 0.0000, 275.7752);
	CreateObject(18001, 2981.506836, -1883.962402, 2.476440, 0.0000, 0.0000, 91.9597);
	CreateObject(18001, 2986.001221, -1887.920532, 2.551441, 0.0000, 0.0000, 182.2006);
	CreateObject(18001, 2990.573975, -1874.437988, 2.551441, 0.0000, 0.0000, 272.4414);
	CreateObject(18001, 2990.944092, -1881.966187, 2.501440, 0.0000, 0.0000, 272.4414);
	CreateObject(12842, 2988.522705, -1884.160400, 0.958199, 0.0000, 0.0000, 2.5783);
	CreateObject(12842, 2983.777832, -1884.382568, 0.966008, 0.0000, 0.0000, 2.5783);
	CreateObject(1670, 2986.553955, -1881.624268, 1.206437, 0.0000, 0.0000, 0.0000);
	CreateObject(1670, 2985.206787, -1883.300293, 1.239246, 0.0000, 0.0000, 0.0000);
	CreateObject(1670, 2986.644531, -1885.019653, 1.231437, 0.0000, 0.0000, 0.0000);
	CreateObject(1670, 2985.472168, -1886.814209, 1.239246, 0.0000, 0.0000, 0.0000);
	CreateObject(1977, 2981.703857, -1872.268677, 0.427074, 0.0000, 0.0000, 0.0000);
	CreateObject(2217, 2986.680176, -1883.615112, 1.269578, 336.7952, 17.1887, 4.2972);
	CreateObject(1895, 2990.638916, -1878.223877, 1.526942, 0.0000, 0.0000, 274.0563);
	CreateObject(2188, 2989.995117, -1878.166138, 1.389043, 0.0000, 0.0000, 274.0563);
	CreateObject(1545, 2990.589844, -1875.730103, 1.406492, 0.0000, 0.0000, 273.1969);
	CreateObject(1551, 2989.868408, -1878.634644, 1.604138, 0.0000, 0.0000, 0.0000);
	CreateObject(16151, 2983.822754, -1872.901489, 0.895280, 0.0000, 0.0000, 90.2409);
	CreateObject(1486, 2985.358398, -1874.006348, 1.645647, 0.0000, 0.0000, 0.0000);
	CreateObject(1840, 2985.971680, -1874.018555, 1.498513, 0.0000, 0.0000, 90.2409);
	CreateObject(1723, 2989.880371, -1872.345215, 0.369754, 0.0000, 0.0000, 274.0563);
	CreateObject(10794, 1486.932861, -3107.557617, -38.251015, 2.5783, 334.2169, 0.0000);
	CreateObject(10795, 1485.793701, -3110.063477, -37.638157, 0.0000, 329.0603, 0.0000);
	CreateObject(10794, 1186.197754, -3006.444824, -66.671959, 0.0000, 0.0000, 0.0000);
	CreateObject(10795, 1184.656738, -3006.312256, -56.853779, 0.0000, 0.0000, 0.0000);
	CreateObject(10793, 1111.660278, -3006.396729, -38.355042, 0.0000, 0.0000, 0.0000);
	CreateObject(10794, 1227.219238, -3160.162354, 1.911114, 0.0000, 0.0000, 0.0000);
	CreateObject(10795, 1225.990845, -3160.131348, 10.439981, 0.0000, 0.0000, 0.0000);
	CreateObject(10793, 1152.884399, -3160.456299, 28.737041, 0.0000, 0.0000, 0.0000);
	CreateObject(3996, 2697.718506, -2616.983398, 12.712868, 0.0000, 0.0000, 269.7591);
	CreateObject(5147, 2697.880859, -2745.873047, 22.469244, 0.0000, 0.0000, 90.2409);
	CreateObject(5147, 2696.167236, -2970.520264, 22.465425, 0.0000, 0.0000, 268.8997);
	CreateObject(3330, 2710.451660, -2653.761963, 62.482872, 0.0000, 0.0000, 271.4780);
	CreateObject(3330, 2709.734863, -2633.633057, 62.550102, 0.0000, 0.0000, 271.4780);
	CreateObject(3330, 2709.149658, -2612.318115, 62.595695, 0.0000, 0.0000, 271.4780);
	CreateObject(3330, 2708.387695, -2591.347168, 62.577438, 0.0000, 0.0000, 271.4780);
	CreateObject(3330, 2708.077393, -2577.480957, 65.065437, 0.0000, 0.0000, 271.4780);
	CreateObject(3330, 2683.967773, -2577.326904, 64.996735, 0.0000, 0.0000, 270.6186);
	CreateObject(3330, 2684.172119, -2598.182373, 65.038300, 0.0000, 0.0000, 270.6186);
	CreateObject(3330, 2684.437988, -2618.494141, 65.016106, 0.0000, 0.0000, 270.6186);
	CreateObject(3330, 2684.873535, -2639.609375, 64.735458, 0.0000, 0.0000, 270.6186);
	CreateObject(3330, 2685.073975, -2653.800049, 64.689667, 0.0000, 0.0000, 270.6186);
	CreateObject(7073, 2687.813477, -2577.134277, 30.990557, 0.0000, 358.2811, 2.5783);
	CreateObject(4867, 2683.168213, -3155.961914, 12.653005, 0.0000, 0.0000, 269.7591);
	CreateObject(11490, 2752.671143, -3068.333740, 12.648687, 0.0000, 0.0000, 84.9803);
	CreateObject(11491, 2763.689941, -3069.351563, 14.068915, 0.0000, 0.0000, 84.2248);
	CreateObject(974, 2759.957520, -3070.475830, 13.559250, 0.0000, 0.0000, 264.6025);
	CreateObject(974, 2760.255127, -3067.636230, 13.809265, 0.0000, 0.0000, 85.9437);
	CreateObject(1646, 2763.665527, -3074.502930, 14.285665, 0.0000, 0.0000, 265.4620);
	CreateObject(1646, 2763.733643, -3073.056396, 14.285665, 0.0000, 0.0000, 265.4620);
	CreateObject(1723, 2757.964844, -3064.722412, 14.154547, 0.0000, 0.0000, 354.8434);
	CreateObject(1723, 2755.061523, -3064.468506, 14.154547, 0.0000, 0.0000, 354.8434);
	CreateObject(1814, 2756.877686, -3067.032959, 14.145408, 0.0000, 0.0000, 355.7028);
	CreateObject(1670, 2757.419922, -3066.604004, 14.687299, 0.0000, 0.0000, 0.0000);
	CreateObject(1847, 2757.224609, -3073.012695, 14.155046, 0.0000, 0.0000, 175.2211);
	CreateObject(1481, 2762.596191, -3064.788086, 14.776359, 0.0000, 0.0000, 355.7028);
	CreateObject(1717, 2758.040039, -3066.975342, 14.153698, 0.0000, 0.0000, 133.2127);
	CreateObject(1738, 2754.008545, -3072.914063, 14.811131, 0.0000, 0.0000, 356.5623);
	CreateObject(1745, 2751.669678, -3071.639160, 14.155286, 0.0000, 0.0000, 85.0842);
	CreateObject(1208, 2749.076172, -3063.792725, 14.156500, 0.0000, 0.0000, 265.4620);
	CreateObject(936, 2749.291260, -3065.178467, 14.631212, 0.0000, 0.0000, 84.2248);
	CreateObject(4002, 2726.564941, -3264.907227, 35.014687, 0.0000, 0.0000, 0.8594);
	CreateObject(5168, 2665.568604, -3280.536377, 18.668293, 0.0000, 0.0000, 90.1369);
	CreateObject(5189, 2762.492920, -3208.887207, 18.106087, 0.0000, 0.0000, 0.0000);
	CreateObject(17563, 2740.562988, -3149.016602, 10.325888, 0.0000, 0.0000, 0.0000);
	CreateObject(18569, 2735.594971, -3196.940918, 13.829097, 0.0000, 0.0000, 0.0000);
	CreateObject(18609, 2727.119141, -3211.127686, 13.825493, 0.0000, 0.0000, 0.0000);
	CreateObject(18567, 2726.222656, -3221.704834, 13.665919, 0.0000, 0.0000, 0.0000);
	CreateObject(18367, 2715.517578, -3091.434814, 12.209959, 0.0000, 0.0000, 347.1084);
	CreateObject(17565, 2696.789307, -3063.555176, 14.186714, 0.0000, 0.0000, 1.7189);
	CreateObject(16304, 2651.524414, -3068.828369, 17.013290, 0.0000, 0.0000, 0.0000);
	CreateObject(13648, 2619.675049, -3091.977295, 12.173984, 0.0000, 0.0000, 0.0000);
	CreateObject(13641, 2732.760498, -3103.209961, 13.597260, 0.0000, 0.0000, 0.0000);
	CreateObject(13636, 2654.047852, -3114.265137, 14.333393, 0.0000, 0.0000, 0.0000);
	CreateObject(13604, 2617.862061, -3154.154053, 14.061027, 0.0000, 0.0000, 0.0000);
	CreateObject(8375, 2652.574707, -3167.120117, 13.786748, 0.0000, 0.0000, 0.0000);
	CreateObject(7980, 2647.795654, -3167.012695, 13.789972, 0.0000, 0.0000, 269.7591);
	CreateObject(3664, 2623.583496, -3204.282715, 19.156897, 0.0000, 0.0000, 188.1126);
	CreateObject(3269, 2658.948730, -3211.785645, 12.501149, 0.0000, 0.0000, 0.0000);
	CreateObject(1634, 2684.274658, -3162.868652, 13.600326, 0.0000, 0.0000, 196.7070);
	CreateObject(18259, 2767.645996, -3094.188232, 15.001850, 0.0000, 0.0000, 355.7028);
	CreateObject(643, 2759.327637, -3101.797607, 15.458261, 0.0000, 0.0000, 0.0000);
	CreateObject(1281, 2753.861328, -3094.639404, 13.403388, 0.0000, 0.0000, 0.0000);
	CreateObject(14805, 2769.048096, -3090.571045, 15.799543, 0.0000, 0.0000, 0.0000);
	CreateObject(1645, 2760.911133, -3088.771973, 15.269938, 0.0000, 0.0000, 0.0000);
	CreateObject(14532, 2769.778564, -3091.209473, 15.095510, 0.0000, 0.0000, 182.0965);
	CreateObject(1701, 2767.875488, -3099.830322, 14.906761, 0.0000, 0.0000, 178.6587);
	CreateObject(1736, 2767.231934, -3103.050049, 16.976439, 0.0000, 0.0000, 180.3776);
	CreateObject(1738, 2768.016602, -3087.673828, 15.642420, 0.0000, 0.0000, 359.1406);
	CreateObject(937, 2764.022461, -3087.828857, 15.562501, 0.0000, 0.0000, 358.2811);
	CreateObject(2610, 2763.009521, -3102.884277, 15.913248, 0.0000, 0.0000, 178.6588);
	CreateObject(2604, 2770.241943, -3102.914063, 15.884663, 0.0000, 0.0000, 175.2211);
	CreateObject(1663, 2771.257080, -3101.948730, 15.548002, 0.0000, 0.0000, 19.7670);
	CreateObject(1541, 2764.469727, -3103.150879, 15.681026, 0.0000, 0.0000, 358.2811);
	CreateObject(2374, 2762.971191, -3097.993896, 16.652763, 0.0000, 0.0000, 85.9437);
	CreateObject(2377, 2762.987305, -3097.969238, 15.597727, 0.0000, 0.0000, 85.9437);
	CreateObject(5064, 2427.734619, -1660.922974, 13.482821, 0.0000, 0.8594, 359.1406);


// These are random pickups at Grove Street [Mini-gun People Will Go mad on]

	AddStaticPickup(1240, 2, 2513.4211,-1650.4452,14.3557); // health
	AddStaticPickup(1241, 2, 2524.2302,-1658.7089,15.4935); // adrenalin pill
	AddStaticPickup(1242, 2, 2522.8958,-1679.4229,15.4970); // armour
	AddStaticPickup(362, 2, 2469.8970,-1646.3499,13.7801); // minigun
	AddStaticPickup(346, 2,2032.3872,-2925.1777,9.6681); //
	AddStaticPickup(1242, 2,2021.3329,-2925.9045,8.7732); //
	AddStaticPickup(361, 2,2006.9421,-2922.9790,7.8868); //
	AddStaticPickup(105, 2,1997.2871,-2921.6423,8.9181); //
	AddStaticPickup(105, 2,1988.9843,-2922.8948,11.3690); //
	AddStaticPickup(361, 2,2009.7667,-2942.8860,7.8055); //
	AddStaticPickup(1242, 2,2021.7725,-2945.3730,8.7648); //
	AddStaticPickup(346, 2,2029.5665,-2947.1521,9.5867); //
	AddStaticPickup(342, 2,1992.7675,-2944.2324,8.8418); //
	AddStaticPickup(342, 2,1985.9038,-2943.3577,11.2820); //
}

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

public OnPlayerConnect(playerid)
{
	SetPlayerColor(playerid,0x888888FF);
	GameTextForPlayer(playerid,"PWN THEM ALL !",2000,5);
	GivePlayerMoney(playerid, 10000);
	
    new pName[MAX_PLAYER_NAME];
    new string[48];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "%s has joined the server.", pName);
    SendClientMessageToAll(0xAAAAAAAA, string);

	SendClientMessage(playerid, COLOR_BLUE, "Welcome to ExTrEmE Server!");
	Job[playerid] = 0;
	Jobcp[playerid] = 0;
 	SetPlayerMapIcon(playerid, 1, 953.4695,-911.4966,45.7656, 32, 0);
    SetPlayerMapIcon(playerid, 2, 1178.5338,-1323.4142,14.1248, 22, 0);
   	SetPlayerMapIcon(playerid, 3, 1151.0916,-1218.7781,17.7665, 20, 0);
    SetPlayerMapIcon(playerid, 4, 1543.0513,-1675.5679,13.2768, 30, 0);

	if(Job[playerid] == 0) {
	SendClientMessage(playerid, COLOR_PURPLE, "-----------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Type /searchjob To Find A Job");
	SendClientMessage(playerid, COLOR_PURPLE, "JOB-LINK Connecting Jobs With People");
	return 1;
	}
	return 0;
}

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

public SetupPlayerForClassSelection(playerid)
{
	SetPlayerInterior(playerid,14);
	SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
	SetPlayerFacingAngle(playerid, 90.0);
	SetPlayerCameraPos(playerid,256.0815,-43.0475,1003.0234);
	SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
}

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

public SetPlayerTeamFromClass(playerid,classid)
{
	// Set their team number based on the class they selected.
	if(classid == 0 || classid == 1 || classid == 2)
	{
		gTeam[playerid] = TEAM_GROVE;
	}
	else if(classid == 3 || classid == 4 || classid == 5)
	{
	    gTeam[playerid] = TEAM_VAGO;
    }
	else if(classid == 6 || classid == 7 || classid == 8)
	{
	    gTeam[playerid] = TEAM_BALLA;
    }
	else if(classid == 9 || classid == 10 || classid == 11)
	{
	    gTeam[playerid] = TEAM_AZ;
    }
	else if(classid == 12)
	{
	    gTeam[playerid] = TEAM_AGENT;
    }
	else if(classid == 13)
	{
	    gTeam[playerid] = TEAM_ADMIN;
    }

}

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

public SetPlayerToTeamColor(playerid)
{
	if(gTeam[playerid] == TEAM_GROVE)
	{
		SetPlayerColor(playerid,COLOR_GREEN); //
    }
	else if(gTeam[playerid] == TEAM_VAGO)
	{
	    SetPlayerColor(playerid,COLOR_YELLOW); //
	}
	else if(gTeam[playerid] == TEAM_BALLA)
	{
	    SetPlayerColor(playerid,COLOR_PURPLE); //
	}
	else if(gTeam[playerid] == TEAM_AZ)
	{
	    SetPlayerColor(playerid,COLOR_AQUA); //
	}
	else if(gTeam[playerid] == TEAM_AGENT)
	{
	    SetPlayerColor(playerid,COLOR_BLACK); //
	}
	else if(gTeam[playerid] == TEAM_ADMIN)
	{
	    SetPlayerColor(playerid,COLOR_GOLD); //
	}
}

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

public OnPlayerRequestClass(playerid, classid)
{
	SetupPlayerForClassSelection(playerid);
	SetPlayerTeamFromClass(playerid,classid);

	if(classid == 0 || classid == 1 || classid == 2)
	{
		GameTextForPlayer(playerid,"~g~Grove Homies",1000,5);
	}
	if(classid == 3 || classid == 4 || classid == 5)
	{
		GameTextForPlayer(playerid,"~g~Vago Homies",1000,5);
	}
	if(classid == 6 || classid == 7 || classid == 8)
	{
		GameTextForPlayer(playerid,"~g~Balla Homies",1000,5);
	}
	if(classid == 9 || classid == 10 || classid == 11)
	{
		GameTextForPlayer(playerid,"~g~Azteca Homies",1000,5);
	}
	if(classid == 12)
	{
		GameTextForPlayer(playerid,"~g~Agent 007",1000,5);
	}
	if(classid == 13)
	{
		GameTextForPlayer(playerid,"~r~ADMIN ONLY",1000,5);
  	}
	return 1;
}

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

public OnPlayerSpawn(playerid)
{
 	SetPlayerToTeamColor(playerid);
	SetPlayerInterior(playerid,0);

	if(gTeam[playerid] == TEAM_ADMIN) //If player select AGENT as skin
 	{
  		TogglePlayerControllable(playerid, false); //freeze in other words
    	GameTextForPlayer(playerid, "~r~Login with admin Command please!",8000,5);
 	}
  	GameTextForPlayer(playerid, "~r~Why not get a job with /searchjob. Currently one cmd for the Medic only.",8000,5);
	new name[256];
	new string[256];
	switch (GetPlayerSkin(playerid))
	{
	    case 280..284,288:
	    {
	        if(CopCheck(playerid))
			{
			GetPlayerName(playerid,name,sizeof(name));
			format(string,sizeof(string),"Welcome Officer %s To The Police Force",name);
			SendClientMessageToAll(COLOR_BLUE, string);
			Job[playerid] = 1;
			}
			else{
			SendClientMessage(playerid, COLOR_RED, "You Are Not A Registered Police Officer");
			ForceClassSelection(playerid);
			SetPlayerHealth(playerid, 0);
			}
			return 1;
			}

		case 274..276:
		{
			if(MedicCheck(playerid)){
			GetPlayerName(playerid,name,sizeof(name));
			format(string,sizeof(string),"Welcome Doctor %s To The Health System",name);
			SendClientMessageToAll(COLOR_BLUE, string);
			Job[playerid] = 2;
			}
            else{
			SendClientMessage(playerid, COLOR_RED, "You Are Not A Registered Doctor");
	        ForceClassSelection(playerid);
			SetPlayerHealth(playerid, 0);
			}

			return 1;
			}

		case 163..166:
  	    {
			if(AgentCheck(playerid)){
			GetPlayerName(playerid,name,sizeof(name));
			format(string,sizeof(string),"Welcome Agent %s To The Secret Service",name);
			SendClientMessageToAll(COLOR_BLUE, string);
			Job[playerid] = 3;
			}
            else{

			SendClientMessage(playerid, COLOR_RED, "You Are Not A Registered Federal Agent");
			ForceClassSelection(playerid);
			SetPlayerHealth(playerid, 0);

			}
			return 1;
			}
 	    case 277..279:
 		{
			if(FireCheck(playerid)){
			GetPlayerName(playerid,name,sizeof(name));
			format(string,sizeof(string),"Welcome Fire-Fighter %s To The Fire Brigade",name);
			SendClientMessageToAll(COLOR_BLUE, string);
			Job[playerid] = 4;

			}
			else{
			SendClientMessage(playerid, COLOR_RED, "You Are Not A Registered Fire-Fighter");
			ForceClassSelection(playerid);
			SetPlayerHealth(playerid, 0);
			}

			return 1;
   			}
   		case 253,255:
		{
			if(TaxiCheck(playerid)){
			GetPlayerName(playerid,name,sizeof(name));
			format(string,sizeof(string),"Welcome Driver %s To The Transport System",name);
			SendClientMessageToAll(COLOR_BLUE, string);
			Job[playerid] = 5;
			}
            else{
			SendClientMessage(playerid, COLOR_RED, "You Are Not A Registered Driver");
	        ForceClassSelection(playerid);
			SetPlayerHealth(playerid, 0);
			}

			return 1;
			}
   		case 61:
		{
			if(PilotCheck(playerid)){
			GetPlayerName(playerid,name,sizeof(name));
			format(string,sizeof(string),"Welcome Pilot %s To The Transport System",name);
			SendClientMessageToAll(COLOR_BLUE, string);
			Job[playerid] = 6;
			}
            else{
			SendClientMessage(playerid, COLOR_RED, "You Are Not A Registered Pilot");
	        ForceClassSelection(playerid);
			SetPlayerHealth(playerid, 0);
			}
			return 1;
			}
		}
	return 1;
	}

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

public OnPlayerSelectedMenuRow(playerid, row)
{
	new Menu:Current = GetPlayerMenu(playerid);
	if(Current == HelpCall)
	{
	    switch(row)
	    {
	        case 0: //Police
	        {
	            HideMenuForPlayer(HelpCall, playerid);
	            ShowMenuForPlayer(Police, playerid);
			}
			case 1: //Medic
			{
			    HideMenuForPlayer(HelpCall, playerid);
			    ShowMenuForPlayer(Medic, playerid);
			}
			case 2: //Firemen
			{
			    HideMenuForPlayer(HelpCall, playerid);
			    ShowMenuForPlayer(Firemen, playerid);
			}
			case 3: //SWAT
			{
			    HideMenuForPlayer(HelpCall, playerid);
			    ShowMenuForPlayer(SWAT, playerid);
			}
		}
	}
	if(Current == Police)
	{
	    switch(row)
	    {
	        case 0: //Shot
	        {
    SendClientMessageToAll(0xAAAAAAAA,"%s Has been shot, send in the police");
			}
			case 1: //Murderer
	        {
	SendClientMessageToAll(0xAAAAAAAA,"%s Has Seen a murderer, send in the police");
			}
			case 2: //Robbed
         {
	SendClientMessageToAll(0xAAAAAAAA,"%s Has been Robbed, send in the police");
			}
		}
	}
	if(Current == Medic)
	{
	    switch(row)
	    {
	        case 0: //Injured
	        {
    SendClientMessageToAll(0xAAAAAAAA,"%s Has been Injured, send in the medics");
			}
			case 1: //Someone Injured
	        {
    SendClientMessageToAll(0xAAAAAAAA,"%s friend has been injured, send in the medics");
			}
			case 2: //All Injured
	        {
    SendClientMessageToAll(0xAAAAAAAA,"%s and people around him has been injured, send in the medics");
			}
		}
	}
	if(Current == Firemen)
	{
	    switch(row)
	    {
            case 0: //Fire
	        {
    SendClientMessageToAll(0xAAAAAAAA,"%s Has spotted a fire, send in the firemen");
			}
		}
	}
	if(Current == SWAT)
	{
	    switch(row)
	    {
            case 0: //Serial Killer
	        {
	            //Do something here
			}
			case 1: //Bomber
	        {
	            //Do something here
			}
		}
	}
	return 1;
}

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

public ExitTheGameMode()
{
    GameModeExit();
}

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

public OnPlayerDeath(playerid, killerid, reason)
{

   	new PlayerName[24], string[256];
   	GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
   	format(string, sizeof(string), ">> %s got owned <<", PlayerName);
   	SendClientMessage(playerid, COLOR_RED, string);
   	GameTextForPlayer(playerid, "~r~OWNED!", 5000, 1);
	SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
	GivePlayerMoney(killerid,GetPlayerMoney(killerid) + 1000);
	return 1;
}

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

public OnPlayerDisconnect(playerid, reason)
{
    new pName[MAX_PLAYER_NAME];
    new string[56];
    GetPlayerName(playerid, pName, sizeof(pName));

    switch(reason)
    {
        case 0: format(string, sizeof(string), "%s has left the server. (Timeout)", pName);
        case 1: format(string, sizeof(string), "%s has left the server. (Leaving)", pName);
        case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", pName);
    }

    SendClientMessageToAll(0xAAAAAAAA, string);
    return 1;
}
//------------------------------------------------------------------------------

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256];
	if (strcmp("/Commands", cmdtext, true)==0)
 	{
  		SendClientMessage(playerid, 0xAA3333AA, "ExTrEmE Server Commands");
    	SendClientMessage(playerid, 0xFFFF00AA, "/admins - Display list of admins");
     	SendClientMessage(playerid, 0xFFFF00AA, "/clearchat - Clears chat for you");
      	SendClientMessage(playerid, 0xFFFF00AA, "/login, /register - Registration commands");
       	SendClientMessage(playerid, 0xFFFF00AA, "/kill - Kills you");
        SendClientMessage(playerid, 0xFFFF00AA, "/Stunt to get to stunt zone");
        SendClientMessage(playerid, 0xFFFF00AA, "/Me [Text] /Games [For MiniGame list]");
		SendClientMessage(playerid, 0xFFFF00AA, "/Commands2 For next List Of commands");
		SendClientMessage(playerid, 0xFFFF00AA, "/Rules for Rules, /Credits for credits");
		SendClientMessage(playerid, 0x33AA33AA, "/Commands2 For more commands.");
  		return 1;
    }
	if (strcmp("/Commands2", cmdtext, true)==0)
 	{
  		SendClientMessage(playerid, 0xAA3333AA, "ExTrEmE Server Command list 2");
    	SendClientMessage(playerid, 0xFFFF00AA, "/Joblist - List of Jobs");
     	SendClientMessage(playerid, 0xFFFF00AA, "/Dive - 800 feet fall from ur current location");
      	SendClientMessage(playerid, 0xFFFF00AA, "More commands s00n");
		SendClientMessage(playerid, 0x33AA33AA, "/Commands For 1st list of commands.");
  		return 1;
    }
    if(strcmp(cmdtext,"/clearchat",true)==0) // Makes the chat window go away :O
    {
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	SendClientMessage(playerid,0xAFAFAFAA," ");
    	return 1;
    }
 	if (strcmp("/rules", cmdtext, true)==0)
  	{
   		SendClientMessage(playerid, 0xAA3333AA, "ExTrEmE Server Rules");
     	SendClientMessage(playerid, 0xFFFF00AA, "- No Teamkilling");
      	SendClientMessage(playerid, 0xFFFF00AA, "- Don't be rude or use offensive language");
       	SendClientMessage(playerid, 0xFFFF00AA, "- No Cheating/Hacking");
        SendClientMessage(playerid, 0xFFFF00AA, "- English on Main Chat");
        SendClientMessage(playerid, 0xFFFF00AA, "- If you dont obey these rules you will be kicked/banned/warned!");
        SendClientMessage(playerid, 0xFFFF00AA, "- This is an RPG~Stunt~TDM~MiniGame Server!!");
   	    return 1;
   	}
    if (strcmp("/credits", cmdtext, true)==0)
   	{
	   	SendClientMessage(playerid, 0xAA3333AA, "Credits");
     	SendClientMessage(playerid, 0xFFFF00AA, "Heres credits - Stephen for Making it");
	   	SendClientMessage(playerid, 0xFFFF00AA, "Testers are Me and ryan");
	   	SendClientMessage(playerid, 0xFFFF00AA, "Xtreme Admin - By Xtreme");
	   	SendClientMessage(playerid, 0xFFFF00AA, "--StEpHeN GameMode--");
	   	return 1;
	}
	if (strcmp(cmdtext, "/open", true)==0)
 	{
 		MoveObject(GoDown,2748.394287, -3066.668945, 10.171467, 2.000);
 		GameTextForPlayer(playerid, "~g~Succesfully opened gate.", 5000, 1);
      	return 1;
   	}
    if (strcmp(cmdtext, "/close", true)==0)
   	{
   		MoveObject(GoDown,2748.394287, -3066.668945, 13.171467, 2.000);
   		GameTextForPlayer(playerid, "~r~Succesfully closed gate.", 5000, 1);
   		return 1;
   	}
   	if(!strcmp(cmdtext, "/me", true,2))
	{
    	if(!strlen(cmdtext[4])) SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /me [text]");
    	else
		{
        	new pname[100];
        	GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
        	format(pname,100,"%s %s", pname, cmdtext[4]);
        	SendClientMessageToAll(COLOR_GOLD,pname);
        	print(pname);
    	}
    	return true;
    }
   	if (strcmp(cmdtext, "/stunt", true)==0)
    {
 		GameTextForPlayer(playerid, "~g~Welcome To The Stunt Zone.", 5000, 1);
 		SetPlayerPos(playerid, 2694.2246,-3044.5867,13.7206);
      	return 1;
   	}
    if (strcmp("/Games", cmdtext, true)==0)
   	{
	   	SendClientMessage(playerid, 0xAA3333AA, "MiniGames");
     	SendClientMessage(playerid, 0xFFFF00AA, "First MiniGame is /pirates [Pirate wars]");
	   	SendClientMessage(playerid, 0xFFFF00AA, "Other MiniGame is /HouseDM [DM in a house]");
	   	SendClientMessage(playerid, 0xFFFF00AA, "Have Fun !");
	   	SendClientMessage(playerid, 0xFFFF00AA, "--StEpHeN GameMode--");
	   	return 1;
	}
	if (strcmp(cmdtext, "/HouseDM", true)==0)
	{
 		GameTextForPlayer(playerid, "~g~Will You Own? Or Will You Get Owned?", 5000, 1);
 		SetPlayerPos(playerid, 2753.0024,-3068.2170,15.1565);
      	return 1;
   	}
	if (strcmp(cmdtext, "/Pirates", true)==0)
 	{
 		GameTextForPlayer(playerid, "~g~Welcome To The Pirate Wars.", 5000, 1);
 		SetPlayerPos(playerid, 2008.3656,-2925.7139,7.8868);
      	return 1;
   	}
	if (strcmp(cmdtext, "/Home", true)==0)
 	{
 		MoveObject(Door,2762.845215, -3094.072754, 19.314705, 2.000);
 		GameTextForPlayer(playerid, "~b~Welcome Home Ryan!", 5000, 1);
      	return 1;
   	}
    if (strcmp(cmdtext, "/Away", true)==0)
   	{
   		MoveObject(Door,2762.845215, -3094.072754, 16.314705, 2.000);
   		GameTextForPlayer(playerid, "~r~Bye, Bye.", 5000, 1);
   		return 1;
   	}
	if (strcmp(cmdtext, "/SF", true)==0)
 	{
 		GameTextForPlayer(playerid, "~g~Welcome To The SF. If your not admin, your bad!", 5000, 1);
 		SetPlayerPos(playerid, 2694.2246,-3044.5867,13.7206);
      	return 1;
   	}
   	if(strcmp(cmdtext,"/PGate",true)==0)
   	{
  		if(IsPlayerConnected(playerid))
      	{
            new Float:X, Float:Y, Float:Z;
            GetPlayerPos(playerid, X, Y, Z);
            if(X >= 1582.504272 && X <= 1594.216431 && Y >= -1644.001099 && Y <= -1633.375366 && Z >= 11 && Z <= 15)
		    GameTextForPlayer(playerid, "~r~You have opened the Police carpark gate.", 5000, 1);
     		MoveObject(Tor, 1596.398315, -1638.025269, 14.111814, 3);
     		SetTimer("CloseTor",10000,0);
		}
		return 1;
	}
	if(strcmp(cmdtext,"/PClose",true)==0)
 	{
  		if(IsPlayerConnected(playerid))
  		{
    		new Float:X, Float:Y, Float:Z;
            GetPlayerPos(playerid, X, Y, Z);
            if(X >= 1582.504272 && X <= 1594.216431 && Y >= -1644.001099 && Y <= -1633.375366 && Z >= 11 && Z <= 15)
		    GameTextForPlayer(playerid, "~r~You have Closed the Police carpark gate.", 5000, 1);
     		MoveObject(Tor, 1589.096069, -1638.025269, 14.111814, 3);
     		SetTimer("CloseTor",10000,0);
		}
		return 1;
	}
	if(strcmp(cmdtext, "/Dive", true) == 0)
	{
		if(IsPlayerInAnyVehicle(playerid))
		{
			new Float:X, Float:Y, Float:Z;
			new VehicleID;
			GetPlayerPos(playerid, X, Y, Z);
			VehicleID = GetPlayerVehicleID(playerid);
			SetVehiclePos(VehicleID, X, Y, Z + 800.00);
			SetPlayerFacingAngle(playerid,Ang);
			GivePlayerWeapon(playerid,46,1);
		}
		else
		{
			new Float:X, Float:Y, Float:Z;
			GetPlayerPos(playerid, X, Y, Z);
			SetPlayerPos(playerid, X, Y, Z + 800.00);
			SetPlayerFacingAngle(playerid,Ang);
			GivePlayerWeapon(playerid,46,1);
			GameTextForPlayer(playerid, "~w~Here we go!!",8000,5);
		}
		return 1;
	}
 	if(!strcmp(cmdtext, "/drwho156", true))
	{
		if(gTeam[playerid] == TEAM_ADMIN) //If player select Admin as skin.
        {
              TogglePlayerControllable(playerid, true); //Unfreezes the player
              GameTextForPlayer(playerid, "~r~Do /w2 [Weapon Name] if you want more guns. But dont abuse your weapons.",8000,5);
	 	}
		return 1;
	}

	if(!strcmp(cmdtext, "/CallForHelp", true))
{
    ShowMenuForPlayer(HelpCall, playerid);
    return 1;
}
    new tmp[256];
	new idx;


	if (strcmp("/quitcop", cmdtext, true, 10) == 0)
	{
 	CopQuit(playerid);
	SendClientMessage(playerid, COLOR_RED, "You Have Quit The Police Force");
	Job[playerid] = 0;
	Jobcp[playerid] = 0;
	return 1;
 	}

	if (strcmp("/quitagent", cmdtext, true, 10) == 0)
	{
	AgentQuit(playerid);
	SendClientMessage(playerid, COLOR_RED, "You Have Quit The Agent Job");
	Job[playerid] = 0;
	Jobcp[playerid] = 0;
	return 1;
	}
	if (strcmp("/quitmedic", cmdtext, true, 10) == 0)
	{
	AgentQuit(playerid);
	SendClientMessage(playerid, COLOR_RED, "You Have Quit The Agent Job");
	Job[playerid] = 0;
	Jobcp[playerid] = 0;
	return 1;
	}
	if (strcmp("/quitfire", cmdtext, true, 10) == 0)
	{
	AgentQuit(playerid);
	SendClientMessage(playerid, COLOR_RED, "You Have Quit The Agent Job");
	Job[playerid] = 0;
	Jobcp[playerid] = 0;
	return 1;
	}
	if (strcmp("/quittaxi", cmdtext, true, 10) == 0)
	{
	AgentQuit(playerid);
	SendClientMessage(playerid, COLOR_RED, "You Have Quit The Agent Job");
	Job[playerid] = 0;
	Jobcp[playerid] = 0;
	return 1;
	}
	if (strcmp("/quitpilot", cmdtext, true, 10) == 0)
	{
	AgentQuit(playerid);
	SendClientMessage(playerid, COLOR_RED, "You Have Quit The Agent Job");
	Job[playerid] = 0;
	Jobcp[playerid] = 0;

	return 1;
	}

	if (strcmp("/searchjob", cmdtext, true, 10) == 0)
	{
	if(Job[playerid] == 0) {
	SendClientMessage(playerid, COLOR_PURPLE, "----------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Find Your perfect job!      ");
	SendClientMessage(playerid, COLOR_PURPLE, "----------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "We Can Offer You A Jobs");
	SendClientMessage(playerid, COLOR_PURPLE, "For A List of Jobs Avalible");
	SendClientMessage(playerid, COLOR_PURPLE, "Please Come To JOB_LINK");
	SendClientMessage(playerid, COLOR_PURPLE, "Then Type /joblist");
	Jobcp[playerid] = 0;
	Job[playerid] = 7;
	SetPlayerCheckpoint(playerid,953.4695,-911.4966,45.7656,8.0);
	}
	return 1;
	}

 	if (strcmp("/joblist", cmdtext, true, 10) == 0)
	{
	if(Job[playerid] == 7) {
	if(Jobcp[playerid] == 1){
	SendClientMessage(playerid, COLOR_PURPLE, "----------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Here Are Some Available Jobs");
	SendClientMessage(playerid, COLOR_PURPLE, "----------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Police /applycop");
	SendClientMessage(playerid, COLOR_PURPLE, "Medic /applymedic");
	SendClientMessage(playerid, COLOR_PURPLE, "Fire /applyfire");
    SendClientMessage(playerid, COLOR_PURPLE, "Agent /applyagent");
    SendClientMessage(playerid, COLOR_PURPLE, "Agent /applytaxi");
    SendClientMessage(playerid, COLOR_PURPLE, "Agent /applypilot");
	}else{
 	SendClientMessage(playerid, COLOR_RED, "You Must Be At JOB-LINK");
 	}
 	}
	return 1;
	}

   	if (strcmp(cmdtext, "/applyagent", true)==0)
	{
	if(Job[playerid] == 7) {
	if(Jobcp[playerid] == 1){
	AgentMake(playerid);
	SendClientMessage(playerid, COLOR_PURPLE, "-------------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Your Application Was Successful");
	SendClientMessage(playerid, COLOR_PURPLE, "Welcome To The Agentcy");
	SendClientMessage(playerid, COLOR_PURPLE, "If You Want To Quit Type /agentquit");
	Job[playerid] = 3;
	}
	}
	return 1;
	}

   	if (strcmp(cmdtext, "/applycop", true)==0)
	{
	if(Job[playerid] == 7) {
	if(Jobcp[playerid] == 1){
	SendClientMessage(playerid, COLOR_PURPLE, "------------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Your Application Is Successful");
	SendClientMessage(playerid, COLOR_PURPLE, "Please Go To The LS-PD");
	SendClientMessage(playerid, COLOR_PURPLE, "If You Want To Quit Type /copquit");
	Job[playerid] = 1;
	}
	}
	return 1;
    }




   	if (strcmp(cmdtext, "/applyfire", true)==0)
	{
	if(Job[playerid] == 7) {
	if(Jobcp[playerid] == 1){
	FireMake(playerid);
	SendClientMessage(playerid, COLOR_PURPLE, "-------------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Your Application Was Successful");
	SendClientMessage(playerid, COLOR_PURPLE, "Welcome To The Fire-Brigade");
	SendClientMessage(playerid, COLOR_PURPLE, "If You Want To Quit Type /firequit");
	Job[playerid] = 4;
	}
	}
	return 1;
    }

   	if (strcmp(cmdtext, "/applymedic", true)==0)
	{
	if(Job[playerid] == 7) {
	if(Jobcp[playerid] == 1){
	MedicMake(playerid);
	SendClientMessage(playerid, COLOR_PURPLE, "-------------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Your Application Was Successful");
	SendClientMessage(playerid, COLOR_PURPLE, "Welcome To The Health System");
	SendClientMessage(playerid, COLOR_PURPLE, "If You Want To Quit Type /medicquit");
	Job[playerid] = 2;
	}
	}
	return 1;
  	}
   	if (strcmp(cmdtext, "/applytaxi", true)==0)
	{
	if(Job[playerid] == 7) {
	if(Jobcp[playerid] == 1){
	MedicMake(playerid);
	SendClientMessage(playerid, COLOR_PURPLE, "-------------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Your Application Was Successful");
	SendClientMessage(playerid, COLOR_PURPLE, "Welcome To The Transport System");
	SendClientMessage(playerid, COLOR_PURPLE, "If You Want To Quit Type /taxiquit");
	Job[playerid] = 5;
	}
	}
	return 1;
  	}
   	if (strcmp(cmdtext, "/applypilot", true)==0)
	{
	if(Job[playerid] == 7) {
	if(Jobcp[playerid] == 1){
	MedicMake(playerid);
	SendClientMessage(playerid, COLOR_PURPLE, "-------------------------------");
	SendClientMessage(playerid, COLOR_PURPLE, "Your Application Was Successful");
	SendClientMessage(playerid, COLOR_PURPLE, "Welcome To The Transport System");
	SendClientMessage(playerid, COLOR_PURPLE, "If You Want To Quit Type /pilotquit");
	Job[playerid] = 6;
	}
	}
	return 1;
  	}

	if(strcmp(cmdtext, "/healplayer", true) == 0)
	{
	    new string[256], giveplayerid, sendername[24], giveplayer[24];
	    tmp = strtok(cmdtext, idx);
	    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /healplayer [id]");
	    giveplayerid = strval(tmp);
	    if(Jobcp[playerid] == 2)
	    {
	        if(IsPlayerConnected(giveplayerid))
	        {
	            GetPlayerName(playerid, sendername, sizeof(sendername));
	            GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
	            format(string, sizeof(string), "Medic %s(%i) Has Healed You!", sendername, playerid);
	            SendClientMessage(giveplayerid, COLOR_RED, string);
	            SetPlayerHealth(giveplayerid, 100);
	            format(string, sizeof(string), "You have healed %s(%i)", giveplayer, giveplayerid);
	            SendClientMessage(playerid, COLOR_RED, string);
	        }
	        else
	        {
	            format(string, sizeof(string), "ERROR! %d isn't connected", giveplayerid);
	            SendClientMessage(playerid, COLOR_RED, string);
	        }
	    }
	    else return SendClientMessage(playerid, COLOR_RED, "You must be medic!");
	    return 1; //Thank Andre for this script
	}
// === [Register] ===
	if(strcmp(cmd, "/register", true) == 0)
	{
	new playername[MAX_PLAYER_NAME];
	    tmp = strtok(cmdtext, idx);
 		GetPlayerName(playerid, playername, sizeof(playername));
        if(20 < strlen(tmp) || strlen(tmp) < 4)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Error! Password has to be longer than 4 & Shorter than 20 symbols!");
			return 1;
		}
	    if(!strlen(tmp))
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /register [password] ~ Will make You registered with the server!");

		else
		{
			if (!dini_Exists(udb_encode(playername)))
			{
				dini_Create(udb_encode(playername));
				dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
				dini_Set(udb_encode(playername),"pass",tmp);
    			dini_IntSet(udb_encode(playername), "level", 0);
    format(string, sizeof(string), "%s(%i) registered with password \"%s\"", playername, playerid, tmp);
				printf(string);
				format(string, sizeof(string), "Created account %s with password \"%s\". Please remember Your password!", playername, tmp);
				SendClientMessage(playerid, COLOR_PURPLE, string);
				SendClientMessage(playerid, COLOR_PURPLE, "Logged in!");
				logged[playerid] = 1;
				PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "A error has occured while attempting to register with the server!");
				format(string, sizeof(string), "Username %s is already registered on this server!", playername,tmp);
				SendClientMessage(playerid, COLOR_RED, string);
			}
		}

		return 1;
	}
// === [Login] ===
	if(strcmp(cmd, "/login", true) == 0)
	{
		if(logged[playerid] == 1)
		{
		    SendClientMessage(playerid, COLOR_RED, "You already are logged in!");
		    return 1;
		}
	    tmp = strtok(cmdtext, idx);

 		GetPlayerName(playerid, playername, sizeof(playername));
	    if(!strlen(tmp))
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /login [password]");

		else
		{
			if(dini_Exists(udb_encode(playername)))
			{
					tmp2 = dini_Get(udb_encode(playername), "password");
			  		if(udb_hash(tmp) != strval(tmp2))
	  				{
	  				    new PlayerName[24];
	  				    GetPlayerName(playerid, PlayerName, 30);
	  				    format(string, sizeof(string), "Error! You have specified the wrong password for %s", PlayerName);
	  				    SendClientMessage(playerid, COLOR_RED, string);
					}
					else
					{
						logged[playerid] = 1;
						dini_Set(udb_encode(playername),"pass",tmp);
		                PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(playername), "level");
		                GameTextForPlayer(playerid, "~b~Successfully logged in!",2000,1);
		                PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		                if(PlayerInfo[playerid][pAdmin] == 0)
		                {
		                    new PlayerName[24];
	  				    	GetPlayerName(playerid, PlayerName, 30);
	  				    	format(string, sizeof(string), "Logged in as: %s, Regular member", PlayerName);
	  				    	SendClientMessage(playerid, COLOR_CYAN, string);
						}
		                if(PlayerInfo[playerid][pAdmin] == 1)
                  		{
                    		new PlayerName[24];
	  				    	GetPlayerName(playerid, PlayerName, 30);
	  				    	format(string, sizeof(string), "Logged in as: %s, Admin level 1 (moderator)", PlayerName);
	  				    	SendClientMessage(playerid, COLOR_CYAN, string);
						}
						if(PlayerInfo[playerid][pAdmin] == 2)
                  		{
                    		new PlayerName[24];
	  				    	GetPlayerName(playerid, PlayerName, 30);
	  				    	format(string, sizeof(string), "Logged in as: %s, Admin level 2 (administrator)", PlayerName);
	  				    	SendClientMessage(playerid, COLOR_CYAN, string);
						}
						if(PlayerInfo[playerid][pAdmin] == 3)
                  		{
                    		new PlayerName[24];
	  				    	GetPlayerName(playerid, PlayerName, 30);
	  				    	format(string, sizeof(string), "Logged in as: %s, Admin level 3 (Head administrator)", PlayerName);
	  				    	SendClientMessage(playerid, COLOR_CYAN, string);
						}
						if(PlayerInfo[playerid][pAdmin] == 4)
						{
						    new PlayerName[24];
	  				    	GetPlayerName(playerid, PlayerName, 30);
	  				    	format(string, sizeof(string), "Logged in as: %s, Admin level 4 (Server Owner)", PlayerName);
	  				    	SendClientMessage(playerid, COLOR_CYAN, string);
						}
						return 1;
					}
			}
			else
			{
			    format(string, sizeof(string), "The account %s, does not exist on this server. Please type /register [password] to create an account.", playername);
				SendClientMessage(playerid, COLOR_RED, string);
			}
		}

		return 1;
	}
// === [Adminhelp] ===
	if(strcmp(cmd, "/xcommands", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
	    if(logged[playerid] == 1)
	    {
		    if(PlayerInfo[playerid][pAdmin] >= 1)
		    {
		        new PlayerName[30];
		        GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /xcommands & succeeded - The player is admin!", PlayerName);
				if(PlayerInfo[playerid][pAdmin] == 1)
				{
					SendClientMessage(playerid, COLOR_RED, ">>-+== Level 1 Admin commands =====================================================================================");
					SendClientMessage(playerid, COLOR_YELLOW, Level1Commands1);
					SendClientMessage(playerid, COLOR_YELLOW, Level1Commands2);
				}
				if(PlayerInfo[playerid][pAdmin] == 2)
				{
				    SendClientMessage(playerid, COLOR_RED, ">>-+== Level 2 Admin commands =====================================================================================");
			 		SendClientMessage(playerid, COLOR_YELLOW, Level1Commands1);
					SendClientMessage(playerid, COLOR_YELLOW, Level1Commands2);
					SendClientMessage(playerid, COLOR_YELLOW, Level2Commands1);
					SendClientMessage(playerid, COLOR_YELLOW, Level2Commands2);
				}
				if(PlayerInfo[playerid][pAdmin] == 3)
				{
				    SendClientMessage(playerid, COLOR_RED, ">>-+== Level 3 Admin commands =====================================================================================");
					SendClientMessage(playerid, COLOR_YELLOW, Level1Commands1);
					SendClientMessage(playerid, COLOR_YELLOW, Level1Commands2);
					SendClientMessage(playerid, COLOR_YELLOW, Level2Commands1);
					SendClientMessage(playerid, COLOR_YELLOW, Level2Commands2);
					SendClientMessage(playerid, COLOR_YELLOW, Level3Commands1);
					SendClientMessage(playerid, COLOR_YELLOW, Level3Commands2);
				}
				if(PlayerInfo[playerid][pAdmin] == 4)
				{
				    SendClientMessage(playerid, COLOR_RED, ">>-+== Level 4 Admin commands =====================================================================================");
				    SendClientMessage(playerid, COLOR_YELLOW, Level1Commands1);
					SendClientMessage(playerid, COLOR_YELLOW, Level1Commands2);
					SendClientMessage(playerid, COLOR_YELLOW, Level2Commands1);
					SendClientMessage(playerid, COLOR_YELLOW, Level2Commands2);
					SendClientMessage(playerid, COLOR_YELLOW, Level3Commands1);
					SendClientMessage(playerid, COLOR_YELLOW, Level3Commands2);
					SendClientMessage(playerid, COLOR_YELLOW, Level4Commands1);
				}
				return 1;
			}
			else
			{
			    new PlayerName[30];
			    GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /adminhelp & FAILED - The player isn't admin", PlayerName);
	   			SendClientMessage(playerid, COLOR_CYAN, "You are not authorized to use this command!");
				return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
	}
	if(strcmp(cmd, "/servername", true) == 0)
	{
	    tmp = strtok(cmdtext, idx);
	    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_BLUE,"Correct Usage: /servername [new name]");
	    if(logged[playerid] == 1)
	    {
	        if(PlayerInfo[playerid][pAdmin] >= 4)
	        {
	            format(tmp,sizeof(tmp),"hostname %s",cmdtext[11]);
	            SendRconCommand(tmp);
	            GetPlayerName(playerid, sendername, sizeof(sendername));
	            format(string, sizeof(string), "AdmCMD: %s(%i) has changed server name to: %s",sendername, playerid, cmdtext[11]);
	            SendClientMessageToAll(COLOR_BLUE,string);
	        }
	        else
	        {
	            SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
	        }
	    }
	    else
	    {
	        SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
	    }
	    return 1;
	}
	if(strcmp(cmd, "/mapname", true) == 0)
	{
	    tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE,"Correct Usage: /mapname [new name]");
			return 1;
		}
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] >= 4)
		    {
				format(tmp,sizeof(tmp),"mapname %s",cmdtext[8]);
				SendRconCommand(tmp);
				GetPlayerName(playerid, sendername, sizeof(sendername));
				format(string, sizeof(string), "AdmCMD: %s(%i) has changed maps name to: %s",sendername, playerid, cmdtext[8]);
				SendClientMessageToAll(COLOR_BLUE,string);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Explode] ===
	if(strcmp(cmd, "/explode", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /explode [playerid]");
			return 1;
		}
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 3)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
					format(string, sizeof(string), "AdmCMD: %s was exploded by %s",giveplayer, sendername);
					SendClientMessageToAll(COLOR_BLUE, string);
					SetPlayerHealth(giveplayerid, 10);
					new Float:boomx, Float:boomy, Float:boomz;
					GetPlayerPos(giveplayerid,boomx, boomy, boomz);
					CreateExplosion(boomx, boomy , boomz, 7, 10);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /explode to explode %s", PlayerName, giveplayer);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/setname", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		new tmpp[256];
		tmpp = strtok(cmdtext, idx);
		if(!strlen(tmpp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /setname [playerid] [new nick]");
			return 1;
		}
		giveplayerid = strval(tmpp);
		tmp = strtok(cmdtext, idx);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] >= 3)
		    {
		        if(IsPlayerConnected(giveplayerid))
		        {
					SetPlayerName(giveplayerid, tmp);
					format(string, sizeof(string), "AdmCMD: %s(%i) has changed Your name to %s", sendername, playerid, tmp);
					SendClientMessage(giveplayerid, COLOR_BLUE, string);
					format(string, sizeof(string), "AdmCMD: You have changed ID %i's name to %s", giveplayerid, tmp);
					SendClientMessage(playerid, COLOR_BLUE, string);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
	  	return 1;
  	}
// === [Asay] ===
	if(strcmp(cmd, "/asay", true) == 0)
	{
		GetPlayerName(playerid, sendername, sizeof(sendername));
		PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		new length = strlen(cmdtext);
		GetPlayerName(playerid, sendername, sizeof(sendername));
		while ((idx < length) && (cmdtext[idx] <= ' '))
		{
			idx++;
		}
		new offset = idx;
		new result[64];
		while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
		{
			result[idx - offset] = cmdtext[idx];
			idx++;
		}
		result[idx - offset] = EOS;
		if(!strlen(result) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /asay [text]");
			return 1;
		}
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
				format(string, sizeof(string), "Admin %s: %s", sendername, result);
				SendClientMessageToAll(COLOR_BLUE,string);
				new PlayerName[30];
				GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /asay to send the message: %s", PlayerName, result);
	     	}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
				return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Goto] ===
 	if(strcmp(cmd, "/goto", true) == 0)
	{
		GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /goto [playerid]");
			return 1;
		}
		new Float:plocx,Float:plocy,Float:plocz;
		giveplayerid = strval(tmp);
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 2)
			{
				if(IsPlayerConnected(giveplayerid))
				{
				    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof(sendername));
					format(string, sizeof(string), "AdmCMD: You teleported Yourself to %s(%i)", giveplayer, giveplayerid);
					SendClientMessage(playerid, COLOR_BLUE, string);
					GetPlayerPos(giveplayerid, plocx, plocy, plocz);
					new intid = GetPlayerInterior(giveplayerid);
					SetPlayerInterior(playerid,intid);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /goto to go to %s", PlayerName, giveplayer);
					if (GetPlayerState(playerid) == 2)
					{
						new tmpcar = GetPlayerVehicleID(playerid);
						SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
					}
					else
					{
							SetPlayerPos(playerid,plocx,plocy+2, plocz);
					}
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Gethere] ===
	if(strcmp(cmd, "/gethere", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /gethere [playerid]");
			return 1;
		}
		new Float:plocx,Float:plocy,Float:plocz;
		giveplayerid = strval(tmp);
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 2)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
				    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof(sendername));
					format(string, sizeof(string), "AdmCMD: You were teleported to %s(%i)",sendername,playerid);
					SendClientMessage(giveplayerid, COLOR_BLUE, string);
					format(string, sizeof(string), "AdmCMD: You teleported %s(%i) to Yourself", giveplayer, giveplayerid);
					SendClientMessage(playerid, COLOR_BLUE, string);
					GetPlayerPos(playerid, plocx, plocy, plocz);
					new intid = GetPlayerInterior(playerid);
					SetPlayerInterior(giveplayerid,intid);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /gethere to get %s", PlayerName, giveplayer);

					if (GetPlayerState(giveplayerid) == 2)
					{
						new tmpcar = GetPlayerVehicleID(giveplayerid);
						SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
					}
					else
					{
							SetPlayerPos(giveplayerid,plocx,plocy+2, plocz);
					}
				}
				else
				{
	                format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
            SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === {Getall] ===
	if(strcmp(cmd, "/getallhere", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 3)
			{
			    for(new i = 0; i < MAX_PLAYERS; i ++)
			    {
			        if(IsPlayerConnected(i))
			        {
						format(string, sizeof(string), "AdmCMD: %s has teleported everyone to himself", sendername);
						SendClientMessage(i, COLOR_BLUE, string);
						new Float:ix, Float:iy, Float:iz;
						GetPlayerPos(playerid, ix, iy, iz);
						SetPlayerInterior(i, GetPlayerInterior(playerid));
						SetPlayerPos(i, ix, iy, iz+1);
						new PlayerName[30];
						GetPlayerName(playerid, PlayerName, 30);
						printf("[Command] %s has used /getallhere to get all", PlayerName);
					}
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Time] ===
	if(strcmp(cmd, "/time", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /time [0-23]");
			return 1;
		}
		new time;
		time = strval(tmp);
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 3)
			{
			    if(time > 23)
				{
					SendClientMessage(playerid, COLOR_RED, "Invalid time! 0 - 23!");
				}
				else
				{
		            SetWorldTime(time);
					format(string, sizeof(string), "AdmCMD: Admin %s set the time to: %d",sendername,time);
					SendClientMessageToAll(COLOR_BLUE, string);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /time to set time to: %s", PlayerName, time);
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Weather] ===
	if(strcmp(cmd, "/weather", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
		PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /weather [weather]");
			SendClientMessage(playerid, COLOR_BLUE, "Weather IDs: /weatherids");
			return 1;
		}
		new weather;
		weather = strval(tmp);
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 3)
			{
	            SetWeather(weather);
				format(string, sizeof(string), "AdmCMD: Admin %s set the weather to: %d",sendername,weather);
				SendClientMessageToAll(COLOR_BLUE, string);
				SendClientMessage(playerid, COLOR_BLUE, "See wheater IDs at: /weatherids");
				new PlayerName[30];
				GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /weather to set weather to: %s", PlayerName, weather);
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Weatherids] ===
 	if(strcmp(cmd, "/weatherids", true) == 0 || strcmp(cmd, "/weathers", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
		PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		if(PlayerInfo[playerid][pAdmin] >= 3)
		{
			SendClientMessage(playerid, COLOR_RED, ">>+-=================================== [Weather Ids: ] ================================");
			SendClientMessage(playerid, COLOR_YELLOW, ">>| 1 - Blue | 2 - Lighter Blue | 3 - Light (No color) | 4 - Even more lighter");
			SendClientMessage(playerid, COLOR_YELLOW, ">>| 5 - Normal Sun | 7 - (My PC = Beeped) | 8 - Rainy | 9 - Foggy | 10 - Standard weather");
			SendClientMessage(playerid, COLOR_YELLOW, ">>| 12 - Colourless, with alittle fog | 13 - Less foggy  | 15 - Little fog ");
			SendClientMessage(playerid, COLOR_YELLOW, ">>| 16 - Rainy | 17 - Hot | 19 - Sandstorm | 20 - Dark | 21 - Some very wierd weather ");
			SendClientMessage(playerid, COLOR_YELLOW, ">>| 23 - Atmosphere style (?) | 25 - Abit foggy | 27 - Abit \"White\" | 30 - Thunderstorm ");
			SendClientMessage(playerid, COLOR_YELLOW, ">>| 32 - Foggy | 33 - Hot | 35 - City weather | 37 - Warm | 38 - Even more city weather ");
			SendClientMessage(playerid, COLOR_YELLOW, ">>| 39 - Industrial weather | 40 - Yellow weather | 42 - Black fog | 43 - Industrial fog ");
			SendClientMessage(playerid, COLOR_YELLOW, ">>| 44 & 45 - Some wierd weather. -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- (c) IDs by PaoloP");
			SendClientMessage(playerid, COLOR_RED, ">>+-====================================================================================");
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
		}
		return 1;
	}
	if(strcmp(cmd,"/report",true) == 0)
	{
		tmp = strtok(cmdtext, idx);
		GetPlayerName(playerid, sendername, sizeof(sendername));
		GetPlayerName(giveplayerid, giveplayer, sizeof(sendername));
		if(!strlen(tmp))
		{
			SendClientMessage(playerid,COLOR_BLUE,"Correct Usage: /report [id] [reason]");
			return 1;
		}
		giveplayerid = strval(tmp);
		if(IsPlayerConnected(giveplayerid))
		{
				new length = strlen(cmdtext);
				while ((idx < length) && (cmdtext[idx] <= ' ')) {
				idx++;
				}
				new offset = idx;
				new result[64];
				while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
				result[idx - offset] = cmdtext[idx];
				idx++;
				}
				result[idx - offset] = EOS;
				if(!strlen(result))
				{
					SendClientMessage(playerid,COLOR_WHITE,"SERVER: /report [id] [reason]");
					return 1;
				}
				GetPlayerName(giveplayerid, giveplayer, sizeof(sendername));
				format(string,sizeof(string),"AdmReport: Report on %s (id %d) by %s (id %d). [reason: %s]", giveplayer, giveplayerid, sendername, playerid,result);
				for(new i=0;i<MAX_PLAYERS;i++)
				{
					if(IsPlayerConnected(i) && PlayerInfo[i][pAdmin] >= 1)
					{
						SendClientMessage(i,COLOR_RED,string);
					}
				}
		}
		else
		{
			format(string, sizeof(string), "%d is not an active player.", giveplayerid);
			SendClientMessage(playerid, COLOR_RED, string);
		}
		return 1;
	}
// === [Slap] ===
 	if(strcmp(cmd, "/slap", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /slap [playerid]");
			return 1;
		}
		new Float:health;
		new Float:px, Float:py, Float:pz;
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
					GetPlayerHealth(giveplayerid, health);
					SetPlayerHealth(giveplayerid, health-5);
					GetPlayerPos(giveplayerid, px, py, pz);
					SetPlayerPos(giveplayerid, px, py, pz+5);
					format(string, sizeof(string), "AdmCMD: %s was slapped by %s",giveplayer, sendername);
					SendClientMessageToAll(COLOR_BLUE, string);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /slap to slap %s", PlayerName, giveplayer);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Reloadbans] ===
	if(strcmp(cmd,"/reloadbans",true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] == 4)
		    {
				SendClientMessage(playerid, COLOR_RED, "You have successfully re-loaded bans!");
				SendRconCommand("reloadbans");
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Reloadlogs] ===
	if(strcmp(cmd,"/reloadlogs",true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] == 4)
			{
				SendRconCommand("reloadlogs");
				SendClientMessage(playerid, COLOR_RED, "You have successfully re-loaded logs!");
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd,"/loadfs",true) == 0)
	{
	    tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /loadfs [filterscript name]");
			return 1;
		}
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] == 4)
			{
				format(string,sizeof(string),"loadfs %s",tmp);
				SendRconCommand(string);
				format(string,sizeof(string),"AdmCMD: If the name You've entered for the FS, %s.amx is loaded",tmp);
				SendClientMessage(playerid,COLOR_BLUE,string);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}

	if(strcmp(cmd,"/unloadfs",true) == 0)
	{
	    tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /unloadfs [filterscript name]");
			return 1;
		}
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] == 4)
		    {
				format(string,sizeof(string),"unloadfs %s",tmp);
				SendRconCommand(string);
				format(string,sizeof(string),"AdmCMD: If the name You've entered for the FS, %s.amx is unloaded",tmp);
				SendClientMessage(playerid,COLOR_BLUE,string);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}

	if(strcmp(cmd,"/changemode",true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
	    tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /changemode [mode name]");
			return 1;
		}
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] == 4)
		    {
				format(string,sizeof(string),"changemode %s",tmp);
				SendRconCommand(string);
				format(string,sizeof(string),"AdmCMD: Trying to change mode to %s...",tmp);
				SendClientMessage(playerid,COLOR_BLUE,string);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Giveweapon] ===
    if(strcmp(cmd,"/giveweapon",true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		new weaponid;
		new giveammo;
		tmp = strtok(cmdtext, idx);
		if(logged[playerid] == 0)
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE,"Correct Usage: /giveweapon [id] [weaponid] [ammo]");
			return 1;
		}
        giveplayerid = strval(tmp);
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE,"Correct Usage: /giveweapon [id] [weaponid] [ammo]");
			return 1;
		}
		weaponid = strval(tmp);
		if(weaponid < 0 || weaponid > 46)
		{
		    SendClientMessage(playerid, COLOR_RED, "ERROR: Invalid weapon ID.");
		    return 1;
		}
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			giveammo = 100000;
		}
		giveammo = strval(tmp);
		if(giveammo < 0 || giveammo > 100000)
		{
		    SendClientMessage(playerid, COLOR_RED, "ERROR: Invalid ammo.");
		    return 1;
		}
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 3)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
					GivePlayerWeapon(giveplayerid, weaponid, giveammo);
					GetPlayerName(playerid, sendername, sizeof(sendername));
					new weaponname[20];
					GetWeaponName(weaponid, weaponname, sizeof(weaponname));
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					format(string,sizeof(string),"AdmCMD: You gave %s \"%s\" with %d ammo",giveplayer, weaponname, giveammo);
					SendClientMessage(playerid, COLOR_BLUE, string);
					format(string,sizeof(string),"AdmCMD: Admin %s gave you \"%s\" with %d ammo",sendername, weaponname, giveammo);
					SendClientMessage(giveplayerid, COLOR_BLUE, string);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
            SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Eject] ===
	if(strcmp(cmd,"/eject",true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    GetPlayerName(giveplayerid, giveplayer, sizeof(sendername));
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid,COLOR_BLUE,"Correct Usage: /eject [playerid]");
			return 1;
		}
		giveplayerid = strval(tmp);
		GetPlayerName(playerid, sendername, sizeof(sendername));
	    GetPlayerName(giveplayerid, giveplayer, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 2)
			{
				if(IsPlayerConnected(giveplayerid))
				{
				    if(IsPlayerInAnyVehicle(giveplayerid))
				    {
				        RemovePlayerFromVehicle(giveplayerid);
				        format(string, sizeof(string), "Administrator %s has ejected You!", sendername);
				        SendClientMessage(giveplayerid, COLOR_RED, string);
				        format(string, sizeof(string), "AdmCMD: %s has been ejected by %s", giveplayer, sendername);
				        SendClientMessageToAll(COLOR_BLUE, string);
				        new PlayerName[30];
						GetPlayerName(playerid, PlayerName, 30);
						printf("[Command] %s has used /eject to eject %s", PlayerName, giveplayer);
				        return 1;
					}
					else
					{
						format(string, sizeof(string), "Error! %s isn't in a vehicle!");
						SendClientMessage(playerid, COLOR_RED, string);
						return 1;
					}
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}

		return 1;
	}
// === [Sethealth] ===
	if(strcmp(cmd,"/sethealth",true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		new health;
		GetPlayerName(playerid, sendername, sizeof(sendername));
		GetPlayerName(giveplayerid, giveplayer,sizeof(giveplayer));
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid,COLOR_BLUE,"Correct Usage: /sethealth [id] [health]");
			return 1;
		}
		giveplayerid = strval(tmp);
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid,COLOR_BLUE,"Correct Usage: /sethealth [id] [health]");
			return 1;
		}
		health = strval(tmp);
		if(health < 0 || health > 100)
		{
		    SendClientMessage(playerid,COLOR_RED,"ERROR: Invalid health.");
		    return 1;
		}
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 2)
			{
				if(IsPlayerConnected(giveplayerid))
				{
	    			SetPlayerHealth(giveplayerid,health);
	    			GetPlayerName(giveplayerid, giveplayer,sizeof(giveplayer));
					format(string,sizeof(string),"AdmCMD: You have been set %s 's health to %d",giveplayer, health);
					SendClientMessage(playerid,COLOR_RED,string);
					format(string,sizeof(string),"AdmCMD: Admin %s set your health to %d",sendername, health);
					SendClientMessage(giveplayerid,COLOR_RED,string);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /sethealth to set %s's health to: %d", PlayerName, giveplayer, health);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/force", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if	(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_GREEN, "USAGE: /force [playerid]");
			return 1;
		}
		giveplayerid = strval(tmp);
		GetPlayerName(playerid, sendername, sizeof(sendername));
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] >= 1)
		    {
		        if(IsPlayerConnected(giveplayerid))
		        {
					format(string, sizeof(string), "AdmCMD: You have forced %s(%i) to class selection", giveplayer, giveplayerid);
					SendClientMessage(playerid, COLOR_BLUE, string);
					SetPlayerHealth(giveplayerid, 0.0);
					ForceClassSelection(giveplayerid);
					format(string, sizeof(string), "AdmCMD: %s(%i) has forced You to class selection", sendername, playerid);
					SendClientMessage(giveplayerid, COLOR_BLUE, string);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/setarmour", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		new armor;
		GetPlayerName(playerid, sendername, sizeof(sendername));
		GetPlayerName(giveplayerid, giveplayer,sizeof(giveplayer));
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid,COLOR_BLUE,"Correct Usage: /setarmour [id] [armor]");
			return 1;
		}
		giveplayerid = strval(tmp);
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid,COLOR_BLUE,"Correct Usage: /setarmour [id] [armor]");
			return 1;
		}
		armor = strval(tmp);
		if(armor < 0 || armor > 100)
		{
		    SendClientMessage(playerid,COLOR_RED,"ERROR: Invalid armor.");
		    return 1;
		}
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 2)
			{
				if(IsPlayerConnected(giveplayerid))
				{
	    			SetPlayerArmour(giveplayerid, armor);
	    			GetPlayerName(giveplayerid, giveplayer,sizeof(giveplayer));
					format(string,sizeof(string),"AdmCMD: You have been set %s 's armour to %d",giveplayer, armor);
					SendClientMessage(playerid,COLOR_RED,string);
					format(string,sizeof(string),"AdmCMD: Admin %s set your armour to %d",sendername, armor);
					SendClientMessage(giveplayerid,COLOR_RED,string);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /setarmor to set %s's armor to: %d", PlayerName, giveplayer, armor);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/healall", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
	    if(logged[playerid] == 1)
	    {
	        if(PlayerInfo[playerid][pAdmin] >= 2)
	        {
	            for(new i = 0; i < MAX_PLAYERS; i ++)
				{
				    if(IsPlayerConnected(i))
				    {
					    SetPlayerHealth(i, 100);
					    format(string, sizeof(string), "AdmCMD: %s has healed everyone", sendername);
					    SendClientMessageToAll(COLOR_BLUE, string);
					}
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Playerinfo] ===
	if(strcmp(cmd, "/playerinfo", true) == 0 || strcmp(cmd, "/stats", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /playerinfo [playerid]");
			return 1;
		}
		giveplayerid = strval(tmp);
		if(logged[playerid] == 0)
		{
			SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
				if(IsPlayerConnected(giveplayerid))
				{
				    new Float:health;
				    new Float:armour;
					new intr = GetPlayerInterior(giveplayerid);
					GetPlayerHealth(giveplayerid,health);
					GetPlayerArmour(giveplayerid,armour);
					new ammo = GetPlayerAmmo(giveplayerid);
					new score = GetPlayerScore(giveplayerid);
					new skin = GetPlayerSkin(giveplayerid);
					new money = GetPlayerMoney(giveplayerid);
					new playerip[256];
					GetPlayerIp(giveplayerid, playerip, sizeof(playerip));
					new ping = GetPlayerPing(giveplayerid);
					if(logged[giveplayerid] == 0)
					{
						format(string, sizeof(string),"Information on player %s (ID: %i)(Player isn't logged in) :",giveplayer, giveplayerid);
						SendClientMessage(playerid, COLOR_BLUE, string);
					}
					else
					{
						format(string, sizeof(string),"Information on player %s (ID: %i) :",giveplayer, giveplayerid);
						SendClientMessage(playerid, COLOR_BLUE, string);
					}
					format(string, sizeof(string), "Health [%.1f] | Armour [%.1f] | Money [%d] | Interior [%d] | IP [%s]",health, armour, money, intr,playerip);
					SendClientMessage(playerid, COLOR_RED,string);
					format(string, sizeof(string), "Ammo [%d] | Score[%d] | Skin [%d] | Ping [%d] | Times Warned: %d",ammo, score, skin, ping, WarnedTimes);
					SendClientMessage(playerid, COLOR_RED,string);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /playerinfo to see information on player %s", PlayerName, giveplayer);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
	            SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
	            return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/restart", true) == 0 || strcmp(cmd, "/gmx", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] == 4)
		    {
		        format(string, sizeof(string), "AdmCMD: %s has restarted the server, please wait");
		        SendClientMessageToAll(COLOR_RED, string);
		        SetTimerEx("Restart", 5000, 0, "i", playerid);
				new PlayerName[30];
				GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /restart to restart the server", PlayerName);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [IP] ===
	if(strcmp(cmd, "/ip", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
	    tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /ip [playerid]");
			return 1;
		}
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
					new playerip[256];
					GetPlayerIp(giveplayerid, playerip, sizeof(playerip));
					format(string, sizeof(string),"AdmCMD: Checked IP on %s(%i): %s ",giveplayer, giveplayerid, playerip);
					SendClientMessage(playerid, COLOR_BLUE, string);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /ip to check %s's IP", PlayerName, giveplayer);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
	            SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
	            return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Givemoney] ===
	if(strcmp(cmd, "/givemoney", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 3)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /givemoney [playerid] [amount]");
			return 1;
		}
		new money;
		giveplayerid = strval(tmp);
		if(logged[playerid] == 0)
		{
			SendClientMessage(playerid, COLOR_RED, "You must be logged in to use this command!");
			return 1;
		}
		tmp = strtok(cmdtext, idx);
		money = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 3)
			{
				GivePlayerMoney(giveplayerid, money);
				format(string, sizeof(string), "AdmCMD: You sent %s(%i) $%d", giveplayer,giveplayerid, money);
				SendClientMessage(playerid,COLOR_BLUE, string);
				format(string, sizeof(string), "AdmCMD: You received $%d from Admin %s", money,sendername);
				SendClientMessage(giveplayerid,COLOR_BLUE, string);
				new PlayerName[30];
				GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /givemoney to give %s $%s", PlayerName, giveplayer, money);
			}
			else
			{
	            SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
	 			return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Setmoney] ===
	if(strcmp(cmd, "/setmoney", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 3)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /setmoney [playerid] [amount]");
			return 1;
		}
		new money;
		giveplayerid = strval(tmp);
		if(logged[playerid] == 0)
		{
			SendClientMessage(playerid, COLOR_RED, "You must be logged in to use this command!");
			return 1;
		}
		tmp = strtok(cmdtext, idx);
		money = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 3)
			{
			    ResetPlayerMoney(giveplayerid);
				GivePlayerMoney(giveplayerid, money);
				format(string, sizeof(string), "AdmCMD: You set %s(%i)'s money to $%d", giveplayer,giveplayerid, money);
				SendClientMessage(playerid,COLOR_BLUE, string);
				format(string, sizeof(string), "AdmCMD: Admin %s has set Your money to %d", sendername, money);
				SendClientMessage(giveplayerid,COLOR_BLUE, string);
				new PlayerName[30];
				GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /setmoney to set %s's money to $%s", PlayerName, giveplayer, money);
			}
			else
			{
	            SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
	 			return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Kick] ===
	if(strcmp(cmd,"/kick",true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
	    tmp = strtok(cmdtext, idx);
	    GetPlayerName(playerid, sendername, sizeof(sendername));
		if(!strlen(tmp))
		{
			SendClientMessage(playerid,COLOR_BLUE, "Correct Usage: /kick [id] [reason]");
			return 1;
		}
        giveplayerid = strval(tmp);
		giveplayerid = strval(tmp);
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
				if(IsPlayerConnected(giveplayerid))
				{
					new length = strlen(cmdtext);
					while ((idx < length) && (cmdtext[idx] <= ' ')) {
					idx++;
					}
					new offset = idx;
					new result[64];
					while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
					result[idx - offset] = cmdtext[idx];
					idx++;
					}
					result[idx - offset] = EOS;
					if(!strlen(result))
					{
						result = "No reason";
					}
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					format(string, sizeof(string), "AdmCMD: %s was kicked by admin %s for: %s", giveplayer, sendername, result);
					SendClientMessageToAll(COLOR_BLUE, string);
					Kick(giveplayerid);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /kick to kick %s for: %s", PlayerName, giveplayer, result);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/jetpack", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
	    if(logged[playerid] == 1)
	    {
	        if(PlayerInfo[playerid][pAdmin] >= 3)
	        {
	            SetPlayerSpecialAction(playerid, 2);
	            SendClientMessage(playerid, COLOR_BLUE, "AdmCMD: You've created a jetpack!");
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
            SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Warn] ===
	if(strcmp(cmd, "/warn", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		new str[256];
		tmp = strtok(cmdtext, idx);
		tmp2 = strtok(cmdtext, idx);

		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /warn [PlayerID] [Reason]");
			return 1;
		}
		giveplayerid = strval(tmp);
		giveplayerid = strval(tmp);
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
				if(WarnedTimes[giveplayerid] == 0)
				{
					WarnedTimes[giveplayerid]+=1;
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof (sendername));
					format(str, sizeof (str), "AdmCMD: %s was warned by %s for: %s [1/3 Warnings]", giveplayer, sendername, cmdtext[8]);
					SendClientMessageToAll(COLOR_BLUE, str);
					print(str);
					return 1;
				}
				if(WarnedTimes[giveplayerid] == 1)
				{
				    WarnedTimes[giveplayerid]+=1;
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof (sendername));
					format(str, sizeof (str), "AdmCMD: %s was warned by %s for: %s [2/3 Warnings]", giveplayer, sendername, cmdtext[8]);
					SendClientMessageToAll(COLOR_BLUE, str);
					print(str);
					return 1;
				}
				else if(WarnedTimes[giveplayerid] == 2)
				{
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof (sendername));
					format(str, sizeof (str), "AdmCMD: %s was kicked by %s for: %s [3/3 Warnings]", giveplayer, sendername, cmdtext[8]);
					SendClientMessageToAll(COLOR_BLUE, str);
					Kick(giveplayerid);
					return 1;
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
				return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
	}
// === [Freeze] ===
	if(strcmp(cmd, "/freeze", true) == 0)
	{
		tmp = strtok(cmdtext, idx);
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
        PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
        giveplayerid = strval(tmp);
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
			        if(freeze[giveplayerid] == 1)
			        {
			            SendClientMessage(playerid, COLOR_RED, "The player is already frozen!");
			            return 1;
					}
					else
					{
				        freeze[giveplayerid] = 1;
						GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						TogglePlayerControllable(giveplayerid, 0);
						format(string, sizeof(string), "AdmCMD: %s was frozen by %s.",giveplayer, sendername);
						SendClientMessageToAll(COLOR_BLUE, string);
						new PlayerName[30];
						GetPlayerName(playerid, PlayerName, 30);
						printf("[Command] %s has used /freeze to freeze %s", PlayerName, giveplayer);
						return 1;
					}
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_BLUE, string);
				}
			}
			else
			{
	 			SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
	 			return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Unfreeze] ===
	if(strcmp(cmd, "/unfreeze", true) == 0)
	{
		tmp = strtok(cmdtext, idx);
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
        PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
        giveplayerid = strval(tmp);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /unfreeze [playerid]");
			return 1;
		}
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
			        if(freeze[giveplayerid] == 1)
			        {
		      			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						TogglePlayerControllable(giveplayerid, 1);
						freeze[giveplayerid] = 0;
						format(string, sizeof(string), "AdmCMD: %s was thawed by %s", giveplayer,sendername);
						SendClientMessageToAll(COLOR_BLUE, string);
						new PlayerName[30];
						GetPlayerName(playerid, PlayerName, 30);
						printf("[Command] %s has used /unfreeze to unfreeze(thaw) %s", PlayerName, giveplayer);
						return 1;
					}
					else
					{
					    SendClientMessage(playerid, COLOR_RED, "This player can't be thawed, he already is!");
					    return 1;
					}
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
	 			SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
	 			return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Setadmin] ===
	if(strcmp(cmd, "/setadmin", true) == 0 || strcmp(cmd, "/setlevel", true) == 0)
	{
		tmp = strtok(cmdtext, idx);
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
		giveplayerid = strval(tmp);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /setadmin [playerid] [level]");
			return 1;
		}
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /setadmin [playerid] [level]");
			return 1;
		}
		PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		level[playerid] = strval(tmp);
		if(level[playerid] < 0)
		{
			SendClientMessage(playerid, COLOR_RED, "Invalid Admin Level");
            return 1;
		}
		if(level[playerid] > 4)
		{
			SendClientMessage(playerid, COLOR_RED, "Invalid Admin Level");
            return 1;
		}
		if(level[playerid] == PlayerInfo[giveplayerid][pAdmin])
		{
            format(string, sizeof(string), "That player already has level %d admin privileges.", level[playerid]);
            SendClientMessage(playerid, COLOR_BLUE, string);
            return 1;
		}
		if(logged[playerid] == 1)
		{
			if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] >= 3)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
			        if(logged[giveplayerid] == 0)
					{
						SendClientMessage(playerid, COLOR_RED, "The player You're setting rights to must be logged in!");
						return 1;
					}
					else
					{
						GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
						GetPlayerName(playerid, sendername, sizeof(sendername));
						dini_IntSet(udb_encode(giveplayer), "level", level[playerid]);
						format(string, sizeof(string), "You have given %s level %d admin powers.", giveplayer, level[playerid]);
						SendClientMessage(playerid, COLOR_BLUE, string);
						format(string, sizeof(string), "You were made a level %d admin by %s (id: %d).", level[playerid], sendername, playerid);
						SendClientMessage(giveplayerid, COLOR_BLUE, string);
						PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
						new PlayerName[30];
						GetPlayerName(playerid, PlayerName, 30);
						printf("[Command] %s has used /setadmin to set %s ' level to: %d", PlayerName, giveplayer, level[playerid]);
					}
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player ID number.", giveplayerid);
	            	SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/setmeadmin", true) == 0)
	{
	    if(logged[playerid] == 1)
	    {
		    if(IsPlayerAdmin(playerid))
		    {
				GetPlayerName(playerid, sendername, sizeof(sendername));
		        level[playerid] = 4;
		        level[playerid] = dini_Int(udb_encode(sendername), "level");
		        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		        level[playerid] = PlayerInfo[playerid][pAdmin];
		        SendClientMessage(playerid, COLOR_RED, "You've set Your level to 4, Server Owner");
		        SendClientMessage(playerid, COLOR_RED, "Check out /adminhelp for administration commands.");
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You have to be RCON admin to set Yourself admin!");
			}
			return 1;
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You must be logged in!");
		}
		return 1;
	}

// === [Ban] ===
	if(strcmp(cmd,"/ban",true) == 0)
	{
		tmp = strtok(cmdtext, idx);
		GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /ban [id] [reason]");
			return 1;
		}
		giveplayerid = strval(tmp);
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 2)
			{
				if(IsPlayerConnected(giveplayerid))
				{
					new length = strlen(cmdtext);
					while ((idx < length) && (cmdtext[idx] <= ' ')) {
					idx++;
					}
					new offset = idx;
					new result[64];
					while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
					result[idx - offset] = cmdtext[idx];
					idx++;
					}
					result[idx - offset] = EOS;
					if(!strlen(result))
					{
						result = "No reason";
					}
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					format(string, sizeof(string), "AdmCMD: %s was banned by admin %s for: %s", giveplayer, sendername, result);
					SendClientMessageToAll(COLOR_BLUE, string);
					Ban(giveplayerid);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /ban to ban %s for: %s", PlayerName, giveplayer, result);
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
				return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Mute] ===
	if(strcmp(cmd, "/mute", true) == 0)
	{
	    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
        PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
		tmp = strtok(cmdtext, idx);
		if(IsStringAName(tmp))
		{
			giveplayerid = GetPlayerID(tmp);
		}
		else
		{
			giveplayerid = strval(tmp);
		}
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /mute [ID]");
			return 1;
		}
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
				if(IsPlayerConnected(giveplayerid))
				{
					if(Mute[giveplayerid] == 0)
					{
						Mute[giveplayerid] = 1;
						format(string, sizeof(string), "AdmCMD: %s was muted by %s",giveplayer ,sendername);
						SendClientMessageToAll(COLOR_BLUE, string);
						new PlayerName[30];
						GetPlayerName(playerid, PlayerName, 30);
						printf("[Command] %s has used /mute to mute %s", PlayerName, giveplayer);
					}
					else
					{
						Mute[giveplayerid] = 0;
						format(string, sizeof(string), "AdmCMD: %s was un-muted by %s",giveplayer ,sendername);
						SendClientMessageToAll(COLOR_BLUE, string);
						new PlayerName[30];
						GetPlayerName(playerid, PlayerName, 30);
						printf("[Command] %s has used /mute to unmute %s", PlayerName, giveplayer);
					}
				}
				else
				{
					format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
	 			SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
	 			return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [Announce] ===
	if(strcmp(cmd, "/announce", true) == 0 || strcmp(cmd, "/ann", true) == 0)
	{

        tmp = strtok(cmdtext, idx, strlen(cmdtext));
		GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
        PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
		PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		/*if(PlayerInfo[playerid][pAdmin] == 0)
		{
		    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
		    return 1;
		}*/
 		if (!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 2)
  		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /announce [message]");
 			return 1;
      	}
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 2)
			{
	  			format(string, sizeof(string), "~r~%s", tmp);
				GameTextForAll(string, 5000, 3);
				new PlayerName[30];
	 			GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /announce", PlayerName);
				for(new i=0;i<MAX_PLAYERS;i++)
				{
					if(IsPlayerConnected(i))
					{
			    		aMessage[i] = 1;
			    		SetTimer("announcer",5000,0);
					}
				}
			}
	 		else
	  		{
	   			if(PlayerInfo[playerid][pAdmin] == 1)
				{
					SendClientMessage(playerid, COLOR_RED, "You are administrator level 1. Level 2 rights are required to execute /announce");
				}
				else
				{
	 				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
				}
	  			return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
        return 1;
	}
// === [Akill] ===
	if(strcmp(cmd, "/akill", true) == 0)
	{
		tmp = strtok(cmdtext, idx);
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
        PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
        giveplayerid = strval(tmp);
		if(PlayerInfo[playerid][pAdmin] < 1)
		{
		    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
		    return 1;
		}
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /akill [playerid]");
			return 1;
		}
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
			    if(IsPlayerConnected(giveplayerid))
			    {
			    	GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof(sendername));
					SetPlayerHealth(giveplayerid, -999);
					format(string, sizeof(string), "AdmCMD: You have murdered %s.", giveplayer);
					SendClientMessage(playerid, COLOR_BLUE, string);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /akill to kill %s", PlayerName, giveplayer);
					return 1;
				}
				else
				{
				    format(string, sizeof(string), "%d is not an active player.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
	 			SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
	 			return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
	}

// === [Admins] ===
	if(!strcmp(cmdtext, "/admins", true))
	{
	    SendClientMessage(playerid, COLOR_BLUE, "Checking for administrators online...");
		new count=0;
		for(new i=0; i<MAX_PLAYERS; i++)
		{
	    	if(IsPlayerConnected(i))
	    	{
	    	    if(logged[i] == 1)
	    	    {
					if(PlayerInfo[i][pAdmin] >= 1)
					{
						new str[256];
						new pname[24];
						GetPlayerName(i, pname, 24);
						format(str, 256, "Administrator %s [Level %d] ", pname, PlayerInfo[i][pAdmin]);
						SendClientMessage(playerid, COLOR_RED, str);
						count++;
					}
				}
			}
		}
		if(count == 0)
		{
	    	SendClientMessage(playerid, COLOR_RED, "There aren't any administrators online on the server!");
		}
		return 1;
	}
// === [Tele] ===
	if(strcmp(cmd, "/tele", true) == 0)
	{
		new telename[MAX_PLAYER_NAME];
		new teleid;
		new Float:pX, Float:pY, Float:pZ;
		tmp = strtok(cmdtext, idx);
		GetPlayerName(playerid, sendername, sizeof(sendername));
		PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "USAGE: /tele [teleportee id] [destination id]");
			return 1;
		}
		giveplayerid = strval(tmp);
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "USAGE: /tele [teleportee id] [destination id]");
			return 1;
		}
 		teleid = strval(tmp);
 		if(logged[playerid] == 1)
 		{
	        if(PlayerInfo[playerid][pAdmin] >= 2)
	        {
	            if(IsPlayerConnected(giveplayerid) && IsPlayerConnected(teleid))
	            {
	            	GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof(sendername));
					GetPlayerName(teleid, telename, sizeof(telename));
					GetPlayerPos(teleid, pX,pY,pZ);
					SetPlayerPos(giveplayerid, pX,pY,pZ);
					format(string, sizeof(string), "AdmCMD: You teleported %s to %s.", giveplayer,telename);
					SendClientMessage(playerid, COLOR_BLUE, string);
					format(string, sizeof(string), "AdmCMD: You have been teleported to %s by Admin %s.", telename,sendername);
					SendClientMessage(giveplayerid, COLOR_BLUE, string);
					new PlayerName[24];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /tele to tele %s to %s", PlayerName, giveplayer, telename);
					return 1;
				}
				else
				{
					if(!IsPlayerConnected(giveplayerid))
					{
						format(string, sizeof(string), "ID:%d is not an active player ID number.", giveplayerid);
						SendClientMessage(playerid, COLOR_RED, string);
					}
					if(!IsPlayerConnected(teleid))
					{
						format(string, sizeof(string), "ID:%d is not an active player ID number.", teleid);
						SendClientMessage(playerid, COLOR_RED, string);
					}
				}
			}
			else
			{
		 		SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [A] ===
	if(strcmp(cmd, "/a", true) == 0 || strcmp(cmd, "/admin", true) == 0 || strcmp(cmd, "/achat", true) == 0)
	{
		GetPlayerName(playerid, sendername, sizeof(sendername));
		new length = strlen(cmdtext);
		while ((idx < length) && (cmdtext[idx] <= ' '))
		{
			idx++;
		}
		new offset = idx;
		new result[64];
		while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
		{
			result[idx - offset] = cmdtext[idx];
			idx++;
		}
		result[idx - offset] = EOS;
		if(!strlen(result))
		{
			SendClientMessage(playerid, COLOR_GREY, "USAGE: /a [text] [admin chat]");
			return 1;
		}
		if(logged[playerid] == 1)
		{
			if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] >= 1)
			{
				format(string, sizeof(string), "(( Admin Chat %s: %s ))", sendername, result);
				for(new i = 0; i < MAX_PLAYERS; i ++)
				{
				    if(IsPlayerConnected(i))
				    {
				        if(PlayerInfo[i][pAdmin] >= 1)
				        {
				            SendClientMessage(i,COLOR_BLUE, string);
						}
					}
				}
				printf(string);
	            return 1;
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You aren't able to use administration chat!");
	            return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
	}


// === [Clearchat] ===
	if(strcmp(cmdtext, "/clearchat", true) == 0)
	{
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 1)
			{
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				SendClientMessageToAll(COLOR_SYSTEM, " ");
				GameTextForAll("Chat cleared!", 1000,1);
				new PlayerName[30];
				GetPlayerName(playerid, PlayerName, 30);
				printf("[Command] %s has used /clearchat", PlayerName);
				return 1;
			}
			else
			{
	 			SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
				return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
	}

// === [Disarm] ===
	if(strcmp(cmd, "/disarm", true) == 0)
	{
		tmp = strtok(cmdtext, idx);
		giveplayerid = strval(tmp);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
        PlayerInfo[giveplayerid][pAdmin] = dini_Int(udb_encode(giveplayer), "level");
        giveplayerid = strval(tmp);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1)
		{
			SendClientMessage(playerid, COLOR_BLUE, "USAGE: /disarm [playerid]");
			return 1;
		}
		if(logged[playerid] == 1)
		{
			if(PlayerInfo[playerid][pAdmin] >= 3)
			{
			    if(IsPlayerConnected(giveplayerid))
				{
					GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof(sendername));
					ResetPlayerWeapons(giveplayerid);
					format(string, sizeof(string), "AdmCMD: Admin %s has disarmed %s.", sendername,giveplayer);
					SendClientMessageToAll(COLOR_BLUE, string);
					format(string, sizeof(string), "AdmCMD: Admin %s disarmed you.", sendername);
					SendClientMessage(giveplayerid, COLOR_BLUE, string);
					new PlayerName[30];
					GetPlayerName(playerid, PlayerName, 30);
					printf("[Command] %s has used /disarm to disarm %s", PlayerName, giveplayer);
				}
				else
				{
	   				format(string, sizeof(string), "%d is not an active player ID number.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
				SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
				return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
// === [disarmall] ===
	if(strcmp(cmd, "/disarmall", true) == 0)
	{
	    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
        PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(sendername), "level");
        if(logged[playerid] == 1)
        {
			if(PlayerInfo[playerid][pAdmin] >= 3)
			{
			    for(new i = 0; i < MAX_PLAYERS; i ++)
				{
		  			if(IsPlayerConnected(i))
					{
						ResetPlayerWeapons(i);
						format(string, sizeof(string), "AdmCMD: Admin %s has disarmed everyone.", sendername);
						SendClientMessage(i, COLOR_BLUE, string);
						new PlayerName[30];
						GetPlayerName(playerid, PlayerName, 30);
						printf("[Command] %s has used /disarmall to disarm everyone", PlayerName);
					}
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
				return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/healall", true) == 0)
	{
	    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] >= 2)
			{
			    for(new i = 0; i < MAX_PLAYERS; i++)
				{
				    SetPlayerHealth(i, 100);
				    format(string, sizeof(string), "AdmCMD: Admin %s has healed everyone.", sendername);
				    SendClientMessage(i, COLOR_BLUE, string);
				    new PlayerName[30];
				    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
				    printf("[Command] %s has used /healall to heal everyone", PlayerName);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/armourall", true) == 0)
	{
	    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] >= 2)
			{
			    for(new i = 0; i < MAX_PLAYERS; i++)
				{
				    SetPlayerArmour(i, 100);
				    format(string, sizeof(string), "AdmCMD: Admin %s has armoured everyone.", sendername);
				    SendClientMessage(i, COLOR_BLUE, string);
				    new PlayerName[30];
				    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
				    printf("[Command] %s has used /armourall to armour everyone.", PlayerName);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	if(strcmp(cmd, "/ajail", true) == 0)
	{
		new tmpp[256];
  		tmp = strtok(cmdtext, idx);
  		tmpp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_BLUE, "Correct Usage: /ajail [playerid] [seconds]");
			return 1;
		}
		giveplayerid = strval(tmp);
		GetPlayerName(playerid, sendername, sizeof(sendername));
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		new Second = strval(tmpp);
		if(logged[playerid] == 1)
		{
		    if(PlayerInfo[playerid][pAdmin] >= 1)
		    {
				format(string, sizeof(string), "AdmCMD: You've jailed %s(%i)", giveplayer, giveplayerid);
				SendClientMessage(playerid, COLOR_BLUE, string);
				format(string, sizeof(string), "AdmCMD: %s(%i) has jailed you for %d seconds", sendername, playerid, Second);
				SendClientMessage(playerid, COLOR_BLUE, string);
				format(string, sizeof(string), "~g~Jailed by ~r~%s", sendername);
				GameTextForPlayer(giveplayerid, string, 1000, 1);
				SetPlayerInterior(giveplayerid, 3);
				SetPlayerPos(giveplayerid, 197.6661,173.8179,1003.0234);
				SetPlayerArmour(giveplayerid, 0);
				TogglePlayerControllable(giveplayerid, 0);
				ResetPlayerWeapons(giveplayerid);
				SetTimerEx("Unjail", Second*1000, 0, "i", giveplayerid);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "You do not have permission to use that command!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "You Must be logged in to use this command!");
		}
		return 1;
	}
	return 0;
}

public IsStringAName(string[])
{
	for(new i = 0; i <= MAX_PLAYERS; i++)
	{
	if(IsPlayerConnected(i) == 1)
	{
		new testname[MAX_PLAYER_NAME];
		GetPlayerName(i, testname, sizeof(testname));
		if(strcmp(testname, string, true, strlen(string)) == 0)
		{
			return 1;
		}
	}
}
	return 0;
}
public GetPlayerID(string[])
{
	for(new i = 0; i <= MAX_PLAYERS; i++)
	{
	if(IsPlayerConnected(i) == 1)
	{
		new testname[MAX_PLAYER_NAME];
		GetPlayerName(i, testname, sizeof(testname));
		if(strcmp(testname, string, true, strlen(string)) == 0)
		{
			return i;
		}
	}
}
	return INVALID_PLAYER_ID;
}
public SendMessageToAdmins(color,const string[])
{
	for(new i = 0; i <= MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i) == 1)
		{
			if (IsPlayerAdmin(i) || PlayerInfo[i][pAdmin] >= 1)
			{
				SendClientMessage(i, color, string);
			}
		}
	}
	return 1;
}
public Restart()
{
    SendRconCommand("gmx");
}
public Unjail(giveplayerid)
{
        //new tmpp[256];
        new giveplayer[MAX_PLAYER_NAME];
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		SetPlayerInterior(giveplayerid,0);
		SetPlayerPos(giveplayerid,1546.2803,-1675.6632,13.5620);
		TogglePlayerControllable(giveplayerid,1);
		GameTextForPlayer(giveplayerid, "unjailed", 1000,1);
}


	return 0;
}

//------------------------------------------------------------------------------
public PayDay()
{
	new string[256];
	for(new i=0; i<MAX_PLAYERS; i++)
	GivePlayerMoney(i,PayDay_Amount);
	format(string, sizeof(string),"~w~Heres ~y~Your Pay ~n~ ~n~ ~b~%d $",PayDay_Amount);
	GameTextForAll(string, 1000, 1);
}
//------------------------------------------------------------------------------
public OnPlayerEnterCheckpoint(playerid)
{
	if(Jobcp[playerid] == 0) { Jobcp[playerid] = 1; DisablePlayerCheckpoint(playerid);
	}
	return 1;
}
//------------------------------------------------------------------------------
public MedicCheck(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new storedmedicname[64];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Medic.cfg", io_read);
	if (file)
	{
		new valtmp[MAX_PLAYER_NAME];
		while (fread(file, valtmp) > 0)
		{
			//printf("%s",valtmp);
			strmid(storedmedicname, valtmp, 0, strlen(playername2), 255);
			if ((strcmp(storedmedicname, playername2, true, strlen(playername2)) == 0) && (strlen(playername2) == strlen(storedmedicname)))
			{
				fclose(file);
				return 1;
			}
		}
	}
	fclose(file);
	return 0;
}

public MedicMake(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Medic.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
	fwrite(file,string);
	fclose(file);
	return 1;
}
public MedicQuit(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Medic.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
 	fdeleteline("Medic.cfg", string);
	fclose(file);
	return 1;
}
public FireCheck(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new storedfirename[64];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Fire.cfg", io_read);
	if (file)
	{
		new valtmp[MAX_PLAYER_NAME];
		while (fread(file, valtmp) > 0)
		{
			//printf("%s",valtmp);
			strmid(storedfirename, valtmp, 0, strlen(playername2), 255);
			if ((strcmp(storedfirename, playername2, true, strlen(playername2)) == 0) && (strlen(playername2) == strlen(storedfirename)))
			{
				fclose(file);
				return 1;
			}
		}
	}
	fclose(file);
	return 0;
}

public FireMake(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Fire.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
	fwrite(file,string);
	fclose(file);
	return 1;
}

public FireQuit(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Fire.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
 	fdeleteline("Fire.cfg", string);
	fclose(file);
	return 1;
}
public CopCheck(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new storedcopname[64];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Cop.cfg", io_read);
	if (file)
	{
		new valtmp[MAX_PLAYER_NAME];
		while (fread(file, valtmp) > 0)
		{
			//printf("%s",valtmp);
			strmid(storedcopname, valtmp, 0, strlen(playername2), 255);
			if ((strcmp(storedcopname, playername2, true, strlen(playername2)) == 0) && (strlen(playername2) == strlen(storedcopname)))
			{
				fclose(file);
				return 1;
			}
		}
	}
	fclose(file);
	return 0;
}

public CopMake(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Cop.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
	fwrite(file,string);
	fclose(file);
	return 1;
}

public CopQuit(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Cop.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
 	fdeleteline("Cop.cfg", string);
	fclose(file);
	return 1;
}


public AgentCheck(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new storedagentname[64];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Agent.cfg", io_read);
	if (file)
	{
		new valtmp[MAX_PLAYER_NAME];
		while (fread(file, valtmp) > 0)
		{
			//printf("%s",valtmp);
			strmid(storedagentname, valtmp, 0, strlen(playername2), 255);
			if ((strcmp(storedagentname, playername2, true, strlen(playername2)) == 0) && (strlen(playername2) == strlen(storedagentname)))
			{
				fclose(file);
				return 1;
			}
		}
	}
	fclose(file);
	return 0;
}

public AgentMake(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Agent.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
	fwrite(file,string);
	fclose(file);
	return 1;
}


public AgentQuit(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Agent.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
	fdeleteline("Agent.cfg", string);
	fclose(file);
	return 1;
}
public PilotCheck(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new storedagentname[64];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Pilot.cfg", io_read);
	if (file)
	{
		new valtmp[MAX_PLAYER_NAME];
		while (fread(file, valtmp) > 0)
		{
			//printf("%s",valtmp);
			strmid(storedagentname, valtmp, 0, strlen(playername2), 255);
			if ((strcmp(storedagentname, playername2, true, strlen(playername2)) == 0) && (strlen(playername2) == strlen(storedagentname)))
			{
				fclose(file);
				return 1;
			}
		}
	}
	fclose(file);
	return 0;
}

public PilotMake(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Pilot.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
	fwrite(file,string);
	fclose(file);
	return 1;
}


public PilotQuit(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Pilot.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
	fdeleteline("Pilot.cfg", string);
	fclose(file);
	return 1;
}
public TaxiCheck(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new storedagentname[64];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Taxi.cfg", io_read);
	if (file)
	{
		new valtmp[MAX_PLAYER_NAME];
		while (fread(file, valtmp) > 0)
		{
			//printf("%s",valtmp);
			strmid(storedagentname, valtmp, 0, strlen(playername2), 255);
			if ((strcmp(storedagentname, playername2, true, strlen(playername2)) == 0) && (strlen(playername2) == strlen(storedagentname)))
			{
				fclose(file);
				return 1;
			}
		}
	}
	fclose(file);
	return 0;
}

public TaxiMake(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Taxi.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
	fwrite(file,string);
	fclose(file);
	return 1;
}


public TaxiQuit(playerid)
{
	new playername2[MAX_PLAYER_NAME];
	new string[255];
	GetPlayerName(playerid, playername2, sizeof(playername2));
	new File: file = fopen("Taxi.cfg", io_append);
	format(string,sizeof(string),"%s",playername2);
	fdeleteline("Taxi.cfg", string);
	fclose(file);
	return 1;
}
public fdeleteline(filename[], line[]){
	if(fexist(filename)){
		new temp[256];
		new File:fhandle = fopen(filename,io_read);
		fread(fhandle,temp,sizeof(temp),false);
		if(strfind(temp,line,true)==-1){return 0;}
		else{
			fclose(fhandle);
			fremove(filename);
			for(new i=0;i<strlen(temp);i++){
				new templine[256];
				strmid(templine,temp,i,i+strlen(line));
				if(strcmp(templine, line, true) == 0){
					strdel(temp,i,i+strlen(line));
					fcreate(filename);
					fhandle = fopen(filename,io_write);
					fwrite(fhandle,temp);
					fclose(fhandle);
					return 1;
				}
			}
		}
	}
	return 0;
}
public fcreate(filename[]) {
	if (fexist(filename)){return false;}
	new File:fhandle = fopen(filename,io_write);
	fclose(fhandle);
	return true;
}
strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}
public OnPlayerPrivmsg(playerid, recieverid, text[])
{
	new string[256];
	new playername[MAX_PLAYER_NAME];
	new recievername[MAX_PLAYER_NAME];
	GetPlayerName(recieverid, recievername, sizeof(recievername));
	GetPlayerName(playerid, playername, sizeof(playername));
	format(string, sizeof(string), "AdmPM: PM from %s to %s: %s", playername, recievername, text);
 	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i) && PlayerInfo[i][pAdmin] >= 1 && i != playerid && i != recieverid)
		{
			SendClientMessage(i,  COLOR_CYAN, string);
		}
	}
	return 1;

}
// === [OnPlayerText] ===
public OnPlayerText(playerid,text[])
{
    if(Mute[playerid] == 1)
	{
		SendClientMessage(playerid, COLOR_RED, "You can not talk while muted!");
		return 0;
    }
    if(Mute[playerid] == 0)
    {
		if(strfind(text, "Hack", true) == 0)
		{
		    SendClientMessageToAll(COLOR_RED, "Use /report [id] [reason] to report a abusive player!");
		}
		if(strfind(text, "noob", true) == 0)
		{
		    SendClientMessageToAll(COLOR_RED, "Don't flame please!");
		}
		return 1;
	}
	return 0;
}