All pastes #2061833 Raw Edit

Someone

public text v1 · immutable
#2061833 ·published 2011-05-16 21:50 UTC
rendered paste body
#include <a_samp>
#include <dutils>
#include <lethaldudb2>
#include <core>
#include <float>

#define FILTERSCRIPT
/*=======================================================================================================*/
////////////////////////====[  LETHAL  ADMINSCRIPT  ]====//////////////////////////////////////////////////
////////////////////////====[     Version 2.2       ]====//////////////////////////////////////////////////
/*=======================================================================================================*/

//Color Defines
#define COLOR_GRAD1 0xB4B5B7AA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define green 0x33FF33AA
#define red 0xFF0000AA
#define yellow 0xFFFF00AA
#define grey 0xC0C0C0AA
#define blue 0x2641FEAA
#define orange 0xFF9900AA
#define black 0x2C2727AA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_PURPLE 0x800080AA
#define COLOR_BLACK 0x000000AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN1 0x33AA33AA
#define COLOR_BROWN 0xA52A2AAA
// DCMD
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
// Caps
#define UpperToLower(%1) for ( new ToLowerChar; ToLowerChar < strlen( %1 ); ToLowerChar ++ ) if ( %1[ ToLowerChar ]> 64 && %1[ ToLowerChar ] < 91 ) %1[ ToLowerChar ] += 32
// Spec
#define ADMIN_SPEC_TYPE_NONE 0
#define ADMIN_SPEC_TYPE_PLAYER 1
#define ADMIN_SPEC_TYPE_VEHICLE 2
// Enums
enum PlayerData {
	Registered,
	LoggedIn,
	Level,
	Muted,
	Caps,
	Jailed,
	JailTime,
	Frozen,
	FreezeTime,
	Kills,
	Deaths,
 	MuteWarnings,
	Warnings,
	Spawned,
	TimesSpawned,
	God,
	DoorsLocked,
	Invis,
	AllowPing,
	Spam
};

enum ServerData {
	MaxPing,
	ReadPMs,
	ReadCmds,
	MaxAdminLevel,
	AdminOnlySkins,
	AdminSkin,
	NameKick,
	AntiBot,
	AntiSpam,
 	AntiSwear,
 	NoCaps,
	Locked
};

new PlayerInfo[MAX_PLAYERS][PlayerData];
new ServerInfo[ServerData];
new Float:Pos[MAX_PLAYERS][4];
// Spec
new gSpectateID[MAX_PLAYERS];
new gSpectateType[MAX_PLAYERS];
//Textdraws
new Text:SpecText;
//Timers
new InvisTimer;
new PingTimer;
new GodTimer;
//Duel
new cdt=-1;	new CountTimer;
new InDuel[MAX_PLAYERS];
// Menus
new Menu:LMainMenu, Menu:AdminEnable, Menu:AdminDisable;
new Menu:LVehicles, Menu:twodoor, Menu:fourdoor, Menu:fastcar, Menu:Othercars,
	Menu:bikes, Menu:boats, Menu:planes, Menu:helicopters ;
new Menu:XWeapons, Menu:XWeaponsBig, Menu:XWeaponsSmall, Menu:XWeaponsMore;
new Menu:LWeather,Menu:LTime;
new Menu:LTuneMenu, Menu:PaintMenu, Menu:LCars, Menu:LCars2;
new Menu:LTele, Menu:LasVenturasMenu, Menu:LosSantosMenu, Menu:SanFierroMenu,
	Menu:DesertMenu, Menu:FlintMenu, Menu:MountChiliadMenu,	Menu:InteriorsMenu;
// Time
new shifthour;
new ghour = 0;
new gminute = 0;
new gsecond = 0;
new timeshift = 0;
// rcon
new max_playerid = 0;
// Forbidden Names & Words
new BadNames[100][100];
new BadNameCount = 0;
new ForbiddenWords[100][100];
new ForbiddenWordCount = 0;

