All pastes #738474 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-10-16 10:51 UTC
rendered paste body
#include <a_samp>

new gTeam[MAX_PLAYERS];
#define TEAM_Army 1
#define TEAM_Farmers 2
#define TEAM_Grove 3
#define TEAM_Ballas 4
#define TEAM_Vagos 5
#define TEAM_Aztecas 6
#define TEAM_Mafia 7
#define TEAM_GROOVE_COLOR 0x00FF00AA 
#define TEAM_BALLAS_COLOR 0xFF00FFAA 
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_LIGHTGREEN 0x00FF00AA
#define COLOR_DARKGREEN 0x004400AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define BBLUE 0x00BFFFAA
#define COLOR_LIGHTBLUE 0x1C86EEAA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_BRIGHTRED 0xB22222
#define OBJECTIVE_VEHICLE_BLUE 1
#define OBJECTIVE_COLOR 0xAA0000FF
#define MAX_GANGS 			32
#define MAX_GANG_MEMBERS	6
#define MAX_GANG_NAME       16
#define CP_AMMU 2
#define MAX_POINTS 20
#define MAX_WEAPONS 47
#define MAX_SPAWNWEAPONS 9

new Grove1;
new Grove2;
new Grove3;
new Army1;
new Army2;
new Army4;
new Army5;
new Mafia1;
new Mafia2;
new Mafia3;
new Mafia4;
new Ballas1;
new Ballas2;
new Ballas3;
new Ballas4;
new Vagos1;
new Vagos2;
new Vagos;
new Aztecas1;
new Aztecas2;
new Aztecas3;
new Aztecas4;
new Farmers1;
new Farmers;
new Farmers3;
new Niekeno;
new Visitors;
new TEXT[255];
new Float:X1[MAX_PLAYERS];
new playerCheckpoint[MAX_PLAYERS];
new Float:Y1[MAX_PLAYERS];
new Float:Z1[MAX_PLAYERS];
new gObjectiveBluePlayer=(-1);
new gObjectiveReached=0;
new exp[MAX_PLAYERS];
new XP[MAX_PLAYERS];
new level[MAX_PLAYERS] = 1;
static gHour;
static gMinute;
new playerWeapons[MAX_PLAYERS][MAX_SPAWNWEAPONS];
new ZoneOwner[25]={3,3,3,1,1,1,1,7,7,7,7,4,4,4,4,5,5,5,6,6,6,6,2,2,2};
new UnderAttack[25];
new KillCount[7][25];
new gangMembers[MAX_GANGS][MAX_GANG_MEMBERS];
new gangNames[MAX_GANGS][MAX_GANG_NAME];
new gangInfo[MAX_GANGS][3]; //0-created,1-members,2-color
new gangBank[MAX_GANGS];
new playerGang[MAX_PLAYERS];
new gangInvite[MAX_PLAYERS];
new ownedcar[MAX_PLAYERS];
new owner[MAX_PLAYERS];

forward unsafe(Kzone);
forward checkpointUpdate();
forward Timer_DayHeartbeat();
forward AutoReminder();
forward PayDay();
forward RandomMessages();
forward TimeFunction(playerid);
forward OnPlayerUpdate(playerid);
forward checkpointUpdate();
forward post_winners(winnerid);
forward report(playerid);

new Float:checkpoints[MAX_POINTS][3] = {
{-22.2549,-55.6575,1003.5469},
{2000.3132,1538.6012,13.5859},
{291.0004,-84.5168,1001.5156},
{-1920.6711,303.1555,41.0469},
{2323.7454,1283.1440,97.5579},
{-2432.6628,-1620.0771,526.8676},
{1989.0619,1005.5241,994.4688},
{2235.5408,1679.0402,1008.3594},
{-103.5525,-22.4661,1000.7188},
{501.4927,-75.4323,998.7578},
{161.1875,-79.9915,1001.8047},
{207.5640,-97.8188,1005.2578},
{-203.4864,-41.2045,1002.2734},
{418.5547,-80.1667,1001.8047},
{1212.3918,-10.9459,1000.9219},
{-1957.5327,300.2131,35.4688},
{418.1210,2536.8762,10.0000},
{2127.5940,2370.4255,10.8203},
{2022.5179,1916.6848,12.3397},
{1208.5027,-32.6044,1000.9531}
};
new playerColors[100] = {
0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF,0xFFD720FF,
0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,
0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,
0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF,
0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,
0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,
0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,
0x9F945CFF,0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
0x3FE65CFF
};
new Float:checkCoords[1][4] = {
{284.0546,-86.4384, 302.9315,-56.6674}
};
new checkpointType[MAX_POINTS] = {
CP_AMMU
};
new weaponNames[MAX_WEAPONS][32] = {
	"Unarmed",
	"Brass Knuckles", //crash game
	"Golf Club",
	"Night Stick",
	"Knife",
	"Baseball Bat",
	"Shovel",
	"Pool Cue",
	"Katana",
	"Chainsaw",
	"Purple Dildo",
	"White Dildo",
	"Long White Dildo",
	"White Dildo 2",
	"Flowers",
	"Cane",
	"Grenades", //crash game
	"Tear Gas", //crash game
	"Molotovs", //crash game
	"UNKNOWN",
	"UNKNOWN",
	"UNKNOWN",
	"Pistol",
	"Silenced Pistol",
	"Desert Eagle",
	"Shotgun",
	"Sawn Off Shotgun",
	"Combat Shotgun",
	"Micro Uzi (Mac 10)",
	"MP5",
	"AK47",
	"M4",
	"Tec9",
	"Rifle",
	"Sniper Rifle",
	"RPG",
	"Missile Launcher",
	"Flame Thrower",
	"Minigun",
	"Sachel Charges", //crash game
	"Detonator", //crash game
	"Spray Paint",
	"Fire Extinguisher",
	"Camera",
	"Nightvision Goggles", //crash game
	"Thermal Goggles", //crash game
	"Parachute"
};
new spawnWeapons[MAX_SPAWNWEAPONS][3] = {
	{23,34,4000},
	{25,15,7000},
	{27,20,15000},
	{28,120,7000},
	{32,120,5000},
	{29,120,15000},
	{30,120,25000},
	{31,120,30000},
	{9,0,70000}
};
new Float:ZoneLocations[25][4]=
	{
		{1988.037, -1752.921, 2611.702, -1614.75},
		{1607.753, -1452.893, 2056.488, -1026.537},
		{2216.207, -2321.396, 2391.137, -1768.712},
		{70.06725, 1786.715, 373.692, 2113.696},
		{2349.306, -2747.752, 2866.492, -2309.553},
		{1132.754, -221.8796, 1950.205, 490.4708},
		{151.8124, -268.5911, 478.7929, 140.1345},
		{1025.919, -2372.717, 1524.091, -1910.831},
		{1067.75, -1587.116, 1368.174, -1156.812},
		{2615.505, -1606.855, 2896.915, -1263.401},
		{1322.54, -1748.974, 1995.642, -1622.646},
		{2067.896, -1377.886, 2269.447, -1223.924},
		{1710.43, -2210.859, 2181.981, -1752.921},
		{2064.094, -1614.75, 2265.644, -1381.833},
		{1543.105, -2388.508, 1721.838, -1764.764},
		{2296.066, -1247.61, 2866.492, -927.8433},
		{200.7038, -2076.636, 987.8908, -1752.921},
		{2216.207, -1847.667, 2615.505, -1752.921},
		{2398.743, -2159.539, 2790.435, -1855.563},
		{193.0981, -1705.548, 664.6498, -1156.812},
		{2288.461, -1598.959, 2547.053, -1263.401},
		{1482.26, -1598.959, 2064.094, -1464.736},
		{-303.6248, -175.1681, 105.1009, 163.4902},
		{2611.702, -1855.563, 2866.492, -1606.855},
		{2008.595, -221.8796, 2709.267, 291.9469}
};

main()
{
	print("\n----------------------------------");
	print(" LS Gang Wars");
	print("----------------------------------\n");
}

stock getCheckpointType(playerID)
{
	return checkpointType[playerCheckpoint[playerID]];
}

stock isPlayerInArea(playerID, Float:data[4])
{
	new Float:X, Float:Y, Float:Z;

	GetPlayerPos(playerID, X, Y, Z);
	if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) {
		return 1;
	}
	return 0;
}

stock strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}
	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

IsInZone(playerid)
{
	new i=0;
	new Float:X,Float:Y,Float:Z;
	GetPlayerPos(playerid,X,Y,Z);
	new NAME[40];
	GetPlayerName(playerid,NAME,sizeof(NAME));
	while (i<25)
 	{
		if ((X>ZoneLocations[i][0])&&(X<ZoneLocations[i][2])&&(Y>ZoneLocations[i][1])&&(Y<ZoneLocations[i][3]))
		{
			return i;
   		}
	    i++;
   	}
    return -1;
}

public unsafe(Kzone)
{
	UnderAttack[Kzone]=0;
}

getColor(playerid)
{
	if(gTeam[playerid] == TEAM_Army) return 0x8040008F;
	else if(gTeam[playerid] == TEAM_Farmers) return 0x00000083;
	else if(gTeam[playerid] == TEAM_Grove) return 0x00FF007D;
	else if(gTeam[playerid] == TEAM_Ballas)	return 0x80008070;
	else if(gTeam[playerid] == TEAM_Vagos) return 0xFFFF007C;
	else if(gTeam[playerid] == TEAM_Aztecas) return 0x00FFFF81;
	else if(gTeam[playerid] == TEAM_Mafia) return 0x0000FF74;
	return 0x0000FF74;
}


stock PlayerLeaveGang(playerid) {
	new string[256];
	new playername[MAX_PLAYER_NAME];
	new gangnum = playerGang[playerid];

    if(gangnum > 0) {
		for(new i = 0; i < gangInfo[gangnum][1]; i++) {
			if(gangMembers[gangnum][i]==playerid) {

			    //One less gang member
			    gangInfo[gangnum][1]--;

      		    for(new j = i; j < gangInfo[gangnum][1]; j++) {
				    //Shift gang members
				    gangMembers[gangnum][j]=gangMembers[gangnum][j+1];
	    		}

			    //Disband gang if no more members
			    if(gangInfo[gangnum][1]<1) {
			        gangInfo[gangnum][0]=0;
			        gangInfo[gangnum][1]=0;
			        gangBank[gangnum]=0;
       			}

				//Notify other members
				for(new j = 0; j < gangInfo[gangnum][1]; j++) {
				    GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
					format(string, sizeof(string),"%s has quit your gang.", playername);
					SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
					if(j==0) {
					}
				}
				format(string, sizeof(string),"You have quit the gang '%s' (id: %d)", gangNames[gangnum], gangnum);
				SendClientMessage(playerid, COLOR_ORANGE, string);
				playerGang[playerid]=0;
				SetPlayerColor(playerid,playerColors[playerid]);
				return;
			}
		}
	} else {
		SendClientMessage(playerid, COLOR_RED, "You are not in a gang.");
	}
}

