All pastes #838265 Raw Edit

Anonymous

public text v1 · immutable
#838265 ·published 2007-12-30 07:24 UTC
rendered paste body
#include <a_samp>
#include <dini>
#include <dudb>

#define dcmd(%1,%2,%3) if ((strcmp(%3, "/%1", true, %2+1) == 0)&&(((%3[%2+1]==0)&&(dcmd_%1(playerid,"")))||((%3[%2+1]==32)&&(dcmd_%1(playerid,%3[%2+2]))))) return 1
#define stat "stat.txt"
#define bugs "bugs.txt"

#define LV 1
#define SF 2
#define LS 3

#define Race 1
#define DM 2
#define TDM 3
#define KOTH 4
#define Classic 5
#define PY_Poison 6
#define Knockout 7
#define Assault 8
#define R_VS_B_TDM 9
#define R_VS_B_Race 10

enum Info
{
	DMScore,
	TDMScore,
	UserID,
	Level,
	Team,
	Clan,
	DMMatch,
	CP,
	Admin,
	UserID,
	RaceSC,
	Logged,
	Spawn,
	KOTHp,
	Team,
	Pos,
	M\
}
enum SavePlayerPosEnum
{
    Float:LastX,
    Float:LastY,
    Float:LastZ
}
new places[MAX_PLAYERS];
new pInfo[MAX_PLAYERS][Info];
new sCity;
new sMode;
new cp[MAX_PLAYERS];
new pText[MAX_PLAYERS];
new TDMti;
new KOTHti;
new kill[MAX_PLAYERS],tk[MAX_PLAYERS];
new SavePlayerPos[MAX_PLAYERS][SavePlayerPosEnum];
new InvalidWeapons[10][1] = {{19},{20},{21},{34},{35},{36},{39},{40},{17},{18}};

new dmWep[9][2] = {
{29,300},
{24,180},
{31,300},
{30,290},
{32,200},
{37,130},
{26,200},
{9,1},
{28,250}
};
new Float:dmSP_LS[4][3] = {
{2309.4165,-674.4250,130.0091},
{2288.4580,-669.6822,131.3005},
{2280.4292,-695.5555,131.1989},
{2301.4214,-709.7009,129.8425}
};
new Float:tdmSP[7][3] = {
{-1304.2070,497.0576,18.2344},
{-2307.7952,-172.9224,35.3125},
{-2443.0991,748.9878,35.1786},
{-2654.8455,-287.4772,7.5391},
{-1763.9769,587.5311,35.1641},
{-2640.6619,1389.4934,7.1016},
{-2088.8594,172.4748,38.0798}
};
main()
{
	print("\n\n..:: :: ::.. ..:: :: ::.. ..:: :: ::..");
	print("  ..:: :: SA:MP Rebel League :: ::..");
	print("..:: :: ::.. ..:: :: ::.. ..:: :: ::..\n\n");
	if(!dini_Exists(stat))
	{
	    dini_Create(stat);
	    dini_IntSet(stat,"users",0);
	    print("..:: :: ::.. File 'stat' not found ..:: :: ::..");
	    print("..:: :: ::.. File 'stat' created ..:: :: ::..");
	    print("..:: :: ::.. Stat 'users' set to 0 ..:: :: ::..");
	}
	if(!dini_Exists(bugs))
	{
	    dini_Create(bugs);
	    print("..:: :: ::.. File 'bugs' not found ..:: :: ::..");
	    print("..:: :: ::.. File 'bugs' created ..:: :: ::..");
	}
}