//==============================================================================
public OnFilterScriptInit()
{
	print("\n__________________________________________\n");
	print("_______     LAdmin FS by LethaL     ______\n");
	
	max_playerid = GetMaxPlayers() - 1;
	gettime(ghour, gminute, gsecond);
	FixHour(ghour);
	ghour = shifthour;

	if(!fexist("ladmin/"))
	{
	    print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
	  	SetTimerEx("PrintWarning",2500,0,"s","ladmin");
		return 1;
	}
	if(!fexist("ladmin/logs/"))
	{
	    print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
	  	SetTimerEx("PrintWarning",2500,0,"s","ladmin/logs");
		return 1;
	}
	if(!fexist("ladmin/config/"))
	{
	    print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
	  	SetTimerEx("PrintWarning",2500,0,"s","ladmin/config");
		return 1;
	}
	if(!fexist("ladmin/users/"))
	{
	    print("\n\n > WARNING: Folder Missing From Scriptfiles\n");
	  	SetTimerEx("PrintWarning",2500,0,"s","ladmin/users");
		return 1;
	}
	UpdateConfig();
	
	//===================== [ The Menus ]===========================//
	LMainMenu = CreateMenu("Main Menu", 2,  55.0, 200.0, 100.0, 80.0); 
	SetMenuColumnHeader(LMainMenu, 0, "Choose an option below");
	AddMenuItem(LMainMenu, 0, "Enable");
	AddMenuItem(LMainMenu, 0, "Disable");
    AddMenuItem(LMainMenu, 0, "Server Weather");
    AddMenuItem(LMainMenu, 0, "Server Time");
 	AddMenuItem(LMainMenu, 0, "All Vehicles");
	AddMenuItem(LMainMenu, 0, "Admin Cars");
	AddMenuItem(LMainMenu, 0, "Tuning Menu");
	AddMenuItem(LMainMenu, 0, "Choose Weapon");
	AddMenuItem(LMainMenu, 0, "Teleports");
	AddMenuItem(LMainMenu, 0, "Exit Menu");//

	AdminEnable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
	SetMenuColumnHeader(AdminEnable, 0, "Enable");
	AddMenuItem(AdminEnable, 0, "Anti Swear");
	AddMenuItem(AdminEnable, 0, "Bad Name Kick");
	AddMenuItem(AdminEnable, 0, "Anti Spam");
	AddMenuItem(AdminEnable, 0, "Ping Kick");
	AddMenuItem(AdminEnable, 0, "Read Cmds");
	AddMenuItem(AdminEnable, 0, "Read PMs");
	AddMenuItem(AdminEnable, 0, "Capital Letters");
	AddMenuItem(AdminEnable, 0, "Return");

	AdminDisable = CreateMenu("~b~Configuration ~g~ Menu",2, 55.0, 200.0, 150.0, 80.0);
	SetMenuColumnHeader(AdminDisable, 0, "Disable");
	AddMenuItem(AdminDisable, 0, "Anti Swear");
	AddMenuItem(AdminDisable, 0, "Bad Name Kick");
	AddMenuItem(AdminDisable, 0, "Anti Spam");
	AddMenuItem(AdminDisable, 0, "Ping Kick");
	AddMenuItem(AdminDisable, 0, "Read Cmds");
	AddMenuItem(AdminDisable, 0, "Read PMs");
	AddMenuItem(AdminDisable, 0, "Capital Letters");
	AddMenuItem(AdminDisable, 0, "Return");
	
	LWeather = CreateMenu("~b~Weather ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0); 
	SetMenuColumnHeader(LWeather, 0, "Set Weather");
	AddMenuItem(LWeather, 0, "Clear Blue Sky");
	AddMenuItem(LWeather, 0, "Sand Storm");
	AddMenuItem(LWeather, 0, "Thunderstorm");
	AddMenuItem(LWeather, 0, "Foggy");
	AddMenuItem(LWeather, 0, "Cloudy");
	AddMenuItem(LWeather, 0, "High Tide");
	AddMenuItem(LWeather, 0, "Purple Sky");
	AddMenuItem(LWeather, 0, "Black/White Sky");
	AddMenuItem(LWeather, 0, "Dark, Green Sky");
	AddMenuItem(LWeather, 0, "Heatwave");
	AddMenuItem(LWeather,0,"Return");

	LTime = CreateMenu("~b~Time ~g~ Menu", 2,  55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(LTime, 0, "Set Time");
	AddMenuItem(LTime, 0, "Morning");
	AddMenuItem(LTime, 0, "Mid day");
	AddMenuItem(LTime, 0, "Afternoon");
	AddMenuItem(LTime, 0, "Evening");
	AddMenuItem(LTime, 0, "Midnight");
    AddMenuItem(LTime, 0, "Return");

	LCars = CreateMenu("~b~LethaL ~g~Cars", 2,  55.0, 150.0, 100.0, 80.0);
	SetMenuColumnHeader(LCars, 0, "Choose a car");
	AddMenuItem(LCars, 0, "Turismo");
	AddMenuItem(LCars, 0, "Bandito");
	AddMenuItem(LCars, 0, "Vortex");
	AddMenuItem(LCars, 0, "NRG");
	AddMenuItem(LCars, 0, "S.W.A.T");
    AddMenuItem(LCars, 0, "Hunter");
    AddMenuItem(LCars, 0, "Jetmax (boat)");
    AddMenuItem(LCars, 0, "Rhino");
    AddMenuItem(LCars, 0, "Monster Truck");
    AddMenuItem(LCars, 0, "Sea Sparrow");
    AddMenuItem(LCars, 0, "More");
	AddMenuItem(LCars, 0, "Return");

	LCars2 = CreateMenu("~b~LethaL ~g~Cars", 2,  55.0, 150.0, 100.0, 80.0);
	SetMenuColumnHeader(LCars2, 0, "Choose a car");
	AddMenuItem(LCars2, 0, "Dumper");
    AddMenuItem(LCars2, 0, "RC Tank");
    AddMenuItem(LCars2, 0, "RC Bandit");
    AddMenuItem(LCars2, 0, "RC Baron");
    AddMenuItem(LCars2, 0, "RC Goblin");
    AddMenuItem(LCars2, 0, "RC Raider");
    AddMenuItem(LCars2, 0, "RC Cam");
    AddMenuItem(LCars2, 0, "Tram");
	AddMenuItem(LCars2, 0, "Return");
	
	LTuneMenu = CreateMenu("~b~Tuning ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(LTuneMenu, 0, "Add to car");
	AddMenuItem(LTuneMenu,0,"NOS");
	AddMenuItem(LTuneMenu,0,"Hydraulics");
	AddMenuItem(LTuneMenu,0,"Wire Wheels");
	AddMenuItem(LTuneMenu,0,"Twist Wheels");
	AddMenuItem(LTuneMenu,0,"Access Wheels");
	AddMenuItem(LTuneMenu,0,"Mega Wheels");
	AddMenuItem(LTuneMenu,0,"Import Wheels");
	AddMenuItem(LTuneMenu,0,"Atomic Wheels");
	AddMenuItem(LTuneMenu,0,"Offroad Wheels");
	AddMenuItem(LTuneMenu,0,"Classic Wheels");
	AddMenuItem(LTuneMenu,0,"Paint Jobs");
	AddMenuItem(LTuneMenu,0,"Return");
	
	PaintMenu = CreateMenu("~b~Paint Job ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(PaintMenu, 0, "Choose paint");
	AddMenuItem(PaintMenu,0,"Paint Job 1");
	AddMenuItem(PaintMenu,0,"Paint Job 2");
	AddMenuItem(PaintMenu,0,"Paint Job 3");
	AddMenuItem(PaintMenu,0,"Paint Job 4");
	AddMenuItem(PaintMenu,0,"Paint Job 5");
	AddMenuItem(PaintMenu,0,"Return");
	
	// vehicles
	LVehicles = CreateMenu("~b~Vehicles ~g~ Menu",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(LVehicles, 0, "Choose a car");
	AddMenuItem(LVehicles,0,"2-door Cars");
	AddMenuItem(LVehicles,0,"4-door Cars");
	AddMenuItem(LVehicles,0,"Fast Cars");
	AddMenuItem(LVehicles,0,"Other Vehicles");
	AddMenuItem(LVehicles,0,"Bikes");
	AddMenuItem(LVehicles,0,"Boats");
	AddMenuItem(LVehicles,0,"Planes");
	AddMenuItem(LVehicles,0,"Helicopters");
	AddMenuItem(LVehicles,0,"Return");

 	twodoor = CreateMenu("~b~2-door Cars",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(twodoor, 0, "Choose a car");
	AddMenuItem(twodoor,0,"Feltzer");//533
	AddMenuItem(twodoor,0,"Stallion");//139
	AddMenuItem(twodoor,0,"Windsor");//555
	AddMenuItem(twodoor,0,"Bobcat");//422
	AddMenuItem(twodoor,0,"Yosemite");//554
	AddMenuItem(twodoor,0,"Broadway");//575
	AddMenuItem(twodoor,0,"Blade");//536
	AddMenuItem(twodoor,0,"Slamvan");//535
	AddMenuItem(twodoor,0,"Tornado");//576
	AddMenuItem(twodoor,0,"Bravura");//401
	AddMenuItem(twodoor,0,"Fortune");//526
	AddMenuItem(twodoor,0,"Return");

 	fourdoor = CreateMenu("~b~4-door Cars",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(fourdoor, 0, "Choose a car");
	AddMenuItem(fourdoor,0,"Perenniel");//404
	AddMenuItem(fourdoor,0,"Tahoma");//566
	AddMenuItem(fourdoor,0,"Voodoo");//414
	AddMenuItem(fourdoor,0,"Admiral");//445
	AddMenuItem(fourdoor,0,"Elegant");//507
	AddMenuItem(fourdoor,0,"Glendale");//466
	AddMenuItem(fourdoor,0,"Intruder");//546
	AddMenuItem(fourdoor,0,"Merit");//551
	AddMenuItem(fourdoor,0,"Oceanic");//467
	AddMenuItem(fourdoor,0,"Premier");//426
	AddMenuItem(fourdoor,0,"Sentinel");//405
	AddMenuItem(fourdoor,0,"Return");

 	fastcar = CreateMenu("~b~Fast Cars",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(fastcar, 0, "Choose a car");
	AddMenuItem(fastcar,0,"Comet");//480
	AddMenuItem(fastcar,0,"Buffalo");//402
	AddMenuItem(fastcar,0,"Cheetah");//415
	AddMenuItem(fastcar,0,"Euros");//587
	AddMenuItem(fastcar,0,"Hotring Racer");//494
	AddMenuItem(fastcar,0,"Infernus");//411
	AddMenuItem(fastcar,0,"Phoenix");//603
	AddMenuItem(fastcar,0,"Super GT");//506
	AddMenuItem(fastcar,0,"Turismo");//451
	AddMenuItem(fastcar,0,"ZR-350");//477
	AddMenuItem(fastcar,0,"Bullet");//541
	AddMenuItem(fastcar,0,"Return");

 	Othercars = CreateMenu("~b~Other Vehicles",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(Othercars, 0, "Choose a car?");
	AddMenuItem(Othercars,0,"Monster Truck");//556
	AddMenuItem(Othercars,0,"Trashmaster");//408
	AddMenuItem(Othercars,0,"Bus");//431
	AddMenuItem(Othercars,0,"Coach");//437
	AddMenuItem(Othercars,0,"Enforcer");//427
	AddMenuItem(Othercars,0,"Rhino (Tank)");//432
	AddMenuItem(Othercars,0,"S.W.A.T. Tank");//601
	AddMenuItem(Othercars,0,"Cement Truck");//524
	AddMenuItem(Othercars,0,"Flatbed");//455
	AddMenuItem(Othercars,0,"BF Injection");//424
	AddMenuItem(Othercars,0,"Dune");//573
	AddMenuItem(Othercars,0,"Return");

 	bikes = CreateMenu("~b~Bikes",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(bikes, 0, "Choose a bike");
	AddMenuItem(bikes,0,"BF-400");
	AddMenuItem(bikes,0,"BMX");
	AddMenuItem(bikes,0,"Faggio");
	AddMenuItem(bikes,0,"FCR-900");
	AddMenuItem(bikes,0,"Freeway");
	AddMenuItem(bikes,0,"NRG-500");
	AddMenuItem(bikes,0,"PCJ-600");
	AddMenuItem(bikes,0,"Pizzaboy");
	AddMenuItem(bikes,0,"Quad");
	AddMenuItem(bikes,0,"Sanchez");
	AddMenuItem(bikes,0,"Wayfarer");
	AddMenuItem(bikes,0,"Return");

 	boats = CreateMenu("~b~Boats",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(boats, 0, "Choose a boat");
	AddMenuItem(boats,0,"Coastguard");//472
	AddMenuItem(boats,0,"Dingy");//473
	AddMenuItem(boats,0,"Jetmax");//493
	AddMenuItem(boats,0,"Launch");//595
	AddMenuItem(boats,0,"Marquis");//484
	AddMenuItem(boats,0,"Predator");//430
	AddMenuItem(boats,0,"Reefer");//453
	AddMenuItem(boats,0,"Speeder");//452
	AddMenuItem(boats,0,"Squallo");//446
	AddMenuItem(boats,0,"Tropic");//454
	AddMenuItem(boats,0,"Return");

 	planes = CreateMenu("~b~Planes",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(planes, 0, "Choose a plane");
	AddMenuItem(planes,0,"Andromada");//592
	AddMenuItem(planes,0,"AT400");//577
	AddMenuItem(planes,0,"Beagle");//511
	AddMenuItem(planes,0,"Cropduster");//512
	AddMenuItem(planes,0,"Dodo");//593
	AddMenuItem(planes,0,"Hydra");//520
	AddMenuItem(planes,0,"Nevada");//553
	AddMenuItem(planes,0,"Rustler");//476
	AddMenuItem(planes,0,"Shamal");//519
	AddMenuItem(planes,0,"Skimmer");//460
	AddMenuItem(planes,0,"Stuntplane");//513
	AddMenuItem(planes,0,"Return");

	helicopters = CreateMenu("~b~Helicopters",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(helicopters, 0, "Choose a helicopter");
	AddMenuItem(helicopters,0,"Cargobob");//
	AddMenuItem(helicopters,0,"Hunter");//
	AddMenuItem(helicopters,0,"Leviathan");//
	AddMenuItem(helicopters,0,"Maverick");//
	AddMenuItem(helicopters,0,"News Chopper");//
	AddMenuItem(helicopters,0,"Police Maverick");//
	AddMenuItem(helicopters,0,"Raindance");//
	AddMenuItem(helicopters,0,"Seasparrow");//
	AddMenuItem(helicopters,0,"Sparrow");//
	AddMenuItem(helicopters,0,"Return");

 	XWeapons = CreateMenu("~b~Weapons ~g~Main Menu",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(XWeapons, 0, "Choose a weapon");
	AddMenuItem(XWeapons,0,"Desert Eagle");//0
	AddMenuItem(XWeapons,0,"M4");
	AddMenuItem(XWeapons,0,"Sawnoff Shotgun");
	AddMenuItem(XWeapons,0,"Combat Shotgun");
	AddMenuItem(XWeapons,0,"UZI");
	AddMenuItem(XWeapons,0,"Rocket Launcher");
	AddMenuItem(XWeapons,0,"Minigun");//6
	AddMenuItem(XWeapons,0,"Sniper Rifle");
	AddMenuItem(XWeapons,0,"Big Weapons");
	AddMenuItem(XWeapons,0,"Small Weapons");//9
	AddMenuItem(XWeapons,0,"More");
	AddMenuItem(XWeapons,0,"Return");//11

 	XWeaponsBig = CreateMenu("~b~Weapons ~g~Big Weapons",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
	AddMenuItem(XWeaponsBig,0,"Shotgun");
	AddMenuItem(XWeaponsBig,0,"AK-47");
	AddMenuItem(XWeaponsBig,0,"Country Rifle");
	AddMenuItem(XWeaponsBig,0,"HS Rocket Launcher");
	AddMenuItem(XWeaponsBig,0,"Flamethrower");
	AddMenuItem(XWeaponsBig,0,"SMG");
	AddMenuItem(XWeaponsBig,0,"TEC9");
	AddMenuItem(XWeaponsBig,0,"Return");

 	XWeaponsSmall = CreateMenu("~b~Weapons ~g~Small Weapons",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
	AddMenuItem(XWeaponsSmall,0,"9mm");
	AddMenuItem(XWeaponsSmall,0,"Silenced 9mm");
	AddMenuItem(XWeaponsSmall,0,"Molotov Cocktail");
	AddMenuItem(XWeaponsSmall,0,"Fire Extinguisher");
	AddMenuItem(XWeaponsSmall,0,"Spraycan");
	AddMenuItem(XWeaponsSmall,0,"Frag Grenades");
	AddMenuItem(XWeaponsSmall,0,"Katana");
	AddMenuItem(XWeaponsSmall,0,"Chainsaw");
	AddMenuItem(XWeaponsSmall,0,"Return");

 	XWeaponsMore = CreateMenu("~b~Weapons ~g~More Weapons",2, 55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(XWeaponsBig, 0, "Choose a weapon");
	AddMenuItem(XWeaponsMore,0,"Jetpack");
	AddMenuItem(XWeaponsMore,0,"Knife");
	AddMenuItem(XWeaponsMore,0,"Flowers");
	AddMenuItem(XWeaponsMore,0,"Camera");
	AddMenuItem(XWeaponsMore,0,"Pool Cue");
	AddMenuItem(XWeaponsMore,0,"Baseball Bat");
	AddMenuItem(XWeaponsMore,0,"Golf Club");
	AddMenuItem(XWeaponsMore,0,"MAX AMMO");
	AddMenuItem(XWeaponsMore,0,"Return");

// teleports
	LTele = CreateMenu("Teleports", 2,  55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(LTele, 0, "Teleport to where?");
	AddMenuItem(LTele, 0, "Las Venturas");//0
	AddMenuItem(LTele, 0, "Los Santos");//1
	AddMenuItem(LTele, 0, "San Fierro");//2
	AddMenuItem(LTele, 0, "The Desert");//3
	AddMenuItem(LTele, 0, "Flint Country");//4
	AddMenuItem(LTele, 0, "Mount Chiliad");//5
	AddMenuItem(LTele, 0, "Interiors");//6
	AddMenuItem(LTele, 0, "Return");//8

	LasVenturasMenu = CreateMenu("Las Venturas", 2,  55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(LasVenturasMenu, 0, "Teleport to where?");
	AddMenuItem(LasVenturasMenu, 0, "The Strip");//0
	AddMenuItem(LasVenturasMenu, 0, "Come-A-Lot");//1
	AddMenuItem(LasVenturasMenu, 0, "LV Airport");//2
	AddMenuItem(LasVenturasMenu, 0, "KACC Military Fuels");//3
	AddMenuItem(LasVenturasMenu, 0, "Yellow Bell Golf Club");//4
	AddMenuItem(LasVenturasMenu, 0, "Baseball Pitch");//5
	AddMenuItem(LasVenturasMenu, 0, "Return");//6

	LosSantosMenu = CreateMenu("Los Santos", 2,  55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(LosSantosMenu, 0, "Teleport to where?");
	AddMenuItem(LosSantosMenu, 0, "Ganton");//0
	AddMenuItem(LosSantosMenu, 0, "LS Airport");//1
	AddMenuItem(LosSantosMenu, 0, "Ocean Docks");//2
	AddMenuItem(LosSantosMenu, 0, "Pershing Square");//3
	AddMenuItem(LosSantosMenu, 0, "Verdant Bluffs");//4
	AddMenuItem(LosSantosMenu, 0, "Santa Maria Beach");//5
	AddMenuItem(LosSantosMenu, 0, "Mulholland");//6
	AddMenuItem(LosSantosMenu, 0, "Richman");//7
	AddMenuItem(LosSantosMenu, 0, "Return");//8

	SanFierroMenu = CreateMenu("San Fierro", 2,  55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(SanFierroMenu, 0, "Teleport to where?");
	AddMenuItem(SanFierroMenu, 0, "SF Station");//0
	AddMenuItem(SanFierroMenu, 0, "SF Airport");//1
	AddMenuItem(SanFierroMenu, 0, "Ocean Flats");//2
	AddMenuItem(SanFierroMenu, 0, "Avispa Country Club");//3
	AddMenuItem(SanFierroMenu, 0, "Easter Basin (docks)");//4
	AddMenuItem(SanFierroMenu, 0, "Esplanade North");//5
	AddMenuItem(SanFierroMenu, 0, "Battery Point");//6
	AddMenuItem(SanFierroMenu, 0, "Return");//7

	DesertMenu = CreateMenu("The Desert", 2,  55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(DesertMenu, 0, "Teleport to where?");
	AddMenuItem(DesertMenu, 0, "Aircraft Graveyard");//0
	AddMenuItem(DesertMenu, 0, "Area 51");//1
	AddMenuItem(DesertMenu, 0, "The Big Ear");//2
	AddMenuItem(DesertMenu, 0, "The Sherman Dam");//3
	AddMenuItem(DesertMenu, 0, "Las Barrancas");//4
	AddMenuItem(DesertMenu, 0, "El Quebrados");//5
	AddMenuItem(DesertMenu, 0, "Octane Springs");//6
	AddMenuItem(DesertMenu, 0, "Return");//7

	FlintMenu = CreateMenu("Flint Country", 2,  55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(FlintMenu, 0, "Teleport to where?");
	AddMenuItem(FlintMenu, 0, "The Lake");//0
	AddMenuItem(FlintMenu, 0, "Leafy Hollow");//1
	AddMenuItem(FlintMenu, 0, "The Farm");//2
	AddMenuItem(FlintMenu, 0, "Shady Cabin");//3
	AddMenuItem(FlintMenu, 0, "Flint Range");//4
	AddMenuItem(FlintMenu, 0, "Becon Hill");//5
	AddMenuItem(FlintMenu, 0, "Fallen Tree");//6
	AddMenuItem(FlintMenu, 0, "Return");//7

	MountChiliadMenu = CreateMenu("Mount Chiliad", 2,  55.0, 200.0, 100.0, 80.0);
	SetMenuColumnHeader(MountChiliadMenu, 0, "Teleport to where?");
	AddMenuItem(MountChiliadMenu, 0, "Chiliad Jump");//0
	AddMenuItem(MountChiliadMenu, 0, "Bottom Of Chiliad");//1
	AddMenuItem(MountChiliadMenu, 0, "Highest Point");//2
	AddMenuItem(MountChiliadMenu, 0, "Chiliad Path");//3
	AddMenuItem(MountChiliadMenu, 0, "Return");//7

	InteriorsMenu = CreateMenu("Interiors", 2,  55.0, 200.0, 130.0, 80.0);
	SetMenuColumnHeader(InteriorsMenu, 0, "Teleport to where?");
	AddMenuItem(InteriorsMenu, 0, "Planning Department");//0
	AddMenuItem(InteriorsMenu, 0, "LV PD");//1
	AddMenuItem(InteriorsMenu, 0, "Pizza Stack");//2
	AddMenuItem(InteriorsMenu, 0, "RC Battlefield");//3
	AddMenuItem(InteriorsMenu, 0, "Caligula's Casino");//4
	AddMenuItem(InteriorsMenu, 0, "Big Smoke's Crack Palace");//5
	AddMenuItem(InteriorsMenu, 0, "Madd Dogg's Mansion");//6
	AddMenuItem(InteriorsMenu, 0, "Dirtbike Stadium");//7
	AddMenuItem(InteriorsMenu, 0, "Vice Stadium (duel)");//8
	AddMenuItem(InteriorsMenu, 0, "Ammu-nation");//9
	AddMenuItem(InteriorsMenu, 0, "Atrium");//7
	AddMenuItem(InteriorsMenu, 0, "Return");//8
	
	for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) OnPlayerConnect(i);

	PingTimer = SetTimer("PingKick",10000,1);
	GodTimer = SetTimer("GodUpdate",10000,1);

    print("_______  Version 2.2 Fully Loaded  _____\n");
	print("__________________________________________\n");
	
	return 1;
}
//==============================================================================
public OnFilterScriptExit()
{
	KillTimer(PingTimer);
	if(InvisTimer) KillTimer(InvisTimer);
	KillTimer(GodTimer);
	DestroyMenu(LVehicles); DestroyMenu(twodoor); DestroyMenu(fourdoor); DestroyMenu(fastcar); DestroyMenu(Othercars);
	DestroyMenu(bikes); DestroyMenu(boats); DestroyMenu(planes); DestroyMenu(helicopters ); DestroyMenu(LTime);
	DestroyMenu(XWeapons); DestroyMenu(XWeaponsBig); DestroyMenu(XWeaponsSmall); DestroyMenu(XWeaponsMore);
	DestroyMenu(LWeather); DestroyMenu(LTuneMenu); DestroyMenu(PaintMenu); DestroyMenu(LCars); DestroyMenu(LCars2);
	DestroyMenu(LTele); DestroyMenu(LasVenturasMenu); DestroyMenu(LosSantosMenu); DestroyMenu(SanFierroMenu);
	DestroyMenu(LMainMenu); DestroyMenu(DesertMenu); DestroyMenu(FlintMenu); DestroyMenu(MountChiliadMenu); DestroyMenu(InteriorsMenu);
	DestroyMenu(AdminEnable); DestroyMenu(AdminDisable);
	print("\n__________________________________________\n");
	print("=    LAdmin FS by LethaL Unloaded    =\n");
	print("__________________________________________\n");
	return 1;
}
//==============================================================================
public OnPlayerConnect(playerid)
{
	new PlayerName[30], string[256], file[256];
	GetPlayerName(playerid, PlayerName, 30);
	//-----------------------------------------
	if(ServerInfo[Locked] == 1) {
		SendClientMessage(playerid,red,"! Server Locked !");
		SendClientMessage(playerid,grey,"You Have Been Kicked By System. Reason: Server Locked");
		format(string,sizeof(string),"%s ID:%d has Been Kicked By System. Reason: Server Locked",PlayerName,playerid);
		SaveToFile("KickLog",string);  Kick(playerid);
		SendClientMessageToAll(grey, string); print(string);
		return 1;
	}
	//-----------------------------------------
	PlayerInfo[playerid][Deaths] = 0;
	PlayerInfo[playerid][Kills] = 0;
	PlayerInfo[playerid][Jailed] = 0;
	PlayerInfo[playerid][Level] = 0;
	PlayerInfo[playerid][LoggedIn] = 0;
	PlayerInfo[playerid][Registered] = 0;
	PlayerInfo[playerid][God] = 0;
	PlayerInfo[playerid][TimesSpawned] = 0;
	PlayerInfo[playerid][Muted] = 0;
	PlayerInfo[playerid][Caps] = 0;
	PlayerInfo[playerid][Invis] = 0;
	PlayerInfo[playerid][DoorsLocked] = 0;
	PlayerInfo[playerid][AllowPing] = 0;
	//-----------[ Name Kick ]-----------------
	if(ServerInfo[NameKick] == 1) {
		for(new s = 0; s < BadNameCount; s++)    {
			new pos;
			while((pos = strfind(PlayerName,BadNames[s],true)) != -1) for(new i = pos, j = pos + strlen(BadNames[s]); i < j; i++)
			{
			SendClientMessage(playerid,red, "Your Name Is On Our Black List! You Have been kicked");
			format(string,sizeof(string),"%s ID:%d Was Kicked By System. Reason: Forbidden Name",PlayerName,playerid);
			SendClientMessageToAll(grey, string);  print(string);
			SaveToFile("KickLog",string);  Kick(playerid);
			return 1;
			}
		}
	}
	//-----------------------------------------
	if(ServerInfo[AntiBot] == 1) SetTimerEx("BotCheck",9000,0,"i",playerid);
	//-----------------------------------------
	format(string,256,"*** %s has joined the server.",PlayerName);
	for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && playerid != i) SendClientMessage(i,grey,string);
	//-----------------------------------------

	if(!udb_Exists(PlayerName2(playerid)))
	{
		SendClientMessage(playerid,orange, "ACCOUNT: Type /register [password] to create an account");
	}
	else
	{

			SendClientMessage(playerid, green, "ACCOUNT: This nickname is registed!  You can now login by typing /login <password>");
	    }
	
   	return 1;
}
//=========================[PlayerName2]========================================
stock PlayerName2(playerid) {
  new name[255];
  GetPlayerName(playerid, name, 255);
  return name;
}
//====================== [REGISTER  &  LOGIN] ==================================
dcmd_register(playerid,params[]) {

    if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already registered and logged in.");
    if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: This account already exists, please use '/login password'.");
    if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/register password'");
    if (strlen(params)<4) return SendClientMessage(playerid,red,"ACCOUNT: Password length must be greater than three characters");
    if (udb_Create(PlayerName2(playerid),params))
	{

    	new file[256],name[24], tmp3[100];
    	new strdate[20], year,month,day;	getdate(year, month, day);
		GetPlayerName(playerid,name,24); format(file,256,"/ladmin/users/%s.sav",udb_encode(name));
     	GetPlayerIp(playerid,tmp3,100);	dini_Set(file,"ip",tmp3);
    	dini_Set(file,"password",params);
	    dUserSetINT(PlayerName2(playerid)).("registered",1);
   		format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
		dini_Set(file,"RegisteredDate",strdate);
		dUserSetINT(PlayerName2(playerid)).("level",0);
	    dUserSetINT(PlayerName2(playerid)).("LastOn",0);
	    PlayerInfo[playerid][LoggedIn] = 1;
	    PlayerInfo[playerid][Registered] = 1;
	    SendClientMessage(playerid, green, "ACCOUNT: You have been automaticaly logged in");
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
    	if(PlayerInfo[playerid][Spawned] == 1) TogglePlayerControllable(playerid,true);
		return 1;
	}
    return true;
}
//==============================================================================
dcmd_login(playerid,params[]) {

    if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,red,"ACCOUNT: You are already logged in.");
    if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,red,"ACCOUNT: Account doesn't exist, please use '/register password'.");
    if (strlen(params)==0) return SendClientMessage(playerid,red,"ACCOUNT: Correct usage: '/login password'");
    if (udb_CheckLogin(PlayerName2(playerid),params))
	{

       GivePlayerMoney(playerid,dUserINT(PlayerName2(playerid)).("money")-GetPlayerMoney(playerid));
       PlayerInfo[playerid][Deaths] = (dUserINT(PlayerName2(playerid)).("deaths"));
       PlayerInfo[playerid][Kills] = (dUserINT(PlayerName2(playerid)).("kills"));
       PlayerInfo[playerid][Level] = (dUserINT(PlayerName2(playerid)).("level"));
       PlayerInfo[playerid][LoggedIn] = 1;
	   PlayerInfo[playerid][Registered] = 1;
	   
	   new file[256],name[24]; GetPlayerName(playerid,name,24); format(file,256,"/ladmin/users/%s.sav",udb_encode(name));
       new tmp3[100]; GetPlayerIp(playerid,tmp3,100);	dini_Set(file,"ip",tmp3);

       if(PlayerInfo[playerid][Spawned] == 1) TogglePlayerControllable(playerid,true);
       
	   PlayerPlaySound(playerid,1057,0.0,0.0,0.0);

       return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");
    }
    return SendClientMessage(playerid,red,"ACCOUNT: Login failed! Incorrect Password");
}
 
//==============================================================================

public OnPlayerDisconnect(playerid, reason)
{
		new PlayerName[30], str[256];
		GetPlayerName(playerid, PlayerName, 30);
		
		switch (reason)
		{
 		case 0:	{ format(str, 256, "***%s has left the server (Timeout)", PlayerName);	SendClientMessageToAll(COLOR_GRAD1, str);	}
		case 1:	{ format(str, 256, "***%s has left the server (Leaving)", PlayerName);	SendClientMessageToAll(COLOR_GRAD1, str);	}
		case 2:	{ format(str, 256, "***%s has left the server (Kicked)", PlayerName);	SendClientMessageToAll(COLOR_GRAD1, str);	}
		}

		if (PlayerInfo[playerid][LoggedIn] == 1)
		{
	    	dUserSetINT(PlayerName2(playerid)).("money",GetPlayerMoney(playerid));
	    	dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
		   	dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
	/*     	new Float:x,Float:y,Float:z, interior;
	    	GetPlayerPos(playerid,x,y,z);	interior = GetPlayerInterior(playerid);
		    dUserSetINT(PlayerName2(playerid)).("x1",floatround(x));
			dUserSetINT(PlayerName2(playerid)).("y1",floatround(y));
			dUserSetINT(PlayerName2(playerid)).("z1",floatround(z));
	        dUserSetINT(PlayerName2(playerid)).("interior1",interior);
	*/		//weapons
	 		new weap1, ammo1, weap2, ammo2, weap3, ammo3, weap4, ammo4, weap5, ammo5, weap6, ammo6;
			GetPlayerWeaponData(playerid,2,weap1,ammo1);// hand gun
			GetPlayerWeaponData(playerid,3,weap2,ammo2);//shotgun
			GetPlayerWeaponData(playerid,4,weap3,ammo3);// SMG
			GetPlayerWeaponData(playerid,5,weap4,ammo4);// AK47 / M4
			GetPlayerWeaponData(playerid,6,weap5,ammo5);// rifle
			GetPlayerWeaponData(playerid,7,weap6,ammo6);// rocket launcher
		   	dUserSetINT(PlayerName2(playerid)).("weap1",weap1); dUserSetINT(PlayerName2(playerid)).("weap1ammo",ammo1);
	   		dUserSetINT(PlayerName2(playerid)).("weap2",weap2);	dUserSetINT(PlayerName2(playerid)).("weap2ammo",ammo2);
 	   		dUserSetINT(PlayerName2(playerid)).("weap3",weap3);	dUserSetINT(PlayerName2(playerid)).("weap3ammo",ammo3);
   			dUserSetINT(PlayerName2(playerid)).("weap4",weap4); dUserSetINT(PlayerName2(playerid)).("weap4ammo",ammo4);
	   		dUserSetINT(PlayerName2(playerid)).("weap5",weap5);	dUserSetINT(PlayerName2(playerid)).("weap5ammo",ammo5);
   			dUserSetINT(PlayerName2(playerid)).("weap6",weap6); dUserSetINT(PlayerName2(playerid)).("weap6ammo",ammo6);

			new	Float:health;	GetPlayerHealth(playerid, Float:health);
			new	Float:armour;	GetPlayerArmour(playerid, Float:armour);
			new year,month,day;	getdate(year, month, day);
			new strdate[20];	format(strdate, sizeof(strdate), "%d.%d.%d",day,month,year);
			new file[256]; format(file,256,"/ladmin/users/%s.sav",udb_encode(PlayerName));
		
			dUserSetINT(PlayerName2(playerid)).("health",floatround(health));
	        dUserSetINT(PlayerName2(playerid)).("armour",floatround(armour));
			dini_Set(file,"LastOn",strdate);
			dUserSetINT(PlayerName2(playerid)).("TimesOnServer",(dUserINT(PlayerName2(playerid)).("TimesOnServer"))+1);
		}
	  	PlayerInfo[playerid][LoggedIn] = 0;
  		PlayerInfo[playerid][AllowPing] = 0;
  		PlayerInfo[playerid][Level] = 0;
//spec--------------
		for(new x=0; x<MAX_PLAYERS; x++) {
		    if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid) {
	       	AdvanceSpectate(x);
			}
		}

  		return false;
}
//==============================================================================
public OnPlayerSpawn(playerid)
{
	PlayerInfo[playerid][Spawned] = 1;

	if(PlayerInfo[playerid][Frozen] == 1)
	{
		TogglePlayerControllable(playerid,false); SendClientMessage(playerid,red,"You Are Still Frozen");
	}
	
	if(PlayerInfo[playerid][Jailed] == 1)
	{
		SetTimerEx("JailPlayerAfterDeath",1500,0,"d",playerid); TogglePlayerControllable(playerid,false);
		SendClientMessage(playerid,red,"You Are Still In Jail");
	}
	
	if(ServerInfo[AdminOnlySkins] == 1) {
		if((GetPlayerSkin(playerid) == ServerInfo[AdminSkin])) {
			if(PlayerInfo[playerid][Level] >= 1)   {
				GameTextForPlayer(playerid,"~b~Welcome~n~~w~Admin",3000,1);
			} else {
				GameTextForPlayer(playerid,"~r~This Skin Is For~n~Administrators~n~Only",4000,1);
				ForceClassSelection(playerid);	SetPlayerHealth(playerid,0.0);		}
		}
	}
	
	if((dUserINT(PlayerName2(playerid)).("UseSkin")) == 1)
	{
		if((PlayerInfo[playerid][Level] >= 1) && (PlayerInfo[playerid][LoggedIn] == 1))  {
    	SetPlayerSkin(playerid,(dUserINT(PlayerName2(playerid)).("FavSkin")) );		}
	}

	if(PlayerInfo[playerid][LoggedIn] == 1)
	{
		PlayerInfo[playerid][TimesSpawned]++;
		if(PlayerInfo[playerid][TimesSpawned] == 1)
		{
		GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap1"), dUserINT(PlayerName2(playerid)).("weap1ammo")	);
		GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap2"), dUserINT(PlayerName2(playerid)).("weap2ammo")	);
		GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap3"), dUserINT(PlayerName2(playerid)).("weap3ammo")	);
		GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap4"), dUserINT(PlayerName2(playerid)).("weap4ammo")	);
		GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap5"), dUserINT(PlayerName2(playerid)).("weap5ammo")	);
		GivePlayerWeapon(playerid, dUserINT(PlayerName2(playerid)).("weap6"), dUserINT(PlayerName2(playerid)).("weap6ammo")	);
		}
	}

	return 1;
	}
//==============================================================================
public OnPlayerDeath(playerid, killerid, reason)
{
	if(InDuel[playerid] == 1)   {
	GameTextForPlayer(killerid,"Winner !",3000,3);  SpawnPlayer(killerid);
	GameTextForPlayer(playerid,"Loser !",3000,3);
	for(new i = 0; i < MAX_PLAYERS; i++) {
	InDuel[playerid] = 0;	}
	}
//------
	for(new x=0; x<MAX_PLAYERS; x++) {
	    if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid) {
	       AdvanceSpectate(x);
		}
	}
//------
    PlayerInfo[playerid][Deaths]++;
	PlayerInfo[killerid][Kills]++;

	return 1;
}
//==============================================================================
public OnPlayerText(playerid, text[])
{
	if(text[0] == '#' && PlayerInfo[playerid][Level] >= 1) {
	    new string[256],name[24]; GetPlayerName(playerid,name,24);
		format(string,256,"Admin Chat: %s says: %s",name,text[1]); MessageToAdmins(green,string);
	    return 0;	}

 	if(PlayerInfo[playerid][Muted] == 1)
	{
 		PlayerInfo[playerid][MuteWarnings]++;
		if(PlayerInfo[playerid][MuteWarnings] < 5) {
		SendClientMessage(playerid,red,"WARNING: You are muted, if you continue to speak you will be kicked");
		} else {
		SendClientMessage(playerid,red,"You have been warned ! Now you have been kicked");
		new string[100], playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername));
		format(string, sizeof(string),"%s [ID %d ] Kicked For exceeding Mute warnings", playername,playerid);
		SendClientMessageToAll(grey,string);
		SaveToFile("KickLog",string); Kick(playerid); }
		return 0;
	}
	if(ServerInfo[AntiSpam] == 1 && IsPlayerLAdmin(playerid) != 1)
	{
		if(PlayerInfo[playerid][Spam] == 1) {
			SendClientMessage(playerid,red,"[AntiSpam] Only 1 message in 5 secs !!!");
			return 0;
		} else {
			PlayerInfo[playerid][Spam] = 1;
			SetTimerEx("spam",5000,0,"i",playerid);
		}
	}
	if(ServerInfo[AntiSwear] == 1 && IsPlayerLAdmin(playerid) != 1)
	for(new s = 0; s < ForbiddenWordCount; s++)
    {
		new pos;
		while((pos = strfind(text,ForbiddenWords[s],true)) != -1) for(new i = pos, j = pos + strlen(ForbiddenWords[s]); i < j; i++) text[i] = '*';
	}
	if(PlayerInfo[playerid][Caps] == 1) UpperToLower(text);
	if(ServerInfo[NoCaps] == 1) UpperToLower(text);
	
	return 1;
}
//==============================================================================
public OnPlayerPrivmsg(playerid, recieverid, text[])
{
	if(ServerInfo[ReadPMs] == 1 && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel])
	{
    	new string[64],playername[MAX_PLAYER_NAME],recievername[MAX_PLAYER_NAME];
		GetPlayerName(playerid, playername, sizeof(playername));
		GetPlayerName(recieverid, recievername, sizeof(recievername));
		format(string, sizeof(string), "***PM: %s To %s: %s", playername,recievername, text);
		for (new a = 0; a < MAX_PLAYERS; a++)
		if (IsPlayerConnected(a) && (PlayerInfo[a][Level] >= 1) && a != playerid)
		SendClientMessage(a, COLOR_GREY, string);
	}
	
 	if(PlayerInfo[playerid][Muted] == 1)
	{
 		PlayerInfo[playerid][MuteWarnings]++;
		if(PlayerInfo[playerid][MuteWarnings] < 5) {
		SendClientMessage(playerid,red,"WARNING: You are muted, if you continue to speak you will be kicked");
		} else {
		SendClientMessage(playerid,red,"You have been warned ! Now you have been kicked");
		new string[100], playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername));
		format(string, sizeof(string),"%s [ID %d ] Kicked For exceeding Mute warnings", playername,playerid);
		SendClientMessageToAll(grey,string);
		SaveToFile("KickLog",string); Kick(playerid); }
		return 0;
	}
	return 1;
}
//==============================================================================
public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256], string[256], idx;
	new adminname[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME];
	cmd = strtok(cmdtext, idx);

	dcmd(login,5,cmdtext);
  	dcmd(register,8,cmdtext);
	dcmd(setgravity,10,cmdtext);
    dcmd(adminarea,9,cmdtext);
 	dcmd(lcredits,8,cmdtext);
 	dcmd(serverinfo,10,cmdtext);
    dcmd(lmenu,5,cmdtext);
    dcmd(ltele,5,cmdtext);
    dcmd(lvehicle,8,cmdtext);
    dcmd(lweapons,8,cmdtext);
    dcmd(lweather,8,cmdtext);
    dcmd(ltmenu,6,cmdtext);
    dcmd(ltime,5,cmdtext);
    dcmd(announce,8,cmdtext);
    dcmd(cm,2,cmdtext);
    
    //================ [ Read Comamands ] ===========================//

	if(ServerInfo[ReadCmds] == 1 && PlayerInfo[playerid][Level] == 0)
	{
	GetPlayerName(playerid, playername, sizeof(playername));
	format(string, sizeof(string), "***%s (%d) typed: %s", playername,playerid,cmdtext);
	for(new i = 0; i < MAX_PLAYERS; i++)
	if(IsPlayerConnected(i) && PlayerInfo[i][Level] && i != playerid)
	SendClientMessage(i, grey, string);
	}

 	if(strcmp(cmd, "/kill", true) == 0) return 	SetPlayerHealth(playerid,0.0);

 	if(strcmp(cmd, "/lhelp", true) == 0)
	{
		if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] >= 1)	{
		SendClientMessage(playerid,blue,"==========================================================================================");
		SendClientMessage(playerid,blue,"For admin commands type:  /lcommands   |   Credits: /lcredits");
		SendClientMessage(playerid,blue, "Account commands are: /stats, /changepass, /resetstats.    Also  /time, /report");
		SendClientMessage(playerid,blue,"There are 5 levels. Level 1 = Member | Level 2, 3 & 4 = Main Admins | Level 5 = Sever Owner");
		SendClientMessage(playerid,blue,"Remember the level 5 admins are immune from commands");
		SendClientMessage(playerid,blue,"==========================================================================================");
		} else  {
		SendClientMessage(playerid,blue,"==========================================================================================");
	 	SendClientMessage(playerid,green, "Your commands are: /report, /stats, /time, /changepass, /resetstats, /getid");
	 	SendClientMessage(playerid,blue,"=========================================================================================="); }
		return 1;
	}

//========================= [ The Commands ] ===================================

 	if(strcmp(cmd, "/lcommands", true) == 0)   {
	if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] == 1)	{
	SendClientMessage(playerid,blue,"Your Member Commands");
	SendClientMessage(playerid,green,"(1) FLIP, FIX, REPAIR, LP, CARCOLOUR, LTUNE, SETMYTIME, TIME, GETID, LINKCAR, LNOS, LHY"); }

	if(PlayerInfo[playerid][Level] > 1) {
	SendClientMessage(playerid,blue,"Your Admin Commands");
	SendClientMessage(playerid,green,"(1) FLIP, FIX, REPAIR, LP, CARCOLOUR, LTUNE, SETMYTIME, TIME, GETID, LINKCAR, LNOS, LHY");

	SendClientMessage(playerid,COLOR_GREEN,"(2) ANNOUNCE, (UN) LOCKCAR, DISARM, GOTO, ADMINAREA, LCAR, LBIKE, LTC, CM (giveme), LSLOWMO, LJETPACK");
	SendClientMessage(playerid,green,"(2) SLAP, SPEC (OFF), BURN, WARN, MUTE, UNMUTE, GIVEWEAPON, SPAWN, GETINFO, LASTON, WRITE, CLEARCHAT, ASAY");
    SendClientMessage(playerid,COLOR_GREEN,"(2) SETCASH, SETSKIN, SETCOLOUR, SETWANTED, LMENU, LTELE, LVEHICLE, SETINTERIOR, LWEAPONS, LTUNEMENU");
    }
	if(PlayerInfo[playerid][Level] > 2) {
	SendClientMessage(playerid,green,"(3) KICK, EXPLODE,  EJECT, LJAIL, LUNJAIL, FREEZE, UNFREEZE, LADMIN, LWEAPS, LAMMO, KICKBOTS");
    SendClientMessage(playerid,COLOR_GREEN,"(3)DUEL, COUNTDOWN, GETHERE, TELEPLAYER, CAR, CARHEALTH, DESTROY, LTIME, LWEATHER, CAPS");
    SendClientMessage(playerid,green,"(3) SETHEALTH, SETARMOUR, SETGRAVITY, SETNAME, SETWEATHER, SETTIME, SETWORLD, HEALALL, ARMOURALL");
    SendClientMessage(playerid,COLOR_GREEN,"(3) SETALLWORLD, SETALLWEATHER, SETALLWANTED, SETALLTIME, GIVEALLWEAPON, SETALLSCORE, SETALLCASH, GIVEALLCASH");
	}
	if(PlayerInfo[playerid][Level] > 3) {
    SendClientMessage(playerid,green,"(4) BAN, SETPING, DISABLE, ENABLE, FORBID (NAME/WORD), SETTEMPLEVEL, CLEARALLCHAT, (UN) INVIS, UCONFIG");
    SendClientMessage(playerid,COLOR_GREEN,"(4) KILLALL, DISARMALL, KICKALL, EJECTALL, FREEZEALL, UNFREEZEALL, (UN) LOCKSERVER, GOD, DIE");
    SendClientMessage(playerid,green,"(4) FAKEDEATH, CRASH");
	}
	if(PlayerInfo[playerid][Level] > 4) {
    SendClientMessage(playerid,COLOR_GREEN,"(5) SETLEVEL, OBJECT, PICKUP, LOADFS, GMX, ");
    }

	if(IsPlayerAdmin(playerid)) SendClientMessage(playerid,blue,"(rcon) INFO, PM, ASAY");
	
	if(PlayerInfo[playerid][Level] < 1 ) {
	SendClientMessage(playerid,blue,"==========================================================================================");
 	SendClientMessage(playerid,green, "Your commands are: /report, /stats, /time, /changepass, /resetstats, /getid");
 	SendClientMessage(playerid,blue,"==========================================================================================");   }
 	if(PlayerInfo[playerid][Level] == 0 && IsPlayerAdmin(playerid)) {
 	SendClientMessage(playerid,green, "Your are rcon admin but not ladmin");   }
	return 1;	}

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

	if(strcmp(cmd, "/ljetpack", true) == 0) {
	if(PlayerInfo[playerid][Level] >= 2) {
	new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); CreatePickup(370, 4, x, y, z);
	//SetPlayerSpecialAction(playerid, 2);
	CMDMessageToAdmins(playerid,"LJETPACK");
	} else {
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); }
	return 1; }
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/lslowmo", true) == 0) {
	if(PlayerInfo[playerid][Level] >= 1) {
	new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); CreatePickup(1241, 4, x, y, z);
	CMDMessageToAdmins(playerid,"LSLOWMO");
	} else {
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command"); }
	return 1; }
//------------------------------------------------------------------------------
	if(strcmp(cmdtext,"/invis",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
		if(IsPlayerInAnyVehicle(playerid)) {
			new LVehicleID = GetPlayerVehicleID(playerid);	new int1 = GetPlayerInterior(playerid);
			LinkVehicleToInterior(LVehicleID,int1 + 1);
			SendClientMessage(playerid,red,"[Cmd]: You Are Now Invisible"); PlayerInfo[playerid][Invis] = 1;
			CMDMessageToAdmins(playerid,"INVIS");
			if(! (InvisTimer) ) InvisTimer = SetTimer("HideNameTag",100,1);
		} else  {
			new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleID;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
			new int1 = GetPlayerInterior(playerid);
		    LVehicleID = CreateVehicle(457,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,LVehicleID,0); LinkVehicleToInterior(LVehicleID,int1 + 1);
			SendClientMessage(playerid,red,"[Cmd]: You Are Now Invisible"); PlayerInfo[playerid][Invis] = 1;
			CMDMessageToAdmins(playerid,"INVIS");
			if(! (InvisTimer) ) InvisTimer = SetTimer("HideNameTag",100,1); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext,"/uninvis",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
		if(IsPlayerInAnyVehicle(playerid)) {
		new LVehicleID = GetPlayerVehicleID(playerid);	new int1 = GetPlayerInterior(playerid);	LinkVehicleToInterior(LVehicleID,int1);
		SendClientMessage(playerid,red,"[Cmd]: You Are Now Visible"); PlayerInfo[playerid][Invis] = 0;
		} else  {
		SendClientMessage(playerid,red,"[Cmd]: You Are Now Visible"); PlayerInfo[playerid][Invis] = 0;  }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext,"/killinvis",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
	if(InvisTimer) KillTimer(InvisTimer);
	PlayerPlaySound(playerid,1057,0.0,0.0,0.0);	CMDMessageToAdmins(playerid,"KILLINVIS");
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/destroycar", true) == 0) if(PlayerInfo[playerid][Level] >= 3) return EraseVehicle(GetPlayerVehicleID(playerid));

//------------------- Set Server Variables -------------------------------------

	if(strcmp(cmd,"/setping",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256], ping;
     	tmp = strtok(cmdtext, idx);
 		if(!strlen(tmp)) return	SendClientMessage(playerid, red, "USAGE: /setping [ping]   Set to 0 to disable");

		ping = strval(tmp);
		tmp = strtok(cmdtext, idx);

		ServerInfo[MaxPing] = ping;
		CMDMessageToAdmins(playerid,"SETPING");		GetPlayerName(playerid, adminname, sizeof(adminname));
		new file[256]; format(file,sizeof(file),"ladmin/config/Config.ini");
		for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayerPlaySound(i,1057,0.0,0.0,0.0);
		if(ping == 0) {
			dini_IntSet(file,"MaxPing",0);
			format(string,256,"Administrator %s has disabled maximum ping",adminname,ping);	SendClientMessageToAll(blue,string);
		} else {
			dini_IntSet(file,"MaxPing",ping);
			format(string,256,"Administrator %s has set the maximum ping to %d",adminname,ping);	SendClientMessageToAll(blue,string);
		}
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd,"/disable",true)==0)
	{
		if(PlayerInfo[playerid][Level] >= 4)
		{
			new tmp[256];	GetPlayerName(playerid, adminname, sizeof(adminname));
			tmp = strtok(cmdtext,idx);
			
			if(!strlen(tmp))	{
				SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps ]");	}
			else if(strcmp(tmp,"antiswear",true) == 0)	{
				ServerInfo[AntiSwear] = 0; format(string,256,"Administrator %s has disabled antiswear",adminname); SendClientMessageToAll(blue,string);	}
			else if(strcmp(tmp,"namekick",true) == 0)	{
				ServerInfo[NameKick] = 0; format(string,256,"Administrator %s has disabled namekick",adminname); SendClientMessageToAll(blue,string);	}
	 		else if(strcmp(tmp,"antispam",true) == 0)	{
				ServerInfo[AntiSpam] = 0; format(string,256,"Administrator %s has disabled antispam",adminname); SendClientMessageToAll(blue,string);	}
			else if(strcmp(tmp,"ping",true) == 0)	{
				ServerInfo[MaxPing] = 0; format(string,256,"Administrator %s has disabled ping kick",adminname); SendClientMessageToAll(blue,string);	}
			else if(strcmp(tmp,"readcmds",true) == 0)	{
				ServerInfo[ReadCmds] = 0; format(string,256,"Administrator %s has disabled reading commands",adminname); MessageToAdmins(blue,string);	}
			else if(strcmp(tmp,"readpms",true) == 0)	{
				ServerInfo[ReadPMs] = 0; format(string,256,"Administrator %s has disabled reading pms",adminname); MessageToAdmins(blue,string); }
  			else if(strcmp(tmp,"caps",true) == 0)	{
				ServerInfo[NoCaps] = 0; format(string,256,"Administrator %s has allowed captial letters in chat",adminname); SendClientMessageToAll(blue,string); }
			else	{
				SendClientMessage(playerid,red,"USAGE: /disable [antiswear / namekick / antispam / ping / readcmds / readpms /caps ]");	}
			return 1;
		}
		else
		{
		  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
	  	}
		return 1;
	}
//------------------------------------------------------------------------------
	if(strcmp(cmd,"/enable",true)==0)
	{
		if(PlayerInfo[playerid][Level] >= 4)
		{
			new tmp[256];	GetPlayerName(playerid, adminname, sizeof(adminname));
			tmp = strtok(cmdtext,idx);

			if(!strlen(tmp))	{
				SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps ]");	}
			else if(strcmp(tmp,"antiswear",true) == 0)	{
				ServerInfo[AntiSwear] = 1; format(string,256,"Administrator %s has enabled antiswear",adminname); SendClientMessageToAll(blue,string);	}
			else if(strcmp(tmp,"namekick",true) == 0)	{
				ServerInfo[NameKick] = 1; format(string,256,"Administrator %s has enabled namekick",adminname); SendClientMessageToAll(blue,string);	}
	 		else if(strcmp(tmp,"antispam",true) == 0)	{
				ServerInfo[AntiSpam] = 1; format(string,256,"Administrator %s has enabled antispam",adminname); SendClientMessageToAll(blue,string);	}
			else if(strcmp(tmp,"ping",true) == 0)	{
				ServerInfo[MaxPing] = 1; format(string,256,"Administrator %s has enabled ping kick",adminname); SendClientMessageToAll(blue,string);	}
			else if(strcmp(tmp,"readcmds",true) == 0)	{
				ServerInfo[ReadCmds] = 1; format(string,256,"Administrator %s has enabled reading commands",adminname); MessageToAdmins(blue,string);	}
			else if(strcmp(tmp,"readpms",true) == 0)	{
				ServerInfo[ReadPMs] = 1; format(string,256,"Administrator %s has enabled reading pms",adminname); MessageToAdmins(blue,string); }
			else if(strcmp(tmp,"caps",true) == 0)	{
				ServerInfo[NoCaps] = 1; format(string,256,"Administrator %s has prevented captial letters in chat",adminname); SendClientMessageToAll(blue,string); }
			else	{
				SendClientMessage(playerid,red,"USAGE: /enable [antiswear / namekick / antispam / ping / readcmds / readpms /caps ]");	}
			return 1;
		}
		else
		{
		  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
	  	}
		return 1;
	}
//------------------- Update Configuration -------------------------------------

	if(strcmp(cmd,"/uconfig",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
		UpdateConfig();
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		CMDMessageToAdmins(playerid,"UCONFIG");
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd,"/botcheck",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
		for(new i=0; i<MAX_PLAYERS; i++) BotCheck(i);
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		CMDMessageToAdmins(playerid,"BOTCHECK");
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}
//-------------------Add To List------------------------------------------------
	if(strcmp(cmd,"/forbidname",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
		new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
		SendClientMessage(playerid, red, "USAGE: /forbidname [name]");
		return SendClientMessage(playerid, red, "CMD: This command prevents a player with this name from joining the server"); }

		GetPlayerName(playerid, adminname, sizeof(adminname));
		new File:BLfile;
		BLfile = fopen("ladmin/config/ForbiddenNames.cfg",io_append);
		format(string,sizeof(string),"%s\r\n",cmdtext[12]);
		fwrite(BLfile,string);
		fclose(BLfile);

		format(string, sizeof(string), "Admin %s has added the name '%s' to the forbidden name list",adminname,cmdtext[12]);
		MessageToAdmins(green,string);
		CMDMessageToAdmins(playerid,"FORBINNAME");
		UpdateConfig();
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd,"/forbidword",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
		new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
		SendClientMessage(playerid, red, "USAGE: /forbidword [word]");
		return SendClientMessage(playerid, red, "CMD: This command prevents a player from using this word"); }

		GetPlayerName(playerid, adminname, sizeof(adminname));
		new File:BLfile;
		BLfile = fopen("ladmin/config/ForbiddenWords.cfg",io_append);
		format(string,sizeof(string),"%s\r\n",cmdtext[12]);
		fwrite(BLfile,string);
		fclose(BLfile);

		UpdateConfig();
		format(string, sizeof(string), "Admin %s has added the word '%s' to the forbidden word list",adminname,cmdtext[12]);
		MessageToAdmins(green,string);
		CMDMessageToAdmins(playerid,"FORBIDWORD");
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd,"/lockserver",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
		ServerInfo[Locked] = 1;
		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string, sizeof(string), "Admin %s has locked the server",adminname);
  		SendClientMessageToAll(red,"________________________________________");
  		SendClientMessageToAll(red," ");
		SendClientMessageToAll(red,string);
		SendClientMessageToAll(red,"________________________________________");
		for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayerPlaySound(i,1057,0.0,0.0,0.0);
		CMDMessageToAdmins(playerid,"LOCKSERVER");
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd,"/unlockserver",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
		ServerInfo[Locked] = 0;
		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string, sizeof(string), "Admin %s has unlocked the server",adminname);
		SendClientMessageToAll(green,"________________________________________");
		SendClientMessageToAll(green," ");
		SendClientMessageToAll(green,string);
		SendClientMessageToAll(green,"________________________________________");
		for(new i = 0; i <= MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayerPlaySound(i,1057,0.0,0.0,0.0);
		CMDMessageToAdmins(playerid,"UNLOCKSERVER");
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");   }
	return 1;	}
//==========================[ CHAT COMMANDS ]===================================
	if(strcmp(cmd,"/asay",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
		new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
		SendClientMessage(playerid, red, "USAGE: /asay [text]");
		return 1;		}

		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string, sizeof(string), "**Admin %s: %s",adminname,cmdtext[6]);
		SendClientMessageToAll(COLOR_PINK,string);
	} else	{ 
  	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}

//------------------------------------------------------------------------------
	if(strcmp(cmd,"/clearchat",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
		CMDMessageToAdmins(playerid,"CLEARCHAT");
		for(new i = 0; i < 11; i++) SendClientMessageToAll(green," ");
 	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd,"/clearallchat",true)==0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
		CMDMessageToAdmins(playerid,"CLEARALLCHAT");
		for(new i = 0; i < 50; i++) SendClientMessageToAll(green," ");
 	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------

	if(strcmp(cmd, "/caps", true) == 0)	{
    if(PlayerInfo[playerid][Level] >= 3) {
		new tmp[256], player1;
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /caps [playerid] [off / on]");

		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )
		return SendClientMessage(playerid,red,"ERROR: Player is not connected");
		tmp = strtok(cmdtext, idx);

		if(strcmp(cmdtext[8],"on",true) == 0)	{
			GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
			PlayerInfo[playerid][Caps] = 0;
			CMDMessageToAdmins(playerid,"CAPS");
			format(string,256,"Administrator %s has allowed you to use caps",adminname);	if(player1 != playerid)	{	SendClientMessage(player1,blue,string); }
			format(string,256,"You have allowed %s to use caps",playername); SendClientMessage(playerid,blue,string);
		} else if(strcmp(cmdtext[8],"off",true) == 0)	{
			GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
			PlayerInfo[playerid][Caps] = 1;
			CMDMessageToAdmins(playerid,"CAPS");
			format(string,256,"Administrator %s has prevented you from using caps",adminname);	if(player1 != playerid)	{	SendClientMessage(player1,blue,string); }
			format(string,256,"You have prevented %s from using caps",playername); SendClientMessage(playerid,blue,string);

		} else {
			SendClientMessage(playerid,red,"USAGE: /caps [playerid] [off / on]");
			return 1;   }
		} else	{
		SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}

//------------------------------------------------------------------------------
	if(strcmp(cmd, "/crash", true) == 0)
	{
	    if(PlayerInfo[playerid][Level] >= 4)
	    {
			new tmp[256], player1;
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /crash [playerid]");

			new Float:X,Float:Y,Float:Z;
			player1 = strval(tmp);
			if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )
			return SendClientMessage(playerid,red,"ERROR: Player is not connected");
			tmp = strtok(cmdtext, idx);

	        GetPlayerPos(player1,X,Y,Z);
	   		new objectcrash = CreatePlayerObject(player1,11111111,X,Y,Z,0,0,0);
			SendClientMessage(playerid,blue, "Player successfuly crashed.");
			CMDMessageToAdmins(playerid,"CRASH");
			DestroyObject(objectcrash);
		}
		else
		{
		SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
		}
		return 1;
	}
//------------------------------------------------------------------------------
	if(strcmp(cmd,"/getid",true) == 0)
	{
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid,blue,"Correct Usage: /getid [part from the nick]");

		format(string,sizeof(string),"Searched for: \"%s\": ",tmp);
		SendClientMessage(playerid,red,string);
		new found=0;
		for(new i=0; i <= MAX_PLAYERS; i++)
		{
			if(IsPlayerConnected(i))
			{
		  		GetPlayerName(i, playername, MAX_PLAYER_NAME);
				new namelen = strlen(playername);
				new bool:searched=false;
		    	for(new pos=0; pos <= namelen; pos++)
				{
					if(searched != true)
					{
						if(strfind(playername,tmp,true) == pos)
						{
			                found++;
							format(string,sizeof(string),"%d. %s (ID %d)",found,playername,i);
							SendClientMessage(playerid, green ,string);
							searched = true;
						}
					}
				}
			}
		}
		return 1;
	}
//-------------------SPECTATE A PLAYER------------------------------------------
 	if(strcmp(cmd, "/lspec", true) == 0) {
	if(PlayerInfo[playerid][Level] >= 2) {
	    new tmp[256], specplayerid;
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /specplayer [playerid]");

		specplayerid = strval(tmp);

		if(!IsPlayerConnected(specplayerid) || (PlayerInfo[specplayerid][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) ) {
      	SendClientMessage(playerid,red,"ERROR: Player is not connected");
		return 1;		}

		if(specplayerid == playerid) return SendClientMessage(playerid, red, "ERROR: You cannot spectate yourself");

		if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && gSpectateID[specplayerid] != INVALID_PLAYER_ID) {
	   		SendClientMessage(playerid, red, "Spectate: Player spectating someone else");
	   		return 1;
		}
		if(GetPlayerState(specplayerid) != 1 && GetPlayerState(specplayerid) != 2 && GetPlayerState(specplayerid) != 3)
	 		return SendClientMessage(playerid, red, "Spectate: Player not spawned");

		StartSpectate(playerid, specplayerid);
		SendClientMessage(playerid,blue,"Now Spectating");
		CMDMessageToAdmins(playerid,"LSPEC");
		GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
		GetPlayerFacingAngle(playerid,Pos[playerid][3]);

	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}
//---------------------SPECTATE A VEHICLE---------------------------------------
 	if(strcmp(cmd, "/lspecvehicle", true) == 0) {
	if(PlayerInfo[playerid][Level] >= 2) {
	    new tmp[256],specvehicleid;
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, red, "USAGE: /specvehicle [vehicleid]");
			return 1;	}
			
		specvehicleid = strval(tmp);

		if(specvehicleid < MAX_VEHICLES) {
			TogglePlayerSpectating(playerid, 1);
			PlayerSpectateVehicle(playerid, specvehicleid);
			gSpectateID[playerid] = specvehicleid;
			gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
			SendClientMessage(playerid,blue,"Now Spectating");
			CMDMessageToAdmins(playerid,"SPEC VEHICLE");
			GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
			GetPlayerFacingAngle(playerid,Pos[playerid][3]);
		}
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}
//--------------------STOP SPECTATING-------------------------------------------
 	if(strcmp(cmd, "/lspecoff", true) == 0) {
		StopSpectate(playerid);
		SendClientMessage(playerid,blue,"No Longer Spectating");
		SetTimerEx("PosAfterSpec",3000,0,"d",playerid);
		return 1;	}
//=====================[ REPORT ]===============================================
	if(strcmp(cmd, "/report", true) == 0)	{
	    new tmp[256], reported;
     	tmp = strtok(cmdtext, idx);
 		if(!strlen(tmp)) return
			SendClientMessage(playerid, red, "USAGE: /report [playerid] [reason]");

		reported = strval(tmp);
		if(!IsPlayerConnected(reported) || reported == INVALID_PLAYER_ID)
		return SendClientMessage(playerid,red,"ERROR: Player is not connected");
		if(PlayerInfo[reported][Level] == ServerInfo[MaxAdminLevel])
		return SendClientMessage(playerid,red,"ERROR: You cannot report this administrator");
		if(playerid == reported) return SendClientMessage(playerid,red,"ERROR: You Cannot report yourself");
		tmp = strtok(cmdtext, idx);

		new length = strlen(cmdtext);
		if(length < 14) return SendClientMessage(playerid,red,"ERROR: What Is The Reason");

		new reportedname[MAX_PLAYER_NAME], reporter[MAX_PLAYER_NAME], str[100];
		GetPlayerName(reported, reportedname, sizeof(reportedname));	GetPlayerName(playerid, reporter, sizeof(reporter));
		format(str, sizeof(str), "||NewReport||  %s(ID %d) reported %s(ID %d) reason = %s", reporter,playerid, reportedname, reported, cmdtext[9]);
		MessageToAdmins(COLOR_WHITE,str);	SaveToFile("ReportLog",str);
		SendClientMessage(playerid,yellow, "Report Sent.");
	    return 1;
		}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/teleplayer", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /teleplayer [playerid] to [playerid]");
			return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID)		{
			SendClientMessage(playerid,red,"ERROR: Player is not connected");
			return 1;		}
		tmp = strtok(cmdtext, idx);

		new player2;
		player2 = strval(tmp);
		if(!IsPlayerConnected(player1) || player2 == INVALID_PLAYER_ID)		{
			SendClientMessage(playerid,red,"ERROR: Player is not connected");
			return 1;		}
		tmp = strtok(cmdtext, idx);

	    new Float:plocx,Float:plocy,Float:plocz;
		GetPlayerPos(player2, plocx, plocy, plocz);	new intid = GetPlayerInterior(player2);	SetPlayerInterior(player1,intid);
		SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(player2));
		CMDMessageToAdmins(playerid,"TELEPLAYER");
		if (GetPlayerState(player1) == 2)
		{
		new VehicleID = GetPlayerVehicleID(player1);
		SetVehiclePos(VehicleID, plocx, plocy+4, plocz);   LinkVehicleToInterior(VehicleID,intid);
		SetVehicleVirtualWorld(VehicleID, GetPlayerVirtualWorld(player2) );
		} else	{
		SetPlayerPos(player1,plocx,plocy+2, plocz);		}
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//===================================[WARN]=====================================
	if(strcmp(cmd, "/warn", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
	new tmp[256];	new str[256];	new pname[256];	new aname[256];	new tmp2[256];
	tmp = strtok(cmdtext, idx);
	tmp2 = strtok(cmdtext, idx);

	if(!strlen(tmp))	{
	SendClientMessage(playerid, red, "USAGE: /warn [PlayerID] [Reason]");
	return 1;	}
	
	new warned;
	warned = strval(tmp);
	if(!IsPlayerConnected(warned) || warned == INVALID_PLAYER_ID || (PlayerInfo[warned][Level] == ServerInfo[MaxAdminLevel]) || (warned == playerid))	{
	SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
	return 1;	}
	tmp = strtok(cmdtext, idx);

    CMDMessageToAdmins(playerid,"WARN");
	if(PlayerInfo[warned][Warnings] == 0)	{
		PlayerInfo[warned][Warnings]+=1;
		GetPlayerName(warned, pname, sizeof (str));		GetPlayerName(playerid, aname, sizeof (str));
		format(str, sizeof (str), "***Administrator %s has given %s a warning [Reason: %s] [1/3 Warnings]***", aname, pname, cmdtext[8]);
		SendClientMessageToAll(yellow, str);
		return 1;	}
	else if(PlayerInfo[warned][Warnings] == 1)	{
		GetPlayerName(warned, pname, sizeof (str));		GetPlayerName(playerid, aname, sizeof (str));
		format(str, sizeof (str), "***Administrator %s has given %s a warning [Reason: %s] [2/3 Warnings]***", aname, pname, cmdtext[8]);
		SendClientMessageToAll(yellow, str);
		PlayerInfo[warned][Warnings]+=1;
		return 1;	}
	else if(PlayerInfo[warned][Warnings] == 2)	{
		GetPlayerName(warned, pname, sizeof (str));		GetPlayerName(playerid, aname, sizeof (str));
		format(str, sizeof (str), "***Administrator %s has Kicked %s [Reason: %s] [3/3 Warnings]***", aname, pname, cmdtext[8]);
		SendClientMessageToAll(grey, str);
		SaveToFile("KickLog",str);	Kick(warned);
		return 1;	}
	} else	{
 	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/car", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256], car,colour1,colour2;
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /car [carid] [colour1] [colour2]");
			return 1;	}
		car = strval(tmp);
		if(car < 400 || car > 611)		{
			SendClientMessage(playerid, red, "Vehicle Number can't be below 400 or above 611");
			return 1;		}
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))		{
			SendClientMessage(playerid, red, "USAGE: /car [carid] [colour1] [colour2]");
			return 1;		}
		colour1 = strval(tmp);
		if(colour1 < 0 || colour1 > 126)		{
			SendClientMessage(playerid, red, "ERROR: Colour Number can't be below 0 or above 126");
			return 1;		}
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))		{
			SendClientMessage(playerid, red, "USAGE: /car [carid] [colour1] [colour2]");
			return 1;		}
		colour2 = strval(tmp);
		if(colour2 < 0 || colour2 > 126)		{
			SendClientMessage(playerid, red, "ERROR: Colour Number can't be below 0 or above 126");
		 	return 1;	 	}
		new LVehicleID,Float:X,Float:Y,Float:Z, Float:Angle,int1 ;	GetPlayerPos(playerid, X,Y,Z);	GetPlayerFacingAngle(playerid,Angle);   int1 = GetPlayerInterior(playerid);
		LVehicleID = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, 60000); LinkVehicleToInterior(LVehicleID,int1);
		CMDMessageToAdmins(playerid,"CAR");
		new pname[MAX_PLAYER_NAME];
 		GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
		format(string, sizeof(string), "You have spawned car (%d) colour1 (%d) colour2 (%d), at %0.2f, %0.2f, %0.2f", car, colour1, colour2, X, Y, Z);
		SendClientMessage(playerid,yellow, string);
		format(string, sizeof(string), "%s has spawned car (%d) colour1 (%d) colour2 (%d), at %0.2f, %0.2f, %0.2f", pname, car, colour1, colour2, X, Y, Z);
        SaveToFile("CarSpawns",string);
	} else	{
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//---------------------------------------
	if(strcmp(cmd, "/pickup", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 5) {
		new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /pickup [pickup-id]");
			return 1;	}
		new pick,Float:px,Float:py,Float:pz;	GetPlayerPos(playerid, px,py,pz);
		pick = strval(tmp);
	    CMDMessageToAdmins(playerid,"PICKUP");
		CreatePickup(pick, 2, px, py, pz);
		format(string, sizeof(string), "CreatePickup(%d, 2, %0.2f, %0.2f, %0.2f);", pick, px, py, pz);
		SendClientMessage(playerid,yellow, string);
       	SaveToFile("Pickups",string);
	} else	{
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/object", true) == 0)	{
    if(PlayerInfo[playerid][Level] >= 5) {
		new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /object [object-id]");
			return 1;	}
		new object, Float:px,Float:py,Float:pz;	GetPlayerPos(playerid, px,py,pz);
		object = strval(tmp);
	    CMDMessageToAdmins(playerid,"OBJECT");
		CreateObject(object, px, py, pz, 0, 0, 0);
		format(string, sizeof(string), "You Have Created Object %d, at %0.2f, %0.2f, %0.2f", object, px, py, pz);
		SendClientMessage(playerid,yellow, string);
		format(string, sizeof(string), "CreateObject(%d, %0.2f, %0.2f, %0.2f, 0.00, 0.00, 0.00);", object, px, py, pz);
       	SaveToFile("Objects",string);
	} else	{
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//==============================================================================
   	if(strcmp(cmd, "/linkcar", true) == 0)	{
		if(IsPlayerInAnyVehicle(playerid)) {
	    LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(playerid));
	    SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(playerid));
		}
		return 1;   }