public OnGameModeInit()
{
	SetGameModeText("LS Gang Wars");

	ShowNameTags(1);
	ShowPlayerMarkers(1);
	EnableTirePopping(1);
	SetGravity(0.008);
	SetWorldTime(12);
	SetTeamCount(7);
 	AllowInteriorWeapons(0);
    EnableZoneNames(1);
    UsePlayerPedAnims();
    SetTimer("checkpointUpdate",1000,1);
	SetTimer("RandomMessages", 30000, 1);

	#pragma unused Grove1
	#pragma unused Grove2
	#pragma unused Grove3
	#pragma unused Army1
	#pragma unused Army2
	#pragma unused Army4
	#pragma unused Army5
	#pragma unused Mafia1
	#pragma unused Mafia2
	#pragma unused Mafia3
	#pragma unused Mafia4
	#pragma unused Ballas1
	#pragma unused Ballas2
	#pragma unused Ballas3
	#pragma unused Ballas4
	#pragma unused Vagos1
	#pragma unused Vagos2
	#pragma unused Vagos
	#pragma unused Aztecas1
	#pragma unused Aztecas2
	#pragma unused Aztecas3
	#pragma unused Aztecas4
	#pragma unused Farmers1
	#pragma unused Farmers
	#pragma unused Farmers3
	#pragma unused Niekeno

    Grove1 = GangZoneCreate(1988.037, -1752.921, 2611.702, -1614.75);
    Grove2 = GangZoneCreate(1607.753, -1452.893, 2056.488, -1026.537);
    Grove3 = GangZoneCreate(2216.207, -2321.396, 2391.137, -1768.712);
    Army1 = GangZoneCreate(70.06725, 1786.715, 373.692, 2113.696);
    Army2 = GangZoneCreate(2349.306, -2747.752, 2866.492, -2309.553);
    Army5 = GangZoneCreate(1132.754, -221.8796, 1950.205, 490.4708);
    Army4 = GangZoneCreate(151.8124, -268.5911, 478.7929, 140.1345);
    Mafia1 = GangZoneCreate(1025.919, -2372.717, 1524.091, -1910.831);
    Mafia2 = GangZoneCreate(1067.75, -1587.116, 1368.174, -1156.812);
    Mafia3 = GangZoneCreate(2615.505, -1606.855, 2896.915, -1263.401);
    Mafia4 = GangZoneCreate(1322.54, -1748.974, 1995.642, -1622.646);
    Ballas1 = GangZoneCreate(2067.896, -1377.886, 2269.447, -1223.924);
    Ballas2 = GangZoneCreate(1710.43, -2210.859, 2181.981, -1752.921);
    Ballas3 = GangZoneCreate(2064.094, -1614.75, 2265.644, -1381.833);
	Ballas4 = GangZoneCreate(1543.105, -2388.508, 1721.838, -1764.764);
    Vagos1 = GangZoneCreate(2296.066, -1247.61, 2866.492, -927.8433);
    Vagos2 = GangZoneCreate(200.7038, -2076.636, 987.8908, -1752.921);
    Vagos = GangZoneCreate(2216.207, -1847.667, 2615.505, -1752.921);
    Aztecas1 = GangZoneCreate(2398.743, -2159.539, 2790.435, -1855.563);
    Aztecas2 = GangZoneCreate(193.0981, -1705.548, 664.6498, -1156.812);
    Aztecas3 = GangZoneCreate(2288.461, -1598.959, 2547.053, -1263.401);
    Aztecas4 = GangZoneCreate(1482.26, -1598.959, 2064.094, -1464.736);
    Farmers1 = GangZoneCreate(-303.6248, -175.1681, 105.1009, 163.4902);
    Farmers = GangZoneCreate(2611.702, -1855.563, 2866.492, -1606.855);
    Farmers3 = GangZoneCreate(2008.595, -221.8796, 2709.267, 291.9469);
    Niekeno = GangZoneCreate(2166.77, -1231.819, 2258.038, -1129.178);

    AddStaticPickup(1239,2,2512.560058,-1028.399414,70.085937);
    AddStaticPickup(1239,2,2091.482177,-1279.688842,26.040601);
    AddStaticPickup(1239,2,2486.651855,-1645.656005,14.070312);
    AddStaticPickup(1239,2,2637.365234,-1992.147949,13.993547);
	AddStaticPickup(1239,2,2638.354980,-2414.083496,13.632812);
	AddStaticPickup(1239,2,1125.921142,-2037.342407,69.883468);
	AddStaticPickup(1239,2,299.422546,-1155.912231,80.909896);

	//Objects:
	CreateObject(8210, -364.532867, -1354.596802, 23.185678, 0, 0, 250.9378);
	CreateObject(8210, -382.132202, -1322.766724, 26.474600, 0, 6.0161, 348.75);
	CreateObject(8210, -414.872131, -1344.778442, 27.228954, 0, 355.7028, 78.75);
	CreateObject(987, -413.446106, -1381.667969, 22.538481, 0, 0, 123.7499);
	CreateObject(987, -406.810028, -1391.459839, 22.498192, 0, 0, 123.7499);
	CreateObject(987, -400.266357, -1401.260742, 22.492678, 0, 0, 123.7499);
	CreateObject(979, -377.399353, -1383.588257, 22.458151, 0, 0, 213.75);
	CreateObject(979, -387.136871, -1390.306763, 22.586538, 0, 359.1406, 213.75);
	CreateObject(987, -383.766602, -1387.337036, 21.887968, 0, 0, 33.75);
	CreateObject(987, -391.221344, -1392.400146, 21.892338, 0, 0, 33.75);
	CreateObject(966, -397.467438, -1396.828735, 22.403381, 0, 0, 213.75);
	CreateObject(968, -397.433044, -1396.804321, 23.290543, 0, 0, 33.75);
	CreateObject(967, -397.958618, -1398.225098, 22.388947, 0, 0, 32.8906);
	CreateObject(970, -398.624756, -1399.838257, 22.946869, 0, 0, 33.75);
	CreateObject(970, -398.624237, -1399.845947, 24.004873, 0, 0, 33.75);
	CreateObject(970, -398.591522, -1399.849609, 25.110973, 0, 0, 33.75);
	CreateObject(3279, -362.633789, -1333.434937, 21.310383, 0, 0, 168.75);
	CreateObject(3279, -379.475128, -1375.770874, 21.992777, 0, 0, 146.25);
	CreateObject(3399, -406.027985, -1434.041016, 27.314953, 0, 0, 0);
	CreateObject(8614, -372.305908, -1417.014893, 27.075842, 0, 4.2972, 270);
	CreateObject(8614, -365.900513, -1414.699829, 30.864906, 0, 0, 180);
	CreateObject(3279, -409.262695, -1343.191040, 24.378386, 0, 0, 348.75);
	CreateObject(1458, -405.727112, -1327.119629, 25.949831, 0, 0, 0);
	CreateObject(12921, -393.833313, -1395.790161, 25.587015, 0, 0, 33.75);
	CreateObject(17324, -390.830566, -1340.374146, 23.964664, 4.2972, 1.7189, 349.6094);
	CreateObject(3461, -390.298584, -1393.040649, 23.675467, 0, 0, 0);
	CreateObject(3168, -410.485931, -1357.338867, 23.502028, 0, 0, 168.75);
	CreateObject(4726, 332.120636, -1836.737549, 2.014965, 0, 0, 180);
	CreateObject(3279, 302.548859, -1779.621338, 3.555548, 0, 0, 315);
	CreateObject(3279, 300.057770, -1813.526978, 3.445765, 0, 0, 22.5);
	CreateObject(16778, 335.582611, -1778.450073, 4.096195, 0, 0, 270);
	CreateObject(1369, 313.124207, -1784.247314, 4.240703, 0, 0, 22.5);

    //VEHICLES
  	AddStaticVehicle(497,2836.5798,-2530.6621,18.1278,281.8553,6,0); // maveric m1 getaway 1

	AddStaticVehicle(482,-2444.4460,501.1308,29.7963,254.9694,1,1); // BURRITO sf getawy car 2

	AddStaticVehicle(497,-1481.9639,144.6383,18.9529,133.6042,3,3); // maveric  getaway 3

	AddStaticVehicle(482,2194.4309,1444.0286,10.9392,0.9995,48,48); // burrito getaway 4

	AddStaticVehicle(482,1713.2853,-1613.0427,13.6739,338.0,125,108); // BURRITO ls getaway car 5

	AddStaticVehicle(572,1261.8896,303.3519,19.5877,155.0000,3,0); // lawnmower zombi 6

	AddStaticVehicle(482,2103.3213,2079.2488,10.9461,270.0000,126,0); // burrito--7

	AddStaticVehicle(560,2318.2593,6.4544,26.1897,90.0000,1,1); // SULTAN//bank robbry getawy car 8

	AddStaticVehicle(482,-535.3323,-487.2228,25.7000,0.0000,126,0); // burrito sex shop 9

	AddStaticVehicle(576,-1051.9135,-679.1596,32.0000,0.0000,0,0); // torando--mission car134 10

	AddStaticVehicle(482,2585.8357,2780.8374,10.9404,270.0000,0,0); // burrito k.a.a.c fules--11

	AddStaticVehicle(515,2260.0344,2763.9900,11.8394,90.0000,0,3); // roadtrain--108 tm 12

	AddStaticVehicle(515,214.7370,-263.5162,2.5967,176.2460,3,0); // roadtrain--187 tm 13

	AddStaticVehicle(515,-1988.3328,-2382.9001,31.6450,303.4193,3,0); // roadtrain tm 14

	AddStaticVehicle(515,-1712.7483,14.3026,4.6194,292.0642,3,0); // roadtrain tm 15

	AddStaticVehicle(515,1048.9388,2133.8923,11.8397,90.0000,0,3); // roadtrain--16 tm

	AddStaticVehicle(515,2865.8965,932.6283,11.7964,116.8550,0,3); // roadtrain--17 tm

	AddStaticVehicle(515,259.4977,1429.8959,11.8406,180.0000,0,3); // roadtrain--octane springs-18 tm

	AddStaticVehicle(483,-1096.1134,-1621.6436,76.3596,271.1122,0,0); // camper weed farm-19

	AddStaticVehicle(483,-1849.0,-1576.0,22.0,235.0,0,0); // camper moved to scrappers--20

	AddStaticVehicle(592,1548.8715,1466.1749,12.0153,38.9954,1,1); // andromadajet 21

	AddStaticVehicle(592,2110.9810,-2451.1707,14.7411,153.1628,1,1); // andromadajet 22

	AddStaticVehicle(592,-1315.2804,-237.7538,15.3709,323.9496,1,1); // andromadajet 23
		//Farmer
	CreateVehicle(428, -391.341003, -1342.480713, 25.150469, 167, 3, 3, 3600); //Obj Vehicle

	CreateVehicle(508, -375.027893, -1345.119263, 23.437363, 156, 86, 86, 60);

	CreateVehicle(468, -414.041534, -1356.140015, 24.428274, 167, 86, 86, 60);

	CreateVehicle(478, -384.486725, -1381.990845, 23.293976, 32, 86, 86, 60);

	CreateVehicle(478, -391.276611, -1386.882690, 23.447811, 32, 86, 86, 60);

	CreateVehicle(489, -405.874725, -1370.005615, 24.233240, 249, 86, 86, 60);

	CreateVehicle(489, -408.009125, -1376.249512, 24.044243, 249, 86, 86, 60);

	CreateVehicle(413, -374.806152, -1408.354248, 25.941299, 294, 86, 86, 60);

	CreateVehicle(479, -374.717346, -1427.224121, 25.976353, 360, 86, 86, 60);

	CreateVehicle(478, -381.140503, -1397.125000, 24.258635, 112, 86, 86, 60);

	CreateVehicle(468, -380.236725, -1450.241699, 25.976353, 360, 86, 86, 60);

	CreateVehicle(468, -376.970245, -1450.228394, 25.976353, 360, 86, 86, 60);

	CreateVehicle(468, -373.098236, -1450.310059, 25.976353, 360, 86, 86, 60);

	AddStaticVehicle(426,1230.4683,-1288.9296,13.2550,271.6072,7,7); //

	AddStaticVehicle(426,1214.3450,-1357.6713,13.3009,182.4956,7,7); // miestas

	AddStaticVehicle(513,1779.3787,-2462.8601,14.1143,274.3707,48,18); // airport

	AddStaticVehicle(513,1784.8390,-2625.0532,14.1097,358.3885,48,18); // airport

	AddStaticVehicle(487,1957.2919,-2325.0481,13.8603,215.2047,3,29); // airport

	AddStaticVehicle(593,1926.2396,-2289.6250,14.0165,269.9998,58,8); // airport

	AddStaticVehicle(494,1859.6465,-2291.9211,13.4417,341.5497,75,79); // miestas oro uostas

	AddStaticVehicle(494,1862.6290,-2271.1470,13.4421,351.5345,75,79); // miestas oro uostas

	AddStaticVehicle(494,1854.9243,-2314.6455,13.4421,8.5208,75,79); // miestas oro uostas

	AddStaticVehicle(495,1870.7672,-2282.4336,13.8842,264.3502,123,124); // miestas oro uostas

	AddStaticVehicle(522,1899.9260,-2290.0735,13.1100,262.6362,39,106); // miestas oro uostas

	AddStaticVehicle(522,1899.3330,-2274.2212,13.1187,88.7357,39,106); // miestas oro uostas

	AddStaticVehicle(522,1926.5498,-1943.0485,13.1223,91.4798,39,106); // miestas

	AddStaticVehicle(507,1643.7715,-1542.1986,13.3926,88.4127,53,53); // miestas

	AddStaticVehicle(438,1645.1755,-1538.0005,13.5727,84.8690,6,76); // miestas

	AddStaticVehicle(507,1322.6228,-1453.8722,13.3186,181.3518,62,62); // miestas

	AddStaticVehicle(416,1178.0424,-1338.0825,14.0472,268.6290,1,3); // miestas

	AddStaticVehicle(507,1065.7319,-1257.0474,14.3820,359.9340,53,53); // miestas

	AddStaticVehicle(477,1065.8159,-1210.8549,16.7755,359.7335,94,1); // miestas

	AddStaticVehicle(556,897.4998,-1207.8750,17.3517,85.7812,1,1); // miestas

	AddStaticVehicle(556,861.2751,-1240.7499,14.3954,179.9735,32,1); // miestas

	AddStaticVehicle(556,866.7633,-1275.0134,14.9242,0.0268,1,1); // miestas

	AddStaticVehicle(555,1093.3533,-1248.6372,15.5112,86.3734,2,1); // miestas

	AddStaticVehicle(555,967.1003,-1001.2731,35.4154,353.4668,2,1); // miestas

	AddStaticVehicle(545,960.9338,-937.8986,40.9879,5.3962,47,1); // miestas

	AddStaticVehicle(545,832.8478,-862.7345,69.4624,19.6069,47,1); // miestas

	AddStaticVehicle(541,636.4888,-1123.0079,44.1654,225.1233,13,8); // miestas

	AddStaticVehicle(541,298.0974,-1163.4821,80.5343,46.6227,13,8); // miestas

	AddStaticVehicle(541,347.8271,-1785.7319,4.8748,165.2322,13,8); // miestas

	AddStaticVehicle(412,343.8723,-1809.5167,4.2798,359.9962,30,1); // miestas

	AddStaticVehicle(412,327.9856,-1788.8767,4.6836,181.4097,27,1); // miestas

	AddStaticVehicle(412,314.6223,-1809.5172,4.2329,359.9959,29,8); // miestas

	AddStaticVehicle(568,276.6577,-1794.5470,4.2176,100.9650,21,1); // miestas

	AddStaticVehicle(571,363.1149,-2017.4093,7.1197,0.0607,51,53); // miestas

	AddStaticVehicle(571,367.1703,-2019.2720,6.9562,348.2882,51,53); // miestas

	AddStaticVehicle(571,373.0449,-2013.6974,6.9558,0.5550,51,53); // miestas

	AddStaticVehicle(571,372.4642,-1909.4205,6.9558,355.4822,51,53); // miestas

	AddStaticVehicle(559,441.6615,-1667.5107,25.2414,260.3622,2,1); // miestas

	AddStaticVehicle(559,720.8406,-1666.9359,10.3503,275.2278,2,1); // miestas

	AddStaticVehicle(446,719.8927,-1629.9324,-0.4947,358.8751,1,35); // miestas

	AddStaticVehicle(446,719.3188,-1656.3949,-0.4465,358.2444,1,35); // miestas

	AddStaticVehicle(446,719.7050,-1704.1200,-0.4879,1.4996,1,35); // miestas

	AddStaticVehicle(451,878.2673,-1779.3433,13.4674,266.0204,18,18); // miestas

	AddStaticVehicle(451,1163.0090,-1835.8018,13.3248,324.5280,18,18); // miestas

	AddStaticVehicle(456,1278.6592,-1812.0192,13.5581,334.3910,110,93); // miestas

	AddStaticVehicle(467,1396.3688,-1388.9160,13.2946,277.8080,13,8); // miestas

	AddStaticVehicle(506,2407.1306,105.3144,26.7747,3.9739,76,76); // kaimas

	AddStaticVehicle(489,2243.2805,98.6942,26.6274,117.6578,13,118); // kaimas

	AddStaticVehicle(489,2285.8428,-66.4560,26.2277,152.9942,119,113); // kaimas

	AddStaticVehicle(463,2300.8828,-0.6276,26.0253,355.9543,79,79); // kaimas

	AddStaticVehicle(463,2123.0571,40.1793,25.8704,84.8902,79,79); // kaimas

	AddStaticVehicle(506,1310.6508,247.5432,19.2591,65.9071,7,7); // kaimas
	AddStaticVehicle(505,1253.1930,250.1906,19.6937,140.0936,84,110); // kaimas

	AddStaticVehicle(505,1204.4664,276.7628,19.8892,149.4244,84,110); // kaimas

	AddStaticVehicle(505,802.9595,-604.8544,16.4824,107.5420,84,110); // kaimas

	AddStaticVehicle(507,687.6349,-581.2748,16.0828,180.8927,37,37); // kaimas

	AddStaticVehicle(507,228.3199,-181.5295,1.3272,4.4912,37,37); // kaimas

	AddStaticVehicle(507,155.4336,-64.7758,1.4030,85.7393,37,37); // kaimas

	AddStaticVehicle(515,-198.0833,-285.9992,2.5044,237.7226,42,76); // kaimas

	AddStaticVehicle(515,-176.2373,-283.3733,2.6218,270.5177,42,76); // kaimas

	AddStaticVehicle(496,494.3649,-1471.7657,18.3888,341.1295,9,14); // miestas

	AddStaticVehicle(496,779.8545,-1412.3055,13.2531,242.9471,9,14); // miestas

	AddStaticVehicle(468,764.5584,-1833.6329,8.2680,279.3487,6,6); // miestas

	AddStaticVehicle(434,641.6187,-1805.0868,8.9737,57.1892,4,4); // miestas

	AddStaticVehicle(429,884.9052,-1758.0636,13.2270,286.4933,1,2); // miestas

	AddStaticVehicle(401,1279.7577,-1800.8429,13.1804,90.1300,74,74); // miestas

	AddStaticVehicle(429,1762.5740,-1700.0878,13.1198,277.8399,1,2); // miestas

	AddStaticVehicle(412,2173.4976,-1806.7474,13.1350,178.5932,37,8); // miestas

	AddStaticVehicle(429,2757.9893,-1495.3981,29.2655,265.4453,1,2); // miestas

	AddStaticVehicle(419,2850.4585,-1619.0272,10.8905,162.9594,59,75); // miestas

	AddStaticVehicle(419,2841.2478,-2073.6858,10.8558,179.4317,59,75); // miestas

	AddStaticVehicle(520,2766.5525,-2433.9844,14.3486,0.0804,0,0); // miestas

	AddStaticVehicle(433,2787.7314,-2418.3950,14.0701,269.0348,43,0); // miestas

	AddStaticVehicle(470,2777.6382,-2463.2849,13.6303,176.8448,43,0); // miestas

	AddStaticVehicle(470,2778.3989,-2449.4800,13.6311,176.8433,43,0); // miestas

	AddStaticVehicle(451, 972.6795, -1879.249, 15, 0, -1, -1);

	AddStaticVehicle(451, 2463.391, -2605.633, 15, 0, -1, -1);

	AddStaticVehicle(419, 2432.969, -1334.461, 15, 0, -1, -1);

	AddStaticVehicle(571, 2147.756, -1002.85, 15, 0, -1, -1);

	AddStaticVehicle(522, 2204.798, -1393.677, 15, 0, -1, -1);

	AddStaticVehicle(495, 1402.4, -2258.232, 15, 0, -1, -1);

	AddStaticVehicle(419, 1695.218, -2384.56, 15, 0, -1, -1);

	AddStaticVehicle(522, 1402.4, -856.7839, 15, 0, -1, -1);

	AddStaticVehicle(571, 330.0002, -864.6794, 15, 0, -1, -1);

	AddStaticVehicle(451, -2271.077, 1300.21, 15, 0, -1, -1);

	AddStaticVehicle(419, -1583.519, -415.8491, 15, 0, -1, -1);

	AddStaticVehicle(495, -1529.441, -455.2987, 15, 0, -1, -1);

	AddStaticVehicle(522, -2692.109, -179.1512, 15, 0, -1, -1);

	AddStaticVehicle(522, -2135.883, 313.9693, 15, 0, -1, -1);

	AddStaticVehicle(451, -2518.289, 732.1356, 15, 0, -1, -1);

	AddStaticVehicle(419, -1896.396, 751.8604, 15, 0, -1, -1);

	AddStaticVehicle(495, -1726.438, 743.9704, 15, 0, -1, -1);

	AddStaticVehicle(571, -1587.381, 424.4283, 15, 0, -1, -1);

	AddStaticVehicle(522, -2047.041, 1359.385, 15, 0, -1, -1);

	AddStaticVehicle(419, -2062.492, 1091.127, 15, 0, -1, -1);

	AddStaticVehicle(451, -2383.094, 1039.843, 15, 0, -1, -1);

	AddStaticVehicle(495, -2807.99, 688.7409, 15, 0, -1, -1);

	AddStaticVehicle(522, -1985.238, -656.4919, 15, 0, -1, -1);

	AddStaticVehicle(419, 2021.171, 1334.004, 15, 0, -1, -1);

	AddStaticVehicle(522, 2056.314, 954.9333, 15, 0, -1, -1);

	AddStaticVehicle(451, 2060.219, 1612.505, 15, 0, -1, -1);

	AddStaticVehicle(419, 2091.458, 1945.158, 15, 0, -1, -1);

	AddStaticVehicle(495, 1689.259, 1453.914, 15, 0, -1, -1);

	AddStaticVehicle(571, 1220.677, 1569.956, 15, 0, -1, -1);

	AddStaticVehicle(571, 2528.801, 1655.053, 15, 0, -1, -1);

	AddStaticVehicle(495, 2337.463, 2037.992, 15, 0, -1, -1);

	AddStaticVehicle(451, 2130.506, 695.7729, 15, 0, -1, -1);

	AddStaticVehicle(419, 1673.639, 2730.376, 15, 0, -1, -1);

	AddStaticVehicle(522, 884.86, 2196.583, 15, 0, -1, -1);

	AddStaticVehicle(522, 2509.276, 1121.26, 15, 0, -1, -1);

	AddStaticVehicle(571, 1369.061, 2030.256, 15, 0, -1, -1);

	AddStaticVehicle(419, -1798.393, -2113.696, 15, 0, -1, -1);

	AddStaticVehicle(451, -630.6053, -2358.931, 15, 0, -1, -1);

	AddStaticVehicle(571, 1564.835, -595.5717, 15, 0, -1, -1);

	AddStaticVehicle(571, 1167.788, 35.03363, 15, 0, -1, -1);

	AddStaticVehicle(495, 2487.387, -735.7062, 15, 0, -1, -1);

	AddStaticVehicle(451, -2347.253, -1634.903, 15, 0, -1, -1);

	AddStaticVehicle(419, -2090.34, -2382.287, 15, 0, -1, -1);

	AddStaticVehicle(571, -2510.743, -2720.945, 15, 0, -1, -1);

	AddStaticVehicle(522, -268.5911, 1471.412, 15, 0, -1, -1);

	AddStaticVehicle(495, -233.5575, 2347.253, 15, 0, -1, -1);

	AddStaticVehicle(451, -1786.715, 2580.811, 15, 0, -1, -1);

	AddStaticVehicle(419, -2779.334, 2487.387, 15, 0, -1, -1);

	AddStaticVehicle(419, -1132.754, -817.4513, 15, 0, -1, -1);

	AddStaticVehicle(451, 326.9805, 1377.989, 15, 0, -1, -1);

	AddStaticVehicle(451, 560.538, 2720.945, 15, 0, -1, -1);

	AddStaticVehicle(492,2508.1248,-1666.3868,13.1491,15.4853,86,86); // Grove

	AddStaticVehicle(412,2490.4434,-1682.3845,13.1860,96.4607,86,86); // Voodoo Grove

	AddStaticVehicle(412,2498.6667,-1682.2102,13.2041,94.9152,86,86); // vodoo grove

	AddStaticVehicle(491,2486.1169,-1656.2588,13.0990,84.4212,86,86); // vrgo grove

	AddStaticVehicle(600,2473.5251,-1690.1067,13.1864,359.1675,86,86); // picador grove

	AddStaticVehicle(487,2531.5366,-1676.1827,20.1086,97.8435,86,86); // maverick grove

	AddStaticVehicle(567,2493.1396,-1655.8577,13.2352,271.2886,86,86); // savana grove

	AddStaticVehicle(517,2095.1924,-1288.3097,24.2722,357.6156,5,5); // majestic ballas

	AddStaticVehicle(517,2102.2903,-1287.4292,24.2952,359.2334,5,5); // majestic ballas

	AddStaticVehicle(517,2112.5071,-1293.7686,23.8302,267.2820,5,5); // majestic ballas

	AddStaticVehicle(534,2096.1626,-1313.2544,23.9960,178.9042,5,5); // remington ballas

	AddStaticVehicle(534,2085.9944,-1293.2449,23.6962,89.5374,5,5); // remington ballas

	AddStaticVehicle(481,2479.9304,-1663.4099,12.8466,175.8721,86,86); // groove bmx

	AddStaticVehicle(481,2484.1589,-1665.1245,12.8582,357.8141,86,86); // groove bmx

	AddStaticVehicle(531,-131.4942,-65.0988,3.0818,114.1802,0,0); // farmers traltorius

	AddStaticVehicle(505,-115.6592,-54.1333,3.2532,219.2878,0,0); // farmers rancher

	AddStaticVehicle(505,-87.9612,-57.9575,3.2600,335.7502,0,0); // farmers rancher

	AddStaticVehicle(478,-111.0202,-42.3410,3.1053,338.1434,0,0); // farmers walton

	AddStaticVehicle(478,-104.5622,-24.6443,3.1090,340.5026,0,0); // farmers walton

	AddStaticVehicle(512,-131.8605,-28.2895,3.3975,339.5149,0,0); // farmers lektuvas

	AddStaticVehicle(489,937.7028,-1235.5299,16.7341,180.0803,120,123); // miestas

	AddStaticVehicle(463,1050.5000,-1357.9991,12.9019,178.5938,19,19); // miestas

	AddStaticVehicle(540,1275.4535,-2010.7208,58.8389,267.6081,1,1); // Mafia vincent

	AddStaticVehicle(540,1275.3818,-2018.5950,58.8430,270.7665,1,1); // mafia vincent

	AddStaticVehicle(540,1276.2601,-2028.3301,58.8489,271.1149,1,1); // mafia vincent

	AddStaticVehicle(560,1247.6035,-2024.0850,59.4836,269.9649,1,1); // mafia sultan

	AddStaticVehicle(560,1246.9521,-2043.0773,59.5033,88.0027,1,1); // mafia sultan

	AddStaticVehicle(409,1260.8840,-2007.7701,59.2925,91.5267,1,1); // mafia limuzinas

	AddStaticVehicle(487,1118.0510,-2052.8110,74.6033,359.0276,1,1); // mafia maverick

	AddStaticVehicle(487,1117.4603,-2020.3920,74.6054,177.4089,1,1); // mafia maverick

	AddStaticVehicle(561,2078.2407,-1177.2708,23.6474,356.1435,54,38); // miestas

	AddStaticVehicle(576,2497.3071,-1058.9734,69.2863,175.6956,6,6); // vagos tornado

	AddStaticVehicle(576,2502.9937,-1030.9281,69.4980,355.5020,6,6); // vagos tornado

	AddStaticVehicle(576,2518.1006,-1034.9027,69.1581,88.2335,6,6); // vagos tornado

	AddStaticVehicle(549,2490.2346,-1053.2371,67.9128,248.0749,6,6); // vagos tampa

	AddStaticVehicle(549,2477.3135,-1055.9729,66.3357,345.2494,6,6); // vagos tampa

	AddStaticVehicle(474,2645.8445,-1988.7544,13.3150,358.0437,93,93); // Aztecas

	AddStaticVehicle(474,2659.4619,-2010.4716,13.3172,87.1972,93,93); // aztecas

	AddStaticVehicle(474,2651.8950,-1996.7585,13.3173,269.5836,93,93); // aztecas

	AddStaticVehicle(536,2655.8152,-2007.9550,13.1205,88.4698,93,93); // aztecas

	AddStaticVehicle(536,2662.2800,-1987.8608,13.2896,2.6622,93,93); // aztecas

	AddStaticVehicle(432,277.4998,1989.2408,17.6715,268.5227,43,0); // army tank

	AddStaticVehicle(432,281.1252,2022.2577,17.6759,268.6625,43,0); // army tank

	AddStaticVehicle(433,301.7500,1863.8750,18.1161,360.0000,43,0); // barracks army

	AddStaticVehicle(470,304.7514,1839.3782,17.6000,336.0914,43,0); // patriot army

	AddStaticVehicle(548,296.0880,1925.9004,19.3103,236.2530,1,1); // cargobob army

	AddStaticVehicle(520,307.2206,1990.2145,18.3639,319.3066,0,0); // hydra army

	AddStaticVehicle(520,307.4964,2031.6863,18.3639,328.3982,0,0); // hydra army
	
	AddPlayerClassEx(1 ,287,316.1606,1974.3752,17.6406,98.8389,1,0,30,300,28,200); // army skin
	AddPlayerClassEx(2 ,159,-47.8757,30.3243,6.4844,338.9877,6,0,25,100,28 ,200); // fermeris
	AddPlayerClassEx(2 ,161,-47.8757,30.3243,6.4844,338.9877,6,0,25,100,28 ,200); // fermeris
	AddPlayerClassEx(2 ,158,-47.8757,30.3243,6.4844,338.9877,6,0,25,100,28 ,200); // fermeris
	AddPlayerClassEx(3 ,105,2495.4573,-1688.0197,13.5447,5.8084,4,0,31,200,28,200); // Grove
	AddPlayerClassEx(3 ,106,2495.4573,-1688.0197,13.5447,5.8084,4,0,31,200,28,200); // Grove
	AddPlayerClassEx(3 ,107,2495.4573,-1688.0197,13.5447,5.8084,4,0,31,200,28,200); // Grove
	AddPlayerClassEx(4 ,102,2101.2529,-1290.6940,24.0159,189.4488,5,0,30,200,28,200); // Ballas
	AddPlayerClassEx(4 ,103,2101.2529,-1290.6940,24.0159,189.4488,5,0,30,200,28,200); // Ballas
	AddPlayerClassEx(4 ,104,2101.2529,-1290.6940,24.0159,189.4488,5,0,30,200,28,200); // Ballas
	AddPlayerClassEx(5 ,108,2510.6824,-1041.7144,69.4176,174.1049,24,50,30,200,28,200); // Vagos
	AddPlayerClassEx(5 ,109,2510.6824,-1041.7144,69.4176,174.1049,24,50,30,200,28,200); // Vagos
	AddPlayerClassEx(5 ,110,2510.6824,-1041.7144,69.4176,174.1049,24,50,30,200,28,200); // Vagos
	AddPlayerClassEx(6 ,114,2637.7361,-1992.5823,13.9935,228.2397,18,10,27,100,28,200); // Aztecas
	AddPlayerClassEx(6 ,115,2637.7361,-1992.5823,13.9935,228.2397,18,10,27,100,28,200); // Aztecas
	AddPlayerClassEx(6 ,116,2637.7361,-1992.5823,13.9935,228.2397,18,10,27,100,28,200); // Aztecas
	AddPlayerClassEx(7 ,120,1128.7726,-2037.4619,69.4292,264.8338,23,100,34,15,28,200); // mafia
	AddPlayerClassEx(7 ,117,1128.7726,-2037.4619,69.4292,264.8338,23,100,34,15,28,200); // mafia
	AddPlayerClassEx(7 ,113,1128.7726,-2037.4619,69.4292,264.8338,23,100,34,15,28,200); // mafia
	return 1;
}