public OnGameModeInit()
{
	SetGameModeText("SA:MP Rebel League");
	
	SetTimer("Anticheat",1160,1);
	SetTimer("SpamClear",3000,1);
	SetTimer("CheckMoney",1000,1);

	sMode = DM;
	sCity = LS;

	AddPlayerClass(60,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(71,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(80,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(81,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(82,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(91,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(92,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(98,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(104,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(105,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(109,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(112,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(114,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(118,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(121,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(125,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(137,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(142,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(163,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(167,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);
	AddPlayerClass(170,1501.0045,-864.9221,62.2258,338.7674,0,0,0,0,0,0);

	AddStaticVehicle(411,1979.8151,827.4567,6.4926,269.9634,64,1); 
	AddStaticVehicle(411,1982.4417,858.9680,6.4892,269.2342,64,1); 
	AddStaticVehicle(522,1982.8641,852.9677,6.3043,269.2648,3,8); 
	AddStaticVehicle(522,1980.5972,834.7927,6.3096,264.9829,3,8); 
	AddStaticVehicle(429,1982.1381,838.7711,6.4216,268.7822,2,1); 
	AddStaticVehicle(429,1981.9502,847.2244,6.4058,271.0836,2,1); 
	AddStaticVehicle(401,-2118.9319,194.8274,35.7567,2.7513,-1,-1);
	AddStaticVehicle(401,-2036.5212,305.6321,35.9090,359.8144,-1,-1);
	AddStaticVehicle(413,-2087.8369,255.6416,37.0341,357.9168,-1,-1);
	AddStaticVehicle(457,-2652.9031,-297.2605,8.0617,315.6009,-1,-1);
	AddStaticVehicle(457,-2659.7441,-289.6562,8.0920,313.6239,-1,-1);
	AddStaticVehicle(457,-2642.9949,-301.7552,8.0090,47.6567,-1,-1);
	AddStaticVehicle(421,-2681.7434,-276.2391,8.0605,44.2241,-1,-1);
	AddStaticVehicle(575,-2618.9480,1376.7870,7.7322,181.1998,-1,-1);
	AddStaticVehicle(411,-2645.5964,1376.7522,7.8935,267.8349,-1,-1);
	AddStaticVehicle(409,-2628.6924,1377.4845,7.9350,180.7913,-1,-1);
	AddStaticVehicle(409,-2633.1638,1332.7010,7.9953,269.6430,-1,-1);
	AddStaticVehicle(444,-2876.3977,26.3173,7.2123,118.5961,-1,-1);
	AddStaticVehicle(470,-1382.4279,455.8060,7.1838,359.9849,-1,-1);
	AddStaticVehicle(470,-1439.3396,455.1034,7.1739,0.1531,-1,-1);
	AddStaticVehicle(542,-1465.0304,455.6730,7.9280,358.9676,-1,-1);
	AddStaticVehicle(571,-1677.1865,438.8195,7.4635,227.1910,-1,-1);
	AddStaticVehicle(476,-1433.3817,-504.8247,15.8794,158.2625,-1,-1);
	AddStaticVehicle(476,-1464.6495,-522.4009,15.8899,234.2019,-1,-1);
	AddStaticVehicle(500,-2219.7209,-83.2318,36.4367,2.0481,-1,-1);
	AddStaticVehicle(541,-2018.4379,-98.9675,35.7890,358.5420,-1,-1);
	AddStaticVehicle(541,-2352.0959,-126.8848,35.9374,179.5324,-1,-1);
	AddStaticVehicle(405,-2180.1277,41.8536,36.1953,269.9865,-1,-1);
	AddStaticVehicle(522,-2269.4526,69.5823,35.7279,89.6104,-1,-1);
	AddStaticVehicle(522,-2266.0090,145.0206,35.7322,92.0045,-1,-1);
	AddStaticVehicle(475,-2129.2864,787.6249,70.3666,87.1679,-1,-1);
	AddStaticVehicle(475,-2424.9958,740.8871,35.8205,177.6701,-1,-1);
	AddStaticVehicle(400,-2684.7639,636.4294,14.5454,179.2696,-1,-1);
	AddStaticVehicle(496,-2545.7666,627.5895,15.1684,89.1952,-1,-1);
	AddStaticVehicle(496,-2428.7107,514.7900,30.6451,207.9893,-1,-1);
	AddStaticVehicle(429,-2498.4822,357.5526,35.7969,58.0823,-1,-1);
	AddStaticVehicle(429,-2664.9673,268.9968,5.0156,357.6026,-1,-1);
	AddStaticVehicle(420,-2626.5276,-53.6779,5.1144,357.7703,-1,-1);
	AddStaticVehicle(434,-2718.5354,-124.4790,5.3071,269.1429,-1,-1);
	AddStaticVehicle(434,-2487.5295,-125.3075,26.5715,90.9363,-1,-1);
	AddStaticVehicle(400,-2486.0298,51.5018,27.7954,177.2178,-1,-1);
	AddStaticVehicle(400,-2574.9736,146.5981,5.4279,1.8790,-1,-1);
	AddStaticVehicle(559,-2800.0251,205.2155,7.8399,92.2606,-1,-1);
	AddStaticVehicle(549,-1741.0009,811.0599,25.5879,270.6703,-1,-1);
	AddStaticVehicle(549,-1920.7559,875.2713,36.1113,270.0973,-1,-1);
	AddStaticVehicle(500,-2040.4465,1107.7076,54.4032,89.8491,-1,-1);
	AddStaticVehicle(500,-1968.8488,465.6065,36.2766,89.3124,-1,-1);
	AddStaticVehicle(401,-1938.2876,584.4863,35.9137,1.1244,-1,-1);
	AddStaticVehicle(401,-1825.2035,-0.4858,15.8965,270.0104,-1,-1);
	AddStaticVehicle(579,-1820.0182,-175.9391,10.3323,87.9147,-1,-1);
	AddStaticVehicle(429,-1687.9076,1003.5587,18.2656,91.3972,-1,-1);
	AddStaticVehicle(439,-1704.8613,1058.0004,18.4810,182.3475,-1,-1);
	AddStaticVehicle(579,-1702.2262,1028.7677,18.5187,270.2923,-1,-1);
	AddStaticVehicle(480,-1735.9534,1016.0621,18.3580,268.5771,-1,-1);
	AddStaticVehicle(400,-2782.3508,442.1533,5.5383,57.1401,-1,-1);
	AddStaticVehicle(400,-2836.3665,865.6495,44.1470,268.7662,-1,-1);
	AddStaticVehicle(415,-2899.3823,1112.4786,27.3954,268.9744,-1,-1);
	AddStaticVehicle(516,-2654.5662,615.2198,15.2873,0.1598,-1,-1);
	AddStaticVehicle(416,-2618.7363,627.2617,15.6024,179.6464,-1,-1);
	AddStaticVehicle(401,-1968.8031,-400.9335,35.1227,88.2282,-1,-1);
	AddStaticVehicle(516,-1904.3373,-599.6174,24.4277,344.2378,-1,-1);
	AddStaticVehicle(475,-1639.3912,-567.4948,13.9482,80.1914,-1,-1);
	AddStaticVehicle(475,-1405.5500,-309.2615,13.9504,174.9827,-1,-1);
	AddStaticVehicle(475,-2132.1143,160.2086,35.1341,270.0023,-1,-1);
	AddStaticVehicle(500,-2151.4924,428.9210,35.1902,176.6156,-1,-1);
	AddStaticVehicle(500,-2304.8279,360.0154,35.2835,201.6184,-1,-1);
	AddStaticVehicle(522,-1696.7413,977.0867,17.1574,7.0263,-1,-1);
	AddStaticVehicle(429,-2641.7395,1333.0645,6.8700,356.7557,-1,-1);
	AddStaticVehicle(457,-2650.6292,-280.5106,7.0874,132.0127,-1,-1);
	AddStaticVehicle(421,-1409.6693,456.0711,7.0672,3.2988,-1,-1);
	AddStaticVehicle(487,-1681.5756,706.4234,30.7777,266.5047,-1,-1);
    AddStaticVehicle(603,-2617.2964,1349.0765,7.0217,358.1852,-1,-1);
	AddStaticVehicle(475,-2129.8242,288.0418,34.9864,269.9582,-1,-1);
	AddStaticVehicle(475,-2664.0950,-259.9579,6.5482,74.4868,-1,-1);
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	pInfo[playerid][Pos] = 1;
	SetTimer("Bla",1300,0);
	if(sCity == LS)
	{
	    switch(sMode)
	    {
	        case Race: GameTextForPlayer(playerid,"~w~Mode:~n~~r~Race",2500,1);
			case DM: GameTextForPlayer(playerid,"~w~Mode:~n~~g~Deathmatch",2500,6);
			case TDM:
			{
				if(classid >= 0 && classid <= 2) GameTextForPlayer(playerid,"~w~Civilian",1200,3);
				if(classid == 3) GameTextForPlayer(playerid,"~r~Fighter",1200,3);
				if(classid == 3 || classid == 4 || classid == 5 || classid == 6) GameTextForPlayer(playerid,"~y~Paparazzi",1200,3);
				if(classid == 7 || classid == 11) GameTextForPlayer(playerid,"~b~Mafia",1200,3);
				if(classid == 8 || classid== 9 || classid == 10 || classid == 12) GameTextForPlayer(playerid,"~g~Gangster",1200,3);
				if(classid == 13 || classid == 14 || classid == 15) GameTextForPlayer(playerid,"~r~Robber",1200,3);
				if(classid == 16 || classid == 17 || classid == 18 || classid == 19) GameTextForPlayer(playerid,"~b~Undercover",1200,3);
				else GameTextForPlayer(playerid,"Civilian",1200,3);
			}
			case KOTH: GameTextForPlayer(playerid,"~w~Mode:~n~~p~Catch The Flag",1000,0);
			case Classic: GameTextForPlayer(playerid,"~n~~n~~n~~n~~w~Mode:~n~~y~Classic Weapon",2300,5);
			case PY_Poison: GameTextForPlayer(playerid,"~w~Mode:~n~~g~Pick Your Poison",1000,1);
			case Knockout: GameTextForPlayer(playerid,"~w~Mode:~n~Knockout",2800,6);
			case Assault: GameTextForPlayer(playerid,"~w~Mode:~n~~r~Assault",2900,3);
			case R_VS_B_TDM: GameTextForPlayer(playerid,"~w~Mode:~n~Red vs Blue~n~~b~TDM",1000,0);
			case R_VS_B_Race: GameTextForPlayer(playerid,"~w~Mode:~n~Red vs Blue~n~~g~Race",1000,0);
		}
		SetPlayerPos(playerid,746.0897,-1260.5690,13.5612);
		SetPlayerFacingAngle(playerid,300.1104);
		SetPlayerCameraPos(playerid, 749.7837,-1257.8916,13.5612);
		SetPlayerCameraLookAt(playerid,746.0897,-1260.5690,13.5612);
	}
	if(sCity == LV)
	{
	    switch(sMode)
	    {
	        case Race: GameTextForPlayer(playerid,"~w~Mode:~n~~r~Race",2500,1);
			case DM: GameTextForPlayer(playerid,"~w~Mode:~n~~g~Deathmatch",2500,6);
			case TDM:
			{
				if(classid >= 0 && classid <= 2) GameTextForPlayer(playerid,"~w~Civilian",1200,3);
				if(classid == 3) GameTextForPlayer(playerid,"~r~Fighter",1200,3);
				if(classid == 3 || classid == 4 || classid == 5 || classid == 6) GameTextForPlayer(playerid,"~y~Paparazzi",1200,3);
				if(classid == 7 || classid == 11) GameTextForPlayer(playerid,"~b~Mafia",1200,3);
				if(classid == 8 || classid== 9 || classid == 10 || classid == 12) GameTextForPlayer(playerid,"~g~Gangster",1200,3);
				if(classid == 13 || classid == 14 || classid == 15) GameTextForPlayer(playerid,"~r~Robber",1200,3);
				if(classid == 16 || classid == 17 || classid == 18 || classid == 19) GameTextForPlayer(playerid,"~b~Undercover",1200,3);
				else GameTextForPlayer(playerid,"Civilian",1200,3);
			}
			case KOTH: GameTextForPlayer(playerid,"~w~Mode:~n~~p~Catch The Flag",1000,0);
			case Classic: GameTextForPlayer(playerid,"~n~~n~~n~~n~~w~Mode:~n~~y~Classic Weapon",2300,5);
			case PY_Poison: GameTextForPlayer(playerid,"~w~Mode:~n~~g~Pick Your Poison",1000,1);
			case Knockout: GameTextForPlayer(playerid,"~w~Mode:~n~Knockout",2800,6);
			case Assault: GameTextForPlayer(playerid,"~w~Mode:~n~~r~Assault",2900,3);
			case R_VS_B_TDM: GameTextForPlayer(playerid,"~w~Mode:~n~Red vs Blue~n~~b~TDM",1000,0);
			case R_VS_B_Race: GameTextForPlayer(playerid,"~w~Mode:~n~Red vs Blue~n~~g~Race",1000,0);
		}
		SetPlayerPos(playerid,2332.2705,2123.0315,34.0625);
		SetPlayerFacingAngle(playerid,324.9640);
		SetPlayerCameraPos(playerid,2334.4961,2126.2051,33.4606);
		SetPlayerCameraLookAt(playerid,2332.2705,2123.0315,34.0625);
	}
	if(sCity == SF)
	{
	    switch(sMode)
	    {
	        case Race: GameTextForPlayer(playerid,"~w~Mode:~n~~r~Race",2500,1);
			case DM: GameTextForPlayer(playerid,"~w~Mode:~n~~g~Deathmatch",2500,6);
			case TDM:
			{
				if(classid >= 0 && classid <= 2)
				{
					GameTextForPlayer(playerid,"~w~Civilian",1200,3);
					pInfo[playerid][Team] = 1;
				}
				if(classid == 3 || classid == 4)
				{
					GameTextForPlayer(playerid,"~r~Fighter",1200,3);
					pInfo[playerid][Team] = 2;
				}
				if(classid == 5 || classid == 6)
				{
					GameTextForPlayer(playerid,"~y~Paparazzi",1200,3);
					pInfo[playerid][Team] = 3;
				}
				if(classid == 7 || classid == 11)
				{
					GameTextForPlayer(playerid,"~b~Mafia",1200,3);
					pInfo[playerid][Team] = 4;
				}
				if(classid == 8 || classid== 9 || classid == 10 || classid == 12)
				{
					GameTextForPlayer(playerid,"~g~Gangster",1200,3);
					pInfo[playerid][Team] = 5;
				}
				if(classid == 13 || classid == 14 || classid == 15)
				{
					GameTextForPlayer(playerid,"~r~Robber",1200,3);
					pInfo[playerid][Team] = 6;
				}
				if(classid == 16 || classid == 17 || classid == 18 || classid == 19)
				{
					GameTextForPlayer(playerid,"~b~Undercover",1200,3);
					pInfo[playerid][Team] = 7;
				}
			}
			case KOTH: GameTextForPlayer(playerid,"~w~Mode:~n~~p~Catch The Flag",1000,0);
			case Classic: GameTextForPlayer(playerid,"~n~~n~~n~~n~~w~Mode:~n~~y~Classic Weapon",2300,5);
			case PY_Poison: GameTextForPlayer(playerid,"~w~Mode:~n~~g~Pick Your Poison",1000,1);
			case Knockout: GameTextForPlayer(playerid,"~w~Mode:~n~Knockout",2800,6);
			case Assault: GameTextForPlayer(playerid,"~w~Mode:~n~~r~Assault",2900,3);
			case R_VS_B_TDM: GameTextForPlayer(playerid,"~w~Mode:~n~Red vs Blue~n~~b~TDM",1000,0);
			case R_VS_B_Race: GameTextForPlayer(playerid,"~w~Mode:~n~Red vs Blue~n~~g~Race",1000,0);
		}
		SetPlayerPos(playerid,-1974.3521,272.5114,35.1719);
		SetPlayerFacingAngle(playerid,148.7567);
		SetPlayerCameraPos(playerid,-1976.7562,268.5482,35.1719);
		SetPlayerCameraLookAt(playerid,-1974.3521,272.5114,35.1719);
	}
	if(classid >= 0 && classid <= 2)
	{
		pInfo[playerid][Team] = 1;
	}
	if(classid == 3 || classid == 4)
	{
		pInfo[playerid][Team] = 2;
	}
	if(classid == 5 || classid == 6)
	{
		pInfo[playerid][Team] = 3;
	}
	if(classid == 7 || classid == 11)
	{
		pInfo[playerid][Team] = 4;
	}
	if(classid == 8 || classid== 9 || classid == 10 || classid == 12)
	{
		pInfo[playerid][Team] = 5;
	}
	if(classid == 13 || classid == 14 || classid == 15)
	{
		pInfo[playerid][Team] = 6;
	}
	if(classid == 16 || classid == 17 || classid == 18 || classid == 19)
	{
		pInfo[playerid][Team] = 7;
	}
	return 1;
}

public OnPlayerConnect(playerid)
{
	cp[playerid] = 0;
	pInfo[playerid][Spawn] = 0;
	SendClientMessage(playerid,0xFFFFFFAA,"..:: Hello and welcome to the SA:MP Rebel League server young rebel. ::..");
	SendClientMessage(playerid,0x00FF00AA,"..:: This server and league are under construction so there will be bugs. ::..");
	SendClientMessage(playerid,0xFF8800AA,"..:: If you find any bugs, use /bugreport to report them so we can fix them. ::..");
	SendClientMessage(playerid,0x008833AA,"..:: That is all you need to know. Go compete and make yourself proud to be a rebel. ::..");
	return 1;
}

public OnPlayerDisconnect(playerid)
{
	new player[24];
	GetPlayerName(playerid,player,24);
	if(dini_Exists(udb_encode(player)))
	{
	    dini_IntSet(udb_encode(player),"DMScore",pInfo[playerid][DMScore]);
		dini_IntSet(udb_encode(player),"Race",pInfo[playerid][RaceSC]);
	}
	return 1;
}

public OnPlayerSpawn(playerid)
{
	pInfo[playerid][Spawn] = 255;
	SetTimer("Spawned",1000,0);
	SetTimer("Bla",1300,0);
	new count[MAX_PLAYERS];
	count[playerid]++;
    switch(sMode)
    {
    	case Race:
		{
			for(new i=0; i<MAX_PLAYERS; i++)
			{
		    	if(count[i] == 1)
		    	{
		        	GameTextForAll("~b~Race has started~n~~g~Go GO GO",3000,3);
		    	}
		    }
		    cp[playerid] = 0;
			SetPlayerCheckpoint(playerid,1990.5972,834.7927,8.3096,8);
			SetPlayerPos(playerid,1970.5972,834.7927,8.3096);
		}
		case DM:
		{
			new s = random(sizeof(dmWep));
		    new r = random(sizeof(dmSP_LS));
		    SetPlayerPos(playerid,dmSP_LS[r][0],dmSP_LS[r][1],dmSP_LS[r][2]);
			GivePlayerWeapon(playerid,dmWep[s][0],dmWep[s][1]);
			GivePlayerWeapon(playerid,dmWep[s][0],dmWep[s][1]);
			GivePlayerWeapon(playerid,dmWep[s][0],dmWep[s][1]);
		}
		case KOTH:
		{
			new s = random(sizeof(dmWep));
		    SetPlayerPos(playerid,-2365.1873,-667.4210,123.5148);
		    GivePlayerWeapon(playerid,dmWep[s][0],dmWep[s][1]);
		    GivePlayerWeapon(playerid,dmWep[s][0],dmWep[s][1]);
		    GameTextForPlayer(playerid,"~w~Hold the ~r~Hill~n~~w~For points",1000,6);
			pInfo[playerid][KOTHp] = 0;
			for(new i=0; i<MAX_PLAYERS; i++) if(count[i] == 1)
			KOTHti = SetTimer("KOTHt",1000,1);
			return SendClientMessage(playerid,0x00FFFFAA,"..:: Hold the hilltop to gain points. Stay KOTH for 60 seconds to win. ::..");
		}
		case TDM:
		{
			if(GetPlayerMoney(playerid) < 100) GivePlayerMoney(playerid,1000);
			SendClientMessage(playerid,0x11FF11AA,"..:: You may chat to your team by typing ; [text]");
			if(pInfo[playerid][Team] == 1)
			{
				GameTextForPlayer(playerid,"~w~Civilian",1200,1);
				SetPlayerPos(playerid,-1304.2070,497.0576,18.2344);
				GivePlayerWeapon(playerid,26,40);
				GivePlayerWeapon(playerid,22,180);
				GivePlayerWeapon(playerid,30,200);
				SetPlayerColor(playerid,0xFFFFFFAA);
			}
			if(pInfo[playerid][Team] == 2)
			{
				GameTextForPlayer(playerid,"~r~Fighter",1200,1);
				SetPlayerPos(playerid,-2307.7952,-172.9224,35.3125);
				GivePlayerWeapon(playerid,27,50);
				GivePlayerWeapon(playerid,31,200);
				GivePlayerWeapon(playerid,28,100);
				SetPlayerColor(playerid,0xFF0101AA);
			}
			if(pInfo[playerid][Team] == 3)
			{
				GameTextForPlayer(playerid,"~y~Paparazzi",1200,1);
				SetPlayerPos(playerid,-2443.0991,748.9878,35.1786);
				GivePlayerWeapon(playerid,25,50);
				GivePlayerWeapon(playerid,23,200);
				GivePlayerWeapon(playerid,32,100);
				SetPlayerColor(playerid,0xFFFF00AA);
			}
			if(pInfo[playerid][Team] == 4)
			{
				GameTextForPlayer(playerid,"~b~Mafia",1200,1);
				SetPlayerPos(playerid,-2654.8455,-287.4772,7.5391);
				GivePlayerWeapon(playerid,24,50);
				GivePlayerWeapon(playerid,29,200);
				GivePlayerWeapon(playerid,33,100);
				SetPlayerColor(playerid,0x000088AA);
			}
			if(pInfo[playerid][Team]== 5)
			{
				GameTextForPlayer(playerid,"~g~Gangster",1200,1);
				SetPlayerPos(playerid,-1763.9769,587.5311,35.1641);
				GivePlayerWeapon(playerid,9,1);
				GivePlayerWeapon(playerid,26,50);
				GivePlayerWeapon(playerid,31,200);
				SetPlayerColor(playerid,0x008800AA);
			}
			if(pInfo[playerid][Team] == 6)
			{
				GameTextForPlayer(playerid,"~r~Robber",1200,1);
				SetPlayerPos(playerid,-2640.6619,1389.4934,7.1016);
				GivePlayerWeapon(playerid,24,80);
				GivePlayerWeapon(playerid,25,50);
				GivePlayerWeapon(playerid,29,130);
				SetPlayerColor(playerid,0xEEB4B4AA);
			}
			if(pInfo[playerid][Team] == 7)
			{
				GameTextForPlayer(playerid,"~b~Undercover",1200,1);
				SetPlayerPos(playerid,-2088.8594,172.4748,38.0798);
				GivePlayerWeapon(playerid,30,180);
				GivePlayerWeapon(playerid,28,130);
				GivePlayerWeapon(playerid,47,90);
				SetPlayerColor(playerid,0x00688BAA);
			}
		}
		case Classic: GameTextForPlayer(playerid,"~n~~n~~n~~n~~w~Mode:~n~~y~Classic Weapon",2300,5);
		case PY_Poison: GameTextForPlayer(playerid,"~w~Mode:~n~~g~Pick Your Poison",1000,1);
		case Knockout: GameTextForPlayer(playerid,"~w~Mode:~n~Knockout",2800,6);
		case Assault: GameTextForPlayer(playerid,"~w~Mode:~n~~r~Assault",2900,3);
		case R_VS_B_TDM: GameTextForPlayer(playerid,"~w~Mode:~n~Red vs Blue~n~~b~TDM",1000,0);
		case R_VS_B_Race: GameTextForPlayer(playerid,"~w~Mode:~n~Red vs Blue~n~~g~Race",1000,0);
	}
   	TogglePlayerControllable(playerid,1);
	SetCameraBehindPlayer(playerid);
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    new string[125],killer[24],player[24];
   	GetPlayerName(playerid,player,24);
	if(killerid == INVALID_PLAYER_ID) return 1;
	GetPlayerName(killerid,killer,24);
	pInfo[playerid][Spawn] = 0;
	GetPlayerName(playerid,player,24);
	if(sMode == DM)
	{
		if(killerid == INVALID_PLAYER_ID) 
		{
		 	pInfo[playerid][DMScore]-=1;
			GameTextForPlayer(playerid,"~n~~n~~n~~n~~n~~n~~n~~w~Respect ~r~- ~w~1",1000,5);
			SetPlayerScore(playerid,pInfo[playerid][DMScore]);
			if(dini_Exists(udb_encode(player))) dini_IntSet(udb_encode(player),"DM_Score",pInfo[playerid][DMScore]);
			format(string,sizeof(string),"..:: %s wimped out and suicided ::..",player);
			SendClientMessageToAll(0xFF1111AA,string);
		    return 1;
		}
	    GetPlayerName(killerid,killer,24);
	    GetPlayerName(playerid,player,24);
 		GameTextForPlayer(playerid,"~n~~n~~n~~n~~n~~n~~n~~w~Respect ~r~- ~w~1",1000,5);
		pInfo[killerid][DMScore]+=1;
		GameTextForPlayer(killerid,"~n~~n~~n~~n~~n~~n~~n~~w~Respect ~g~+ ~w~1",1000,5);
		SetPlayerScore(killerid,pInfo[killerid][DMScore]);
		if(dini_Exists(udb_encode(killer))) dini_IntSet(udb_encode(killer),"DM_Score",pInfo[killerid][DMScore]);
		new death = random(3) + 1;
		if(death == 1)
			format(string,sizeof(string),"..:: %s was shown no mercy by %s ::..",player,killer);
		if(death == 2)
			format(string,sizeof(string),"..:: %s was guttered by the stronger %s ::..",player,killer);
		if(death == 3)
			format(string,sizeof(string),"..:: %s was blown apart to 10 pieces by %s ::..",player,killer);
		SendClientMessageToAll(0xFF1111AA,string);
 		if(pInfo[killerid][DMScore] > 20)
		{
			for(new i=0; i<MAX_PLAYERS; i++)
			{
			    if(IsPlayerConnected(i))
			    {
					format(string,sizeof(string),"~w~%s won ~g~20~r~/~g~20",killer);
					GameTextForAll(string,2500,3);
					format(string,sizeof(string),"..:: %s showed his true power and won the match ::..",killer);
					pInfo[i][DMScore] = 0;
					pInfo[killerid][DMMatch]+=1;
					new tmp[255];
					tmp = dini_Get(udb_encode(player),"DMWins");
					dini_IntSet(udb_encode(player),"DMWins",strval(tmp)+1);
					sCity = LV;
					sMode = Race;
					SendClientMessageToAll(0xFF1111AA,string);
					return SpawnPlayer(i);
				}
			}
		}
	}
	new Float:x,Float:y,Float:z;
	GetPlayerPos(killerid,x,y,z);
	if(z > 700)
	{
	    format(string,sizeof(string),"..:: SA:MP Rebel League - Cheater detected using |Indoor Weapons| [%s] ::..",killer);
	    Report(string);
	}
	for(new s=0; s<sizeof(InvalidWeapons); s++)
	{
		if(reason == InvalidWeapons[s][0])
		{
		    format(string,sizeof(string),"..:: SA:MP Rebel League - Cheater detected using |Fake Kill| [%s] ::..",player);
		    Report(string);
		}
	}
	if(sMode == TDM)
	{
		if(killerid == INVALID_PLAYER_ID)
		{
			format(string,sizeof(string),"..:: %s suicided ::..",player);
			SendClientMessageToAll(0xFF1111AA,string);
		    return 1;
		}
		for(new s=0; s<7; s++) if(PlayerToPoint(5,killerid,tdmSP[s][0],tdmSP[s][1],tdmSP[s][2]))
		{
			if(GetPlayerState(killerid) == 2 || GetPlayerState(killerid) == PLAYER_STATE_ONFOOT)
		    kill[killerid]++;
		}
		if(pInfo[playerid][Team] == pInfo[killerid][Team])
		{
		    SendClientMessage(killerid,0xFF0000AA,"..:: Please do not teamkill as it is unneeded and stupid. ::..");
			tk[killerid]++;
			pInfo[killerid][TDMScore]-=2;
		}
		pInfo[killerid][TDMScore]++;
		SetPlayerScore(playerid,pInfo[playerid][TDMScore]);
		SetPlayerScore(killerid,pInfo[killerid][TDMScore]);
		GivePlayerMoney(killerid,random(1000)+random(500));
		if(pInfo[playerid][Logged] == 1) dini_IntSet(udb_encode(player),"TDMScore",pInfo[playerid][TDMScore]);
		if(pInfo[killerid][Logged] == 1) dini_IntSet(udb_encode(killer),"TDMScore",pInfo[killerid][TDMScore]);
	}
	return 1;
}

public OnPlayerText(playerid,text[])
{
	new str[130],player[24];
	GetPlayerName(playerid,player,24);
	format(str,sizeof(str),"..:: [Team Chat] %s: %s",player,text[1]);
	if(sMode == TDM)
	{
	    if(text[0] == ';')
	    {
	        for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
	        {
	            if(pInfo[i][Team] == pInfo[playerid][Team])
	            {
					SendClientMessage(i,0x00FF00AA,str);
					return 0;
	            }
	        }
	    }
	}
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	dcmd(register,8,cmdtext);
	dcmd(login,5,cmdtext);
	dcmd(bugreport,9,cmdtext);
	dcmd(stats,5,cmdtext);
	dcmd(tdm,3,cmdtext);
	dcmd(koth,4,cmdtext);
	dcmd(race,4,cmdtext);
	return 0;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    cp[playerid]++;
	if(sMode == Race)
	{
		if(GetPlayerState(playerid) == 2 && cp[playerid] == 0 || cp[playerid] == 1)
		{
	    	SetPlayerCheckpoint(playerid,2656.2507,949.9442,6.3899,8);
			PlayerPlaySound(playerid,1138,0,0,0);
		}
		if(GetPlayerState(playerid) == 2 && cp[playerid] == 2)
		{
	    	SetPlayerCheckpoint(playerid,2716.8281,1903.7262,6.3894,8);
			PlayerPlaySound(playerid,1138,0,0,0);
		}
		if(GetPlayerState(playerid) == 2 && cp[playerid] == 3)
		{
	    	SetPlayerCheckpoint(playerid,2672.0728,2449.5107,6.4002,8);
			PlayerPlaySound(playerid,1138,0,0,0);
		}
		if(GetPlayerState(playerid) == 2 && cp[playerid] == 4)
		{
	    	SetPlayerCheckpoint(playerid,1556.6851,2462.8850,6.7818,8);
			PlayerPlaySound(playerid,1138,0,0,0);
		}
		if(GetPlayerState(playerid) == 2 && cp[playerid] == 5)
		{
	    	SetPlayerCheckpoint(playerid,1216.1133,1434.8116,6.3918,8);
			PlayerPlaySound(playerid,1138,0,0,0);
		}
		if(GetPlayerState(playerid) == 2 && cp[playerid] == 6)
		{
	    	SetPlayerCheckpoint(playerid,1476.1558,843.4284,6.4657,8);
			PlayerPlaySound(playerid,1138,0,0,0);
		}
		if(GetPlayerState(playerid) == 2 && cp[playerid] == 7)
		{
	    	SetPlayerCheckpoint(playerid,1980.5972,834.7927,6.3096,8);
			PlayerPlaySound(playerid,1138,0,0,0);
		}
		if(GetPlayerState(playerid) == 2 && cp[playerid] == 8)
		{
			cp[playerid] = 255;
			places[playerid] = 1;
			PlaceCheck(playerid);
			new v = GetPlayerVehicleID(playerid);
			RemovePlayerFromVehicle(playerid);
			SetVehicleToRespawn(v);
			DisablePlayerCheckpoint(playerid);
			PlayerPlaySound(playerid,1137,0,0,0);
			new s,player[24];
			GetPlayerName(playerid,player,24);
			for(new i=0; i<MAX_PLAYERS; i++) s++;
			if(s == PlayerID(player))
			{
				sMode = KOTH;
				sCity = SF;
				SpawnAll();
				for(new i=0; i<MAX_PLAYERS; i++) pInfo[i][Pos] = 1;
				SetTimer("Bla",1300,0);
			}
		}
	}
	return 1;
}

stock GivePlayerWeaponEx(playerid,w1,a1,w2,a2,w3,a3)
{
	GivePlayerWeapon(playerid,w1,a1);
	GivePlayerWeapon(playerid,w2,a2);
	return GivePlayerWeapon(playerid,w3,a3);
}

stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
	new Float:oldposx, Float:oldposy, Float:oldposz;
	new Float:tempposx, Float:tempposy, Float:tempposz;
	GetPlayerPos(playerid, oldposx, oldposy, oldposz);
	tempposx = (oldposx -x);
	tempposy = (oldposy -y);
	tempposz = (oldposz -z);
	if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
	{
		return 1;
	}
	return 0;
}
stock PlaceCheck(playerid)
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
	    if(IsPlayerConnected(i))
	    {
			new string[86],player[24];
			GetPlayerName(playerid,player,24);
			if(places[i] == 1) pInfo[playerid][RaceSC] += 1;
			format(string,sizeof(string),"..:: %s finished in the race tournament ::..",player);
			return SendClientMessageToAll(0x00FF00AA,string);
		}
	}
	return false;
}

public Anticheat()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
	    if(IsPlayerConnected(i))
		{
			new Float:h,player[24],string[130],mph[MAX_PLAYERS],Float:x,Float:y,Float:z;
			GetPlayerPos(i,x,y,z);
			GetPlayerName(i,player,24);
           	new Float:distance,value;
       		distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
       		value = floatround(distance * 5600);
           	SavePlayerPos[i][LastX] = x;
   	        SavePlayerPos[i][LastY] = y;
       		SavePlayerPos[i][LastZ] = z;
       		mph[i] = floatround(value/3600);
       		GetPlayerHealth(i,h);
       		if(pInfo[i][Spawn] == 1) return 1;
			if(h > 100)
			{
			    if(mph[i] <= 0) return 1;
			    format(string,sizeof(string),"..:: SA:MP Rebel League - Cheater detected using |Health| [%s] ::..",player);
			    Report(string);
			}
			if(h == 100)
			{
/*				SetPlayerHealth(i,99);
				new h2 = GetPlayerHealth(i,h);
				if(h2 == 100)
				{
	   				if(!pInfo[i][Spawn]) return 1;
				    if(mph[i] <= 0) return 1;
				    if(h < 100) return 1;
				    format(string,sizeof(string),"..:: SA:MP Rebel League - Cheater detected using |Health| [%s] ::..",player);
				    Report(string);
				    SetPlayerHealth(i,100);
				}           */
			}
			if(GetPlayerState(i) != 2)
			{
			    if(mph[i] > 40)
				{
					if(z > 700) return 1;
			    	format(string,sizeof(string),"..:: SA:MP Rebel League - Cheater detected using |Speed| [%s] ::..",player);
			    	Report(string);
			    }
			}
			if(GetPlayerState(i) == 2)
			{
			    if(mph[i] > 240)
				{
			        format(string,sizeof(string),"..:: SA:MP Rebel League - Cheater detected using |Speed| [%s] ::..",player);
			    	Report(string);
			    }
			}
			if(GetPlayerMoney(i) >= 999999)
			{
			    if(IsPlayerAdmin(i)) return 1;
		        format(string,sizeof(string),"..:: SA:MP Rebel League - Cheater detected using |Cash| [%s] ::..",player);
		    	Report(string);
			}
		}
	}
	return 1;
}

public SpamClear() for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) pText[i] = 0;

public KOTHt()
{
	for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
	{
	    new count[MAX_PLAYERS],tmp[255];
		if(PlayerToPoint(5,i,-2423.1328,-607.2607,132.5625))
		{
		    count[i]++;
		    if(count[i] > 1)
		    {
				GameTextForPlayer(i,"~n~~n~~n~~n~Get the other player off the KOTH area",2300,3);
				break;
			}
			new str[86];
        	new player[24];
        	GetPlayerName(i,player,24);
		    if(pInfo[i][KOTHp] > 60)
		    {
			    format(str,sizeof(str),"~g~%s~w~ has won the ~b~KOTH",player);
		        GameTextForAll(str,2300,6);
		        pInfo[i][KOTHp] = 0;
		        tmp = dini_Get(udb_encode(player),"KOTHWins");
		        dini_IntSet(udb_encode(player),"KOTHWins",strval(tmp)+1);
				sMode = TDM;
				sCity = SF;
				TDMti = SetTimer("TDMt",1000,1);
				SpawnAll();
				for(new b=0; b<MAX_PLAYERS; b++) pInfo[b][Pos] = 1;
				KillTimer(KOTHti);
				SetTimer("Bla",1300,0);
		        break;
			}
	    	format(str,sizeof(str),"~y~Hold this area for ~r~%d~w~ more seconds",60-pInfo[i][KOTHp]);
			GameTextForPlayer(i,str,2300,6);
		    pInfo[i][KOTHp]++;
		}
	}
}

public TDMt()
{
	new s;
	s++;
	if(s == 120) GameTextForAll("~r~3 ~w~Minutes left till TDM over",1000,1);
	if(s == 300)
	{
		GameTextForAll("~r~TDM ~w~is now over",1000,1);
		sMode = DM;
		sCity = LS;
		KillTimer(TDMti);
		SpawnAll();
		for(new i=0; i<MAX_PLAYERS; i++) pInfo[i][Pos] = 1;
		SetTimer("Bla",1300,0);
	}
}
stock Report(string[]) for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) if(IsPlayerAdmin(i)) SendClientMessage(i,0x00FF00AA,string);

dcmd_register(playerid,params[])
{
	new player[24],user[255],str[255],tmp[255],ID[255];
	GetPlayerName(playerid,player,24);
	if(!strlen(params))
	{
	    SendClientMessage(playerid,0xFFFF00AA,"..:: Sintax: /register [password] ::..");
		return 1;
	}
	if(dini_Exists(udb_encode(player)))
	{
	    SendClientMessage(playerid,0xFFFF00AA,"..:: You already have an account with the SA:MP Rebel League ::..");
		return 1;
	}
	dini_Create(udb_encode(player));
	if(IsPlayerAdmin(playerid)) dini_IntSet(udb_encode(player),"Admin",6);
	else dini_IntSet(udb_encode(player),"Admin",1);
	user = dini_Get(stat,"users");
	dini_IntSet(stat,"users",strval(user)+1);
	dini_IntSet(udb_encode(player),"UserID",strval(user));
	dini_Set(udb_encode(player),"pass",params);
	dini_IntSet(udb_encode(player),"DM",pInfo[playerid][DMScore]);
	dini_IntSet(udb_encode(player),"Race",pInfo[playerid][RaceSC]);
	tmp = dini_Get(udb_encode(player),"Admin");
	ID = dini_Get(udb_encode(player),"UserID");
	dini_IntSet(udb_encode(player),"TDMScore",pInfo[playerid][TDMScore]);
	SendClientMessage(playerid,0x00FF00AA,"..:: Your now registered to the league. Your stats are listed below. ::..");
	format(str,sizeof(str),"..:: [UserID: %d  Level: %d  Password: %s  DM Wins: %d  Race Wins: %d  TDM Score: %d] ::..",strval(ID),strval(tmp),params,pInfo[playerid][DMScore],pInfo[playerid][RaceSC],pInfo[playerid][TDMScore]);
	SendClientMessage(playerid,0xFF00FFAA,str);
	pInfo[playerid][Logged] = 1;
	return 1;
}

dcmd_login(playerid,params[])
{
	new player[24],str[255],tmp[255],user[255];
	GetPlayerName(playerid,player,24);
	if(!strlen(params))
	{
	    SendClientMessage(playerid,0xFFFF00AA,"..:: Sintax: /login [password] ::..");
		return 1;
	}
	if(!dini_Exists(udb_encode(player)))
	{
	    SendClientMessage(playerid,0xFFFF00AA,"..:: You don't have an account with the SA:MP Rebel League ::..");
		return 1;
	}
	if(pInfo[playerid][Logged])
	{
	    SendClientMessage(playerid,0xFFFF00AA,"..:: You are already logged with the SA:MP Rebel League ::..");
		return 1;
	}
	tmp = dini_Get(udb_encode(player),"pass");
	if(strcmp(params, tmp, true) == 0)
	{
		pInfo[playerid][Logged] = 1;
	    tmp = dini_Get(udb_encode(player),"DM");
		pInfo[playerid][DMScore] = strval(tmp);
	    tmp = dini_Get(udb_encode(player),"Race");
		pInfo[playerid][RaceSC] = strval(tmp);
	    tmp = dini_Get(udb_encode(player),"Admin");
	    user = dini_Get(udb_encode(player),"UserID");
		SendClientMessage(playerid,0x00FF00AA,"..:: Your now logged into the league. Your stats are listed below. ::..");
		format(str,sizeof(str),"..:: [UserID: %d  Level: %d  Password: %s  DM Wins: %d  Race Wins: %d  TDM Score: %d] ::..",user,strval(tmp),params,pInfo[playerid][DMScore],pInfo[playerid][RaceSC],pInfo[playerid][TDMScore]);
		SendClientMessage(playerid,0xFF00FFAA,str);
		return 1;
	}
    SendClientMessage(playerid,0xFFFF00AA,"..:: You typed the wrong password, please try again. ::..");
	return 1;
}

dcmd_bugreport(playerid,params[])
{
	new str[160],player[24],h,m,s,y,month,day;
	if(!strlen(params))
	{
	    SendClientMessage(playerid,0xFFFF00AA,"..:: Sintax: /bugreport [text to send] ::..");
		return 1;
	}
	GetPlayerName(playerid,player,24);
	getdate(y,month,day);
	gettime(h,m,s);
	format(str,sizeof(str),"..:: %s reports bug: %s",player,params[0]);
	Report(str);
	format(str,sizeof(str),"%d:%d:%d %d/%d/%d",h,m,s,day,month,y);
	dini_Set(bugs,str,params[0]);
	SendClientMessage(playerid,0x00FF00AA,"..:: Bug report successfully sent and stored. ::..");
	return 1;
}

dcmd_stats(playerid,params[])
{
	new str[160],race[255],dm[255],player[24],tmp[255];
	GetPlayerName(playerid,player,24);
	if(!pInfo[playerid][Logged])
	{
	    SendClientMessage(playerid,0x00FF00AA,"..:: You must be logged in or registered with the SA:MP Rebel League to see your stats ::..");
		return 1;
	}
	dm = dini_Get(udb_encode(player),"DMScore");
	tmp = dini_Get(udb_encode(player),"KOTHWins");
	format(str,sizeof(str),"..:: [|] User(%s) Stats: DM Wins: %d Race Wins: %d Koth Wins: %d[|] ::..",player,dm,race,tmp);
	SendClientMessage(playerid,0xFF00FFAA,str);
	#pragma unused params
	return 1;
}

dcmd_tdm(playerid,params[])
{
    if(IsPlayerAdmin(playerid))
    {
		sCity = SF;
        sMode = TDM;
        for(new i=0; i<MAX_PLAYERS; i++)
        {
        	if(IsPlayerConnected(i))
        	{
				SpawnAll();
				ResetPlayerWeapons(i);
				TDMti = SetTimer("TDMt",1000,1);
				SetTimer("TDMt",1000,1);
				pInfo[i][Pos] = 1;
				SetTimer("Bla",1300,0);
	         }
   		}
   	}
    #pragma unused params
  	return 1;
}

dcmd_koth(playerid,params[])
{
    if(IsPlayerAdmin(playerid))
    {
		sCity = SF;
        sMode = KOTH;
        for(new i=0; i<MAX_PLAYERS; i++)
        {
        	if(IsPlayerConnected(i))
        	{
				SpawnAll();
				ResetPlayerWeapons(i);
				KOTHti = SetTimer("KOTHt",1000,1);
				SetTimer("KOTHt",1000,1);
				pInfo[i][Pos] = 1;
				SetTimer("Bla",1300,0);
	         }
   		}
   	}
    #pragma unused params
  	return 1;
}

dcmd_race(playerid,params[])
{
    if(IsPlayerAdmin(playerid))
    {
		sCity = LV;
        sMode = Race;
        for(new i=0; i<MAX_PLAYERS; i++)
        {
        	if(IsPlayerConnected(i))
        	{
				SpawnAll();
				ResetPlayerWeapons(i);
				pInfo[i][Pos] = 1;
				SetTimer("Bla",1300,0);
	         }
   		}
   	}
    #pragma unused params
  	return 1;
}

stock EndKoth()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
	    if(IsPlayerConnected(i))
	    {
	        sMode = DM;
	        sCity = LS;
			SpawnPlayer(i);
			break;
		}
	}
}

stock PlayerID(player[])
{
	for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i))
	{
		new name[24];
		GetPlayerName(i,name,24);
	    if(strcmp(name, player, true) == 0) return i;
	}
	return false;
}

stock SetPlayerPosEx(playerid,Float:x,Float:y,Float:z,Float:angle)
{
	SetPlayerPos(playerid,x,y,z);
	SetPlayerFacingAngle(playerid,angle);
	return 1;
}

stock SpawnAll() for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SpawnPlayer(i);

public Bla() for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) pInfo[i][Pos] = 0;

public Spawned() for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) if(pInfo[i][Spawn] == 255) pInfo[i][Spawn] = 1;

public CheckMoney()
{
	for(new i=0; i<MAX_PLAYERS; i++) if(pInfo[i][M] < GetPlayerMoney(i))
	{
		OnPlayerGetMoney(i,GetPlayerMoney(i),pInfo[i][M]);
		pInfo[i][M] = GetPlayerMoney(i);
	}
}

stock OnPlayerGetMoney(playerid,newmoney,oldmoney)
{
	if(newmoney - oldmoney > 10000)
	{
	    new am = newmoney - oldmoney,player[24],str[120];
	    GetPlayerName(playerid,player,24);
	    format(str,sizeof(str),"..:: SA:MP Rebel League - Cheater detected using |Cash +$%d| [%s] ::..",am,player);
		Report(str);
	}
	return 1;
}

public CheckTK()
{
	for(new playerid=0; playerid<MAX_PLAYERS; playerid++)
	{
		new killer[24],string[120];
		GetPlayerName(playerid,killer,24);
		if(kill[playerid] >= 3)
		{
	 		format(string,sizeof(string),"..:: SA:MP Rebel League - Abuser detected doing |Spawnkill| [%s] ::..",killer);
			Report(string);
			kill[playerid] = 0;
		}
		if(tk[playerid] >= 3)
		{
			format(string,sizeof(string),"..:: SA:MP Rebel League - Abuser detected doing |Teamkill| [%s] ::..",killer);
			Report(string);
			tk[playerid] = 0;
	 	}
	 }
}