//==============================================================================
	if(strcmp(cmd, "/duel", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /duel [player1 id] [player2 id] [location (1) or (2) or (3)]");
			SendClientMessage(playerid, red, "If location isnt stated then players duel at their present location");
			return 1;	}
			
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID)		{
			SendClientMessage(playerid,red,"ERROR: Player is not connected");
			return 1;	}
		tmp = strtok(cmdtext, idx);

		new player2;
		player2 = strval(tmp);
		if(!IsPlayerConnected(player1) || player2 == INVALID_PLAYER_ID)		{
			SendClientMessage(playerid,red,"ERROR: Player is not connected");
			return 1;	}
		tmp = strtok(cmdtext, idx);

        new location;
		location = strval(tmp);
		tmp = strtok(cmdtext, idx);
		
		if(location == 1)   {
		SetPlayerInterior(player1,16);	SetPlayerPos(player1,-1404.067, 1270.3706, 1042.8672);	SetPlayerHealth(player1,100.0);	SetPlayerArmour(player1,100.0);	GivePlayerWeapon(player1,26,400);	GivePlayerWeapon(player1,24,300);	GivePlayerWeapon(player1,28,500);
		SetPlayerInterior(player2,16);	SetPlayerPos(player2,-1395.067, 1261.3706, 1042.8672);  SetPlayerHealth(player2,100.0); SetPlayerArmour(player2,100.0);	GivePlayerWeapon(player2,26,400);	GivePlayerWeapon(player2,24,300);	GivePlayerWeapon(player2,28,500);
		InDuel[player1] = 1;
		InDuel[player2] = 1;
		CMDMessageToAdmins(playerid,"DUEL");
		cdt=6;
		CountTimer=SetTimer("duel",1000,1);
		} else if(location == 2)   {
		SetPlayerInterior(player1,0);	SetPlayerPos(player1,1353.407,2188.155,11.02344);    SetPlayerHealth(player1,100.0); SetPlayerArmour(player1,100.0);	GivePlayerWeapon(player1,26,400);	GivePlayerWeapon(player1,24,300);	GivePlayerWeapon(player1,28,500);
		SetPlayerInterior(player2,0);	SetPlayerPos(player2,1346.255,2142.843,11.01563);    SetPlayerHealth(player2,100.0); SetPlayerArmour(player2,100.0);	GivePlayerWeapon(player2,26,400);	GivePlayerWeapon(player2,24,300);	GivePlayerWeapon(player2,28,500);
		InDuel[player1] = 1;
		InDuel[player2] = 1;
		CMDMessageToAdmins(playerid,"DUEL");
		cdt=6;
		CountTimer=SetTimer("duel",1000,1);
		} else if(location == 3)   {
		SetPlayerInterior(player1,10);	SetPlayerPos(player1,-1041.037,1078.729,1347.678); SetPlayerFacingAngle(player1,135);	SetPlayerHealth(player1,100.0); SetPlayerArmour(player1,100.0);	GivePlayerWeapon(player1,26,400);	GivePlayerWeapon(player1,24,300);	GivePlayerWeapon(player1,28,500);
		SetPlayerInterior(player2,10);	SetPlayerPos(player2,-1018.061,1052.502,1346.327); SetPlayerFacingAngle(player2,45);   SetPlayerHealth(player2,100.0); SetPlayerArmour(player2,100.0);	GivePlayerWeapon(player2,26,400);	GivePlayerWeapon(player2,24,300);	GivePlayerWeapon(player2,28,500);
		InDuel[player1] = 1;
		InDuel[player2] = 1;
		CMDMessageToAdmins(playerid,"DUEL");
		cdt=6;
		CountTimer=SetTimer("duel",1000,1);
		} else  {
		InDuel[player1] = 1;
		InDuel[player2] = 1;
		CMDMessageToAdmins(playerid,"DUEL");
		cdt=6;
		CountTimer=SetTimer("duel",1000,1);  }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext,"/countdown",true)==0)	{
    if(PlayerInfo[playerid][Level] >= 3) {
	CMDMessageToAdmins(playerid,"COUNTDOWN");
	cdt=6;
	CountTimer=SetTimer("countdown",1000,1);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
	
//========================= [ Car Commands ]====================================

	if(strcmp(cmdtext, "/ltunedcar", true)==0 || strcmp(cmdtext, "/ltc", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        LVehicleIDt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,LVehicleIDt,0); CMDMessageToAdmins(playerid,"LTunedCar");	    AddVehicleComponent(LVehicleIDt, 1028);	AddVehicleComponent(LVehicleIDt, 1030);	AddVehicleComponent(LVehicleIDt, 1031);	AddVehicleComponent(LVehicleIDt, 1138);	AddVehicleComponent(LVehicleIDt, 1140);  AddVehicleComponent(LVehicleIDt, 1170);
	    AddVehicleComponent(LVehicleIDt, 1028);	AddVehicleComponent(LVehicleIDt, 1030);	AddVehicleComponent(LVehicleIDt, 1031);	AddVehicleComponent(LVehicleIDt, 1138);	AddVehicleComponent(LVehicleIDt, 1140);  AddVehicleComponent(LVehicleIDt, 1170);
	    AddVehicleComponent(LVehicleIDt, 1080);	AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010);	PlayerPlaySound(playerid,1133,0.0,0.0,0.0);	ChangeVehiclePaintjob(LVehicleIDt,0);
   	   	SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar2", true)==0 || strcmp(cmdtext, "/ltc2", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        LVehicleIDt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,LVehicleIDt,0); CMDMessageToAdmins(playerid,"LTunedCar");	    AddVehicleComponent(LVehicleIDt, 1028);	AddVehicleComponent(LVehicleIDt, 1030);	AddVehicleComponent(LVehicleIDt, 1031);	AddVehicleComponent(LVehicleIDt, 1138);	AddVehicleComponent(LVehicleIDt, 1140);  AddVehicleComponent(LVehicleIDt, 1170);
	    AddVehicleComponent(LVehicleIDt, 1028);	AddVehicleComponent(LVehicleIDt, 1030);	AddVehicleComponent(LVehicleIDt, 1031);	AddVehicleComponent(LVehicleIDt, 1138);	AddVehicleComponent(LVehicleIDt, 1140);  AddVehicleComponent(LVehicleIDt, 1170);
	    AddVehicleComponent(LVehicleIDt, 1080);	AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010);	PlayerPlaySound(playerid,1133,0.0,0.0,0.0);	ChangeVehiclePaintjob(LVehicleIDt,1);
	   	SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar3", true)==0 || strcmp(cmdtext, "/ltc3", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,LVehicleIDt;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        LVehicleIDt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,LVehicleIDt,0); CMDMessageToAdmins(playerid,"LTunedCar");	    AddVehicleComponent(LVehicleIDt, 1028);	AddVehicleComponent(LVehicleIDt, 1030);	AddVehicleComponent(LVehicleIDt, 1031);	AddVehicleComponent(LVehicleIDt, 1138);	AddVehicleComponent(LVehicleIDt, 1140);  AddVehicleComponent(LVehicleIDt, 1170);
	    AddVehicleComponent(LVehicleIDt, 1080);	AddVehicleComponent(LVehicleIDt, 1086); AddVehicleComponent(LVehicleIDt, 1087); AddVehicleComponent(LVehicleIDt, 1010);	PlayerPlaySound(playerid,1133,0.0,0.0,0.0);	ChangeVehiclePaintjob(LVehicleIDt,2);
	   	SetVehicleVirtualWorld(LVehicleIDt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(LVehicleIDt, GetPlayerInterior(playerid)); }
 	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar4", true)==0 || strcmp(cmdtext, "/ltc4", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(559,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
    	AddVehicleComponent(carid,1065);    AddVehicleComponent(carid,1067);    AddVehicleComponent(carid,1162); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073);	ChangeVehiclePaintjob(carid,1);
	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar5", true)==0 || strcmp(cmdtext, "/ltc5", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(565,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
	    AddVehicleComponent(carid,1046); AddVehicleComponent(carid,1049); AddVehicleComponent(carid,1053); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar6", true)==0 || strcmp(cmdtext, "/ltc6", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
    	AddVehicleComponent(carid,1088); AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1139); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
 	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar7", true)==0 || strcmp(cmdtext, "/ltc7", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(561,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
    	AddVehicleComponent(carid,1055); AddVehicleComponent(carid,1058); AddVehicleComponent(carid,1064); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar8", true)==0 || strcmp(cmdtext, "/ltc8", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
	    AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar9", true)==0 || strcmp(cmdtext, "/ltc9", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(567,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
	    AddVehicleComponent(carid,1102); AddVehicleComponent(carid,1129); AddVehicleComponent(carid,1133); AddVehicleComponent(carid,1186); AddVehicleComponent(carid,1188); ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1085); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1086);
	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar10", true)==0 || strcmp(cmdtext, "/ltc10", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
   		AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1166); AddVehicleComponent(carid,1165); AddVehicleComponent(carid,1090);
	    AddVehicleComponent(carid,1094); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1163);//SPOILER
	    AddVehicleComponent(carid,1091); ChangeVehiclePaintjob(carid,2);
	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar11", true)==0 || strcmp(cmdtext, "/ltc11", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(557,X,Y,Z,Angle,1,1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
		AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1081);
	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar12", true)==0 || strcmp(cmdtext, "/ltc12", true)==0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(535,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
		ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1109); AddVehicleComponent(carid,1115); AddVehicleComponent(carid,1117); AddVehicleComponent(carid,1073); AddVehicleComponent(carid,1010);
	    AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1114); AddVehicleComponent(carid,1081); AddVehicleComponent(carid,1119); AddVehicleComponent(carid,1121);
	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext, "/ltunedcar13", true)==0 || strcmp(cmdtext, "/ltc13", true)==0)	{
		if(IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else  {
		new Float:X,Float:Y,Float:Z,Float:Angle,carid;	GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
        carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,carid,0); CMDMessageToAdmins(playerid,"LTunedCar");
  		AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147);
		AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,0);
	   	SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid)); }
		return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/lp", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if (GetPlayerState(playerid) == 2)
		{
		new VehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(VehicleID);
        switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586, 449: return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle"); }
		new str[256], Float:pos[3];	format(str, sizeof(str), "%s", cmdtext[2]);
		SetVehicleNumberPlate(VehicleID, str);
		GetPlayerPos(playerid, pos[0], pos[1], pos[2]);	SetPlayerPos(playerid, pos[0]+1, pos[1], pos[2]);
		SetVehicleToRespawn(VehicleID); SetVehiclePos(VehicleID, pos[0], pos[1], pos[2]);
		SetTimerEx("TuneLCar",4000,0,"d",VehicleID);    PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
		SendClientMessage(playerid, blue, "You have changed your licence plate");   CMDMessageToAdmins(playerid,"LP");
		} else {
		SendClientMessage(playerid,red,"Error: You have to be the driver of a vehicle to change its licence plate");	}
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 1 use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/lcar", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
		if (IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else {
		GivePlayerCar(playerid,415);
		SendClientMessage(playerid,blue,"Enjoy your new car");	CMDMessageToAdmins(playerid,"LCAR"); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/lbike", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
		if (IsPlayerInAnyVehicle(playerid)) {
		SendClientMessage(playerid,red,"Error: You already have a vehicle");
		} else {
		new Float:X,Float:Y,Float:Z,Float:Angle,VehicleID;
		GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
	    VehicleID = CreateVehicle(522,X,Y,Z,Angle,1,-1,-1);	PutPlayerInVehicle(playerid,VehicleID,0);
		if(GetPlayerInterior(playerid)) LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
		SetVehicleVirtualWorld(VehicleID,GetPlayerVirtualWorld(playerid));
		ChangeVehicleColor(VehicleID,0,7);
		SendClientMessage(playerid,blue,"Enjoy your new bike");	CMDMessageToAdmins(playerid,"LBIKE"); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/flip", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if (IsPlayerInAnyVehicle(playerid)) {
		new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle;	GetPlayerPos(playerid, X, Y, Z); 	VehicleID = GetPlayerVehicleID(playerid);
		GetVehicleZAngle(VehicleID, Angle);
		SetVehiclePos(VehicleID, X, Y, Z);
		SetVehicleZAngle(VehicleID, Angle); SetVehicleHealth(VehicleID,1200.0);
		SendClientMessage(playerid, blue,"Vehicle Flipped"); CMDMessageToAdmins(playerid,"FLIP");
		} else {
		SendClientMessage(playerid,red,"Error: You are not in a vehicle");	}
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/fix", true) == 0 || strcmp(cmd, "/vr", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
		if (IsPlayerInAnyVehicle(playerid)) {
		new VehicleID = GetPlayerVehicleID(playerid);	SetVehicleHealth(VehicleID,1250.0);
		SendClientMessage(playerid,blue,"Vehicle Fixed");
		} else {
		SendClientMessage(playerid,red,"Error: You are not in a vehicle");	}
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/repair", true) == 0 || strcmp(cmd, "/vr", true) == 0)	{
		if(PlayerInfo[playerid][Level] >= 1) {
			if (IsPlayerInAnyVehicle(playerid)) {
				GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
				GetVehicleZAngle(GetPlayerVehicleID(playerid), Pos[playerid][3]);
				SetPlayerCameraPos(playerid, 1929.0, 2137.0, 11.0);
				SetPlayerCameraLookAt(playerid,1935.0, 2138.0, 11.5);
				SetVehiclePos(GetPlayerVehicleID(playerid), 1974.0,2162.0,11.0);
				SetVehicleZAngle(GetPlayerVehicleID(playerid), -90);
				SetTimerEx("RepairCar",5000,0,"i",playerid);
		    	SendClientMessage(playerid,blue,"Your car will be ready in 5 seconds");
			} else {
				SendClientMessage(playerid,red,"Error: You are not in a vehicle");	}
		} else	{
  			SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");   }
		return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext,"/ltune",true)==0){
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
        new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
        switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586,449: return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle"); }
        CMDMessageToAdmins(playerid,"LTUNE"); SetVehicleHealth(GetPlayerVehicleID(playerid),2000.0);  TuneLCar(LVehicleID);   PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
		} else {	SendClientMessage(playerid,red,"ERROR: You must be in a vehicle."); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext,"/lnos",true)==0){
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
        new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
        switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586,449: return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!"); }
        AddVehicleComponent(LVehicleID, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
		} else {	SendClientMessage(playerid,red,"ERROR: You must be in a vehicle."); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmdtext,"/lhy",true)==0){
	if(PlayerInfo[playerid][Level] >= 1) {
		if(IsPlayerInAnyVehicle(playerid)) {
        new LVehicleID = GetPlayerVehicleID(playerid), LModel = GetVehicleModel(LVehicleID);
        switch(LModel) { case 448,461,462,463,468,471,509,510,521,522,523,581,586,449: return SendClientMessage(playerid,red,"ERROR: You can not tune this vehicle!"); }
        AddVehicleComponent(LVehicleID, 1087); PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
		} else {	SendClientMessage(playerid,red,"ERROR: You must be in a vehicle."); }
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if (strcmp(cmd, "/ladmin", true) ==0 )	{
	if(PlayerInfo[playerid][Level] >= 3) {
	new tmp[256], Float:X, Float:Y, Float:Z;
	tmp = strtok(cmdtext,idx);
	if(!strlen(tmp))	{
		SendClientMessage(playerid,red,"USAGE: /ladmin [up / down / +x / -x / +y / -y / off]");	}
	else if(strcmp(tmp,"up",true) == 0)	{
		TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z);	SetPlayerPos(playerid,X,Y,Z+5); SetCameraBehindPlayer(playerid);	}
	else if(strcmp(tmp,"down",true) == 0)	{
		TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z);	SetPlayerPos(playerid,X,Y,Z-5); SetCameraBehindPlayer(playerid);	}
	else if(strcmp(tmp,"+x",true) == 0)	{
		TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z);	SetPlayerPos(playerid,X+5,Y,Z);	}
	else if(strcmp(tmp,"-x",true) == 0)	{
		TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z);	SetPlayerPos(playerid,X-5,Y,Z); }
	else if(strcmp(tmp,"+y",true) == 0)	{
		TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z);	SetPlayerPos(playerid,X,Y+5,Z);	}
	else if(strcmp(tmp,"-y",true) == 0)	{
		TogglePlayerControllable(playerid,false); GetPlayerPos(playerid,X,Y,Z);	SetPlayerPos(playerid,X,Y-5,Z);	}
    else if(strcmp(tmp,"off",true) == 0)	{
		TogglePlayerControllable(playerid,true);	}
	else	{
		SendClientMessage(playerid,red,"USAGE: /ladmin [up / down / +x / -x / +y / -y / off]");	}
	return 1;
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
	