public OnGameModeExit()
{
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
 	SetPlayerInterior(playerid,11);
 	SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
    SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
 	SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
 	SetPlayerFacingAngle(playerid,0.0);
    if(classid == 0) {
      gTeam[playerid] = TEAM_Army;
      GameTextForPlayer(playerid, "~b~Army", 1000, 6);
 	}
    else if(classid == 1 || classid == 2 || classid == 3) {
      gTeam[playerid] = TEAM_Farmers;
      GameTextForPlayer(playerid, "~w~Farmers", 1000, 6);
	}
    else if(classid == 4 || classid == 5 || classid == 6) {
      gTeam[playerid] = TEAM_Grove;
      GameTextForPlayer(playerid, "~n~Grove", 1000, 6);
	}
    else if(classid == 7 || classid == 8 || classid == 9) {
      gTeam[playerid] = TEAM_Ballas;
      GameTextForPlayer(playerid, "~r~Ballas", 1000, 6);
	}
    else if(classid == 10 || classid == 11 || classid == 12) {
      gTeam[playerid] = TEAM_Vagos;
      GameTextForPlayer(playerid, "~g~Vagos", 1000, 6);
	}
    else if(classid == 13 || classid == 14 || classid == 15) {
      gTeam[playerid] = TEAM_Aztecas;
      GameTextForPlayer(playerid, "~p~Aztecas", 1000, 6);
	}
	else if(classid == 16 || classid == 17 || classid == 18) {
      gTeam[playerid] = TEAM_Mafia;
      GameTextForPlayer(playerid, "~y~Mafia", 1000, 6);
	}


	return 1;
}