//==================[ Save Account Details To File ]============================
	if(strcmp(cmd, "/gotoplace", true) == 0)   {
	if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] >= 1)	{
	    if (dUserINT(PlayerName2(playerid)).("x")!=0) {
	    PutAtPos(playerid);
	    SetPlayerVirtualWorld(playerid, (dUserINT(PlayerName2(playerid)).("world")) );
		SendClientMessage(playerid,yellow,"You have successfully teleported to your saved place");
		} else {
		SendClientMessage(playerid,red,"ERROR: You must save a place before you can teleport to it");   }
	} else    {
 	SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");   }
	return 1;	}
//------------
	if(strcmp(cmd, "/saveplace", true) == 0)	{
	if(PlayerInfo[playerid][LoggedIn] && PlayerInfo[playerid][Level] >= 1)	{
	new Float:x,Float:y,Float:z, interior;
	GetPlayerPos(playerid,x,y,z);	interior = GetPlayerInterior(playerid);
	dUserSetINT(PlayerName2(playerid)).("x",floatround(x));
	dUserSetINT(PlayerName2(playerid)).("y",floatround(y));
	dUserSetINT(PlayerName2(playerid)).("z",floatround(z));
	dUserSetINT(PlayerName2(playerid)).("interior",interior);
	dUserSetINT(PlayerName2(playerid)).("world", (GetPlayerVirtualWorld(playerid)) );
	SendClientMessage(playerid,yellow,"You have successfully saved these coordinates");
	} else    {
	SendClientMessage(playerid,red, "ERROR: You must be an administrator to use this command");   }
	return 1;	}
//-----------------------------------------
	if(strcmp(cmd, "/saveskin", true) == 0)
	{
 	if((PlayerInfo[playerid][Level] >= 1) && (PlayerInfo[playerid][LoggedIn] == 1))  {
	new skinid, tmp[256],str[256];
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))	{
	SendClientMessage(playerid, red, "USAGE: /saveskin [Skinid]");
	return 1;
	}
	skinid = strval(tmp);

 	if(skinid >= 0 && skinid <= 300)	{
 		dUserSetINT(PlayerName2(playerid)).("FavSkin",skinid);
	 	format(str, sizeof(str), "You have successfully saved this skin[%d]",skinid);
	 	SendClientMessage(playerid,yellow,str);	SendClientMessage(playerid,yellow,"Type: /useskin to use this skin when you spawn or /dontuseskin to stop using skin");
		dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
	 	CMDMessageToAdmins(playerid,"SAVESKIN");
		return 1;
	} else {
 	SendClientMessage(playerid, green, "ERROR: Invalid Skin ID");
 	return 1; 	}
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You must be an administrator to use this command");   }
	return 1;
	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/useskin", true) == 0)	{
	if((PlayerInfo[playerid][Level] >= 1) && (PlayerInfo[playerid][LoggedIn] == 1))  {
    dUserSetINT(PlayerName2(playerid)).("UseSkin",1);
    SetPlayerSkin(playerid,dUserINT(PlayerName2(playerid)).("FavSkin"));
	SendClientMessage(playerid,yellow,"Skin now in use");   }
	return 1;	}
	if(strcmp(cmd, "/dontuseskin", true) == 0)	{
	if((PlayerInfo[playerid][Level] >= 1) && (PlayerInfo[playerid][LoggedIn] == 1))  {
	dUserSetINT(PlayerName2(playerid)).("UseSkin",0);
	SendClientMessage(playerid,yellow,"Skin will no longer be used");   }
	return 1;	}