public OnPlayerConnect(playerid)
{
	Visitors++;
    AllowPlayerTeleport(playerid,0);
	new Text: gText;
	gText = TextDrawCreate(5.0, 431.0, "~y~Use /report id and reason if you see a cheater or rule breaker.");
	TextDrawUseBox(gText, true);
	TextDrawShowForPlayer(playerid, gText);
	Visitors ++;
	new tmp[255],player[24];
	GetPlayerName(playerid,player,sizeof(player));
	format(tmp,sizeof(tmp),"%s (%d) Connected The Server.",player,playerid);SendClientMessageToAll(COLOR_GREY,tmp);
	printf("OnPlayerConnect(%d)", playerid);
	SendClientMessage(playerid, COLOR_LIGHTBLUE, "**Welcome to Los Santos Gang Wars [TDM] Server! ");
	SendClientMessage(playerid, COLOR_YELLOW, "**New to the server? Please /register an account. ");
	SendClientMessage(playerid, COLOR_YELLOW, "**Already registered? Please /login.");
	SendClientMessage(playerid, COLOR_YELLOW, "**Type /rules for list of rules.");
	SendClientMessage(playerid, COLOR_LIGHTBLUE, "**Now recruiting, visit www.uvhclan.com ");
	GameTextForPlayer(playerid,"~G~Los Santos Gang War!",3000,5);
	GangZoneShowForPlayer(playerid, Grove1, 0x00FF0072);
	GangZoneShowForPlayer(playerid, Army2, 0x8040008F);
	GangZoneShowForPlayer(playerid, Mafia1, 0x0000FF74);
	GangZoneShowForPlayer(playerid, Ballas1, 0xCE16E976);
	GangZoneShowForPlayer(playerid, Vagos1, 0xFFFF0076);
	GangZoneShowForPlayer(playerid, Aztecas1, 0x00FFFF7C);
	GangZoneShowForPlayer(playerid, Vagos2, 0xFFFF0078);
	GangZoneShowForPlayer(playerid, Army1, 0x8040008F);
	GangZoneShowForPlayer(playerid, Grove2, 0x00FF007D);
	GangZoneShowForPlayer(playerid, Mafia2, 0x0000FF74);
	GangZoneShowForPlayer(playerid, Ballas2, 0x80008073);
	GangZoneShowForPlayer(playerid, Aztecas2, 0x00FFFF78);
	GangZoneShowForPlayer(playerid, Farmers1, 0x00000083);
	GangZoneShowForPlayer(playerid, Aztecas3, 0x00FFFF7D);
	GangZoneShowForPlayer(playerid, Mafia3, 0x0000FF74);
	GangZoneShowForPlayer(playerid, Farmers, 0x0000008B);
	GangZoneShowForPlayer(playerid, Vagos, 0xFFFF007C);
	GangZoneShowForPlayer(playerid, Ballas3, 0x80008070);
	GangZoneShowForPlayer(playerid, Grove3, 0x00FF007D);
	GangZoneShowForPlayer(playerid, Mafia4, 0x0000FF7C);
	GangZoneShowForPlayer(playerid, Aztecas4, 0x00FFFF81);
	GangZoneShowForPlayer(playerid, Ballas4, 0x80008070);
	GangZoneShowForPlayer(playerid, Army4, 0x80400096);
	GangZoneShowForPlayer(playerid, Farmers3, 0x00000083);
	GangZoneShowForPlayer(playerid, Army5, 0x8040008F);
	GangZoneShowForPlayer(playerid, Niekeno, 0xFFFFFF91);
	GameTextForPlayer(playerid,"~y~Los Santos ~r~Gang Wars",2500,5);
	GivePlayerMoney(playerid, 10000);
	SetPlayerColor(playerid, COLOR_GREY); 
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	new pname[MAX_PLAYER_NAME],pmsg[256];
	GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
	format(pmsg,256,"%s left server",pname);
	for(new j=0;j<MAX_PLAYERS;j++){
		if(j!=playerid){
			SendClientMessage(j,COLOR_WHITE,pmsg);
		}
	}
	PlayerLeaveGang(playerid);
	for(new i = 0; i < MAX_SPAWNWEAPONS;i++) playerWeapons[playerid][i]=0;
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
   	SetPlayerInterior(playerid,0);
    if(gTeam[playerid] == TEAM_Army) SetPlayerColor(playerid, 0x804000FF);
    else if(gTeam[playerid] == TEAM_Farmers) SetPlayerColor(playerid, 0x000000DD);
    else if(gTeam[playerid] == TEAM_Grove) SetPlayerColor(playerid, 0x00FF00FF);
    else if(gTeam[playerid] == TEAM_Ballas) SetPlayerColor(playerid, 0xF200F2FF);
    else if(gTeam[playerid] == TEAM_Vagos) SetPlayerColor(playerid, 0xFFFF00AA);
    else if(gTeam[playerid] == TEAM_Aztecas) SetPlayerColor(playerid, 0x00FFFFFF);
    else if(gTeam[playerid] == TEAM_Mafia) SetPlayerColor(playerid, 0x0000FFFF);
	return 1;
}