//------------------------------------------------------------------------------
	if(strcmp(cmd, "/resetstats", true) == 0)	{
	if(PlayerInfo[playerid][LoggedIn] == 1)	{
		// save as backup
	   	dUserSetINT(PlayerName2(playerid)).("oldkills",PlayerInfo[playerid][Kills]);
	   	dUserSetINT(PlayerName2(playerid)).("olddeaths",PlayerInfo[playerid][Deaths]);
		// stats reset
		PlayerInfo[playerid][Kills] = 0;
		PlayerInfo[playerid][Deaths] = 0;
		dUserSetINT(PlayerName2(playerid)).("kills",PlayerInfo[playerid][Kills]);
	   	dUserSetINT(PlayerName2(playerid)).("deaths",PlayerInfo[playerid][Deaths]);
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		SendClientMessage(playerid,yellow,"ACCOUNT: You have successfully reset your stats. Your kills and deaths are: 0");
	} else    {
		SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/changepass", true) == 0)	{
	if(PlayerInfo[playerid][LoggedIn] ==1)	{
	    new tmp[256];
     	tmp = strtok(cmdtext, idx);
 		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /changepass [password]");
			return 1;	}

		if(strlen(cmdtext) < 15)	{
			SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
			return 1;	}

		dUserSetINT(PlayerName2(playerid)).("password_hash",udb_hash(cmdtext[12]) );
		dUserSet(PlayerName2(playerid)).("Password",cmdtext[12]);
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
        format(string, sizeof(string),"ACCOUNT: You have successfully changed your password to [ %s ]",cmdtext[12]);
		SendClientMessage(playerid,yellow,string);
	} else    {
		SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");   }
	return 1;	}

//==============================================================================
	if(strcmp(cmd, "/stats", true) == 0)	 {
	    new player1, tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
		    ShowScore(playerid);
			return 1;	}
		player1 = strval(tmp);

	 	if(IsPlayerConnected(player1))		{
			GetPlayerName(player1, playername, sizeof(playername));
 			format(string, sizeof(string), "<> %s's Stats:  Kills: %d | Deaths: %d | Ratio: %0.2f | Money: $%d ",playername, PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths],Float:PlayerInfo[player1][Deaths]/Float:PlayerInfo[player1][Deaths],GetPlayerMoney(player1));
			SendClientMessage(playerid, green, string);
   			return 1;
		} else {
 		SendClientMessage(playerid, COLOR_WHITE, "Player Not Connected!");
 		return 1;	}
	 }