public OnPlayerSpawn(playerid)
{
	SetPlayerTeam(playerid, GetPlayerTeam(playerid));
	if(gTeam[playerid] == TEAM_Farmers) {
		SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE_BLUE,playerid,1,1);
	    GameTextForPlayer(playerid,
		   "Defend ~g~FARMERS ~w~Teams's ~r~Money Truck",
		   6000,5);
	}
	else if(gTeam[playerid] == TEAM_Mafia) {
		SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE_BLUE,playerid,1,0);
	    SetPlayerCheckpoint(playerid,834.8496,-2053.5127,15,10.0);
	    GameTextForPlayer(playerid,
		   "Catch ~g~FARMERS ~w~Teams's ~r~Money Truck",
		   6000,5);
	}
	if(X1[playerid] == 0) {}
	else
	{
	    SetPlayerPos(playerid,X1[playerid],Y1[playerid],Z1[playerid]);
	}
	ResetPlayerWeapons(playerid);
	for(new i=0;i<MAX_SPAWNWEAPONS;i++) {
		if(playerWeapons[playerid][i] > 0) {
			GivePlayerWeapon(playerid,spawnWeapons[i][0],spawnWeapons[i][1]*playerWeapons[playerid][i]);
		}
	}
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	if(GetPlayerState(killerid) == 2)
	{
			new name[24],name1[24];
 			new string1[150];
			GetPlayerName(killerid,name,24);
  			GetPlayerName(playerid,name1,24);
  			SetPlayerHealth(killerid,0);
			format(string1,sizeof(string1), "%s drivebyed %s",name,name1);
			for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerAdmin(i))
			{
				SendClientMessage(i,COLOR_PINK,string1);
				return 0;
			}
		    GetPlayerPos(playerid,X1[playerid],Y1[playerid],Z1[playerid]);
	}
	else
	{
		X1[playerid] = 0;
		Y1[playerid] = 0;
		Z1[playerid] = 0;
	}
	if	(killerid == INVALID_PLAYER_ID)
		{
 		}
 	else
	 	{
        if	(gTeam[killerid] != gTeam[playerid])
			{
	    	// Valid kill
			GivePlayerMoney(killerid, 10000);
   			exp[killerid] ++;
        	SetPlayerScore(killerid, exp[killerid]);
        	new Kzone = IsInZone(killerid);
        	new Vzone = IsInZone(playerid);
        	if ((Kzone!=-1)&&(Kzone==Vzone)&&(gTeam[killerid]!=ZoneOwner[Kzone])&&(UnderAttack[Kzone]==0))
        	    {
        	    UnderAttack[Kzone]=gTeam[killerid];
       	    	for (new i=0;i<MAX_PLAYERS;i++)
				    {
				    if 	(gTeam[i]==gTeam[killerid])
						{
						GameTextForPlayer(i,"ATACK!",5000,5);
						SendClientMessage(i,COLOR_BRIGHTRED,"FIRST GANG WHICH WILL KILL 10 ENEMIES IN AREA.WILL WIN!");
						GangZoneFlashForPlayer(i,Kzone,COLOR_BRIGHTRED);
						}
					if	(gTeam[i]==ZoneOwner[Kzone])
					    {
					    GameTextForPlayer(i,"YOU ARE ATACKED!",5000,5);
					    SendClientMessage(i,COLOR_BRIGHTRED,"FIRST GANG WHICH WILL KILL 10 ENEMIES IN AREA.WILL WIN!");
						GangZoneFlashForPlayer(i,Kzone,COLOR_BRIGHTRED);
					    }
				    }
   	    		}
			if (UnderAttack[Kzone]>0)
			    {
			    if 	((UnderAttack[Kzone]==gTeam[killerid])||(gTeam[playerid]==ZoneOwner[Kzone]))
			        {
                    KillCount[gTeam[killerid]][Kzone]++;
                    if (KillCount[gTeam[killerid]][Kzone]==10)
                        {
                        UnderAttack[Kzone]=-1;
                        SetTimerEx("unsafe",300000,0,"d",Kzone);
                        KillCount[gTeam[killerid]][Kzone]=0;
                        KillCount[gTeam[playerid]][Kzone]=0;
                        new color=getColor(killerid);
                        GangZoneShowForAll(Kzone,color);
              	    	for (new i=0;i<MAX_PLAYERS;i++)
						    {
						    if 	(gTeam[i]==gTeam[killerid])
								{
								GameTextForPlayer(i,"WE TOOK THAT SHIT!",5000,5);
								SendClientMessage(i,COLOR_BRIGHTRED,"ZONE WILL BE SAFE FOR 5 MINUTES.");
								GangZoneStopFlashForPlayer(i,Kzone);
								}
							if	(gTeam[i]==ZoneOwner[Kzone])
							    {
							    GameTextForPlayer(i,"WE LOST OUR HOOD!",5000,5);
           						SendClientMessage(i,COLOR_BRIGHTRED,"YOU HAVE TO WAIT FOR 5 MINUTES BEFORE ATTACKING.");
								GangZoneStopFlashForPlayer(i,Kzone);
							    }
						    }
                        }
					else
					    {
					    new kill =10 - KillCount[gTeam[killerid]][Kzone];
				     	format(TEXT,sizeof(TEXT),"We still have to kill %d enemies",kill);
				     	SendClientMessage(killerid,COLOR_BRIGHTRED,TEXT);
					    }
			        }
			    }
			}
		else
		{
			//Team Killer!
			new warning[256];
			format(warning, sizeof(warning), "You just team killed HAUR!");
			SendClientMessage(killerid, 0xFFFF00AA, warning);
			GivePlayerMoney(killerid, -10000);
			SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
		}
	}

	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

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

public OnPlayerText(playerid, text[])
{
	if(strcmp(text[0],"@",true) == 0)
	{
		if(IsPlayerAdmin(playerid))
		{
			for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerAdmin(i))
			{
			    new string1[150];
				new name[24];
			    GetPlayerName(playerid,name,24);
				format(string1,sizeof(string1), "[AChat]%s: %s",name,text[1]);
				SendClientMessage(i,COLOR_PINK,string1);
				return 0;
			}
		}
	}
	return 1;
}

public OnPlayerPrivmsg(playerid, recieverid, text[])
{
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256];
	new weaponid;
	new idx;
	cmd = strtok(cmdtext, idx);

	if (strcmp(cmdtext, "/rules", true)==0)
	{

		SendClientMessage(playerid, COLOR_LIGHTBLUE, "--------------------------------Server Commands--------------------------------");
		SendClientMessage(playerid, COLOR_ORANGE, "**/admins | Beta stages please report any bugs you might see.");
		SendClientMessage(playerid, COLOR_LIGHTBLUE, "--------------------------------Server Rules--------------------------------");
		SendClientMessage(playerid, COLOR_BRIGHTRED, "**Two shot is allowed.");
		SendClientMessage(playerid, COLOR_ORANGE, "**No drive by shooting.");
		SendClientMessage(playerid, COLOR_ORANGE, "**No mods allowed. It can effect gameplay.");
		SendClientMessage(playerid, COLOR_ORANGE, "**No hacks/cheats allowed. Instant Ban!");
		SendClientMessage(playerid, COLOR_BRIGHTRED, "** Have fun on the server!");
		return 1;
	}

	if(strcmp(cmd, "/buyweapon", true) == 0) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /buyweapon [weapon number]");
			return 1;
		}
		weaponid = strval(tmp);

		if(IsPlayerInCheckpoint(playerid)==0 || playerCheckpoint[playerid]!=CP_AMMU) {
			SendClientMessage(playerid, COLOR_YELLOW, "You need to be in an Ammunation to purchase weapons.");
			return 1;
		}
		if(GetPlayerMoney(playerid) < spawnWeapons[weaponid][2]) {
			SendClientMessage(playerid, COLOR_RED, "You don't have enough money!");
			return 1;
		}
		if(weaponid < 0 || weaponid > MAX_SPAWNWEAPONS-1){
			SendClientMessage(playerid, COLOR_RED, "Invalid weapon number.");
			return 1;
		}
		new string[255];
		format (string, sizeof(string), "You purchased 1 %s for when you spawn.",weaponNames[spawnWeapons[weaponid][0]]);
		SendClientMessage(playerid, COLOR_GREEN, string);

		GivePlayerWeapon(playerid, spawnWeapons[weaponid][0], spawnWeapons[weaponid][1]);
		playerWeapons[playerid][weaponid]++;

		GivePlayerMoney(playerid, 0-spawnWeapons[weaponid][2]);
		return 1;
	}
	//--------------------------------------------
    new visitorstr[256];
    new sendername[24],giveplayer[24];
	if (strcmp(cmdtext, "/users", true)==1)
 	{
		format(visitorstr, sizeof(visitorstr), "This server today had %d users until last restart", Visitors);
		SendClientMessage(playerid, COLOR_GREEN, visitorstr);
		return 1;
	}

	if (strcmp(cmdtext, "/resetvisitors", true) == 0) {
		if(IsPlayerAdmin(playerid) == 1) {
			Visitors = 0;
		}
		else {
			SendClientMessage(playerid, COLOR_RED, "You are not permitted to reset the visitors counter");
        }
    	return 1;
	}

	if(strcmp(cmd, "/gang", true) == 0) {
	    new tmp[256];
	    new gangcmd, gangnum;
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [create/join/invite/quit] [name/number]");
			return 1;
		}
		new giveplayerid;
		giveplayerid = strval(tmp);

		if(strcmp(tmp, "create", true)==0)
		    gangcmd = 1;
		else if(strcmp(tmp, "invite", true)==0)
		    gangcmd = 2;
		else if(strcmp(tmp, "join", true)==0)
		    gangcmd = 3;
		else if(strcmp(tmp, "quit", true)==0)
		    gangcmd = 4;

		tmp = strtok(cmdtext, idx);
		if(gangcmd < 3 && !strlen(tmp)) {
		    if(gangcmd==0)
				SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [create/join/invite/quit] [name/number]");
			else if(gangcmd==1)
				SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [create] [name]");
			else if(gangcmd==2)
				SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [invite] [playerID]");
			return 1;
		}
		//Create Gang//
		if(gangcmd==1) {
		    if(playerGang[playerid]>0) {
				SendClientMessage(playerid, COLOR_RED, "You are already in a gang!");
				return 1;
		    }
			new string[255];
			for(new i = 1; i < MAX_GANGS; i++) {
				if(gangInfo[i][0]==0) {
				    //name gang
					format(gangNames[i], MAX_GANG_NAME, "%s", tmp);
					//Gang exists
					gangInfo[i][0]=1;
					//There is one member
					gangInfo[i][1]=1;
					//Gang color is player's color
					gangInfo[i][2]=playerColors[playerid];

					//Player is the first gang member
					gangMembers[i][0] = playerid;
					format(string, sizeof(string),"You have created the gang '%s' (id: %d)", gangNames[i], i);
					SendClientMessage(playerid, COLOR_GREEN, string);

					playerGang[playerid]=i;

					return 1;
				}
			}

			return 1;

		//Join Gang//
		} else if (gangcmd==3) {
	 		gangnum = gangInvite[playerid];

		    if(playerGang[playerid]>0) {
				SendClientMessage(playerid, COLOR_RED, "You are already in a gang!");
				return 1;
		    }
	 		if(gangInvite[playerid]==0) {
				SendClientMessage(playerid, COLOR_RED, "You have not been invited to a gang.");
				return 1;
			}
			if(gangInfo[gangnum][0]==0) {
				SendClientMessage(playerid, COLOR_RED, "That gang does not exist!");
				return 1;
			}

			if(gangInfo[gangnum][1] < MAX_GANG_MEMBERS) {
			    new i = gangInfo[gangnum][1];

				gangInvite[playerid]=0;

				gangMembers[gangnum][i] = playerid;
				new string[255];
			    GetPlayerName(playerid, sendername, MAX_PLAYER_NAME);
				for(new j = 0; j < gangInfo[gangnum][1]; j++) {
					format(string, sizeof(string),"%s has joined your gang.", sendername);
					SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
				}

				gangInfo[gangnum][1]++;
				playerGang[playerid] = gangnum;
				SetPlayerColor(playerid,gangInfo[gangnum][2]);
				format(string, sizeof(string),"You have joined the gang '%s' (id: %d)", gangNames[gangnum], gangnum);
				SendClientMessage(playerid, COLOR_GREEN, string);

				return 1;
			}

			SendClientMessage(playerid, COLOR_RED, "That gang is full.");
			return 1;

		//Invite to Gang//
		} else if (gangcmd==2) {
	 		giveplayerid = strval(tmp);
			if(playerGang[playerid]==0) {
				SendClientMessage(playerid, COLOR_RED, "You are not in a gang!");
				return 1;
			}
			new string[255];
			if(IsPlayerConnected(giveplayerid)) {
				GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				GetPlayerName(playerid, sendername, sizeof(sendername));

				format(string, sizeof(string),"You have sent a gang invite to %s.", giveplayer);
				SendClientMessage(playerid, COLOR_GREEN, string);
				format(string, sizeof(string),"You have recieved a gang invite from %s to '%s' (id: %d)", sendername, gangNames[playerGang[playerid]],playerGang[playerid]);
				SendClientMessage(giveplayerid, COLOR_GREEN, string);

				gangInvite[giveplayerid]=playerGang[playerid];

			} else
				SendClientMessage(playerid, COLOR_RED, "No such player exists!");
		} else if (gangcmd==4) {
		    PlayerLeaveGang(playerid);
		}

		return 1;
	}

	//------------------- /ganginfo

	if(strcmp(cmd, "/ganginfo", true) == 0) {
	    new tmp[256];
	    new string[255];
	    new gangnum;
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp) && playerGang[playerid]==0) {
			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ganginfo [number]");
			return 1;
		} else if (!strlen(tmp))
			gangnum = playerGang[playerid];
		else
			gangnum = strval(tmp);

		if(gangInfo[gangnum][0]==0) {
			SendClientMessage(playerid, COLOR_RED, "No such gang exists!");
			return 1;
		}

		format(string, sizeof(string),"'%s' Gang Members (id: %d)", gangNames[gangnum], gangnum);
		SendClientMessage(playerid, COLOR_GREEN, string);

		for(new i = 0; i < gangInfo[gangnum][1]; i++) {
			GetPlayerName(gangMembers[gangnum][i], giveplayer, sizeof(giveplayer));
			format(string, sizeof(string),"%s (%d)", giveplayer, gangMembers[gangnum][i]);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}

	//------------------- /gangs

	if(strcmp(cmd, "/gangs", true) == 0)
	{
		new x;
		new string[255];
		SendClientMessage(playerid, COLOR_GREEN, "Current Gangs:");
	    for(new i=0; i < MAX_GANGS; i++) {
			if(gangInfo[i][0]==1) {
				format(string, sizeof(string), "%s%s(%d) - %d members", string,gangNames[i],i,gangInfo[i][1]);

				x++;
				if(x > 2) {
				    SendClientMessage(playerid, COLOR_YELLOW, string);
				    x = 0;
					format(string, sizeof(string), "");
				} else {
					format(string, sizeof(string), "%s, ", string);
				}
			}
		}

		if(x <= 2 && x > 0) {
			string[strlen(string)-2] = '.';
		    SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}


	if (strcmp(cmdtext, "/report") == 0)
	{
	    new string[255];
	    new playername[24];
		if (strlen(cmdtext) > 8)
		{
		    GetPlayerName(playerid, playername, sizeof(playername));
		    format(string, sizeof(string), "Report from %s(%d): %s", playername, playerid, cmdtext[8]);
		    SendMessageToAdmins(string);
			format(string, sizeof(string), "Report sent to currently online admins.");
			SendMessage(playerid, string);
		}
		else {
	        format(string, sizeof(string), "Usage: /report <text to send>");
	        SendMessage(playerid, string);
		}
	    return 1;
	}
	
	if(strcmp(cmd, "/drop", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	    new Float:x2,Float:y2,Float:z2,string[80],name[24];
		cmd = strtok(cmdtext,idx);
		if(!strlen(cmd)) return SendClientMessage(playerid,COLOR_GREY,"Sintax: /drop [id]");
		if(!IsNumeric(cmd)) return SendClientMessage(playerid,COLOR_RED,"Enter numbers only please!");
		GetPlayerPos(strval(cmd),x2,y2,z2);
		SetPlayerPos(strval(cmd),x2,y2,z2+10);
		GetPlayerName(strval(cmd),name,24);
		format(string,sizeof(string),"You dropped %s from 10 feet.",name);
		SendClientMessage(playerid,COLOR_GREEN,string);
		return 1;
	}

    new string[256];
    if (strcmp(cmdtext, "/buylevel", true) == 0) {
	if(level[playerid] >= 1) {
	if(XP[playerid] == 4) {
	GivePlayerMoney(playerid, -50000);
	level[playerid] ++;
	XP[playerid] = 0;
	GameTextForPlayer(playerid, "~g~You leveled up!", 5000, 5);
	}
	}
	if(level[playerid] == 1) {
		if(XP[playerid] < 4) {
			format(string, sizeof(string), "you need 4 XP, you currently have %d", XP[playerid]);
			SendClientMessage(playerid, COLOR_RED, string);
		}
	}
	if(level[playerid] == 2) {
	if(XP[playerid] >= 7) {
	GivePlayerMoney(playerid, -75000);
	level[playerid] ++;
	XP[playerid] = 0;
	GameTextForPlayer(playerid, "~g~You leveled up!", 5000, 5);
	}
	}
	if(level[playerid] == 2) {
	if(XP[playerid] < 7) {
	format(string, sizeof(string), "you need 7 XP, you currently have %d", XP[playerid]);
	SendClientMessage(playerid, COLOR_RED, string);
	}
	}

	return 1;
	}

	if (strcmp(cmdtext, "/morexp", true) == 0) {
	XP[playerid] ++;
	format(string, sizeof(string), "you gained XP, your XP is now %d", XP[playerid]);
	SendClientMessage(playerid, COLOR_GREY, string);
	return 1;
	}



	//---------------------------
	if (strcmp(cmdtext, "/level", true) == 0)
		{
		format(string, sizeof(string), "Level: %d, XP: %d", level[playerid], XP[playerid]);
		SendClientMessage(playerid, COLOR_GREY, string);
		return 1;
		}

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

	if 	(strcmp(cmdtext, "/lock", true)==0)
		{
		if	(IsPlayerInAnyVehicle(playerid))
			{
			new State=GetPlayerState(playerid);
			if	(State!=PLAYER_STATE_DRIVER)
				{
				SendClientMessage(playerid,0xFFFF00AA,"You can Lock car Only While In Car.");
				return 1;
				}
			new i;
			for	(i=0;i<MAX_PLAYERS;i++)
				{
				if(i != playerid)
					{
					SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
					}
				}
			SendClientMessage(playerid, 0xFFFF00AA, "Car Locked!");
			new Float:pX, Float:pY, Float:pZ;
			GetPlayerPos(playerid,pX,pY,pZ);
			PlayerPlaySound(playerid,1056,pX,pY,pZ);
			}
		else
			{
			SendClientMessage(playerid, 0xFFFF00AA, "You Are Not In Car!");
			}
		return 1;
		}
	if (strcmp(cmdtext,"/zwh",true)==0)
	GameTextForAll(
	"z e r u e l  w a s  h e r e",10000,5);
	if 	(strcmp(cmdtext, "/unlock", true)==0)
		{
		if	(IsPlayerInAnyVehicle(playerid))
			{
			new State=GetPlayerState(playerid);
			if	(State!=PLAYER_STATE_DRIVER)
				{
				SendClientMessage(playerid,0xFFFF00AA,"You Can Unlock Door While Being Only An Driver.");
				return 1;
				}
			new i;
			for	(i=0;i<MAX_PLAYERS;i++)
				{
				SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0);
				}
			SendClientMessage(playerid, 0xFFFF00AA, "Car Locked!");
			new Float:pX, Float:pY, Float:pZ;
			GetPlayerPos(playerid,pX,pY,pZ);
			PlayerPlaySound(playerid,1057,pX,pY,pZ);
			}
		else
			{
			SendClientMessage(playerid, 0xFFFF00AA, "You Are Not In Car!");
			}
		return 1;
		}

	if 	(strcmp(cmdtext, "/purchase", true)==0) // to set the vehicle that you register to be teleported
		{
	    if 	(GetPlayerMoney(playerid) < 5000)
	    	{
			SendClientMessage(playerid,COLOR_YELLOW,"You dont have cash to buy an car.");
			}
		else
			{
			if (IsPlayerInAnyVehicle(playerid) == 1)
				{
				SetVehicleToRespawn(ownedcar[playerid]);
				ownedcar[playerid] = GetPlayerVehicleID(playerid);
				owner[ownedcar[playerid]] = playerid;
				SendClientMessage(playerid,COLOR_YELLOW,"Congratulations.You Have New Car.");
				GivePlayerMoney(playerid,-15000);
				}
			else
				{
	   			SendClientMessage(playerid,COLOR_YELLOW,"You Have To Be In Car To Buy It.");
				}
		}
		return 1;
	}
	if 	(strcmp(cmdtext, "/callmycar", true)==0)
		{
	    if (ownedcar[playerid] != 0)
	    	{
     	    if (GetPlayerMoney(playerid) < 500)
		    	{
				SendClientMessage(playerid,COLOR_RED,"You Dont Have Cash For It .You Need 500$.");
				}
			else
				{
		        new Float:playerpos[4];
		    	GetPlayerPos(playerid,playerpos[0],playerpos[1],playerpos[2]);
		    	GetPlayerFacingAngle(playerid,playerpos[3]);
		    	SetVehicleZAngle(ownedcar[playerid],playerpos[3]+90.0);
		    	SetVehiclePos(ownedcar[playerid],playerpos[0]+3.0*floatsin(playerpos[3],degrees),playerpos[1]+3.0*floatcos(playerpos[3],degrees),playerpos[2]+0.5); // This one is cool that I am using trigo functions to set the vehicle just before you. //Z E R U E L A N G E L!
		    	SendClientMessage(playerid,COLOR_GREEN,"Heres Your Car.");
		    	GivePlayerMoney(playerid,-500);
				}
	    	}
		return 1;
		}

	return 0;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	new vehicleid;
	if(newstate == PLAYER_STATE_DRIVER)
	{
		vehicleid = GetPlayerVehicleID(playerid);

		if(gTeam[playerid] == TEAM_Mafia && vehicleid == OBJECTIVE_VEHICLE_BLUE)
		{ // It's the objective vehicle
		    SetPlayerColor(playerid,OBJECTIVE_COLOR);
		    GameTextForPlayer(playerid,"~w~Take The  ~r~Money Truck ~w~back To Place!",3000,5);
		    gObjectiveBluePlayer = playerid;
		}
	}
	else if(newstate == PLAYER_STATE_ONFOOT)
	{

		if(playerid == gObjectiveBluePlayer) {
		    gObjectiveBluePlayer = (-1);
		}
	}
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
 	new playervehicleid = GetPlayerVehicleID(playerid);
	switch(getCheckpointType(playerid))
	{
		case CP_AMMU: {
			SendClientMessage(playerid, COLOR_GREEN, "You can purchase weapons here so that you have them every");
			SendClientMessage(playerid, COLOR_GREEN, "time you spawn. You can purchase more than once for more ammo.");
			SendClientMessage(playerid, COLOR_YELLOW, "Type /buyweapon [weapon number]");
		}
	}
 	if(gObjectiveReached) return 1;
	if(playervehicleid == OBJECTIVE_VEHICLE_BLUE && gTeam[playerid] == TEAM_Mafia)
	{   // Blue OBJECTIVE REACHED.
	    GameTextForAll("~b~Mafia ~w~wins!",3000,5);
	    gObjectiveReached = 3;
	    SetPlayerScore(playerid,GetPlayerScore(playerid)+5);
	    SetTimer("ExitTheGameMode", 4000, 0); // Set up a timer to exit this mode.
	    return 1;
	}
	return 1;
}