//------------------------------------------------------------------------------
	if (strcmp(cmd, "/moveplayer", true) ==0 )	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256], Float:X, Float:Y, Float:Z;
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y ]");
			return 1;	}
			
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is max admin level");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		if(strcmp(tmp,"up",true) == 0)	{
			GetPlayerPos(player1,X,Y,Z);	SetPlayerPos(player1,X,Y,Z+5); SetCameraBehindPlayer(player1);	}
		else if(strcmp(tmp,"down",true) == 0)	{
			GetPlayerPos(player1,X,Y,Z);	SetPlayerPos(player1,X,Y,Z-5); SetCameraBehindPlayer(player1);	}
		else if(strcmp(tmp,"+x",true) == 0)	{
			GetPlayerPos(player1,X,Y,Z);	SetPlayerPos(player1,X+5,Y,Z);	}
		else if(strcmp(tmp,"-x",true) == 0)	{
			GetPlayerPos(player1,X,Y,Z);	SetPlayerPos(player1,X-5,Y,Z); }
		else if(strcmp(tmp,"+y",true) == 0)	{
			GetPlayerPos(player1,X,Y,Z);	SetPlayerPos(player1,X,Y+5,Z);	}
		else if(strcmp(tmp,"-y",true) == 0)	{
			GetPlayerPos(player1,X,Y,Z);	SetPlayerPos(player1,X,Y-5,Z);	}
		else	{
			SendClientMessage(playerid,red,"USAGE: /moveplayer [playerid] [up / down / +x / -x / +y / -y ]");	}
		return 1;
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/lweaps", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	GivePlayerWeapon(playerid,9,1); GivePlayerWeapon(playerid,24,1000); GivePlayerWeapon(playerid,26,1000); GivePlayerWeapon(playerid,28,1000); GivePlayerWeapon(playerid,31,1000); GivePlayerWeapon(playerid,34,1000); GivePlayerWeapon(playerid,38,1000); GivePlayerWeapon(playerid,16,1000); GivePlayerWeapon(playerid,42,1000); GivePlayerWeapon(playerid,14,1000); GivePlayerWeapon(playerid,46,1000);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/lammo", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	MaxAmmo(playerid);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if((strcmp(cmdtext,"/god",true)==0)||(strcmp(cmdtext,"/god",true)==0))    {
	if(PlayerInfo[playerid][Level] >= 3) {
    	if(PlayerInfo[playerid][God] == 0)	{
        	PlayerInfo[playerid][God] = 1;
	        SetPlayerHealth(playerid,100000);
			GivePlayerWeapon(playerid,38,50000); GivePlayerWeapon(playerid,15,50000); GivePlayerWeapon(playerid,26,50000);
            SendClientMessage(playerid,green,"GODMODE ON");
		} else	{
            PlayerInfo[playerid][God] = 0;
            SendClientMessage(playerid,red,"GODMODE OFF");
	        SetPlayerHealth(playerid, 100); GivePlayerWeapon(playerid,35,0);	}
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/die", true) == 0) {
	if(PlayerInfo[playerid][Level] >= 4) {
		new Float:x, Float:y, Float:z ;
		GetPlayerPos( playerid, Float:x, Float:y, Float:z );
		CreateExplosion(Float:x+10, Float:y, Float:z, 8,10.0);
		CreateExplosion(Float:x-10, Float:y, Float:z, 8,10.0);
		CreateExplosion(Float:x, Float:y+10, Float:z, 8,10.0);
		CreateExplosion(Float:x, Float:y-10, Float:z, 8,10.0);
		CreateExplosion(Float:x+10, Float:y+10, Float:z, 8,10.0);
		CreateExplosion(Float:x-10, Float:y+10, Float:z, 8,10.0);
		CreateExplosion(Float:x-10, Float:y-10, Float:z, 8,10.0);
	} else	{
    SendClientMessage(playerid,red,"ERROR: You need to be level 4 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/burn", true) == 0)	{
    if(PlayerInfo[playerid][Level] >= 2) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /burn [playerid]");
			return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID && PlayerInfo[playerid][Level] == 1)	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));
		GetPlayerName(playerid, adminname, sizeof(adminname));
		CMDMessageToAdmins(playerid,"BURN");
		format(string,256,"You have been flamed by Administrator \"%s\".",adminname);	SendClientMessage(player1,blue,string);
		new Float:burnx, Float:burny, Float:burnz;
		GetPlayerPos(player1,burnx, burny, burnz);
		CreateExplosion(burnx, burny , burnz + 3, 1, 10);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/explode", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /explode [playerid] [reason]");
			return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is max admin level");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));
		GetPlayerName(playerid, adminname, sizeof(adminname));
		CMDMessageToAdmins(playerid,"EXPLODE");
		format(string,256,"You have been exploded by Administrator %s [reason: %d]",adminname,cmdtext[11]);	SendClientMessage(player1,blue,string);
		format(string,256,"You have exploded %s [reason: %d]", playername,cmdtext[11]); SendClientMessage(playerid,blue,string);
		new Float:burnx, Float:burny, Float:burnz;
		GetPlayerPos(player1,burnx, burny, burnz);
		CreateExplosion(burnx, burny , burnz, 7,10.0);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/spawnplayer", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /spawnplayer [playerid]");
			return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));	GetPlayerName(playerid, adminname, sizeof(adminname));
		CMDMessageToAdmins(playerid,"SPAWNPLAYER");
		format(string,256,"You have been spawned by Administrator %s",adminname);	SendClientMessage(player1,blue,string);
		format(string,256,"You have spawned %s ", playername); SendClientMessage(playerid,blue,string);
		SpawnPlayer(player1);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
 	if(strcmp(cmd, "/setcolour", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
 		new tmp[256], player1, Colour;
		tmp = strtok(cmdtext, idx);
		
		if(!strlen(tmp)) {
		SendClientMessage(playerid, red, "USAGE: /setcolour [playerid] [Colour]");
		SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
		return 1;	}

		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )
		return SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		tmp = strtok(cmdtext, idx);

		Colour = strval(tmp);
		if(Colour > 9 )	{
		SendClientMessage(playerid, red, "USAGE: /setcolour [playerid] [Colour]");
		SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
		return 1;	}
		tmp = strtok(cmdtext, idx);

        CMDMessageToAdmins(playerid,"SETCOLOUR");
		GetPlayerName(player1, playername, sizeof(playername));	GetPlayerName(playerid, adminname, sizeof(adminname));
		
		if(player1 == playerid) { format(string,256,"You have changed your colour", playername); SendClientMessage(playerid,blue,string);
		} else {
		format(string,256,"You have changed %s's colour", playername); SendClientMessage(playerid,blue,string); }
		
        if(Colour == 0) {		SetPlayerColor(player1,black); format(string,256,"Administrator %s has changed your colour to black",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}
        else if(Colour == 1) {	SetPlayerColor(player1,COLOR_WHITE); format(string,256,"Administrator %s has changed your colour to white",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}
        else if(Colour == 2) {	SetPlayerColor(player1,red); format(string,256,"Administrator %s has changed your colour to red",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}
        else if(Colour == 3) {	SetPlayerColor(player1,orange); format(string,256,"Administrator %s has changed your colour to orange",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}
        else if(Colour == 4) {	SetPlayerColor(player1,yellow); format(string,256,"Administrator %s has changed your colour to yellow",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}
        else if(Colour == 5) {	SetPlayerColor(player1,COLOR_GREEN1); format(string,256,"Administrator %s has changed your colour to green",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}
        else if(Colour == 6) {	SetPlayerColor(player1,COLOR_BLUE);format(string,256,"Administrator %s has changed your colour to blue",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}
        else if(Colour == 7) {	SetPlayerColor(player1,COLOR_PURPLE); format(string,256,"Administrator %s has changed your colour to purple",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}
        else if(Colour == 8) {	SetPlayerColor(player1,COLOR_BROWN);format(string,256,"Administrator %s has changed your colour to brown",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}
        else if(Colour == 9) {	SetPlayerColor(player1,COLOR_PINK); format(string,256,"Administrator %s has changed your colour to pink",adminname); if(player1 != playerid) SendClientMessage(player1,blue,string); return 1;	}

	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/setweather", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /setweather [playerid] [weatherid]");
			return 1;	}
			
      	new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);
			
		new weather;
		weather = strval(tmp);
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string,256,"Administrator %s has changed your weather",adminname);	if(player1 != playerid)	{	SendClientMessage(player1,blue,string); }
		format(string,256,"You have changed %s's weather ",playername); SendClientMessage(playerid,blue,string);
		CMDMessageToAdmins(playerid,"SETWEATHER");	SetPlayerWeather(player1,weather); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/settime", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /settime [playerid] [hour] [minute]");
			return 1;	}

      	new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

        if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /settime [playerid] [hour] [minute]");
			return 1;	}
			
		new timeh;
		timeh = strval(tmp);
		tmp = strtok(cmdtext, idx);
		
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /settime [playerid] [hour] [minute]");
			return 1;	}
			
		new timem;
		timem = strval(tmp);
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string,256,"Administrator %s has changed your time to %d : %d",adminname,timeh,timem);	if(player1 != playerid)	{	SendClientMessage(player1,blue,string); }
		format(string,256,"You have changed %s's time to %d:%d",playername,timeh,timem); SendClientMessage(playerid,blue,string);
		CMDMessageToAdmins(playerid,"SETTIME"); SetPlayerTime(player1,timeh,timem); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 3 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/setmytime", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /setmytime [hour] [minute]");
			return 1;	}

        if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /setmytime [hour] [minute]");
			return 1;	}

		new timeh;
		timeh = strval(tmp);
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /setmytime [hour] [minute]");
			return 1;	}

		new timem;
		timem = strval(tmp);
		tmp = strtok(cmdtext, idx);

		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string,256,"You have changed your time to %d:%d",adminname,timeh,timem); SendClientMessage(playerid,blue,string);
		CMDMessageToAdmins(playerid,"SETMYTIME"); SetPlayerTime(playerid,timeh,timem); PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");   }
	return 1;	}
//==============================================================================
	if(strcmp(cmd, "/setworld", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256];
     	tmp = strtok(cmdtext, idx);
 		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /setworld [playerid] [virtual world]");
			return 1;	}

		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID)		{
			SendClientMessage(playerid,red,"ERROR: Player is not connected");
			return 1;		}
		tmp = strtok(cmdtext, idx);

		new world;
		world = strval(tmp);
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));	GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string,256,"Administrator %s has set your virtual world to %d",adminname,world);	if(player1 != playerid)	{	SendClientMessage(player1,blue,string); }
		format(string,256,"You have set %s's virtual world to %d",playername,world); SendClientMessage(playerid,blue,string);
		CMDMessageToAdmins(playerid,"SETWORLD"); SetPlayerVirtualWorld(player1,world);
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0); PlayerPlaySound(player1,1057,0.0,0.0,0.0);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}

//==============================================================================
	if(strcmp(cmd, "/setinterior", true) == 0)	{
		if(PlayerInfo[playerid][Level] >= 2) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /setinterior [playerid] [interiorid]");
			return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID)		{
			SendClientMessage(playerid,red,"ERROR: Player is not connected");
			return 1;	}
		tmp = strtok(cmdtext, idx);

		new interior;
		interior = strval(tmp);
		if(interior < 0 || interior > 25)		{
			SendClientMessage(playerid, red, "Interior can't be below 0 or above 26");
			return 1;	}
		tmp = strtok(cmdtext, idx);

		CMDMessageToAdmins(playerid,"SETINTERIOR");
		SetPlayerInterior(player1,interior);
		} else	{
 		SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
		return 1;	}