IsNumeric(const string[])
{
	for (new i = 0, j = strlen(string); i < j; i++)
	{
	    if (string[i] > '9' || string[i] < '0') return 0;
	}
	return 1;
}

public checkpointUpdate()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
	    if(IsPlayerConnected(i)) {
	        for(new j=0; j < MAX_POINTS; j++) {
	            if(isPlayerInArea(i, checkCoords[j])) {
	                if(playerCheckpoint[i]!=j) {
	                    DisablePlayerCheckpoint(i);
						SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],2);
						playerCheckpoint[i] = j;
					}
	            } else {
	            	if(playerCheckpoint[i]==j) {
	            	    DisablePlayerCheckpoint(i);
	            	    playerCheckpoint[i] = 999;
         	    	}
	            }
	        }
		}
	}
}


GetRandomWeather(weather, ...) {
	new random_weather = weather, count = 0, len = numargs() - 1;
	if(len > 0) {
		do {
			random_weather = getarg(random(len*1000)/1000);
			count++;
		} while(random_weather == weather && count < 10);  // try up to 10 times to get a random weather
	}
	return random_weather;
}

GetSequencedWeather(hour) {
	static weather = 10;
	switch(weather) {  // only normal weather changes are possible, eg clouds before rain and no sandstorm after rain
		case 0 .. 7, 10: {      // blue skies/clouds
			switch(hour) {
				case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,11,17,18,20,27,28,29,35,36,37,38,39);
				case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,20);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15,20,27,28,29);
			}
		}
		case 8: {               // stormy
			weather = GetRandomWeather(weather,8,9,16,20,21,22,30,31,32,33);
		}
		case 9: {               // cloudy and foggy
			switch(hour) {
				case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,20);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,20,27,28,29,30,31,32,33);
			}
		}
		case 11, 17, 18: {      // scorching hot/bright
			switch(hour) {
				case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,11,17,18,20,27,28,29,35,26,37,38,39);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,20);
			}
		}
		case 12 .. 15: {        // very dull, colorless, hazy
			switch(hour) {
				case 16 .. 19: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,16,20,21,22,33,35);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,16,20);
			}
		}
		case 16: {              // dull, cloudy, rainy
			weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,16,20,33,35);
		}
		case 19: {              // sandstorm
			weather = GetRandomWeather(weather,8,16);
		}
		case 20: {              // foggy/greenish
			weather = GetRandomWeather(weather,9,16,20,21,22);
		}
		case 21, 22: {          // very dark, gradiented skyline, purple/green
			weather = GetRandomWeather(weather,8,16,20,21,22);
		}
		case 23 .. 26: {        // variations of pale orange
			switch(hour) {
				case 7 .. 11, 16 .. 20: GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,20,23,24,25,26,27,28,29,35,36,37,38);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,20);
			}
		}
		case 27 .. 29: {        // variations of fresh blue
			switch(hour) {
				case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,11,17,18,20,27,28,29,35,36,37,38,39);
				case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,20);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15,20);
			}
		}
		case 30 .. 32: {        // variations of dark, cloudy, teal
			weather = GetRandomWeather(weather,8,9,16,20,21,22);
		}
		case 33: {              // dark, cloudy, brown
			switch(hour) {
				case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,16,20);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,16,20);
			}
		}
		case 34: {              // blue/purple, regular
			weather = GetRandomWeather(weather,16,20,21,22);
		}
		case 35: {              // dull brown
			switch(hour) {
				case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,11,17,18,35,36,37,38);
				case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,23,24);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15);
			}
		}
		case 36 .. 38: {        // bright, foggy, orange
			switch(hour) {
				case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,11,17,18);
				case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,23,24);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9);
			}
		}
		case 39: {              // extremely bright
			switch(hour) {
				case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,10,11,17,18,27,28,29,39);
				case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,10);
				default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,10);
			}
		}
		case 40 .. 42: {        // blue/purple cloudy
			weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,16,20);
		}
		case 43: {              // dark toxic clouds
			weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7);
		}
		case 44: {              // black/white sky
			weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15);
		}
		case 45: {              // black/purple sky
			weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15);
		}
		default: {
			weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15);
		}
	}
	return weather;
}

public Timer_DayHeartbeat() {
	static hour = 0;
	SetWorldTime(hour);
	if(!(hour % 3)) SetWeather(GetSequencedWeather(hour));
	hour++, hour %= 24;
}
public PayDay()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
	if(IsPlayerConnected(i))
	{
	    GameTextForPlayer(i, "~w~PAY~y~DAY ~n~ ~n~ ~b~200 $", 1000, 1);
	    GivePlayerMoney(i, 200);
	}
    }
}

public TimeFunction(playerid)
{
if(gHour < 24) {
if(gMinute < 60) {
gMinute ++;
if(gMinute == 60) {
gMinute = 0;
gHour ++;
if(gHour == 17) {
XP[playerid] ++;
}
}
}
}
else if(gHour == 24) {
gHour = 0;
}
SetWorldTime(gHour);
return 1;
}

public post_winners(winnerid)
{
	new i;
	//paralize all
	for(i = 0; i < MAX_PLAYERS ; i++)
	    if(IsPlayerConnected(i) && !IsPlayerAdmin(i))
	        TogglePlayerControllable(i,0);

	new string[256];
	new winners[3];  //3 first players' ids
	winners[0] = winnerid; //first place
	winners[1] = 255;      //second place
	winners[2] = 255;      //third place
	printf("1. %d 2. %d 3. %d", winners[0], winners[1], winners[2]);
	new winames[3][MAX_PLAYER_NAME]; //names of the winners

	GetPlayerName(winners[0], winames[0], MAX_PLAYER_NAME); //winner name

	new x = -100;
	for(i = 0; i < MAX_PLAYERS ; i++) //finding 2nd place.
	{
	    if (IsPlayerConnected(i) && GetPlayerScore(i) > x && i != winners[0])
	    {
	        x = GetPlayerScore(i);
	        winners[1] = i;
		}
	}
	if(winners[1] != 255) GetPlayerName(winners[1], winames[1], MAX_PLAYER_NAME); //if found 2nd place, get his name
	else winames[1] = "---";                                      //if not, just write ---

	x = -100;
	for(i = 0; i < MAX_PLAYERS ; i++) //finding 3rd place.
	{
	    if (IsPlayerConnected(i) && GetPlayerScore(i) > x && i != winners[0] && i != winners[1])
	    {
	        x = GetPlayerScore(i);
	        winners[2] = i;
		}
	}
	if(winners[2] != 255) GetPlayerName(winners[2], winames[2], MAX_PLAYER_NAME); //if found 3rd place, get his name
	else winames[2] = "---";                                      //if not, just write ---

	format(string, sizeof(string),"~w~1. ~b~%s   ~y~(%d)~n~~w~2. ~b~%s   ~y~(%d)~n~~w~3. ~b~%s   ~y~(%d)~n~", winames[0], GetPlayerScore(winners[0]), winames[1], GetPlayerScore(winners[1]), winames[2],GetPlayerScore(winners[2]));
    GameTextForAll(string,16000,3);
    SetTimer("GameModeExitFunc", 15000, 0);
}

public RandomMessages()
{
    new message = random(5);
    if(message == 0) SendClientMessageToAll(COLOR_GREEN, "Visit www.uvhclan.com - Now recruiting!");
	if(message == 1) SendClientMessageToAll(COLOR_GREEN, "Visit the [W]arriors site! www.warriorsgang.com");
	if(message == 2) SendClientMessageToAll(COLOR_GREEN, "Check out www.ls-tdm.co.nr community");
	if(message == 3) SendClientMessageToAll(COLOR_GREEN, "Suspect a cheater? Use /report <ID> <Reason> to report them!");
	/* Tutorial for adding another message is below.
	Change Add plus how many messages you are adding to random(5) above
	and do if(message == 4) SendClientMessageToAll(......)
	Example:
	new message = random(6); added + 1 because i'm adding 1 more message
	adding 1 to the if check because i'm adding 1 more message
	if(message == 3) SendClientMessageToAll(COLOR_GREEN, "message 5");
	*/
	return 1;
}


SendMessageToAdmins(const str[])
{
	for (new i = 0; i < MAX_PLAYERS; i++)
	{
	    if (IsPlayerConnected(i)) {
	        if (IsPlayerAdmin(i)) {
	            SendClientMessage(i, 0xFF9900AA, str);
	        }
	    }
	}
}

SendMessage(playerid, const str[])
{
	SendClientMessage(playerid, 0xFF9900AA, str);
}