//------------------------------------------------------------------------------
	if(strcmp(cmd, "/disarm", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /disarm [playerid]");
			return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));	GetPlayerName(playerid, adminname, sizeof(adminname));
		CMDMessageToAdmins(playerid,"DISARM");  PlayerPlaySound(player1,1057,0.0,0.0,0.0);
		format(string,256,"You have been disarmed by Administrator %s",adminname);	SendClientMessage(player1,blue,string);
		format(string,256,"You have disarmed %s ", playername); SendClientMessage(playerid,blue,string);
		ResetPlayerWeapons(player1);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/kick", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
		SendClientMessage(playerid, red, "USAGE: /kick [playerid] [reason]");
		return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
		CMDMessageToAdmins(playerid,"KICK");
		format(string,256,"%s has been kicked by Administrator %s [reason: %s] ",playername,adminname,cmdtext[7]);	SendClientMessageToAll(grey,string);
		SaveToFile("KickLog",string); Kick(player1);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/ban", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 4) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
		SendClientMessage(playerid, red, "USAGE: /ban [playerid] [reason]");
		return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
	   	new year,month,day;	getdate(year, month, day);	new strdate[20];	format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
		CMDMessageToAdmins(playerid,"BAN");
		format(string,256,"%s has been banned by Administrator %s [Reason: %s] [Date: %s] ",playername,adminname,cmdtext[6],strdate);	SendClientMessageToAll(grey,string);
		SaveToFile("BanLog",string); Ban(player1);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/slap", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
		SendClientMessage(playerid, red, "USAGE: /slap [playerid] [reason]");
		return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
		CMDMessageToAdmins(playerid,"SLAP");
		format(string,256,"You have been slapped by Administrator %s %s ",adminname,cmdtext[7]);	SendClientMessage(player1,red,string);
		format(string,256,"You have slapped %s %s ",playername,cmdtext[7]);	SendClientMessage(playerid,blue,string);
        new Float:Health, Float:x, Float:y, Float:z; GetPlayerHealth(player1,Health); SetPlayerHealth(player1,Health-25); GetPlayerPos(player1,x,y,z);	SetPlayerPos(player1,x,y,z+5); PlayerPlaySound(playerid,1190,0.0,0.0,0.0); PlayerPlaySound(player1,1190,0.0,0.0,0.0);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/mute", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
		SendClientMessage(playerid, red, "USAGE: /mute [playerid] [reason]");
		return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel]))	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
		CMDMessageToAdmins(playerid,"MUTE");
		PlayerPlaySound(player1,1057,0.0,0.0,0.0);  PlayerInfo[player1][Muted] = 1; PlayerInfo[player1][MuteWarnings] = 0;
		format(string,256,"You have been muted by Administrator %s [reason: %s] ",adminname,cmdtext[8]);	SendClientMessage(player1,red,string);
		format(string,256,"You have muted %s [reason: %s] ",playername,cmdtext[8]);	SendClientMessage(playerid,blue,string);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/unmute", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 2) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
		SendClientMessage(playerid, red, "USAGE: /unmute [playerid] [reason]");
		return 1;	}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
		CMDMessageToAdmins(playerid,"UNMUTE");
		PlayerPlaySound(player1,1057,0.0,0.0,0.0);  PlayerInfo[player1][Muted] = 0; PlayerInfo[player1][MuteWarnings] = 0;
		format(string,256,"You have been unmuted by Administrator %s",adminname);	SendClientMessage(player1,red,string);
		format(string,256,"You have unmuted %s",playername);	SendClientMessage(playerid,blue,string);
	} else	{
  	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/setlevel", true) == 0)
	{
	if(PlayerInfo[playerid][Level] >= 5) {
		new tmp[256], player1, level;
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");

		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Player is not connected");
		if(PlayerInfo[playerid][LoggedIn] == 0)	return SendClientMessage(playerid,red,"ERROR: Player must be registered to be an admin");
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /setlevel [playerid] [level]");

		level = strval(tmp);
		if(level > ServerInfo[MaxAdminLevel] ) return SendClientMessage(playerid,red,"ERROR: Incorrect Level");
		tmp = strtok(cmdtext, idx);

       	CMDMessageToAdmins(playerid,"SETLEVEL");    
		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
       	new year,month,day;   getdate(year, month, day);
		if(level==1) { format(string,256,"Administrator %s has set you to Member Status [ level  %d ]",adminname,level); SendClientMessage(player1,blue,string);
		} else { format(string,256,"Administrator %s has set you to Administrator Status [ level  %d ]",adminname,level); SendClientMessage(player1,blue,string); }
		format(string,256,"You have made %s [Level %d] on %d/%d/%d", playername, level, day, month, year); SendClientMessage(playerid,blue,string);
		format(string,256,"Administrator %s has made %s [Level %d] on %d/%d/%d",adminname, playername, level, day, month, year); SaveToFile("AdminLog",string);
		dUserSetINT(PlayerName2(player1)).("level",(level));
		PlayerInfo[player1][Level] = level;
		} else	{
		SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/settemplevel", true) == 0)
	{
	if(PlayerInfo[playerid][Level] >= 4) {
		new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return	SendClientMessage(playerid, red, "USAGE: /settemplevel [playerid] [level]");

		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || player1 == playerid || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected Or is yourself" );
		return 1;	}
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) return
			SendClientMessage(playerid, red, "USAGE: /settemplevel [playerid] [level]");

		new level;
		level = strval(tmp);
		if(level > PlayerInfo[playerid][Level] ) return	SendClientMessage(playerid,red,"ERROR: Incorrect Level");
		tmp = strtok(cmdtext, idx);

       	CMDMessageToAdmins(playerid,"SETTEMPLEVEL");
		GetPlayerName(player1, playername, sizeof(playername));
		GetPlayerName(playerid, adminname, sizeof(adminname));
       	new year,month,day;   getdate(year, month, day);
		if(level==1) { format(string,256,"Administrator %s has temporarily set you to Member Status [ level  %d ]",adminname,level); SendClientMessage(player1,blue,string);
		} else { format(string,256,"Administrator %s has temporarily set you to Administrator Status [ level  %d ]",adminname,level); SendClientMessage(player1,blue,string); }
		format(string,256,"You have temporarily made %s [Level %d] on %d/%d/%d", playername, level, day, month, year); SendClientMessage(playerid,blue,string);
		format(string,256,"Administrator %s has temporarily made %s [Level %d] on %d/%d/%d",adminname, playername, level, day, month, year); SaveToFile("TempAdminLog",string);
		PlayerInfo[player1][Level] = level;
		} else	{
		SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/ljail", true) == 0)
	{
	if(PlayerInfo[playerid][Level] >= 3) {
		new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))return 	SendClientMessage(playerid, red, "USAGE: /ljail [playerid] [time] [reason]");
			
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel]))	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /ljail [playerid] [time] [reason]");

		new jtime;
		jtime = strval(tmp);
		if(jtime < 10 )	{
		SendClientMessage(playerid,red,"ERROR: Incorrect Time (must be higher than 10 seconds)");
		return 1;	}
		tmp = strtok(cmdtext, idx);

        if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /ljail [playerid] [time] [reason]");
			
       	CMDMessageToAdmins(playerid,"LJail");
		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string,256,"Administrator %s has jailed you for %d seconds[reason: %s]",adminname,jtime,cmdtext[12]);	SendClientMessage(player1,blue,string);
		format(string,256,"Administrator %s has jailed %s for %d seconds [reason: %s]",adminname, playername, jtime, cmdtext[12]); SendClientMessageToAll(blue,string);
		PlayerInfo[player1][JailTime] = jtime;
        SetTimerEx("JailPlayer",5000,0,"d",player1);
        SetTimerEx("Jail1",1000,0,"d",player1);
        PlayerInfo[player1][Jailed] = 1;
		} else	{
		SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/freeze", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 3) {
		new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return	SendClientMessage(playerid, red, "USAGE: /freeze [playerid] [time] [reason]");

		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID  || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]))	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /freeze [playerid] [time] [reason]");

		new ftime;
		ftime = strval(tmp);
		if(ftime < 5 ) return SendClientMessage(playerid,red,"ERROR: Incorrect Time (must be higher)");
		tmp = strtok(cmdtext, idx);

        if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /freeze [playerid] [time] [reason]");

       	CMDMessageToAdmins(playerid,"Freeze");
		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string,256,"Administrator %s has frozen you for %d seconds [reason: %s]",adminname,ftime,cmdtext[12]);	SendClientMessage(player1,blue,string);
		format(string,256,"Administrator %s has frozen %s for %d seconds [reason: %s]",adminname, playername, ftime, cmdtext[12]); SendClientMessageToAll(blue,string);
		TogglePlayerControllable(player1,false); PlayerInfo[player1][Frozen] = 1;   PlayerPlaySound(player1,1057,0.0,0.0,0.0);
		PlayerInfo[player1][FreezeTime] = ftime;
        SetTimerEx("UnFreezeMe",PlayerInfo[player1][FreezeTime]*1000,0,"d",player1);
		} else	{
		SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
 	if(strcmp(cmd, "/write", true) == 0)	{
	if(PlayerInfo[playerid][Level] >= 1) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
		SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
		SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
		return 1;	}

		new Colour;
		Colour = strval(tmp);
		if(Colour > 9 )	{
		SendClientMessage(playerid, red, "USAGE: /write [Colour] [Text]");
		SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
		return 1;	}
		tmp = strtok(cmdtext, idx);

        CMDMessageToAdmins(playerid,"WRITE");

        if(Colour == 0) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(black,string); return 1;	}
        else if(Colour == 1) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(COLOR_WHITE,string); return 1;	}
        else if(Colour == 2) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(red,string); return 1;	}
        else if(Colour == 3) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(orange,string); return 1;	}
        else if(Colour == 4) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(yellow,string); return 1;	}
        else if(Colour == 5) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(COLOR_GREEN1,string); return 1;	}
        else if(Colour == 6) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(COLOR_BLUE,string); return 1;	}
        else if(Colour == 7) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(COLOR_PURPLE,string); return 1;	}
        else if(Colour == 8) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(COLOR_BROWN,string); return 1;	}
        else if(Colour == 9) {	format(string,256,"%s",cmdtext[9]);	SendClientMessageToAll(COLOR_PINK,string); return 1;	}

	} else	{
  	SendClientMessage(playerid,red,"ERROR: You need to be level 1 to use this command");   }
	return 1;	}
 //-----------------------------------------------------------------------------
	if(strcmp(cmd, "/lockcar", true) == 0)	 {
    if(PlayerInfo[playerid][Level] >= 2) {
	    if(IsPlayerInAnyVehicle(playerid)) {
	 	for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,true);
		CMDMessageToAdmins(playerid,"LOCKDOORS");
		PlayerInfo[playerid][DoorsLocked] = 1;
		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string,256,"Administrator %s has locked his car",adminname);	SendClientMessageToAll(blue,string);
		} else {
		SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors"); }
	} else 	{
	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
 	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/unlockcar", true) == 0)	 {
	if(PlayerInfo[playerid][Level] >= 2) {
		if(IsPlayerInAnyVehicle(playerid)) {
	 	for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,false,false);
		CMDMessageToAdmins(playerid,"UNLOCKDOORS");
		PlayerInfo[playerid][DoorsLocked] = 0;
		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string,256,"Administrator %s has unlocked his car",adminname);	SendClientMessageToAll(blue,string);
        } else {
		SendClientMessage(playerid,red,"ERROR: You need to be in a vehicle to lock the doors"); }
	} else 	{
	SendClientMessage(playerid,red,"ERROR: You need to be level 2 to use this command");   }
 	return 1;	}
 	
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/fakedeath", true) == 0)
	{
    	if(PlayerInfo[playerid][Level] >= 4)
    	{
			new tmp[256], killer, killee, weapon;
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /fakedeath [killer] [killee] [weapon]");

			killer = strval(tmp);
			if(!IsPlayerConnected(killer) || killer == INVALID_PLAYER_ID || (PlayerInfo[killer][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )
			return SendClientMessage(playerid,red,"ERROR: Killer is not connected");
			tmp = strtok(cmdtext, idx);

			killee = strval(tmp);
			if(!IsPlayerConnected(killee) || killee == INVALID_PLAYER_ID || (PlayerInfo[killee][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )
			return SendClientMessage(playerid,red,"ERROR: Killee is not connected");
			tmp = strtok(cmdtext, idx);

			weapon = strval(tmp);
			if(!IsValidWeapon(weapon))	return SendClientMessage(playerid,red,"ERROR: Incorrect Weapon");
			tmp = strtok(cmdtext, idx);

    	  	CMDMessageToAdmins(playerid,"FAKEDEATH");
			GetPlayerName(playerid, adminname, sizeof(adminname));
			format(string,256,"Administrator %s has sent a fake death message",adminname);
			MessageToAdmins(green,string);
			SendDeathMessage(killer,killee,weapon);
		}
		else
		{
			SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
		}
		return 1;
	}

//------------------------------------------------------------------------------
	if(strcmp(cmd, "/lunjail", true) == 0)	 {
    if(PlayerInfo[playerid][Level] >= 3) {
	    new player1, tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
   		SendClientMessage(playerid, red, "USAGE: /lunjail [playerid]");
		return 1;	}
		player1 = strval(tmp);

	 	if(IsPlayerConnected(player1))		{
			CMDMessageToAdmins(playerid,"LUnJail");
			GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
			format(string,256,"Administrator %s has unjailed you",adminname);	SendClientMessage(player1,blue,string);
			format(string,256,"Administrator %s has unjailed %s",adminname, playername); SendClientMessageToAll(blue,string);
			TogglePlayerControllable(player1,true); SpawnPlayer(player1); PlayerInfo[player1][Jailed] = 0;
   			return 1;
		} else {
 		SendClientMessage(playerid, red, "Player is not connected");
 		return 1;	}
	} else 	{
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
 	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/unfreeze", true) == 0)	 {
    if(PlayerInfo[playerid][Level] >= 3) {
	    new player1, tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
   		SendClientMessage(playerid, red, "USAGE: /unfreeze [playerid]");
		return 1;	}
		player1 = strval(tmp);

	 	if(IsPlayerConnected(player1))		{
			CMDMessageToAdmins(playerid,"Unfreeze");
			GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
			format(string,256,"Administrator %s has unfrozen you",adminname);	SendClientMessage(player1,blue,string);
			format(string,256,"Administrator %s has unfrozen %s",adminname, playername); SendClientMessageToAll(blue,string);
			TogglePlayerControllable(player1,true); PlayerInfo[player1][Frozen] = 0;    PlayerPlaySound(player1,1057,0.0,0.0,0.0);
   			return 1;
		} else {
 		SendClientMessage(playerid, red, "Player is not connected");
 		return 1;	}
	} else 	{
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
 	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/akill", true) == 0)	 {
    if(PlayerInfo[playerid][Level] >= 3) {
	    new player1, tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
   		SendClientMessage(playerid, red, "USAGE: /akill [playerid]");
		return 1;	}
		player1 = strval(tmp);

	 	if(IsPlayerConnected(player1))		{
			CMDMessageToAdmins(playerid,"AKILL");
			GetPlayerName(player1, playername, sizeof(playername));	GetPlayerName(playerid, adminname, sizeof(adminname));
			format(string,256,"Administrator %s has killed you",adminname);	SendClientMessage(player1,blue,string);
			format(string,256,"You have killed %s",playername); SendClientMessage(playerid,blue,string);
			SetPlayerHealth(player1,0.0);
   			return 1;
		} else {
 		SendClientMessage(playerid, red, "Player is not connected");
 		return 1;	}
	} else 	{
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
 	return 1;	}

//------------------------------------------------------------------------------
	if(strcmp(cmd, "/goto", true) == 0)	 {
    if(PlayerInfo[playerid][Level] >= 2) {
	    new player1, tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
   		SendClientMessage(playerid, red, "USAGE: /goto [playerid]");
		return 1;	}
		player1 = strval(tmp);

	 	if(IsPlayerConnected(player1))		{
			CMDMessageToAdmins(playerid,"GOTO");
			new Float:x, Float:y, Float:z;	GetPlayerPos(player1,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(player1));
			SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
			if(GetPlayerState(playerid) == 2)	{
				SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);	LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(player1));
				SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
			} else	{
				SetPlayerPos(playerid,x+2,y,z);	}
			GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
			//format(string,256,"Administrator %s has teleported to you",adminname);	SendClientMessage(player1,blue,string);
			format(string,256,"You have teleported to %s", playername); SendClientMessage(playerid,blue,string);
   			return 1;
		} else {
 		SendClientMessage(playerid, red, "Player is not connected");
 		return 1;	}
	} else 	{
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
 	return 1;	}
 //------------------------------------------------------------------------------
	if(strcmp(cmd, "/gethere", true) == 0)	 {
    if(PlayerInfo[playerid][Level] >= 3) {
	    new player1, tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
   		SendClientMessage(playerid, red, "USAGE: /gethere [playerid]");
		return 1;	}
		player1 = strval(tmp);

	 	if(IsPlayerConnected(player1))		{
			CMDMessageToAdmins(playerid,"GETHERE");
			new Float:x, Float:y, Float:z;	GetPlayerPos(playerid,x,y,z); SetPlayerInterior(player1,GetPlayerInterior(playerid));
			SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
			if(GetPlayerState(player1) == 2)	{
			    new VehicleID = GetPlayerVehicleID(player1);
				SetVehiclePos(VehicleID,x+3,y,z);   LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
				SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
			} else	{
				SetPlayerPos(player1,x+2,y,z);		}
			GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
			format(string,256,"You have been teleported to Administrator %s's location",adminname);	SendClientMessage(player1,blue,string);
			format(string,256,"You have teleported %s to your location", playername); SendClientMessage(playerid,blue,string);
   			return 1;
		} else {
 		SendClientMessage(playerid, red, "Player is not connected");
 		return 1;	}
	} else 	{
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
 	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/giveweapon", true) == 0)
	{
	if(PlayerInfo[playerid][Level] >= 2) {
	    new player1, tmp[256],weap,ammo;
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
		SendClientMessage(playerid, red, "USAGE: /giveweapon [playerid] [weapon id]");
		return 1;	}

		player1 = strval(tmp);
		tmp = strtok(cmdtext, idx);
		weap = strval(tmp);
		if(!IsValidWeapon(weap)) return	SendClientMessage(playerid,red,"ERROR: Incorrect Weapon ID");
		tmp = strtok(cmdtext, idx);
		ammo = strval(tmp);
		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
	 	if(IsPlayerConnected(player1))		{
			CMDMessageToAdmins(playerid,"GIVEWEAPON");
			GivePlayerWeapon(player1, weap, ammo);
			format(string, sizeof(string), "You have given %s weapon id: %d with %d rounds of ammo", playername,weap,ammo);	SendClientMessage(playerid,blue,string);
			format(string,256,"Administrator %s has given you weapon id: %d with %d rounds of ammo",adminname,weap,ammo); if(player1 != playerid)	{	SendClientMessage(player1,blue,string); }
   			return 1;
		} else {
 		SendClientMessage(playerid, red, "Player is not connected");
 		return 1;	}
	} else 	{
	SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
 	return 1;	}
 //------------------------------------------------------------------------------
	if(strcmp(cmd, "/sethealth", true) == 0)
	{
    if(PlayerInfo[playerid][Level] >= 3) {
		new tmp[256], player1, amount;
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /sethealth [playerid] [Amount]");

		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself");
		return 1;	}
		tmp = strtok(cmdtext, idx);
		
		if(!strlen(tmp)) return SendClientMessage(playerid, red, "USAGE: /sethealth [playerid] [Amount]");

		amount = strval(tmp);
		if((amount > 100) && (PlayerInfo[player1][Level] != ServerInfo[MaxAdminLevel]) && (PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel])  )	{
		SendClientMessage(playerid,red,"ERROR: Incorrect Health Amount");  }

		tmp = strtok(cmdtext, idx);

       	CMDMessageToAdmins(playerid,"SETHEALTH");
		GetPlayerName(player1, playername, sizeof(playername));		GetPlayerName(playerid, adminname, sizeof(adminname));
		format(string,256,"Administrator %s has set your health to %d",adminname,amount);	if(player1 != playerid)	{	SendClientMessage(player1,blue,string); }
		format(string,256,"You have set %s's health to %d",playername,amount); SendClientMessage(playerid,blue,string);
		SetPlayerHealth(player1,amount);
		} else	{
		SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");   }
	return 1;	}
//------------------------------------------------------------------------------
	if(strcmp(cmd, "/setarmour", true) == 0)
	{
    if(PlayerInfo[playerid][Level] >= 3) {
		new tmp[256];
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))	{
			SendClientMessage(playerid, red, "USAGE: /setarmour [playerid] [Amount]");
			return 1;
			}
		new player1;
		player1 = strval(tmp);
		if(!IsPlayerConnected(player1) || player1 == INVALID_PLAYER_ID || (PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) )	{
		SendClientMessage(playerid,red,"ERROR: Player is not connected or is yourself"