All pastes #361105 Raw Edit

Stuff

public text v1 · immutable
·published 2007-02-17 22:41 UTC
rendered paste body
#include <a_samp>
#include <core>
#include <float>
#include <dini>
#include <dudb>

#define FILE_SETTINGS "settings.ini"
#define FILE_TOTALSTAT "totalstat.ini"
#define FILE_BLACKLIST "blacklist.ini"

#define SLOTS 100
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_LIGHTBLUE 0x6DC5F3FF
#define COLOR_LIGHTYELLOW 0xFAEAA9FF
#define COLOR_LIGHTGREEN 0x00FF00FF
#define COLOR_LIGHTORANGE 0xF7A26FFF
#define COLOR_LIGHTRED 0xFF0000FF
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_SYSTEM 0xEFEFF7AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_PINK 0xFF66FFAA
#define SPAWN_DELAY 3000
#define COLOR_KOMENDA 0xC83322FF

#define PocketMoney 30000  // Kwota z jak&#261; gracz zacznie zabaw&#281;
#define INACTIVE_PLAYER_ID 255
#define GIVECASH_DELAY 5000 // Czas po jakim mo&#380;na u&#380;y&#263; komendy /givecash

#define NUMVALUES 4

#define CP_BANK 	0
#define CP_PIRATE 	1
#define CP_AMMU     2
#define CP_DRAGON   3
#define CP_SEXSHOP  4
#define CP_BAR      5
#define CP_CALIGULA 6
#define CP_ZIP      7
#define CP_BINCO    8
#define CP_TATOO    9
#define CP_BOTIQUE  10
#define CP_STARFISH 11

#define P_DRAGON    0
#define P_SEXSHOP   1
#define P_BAR       2
#define P_CALIGULA  3
#define P_ZIP       4
#define P_BINCO     5
#define P_TATOO     6
#define P_BOTIQUE   7
#define P_STARFISH  8
#define CP_LS_AIR   9
#define CP_SF_AIR   10
#define CP_LV_AIR   11
#define CP_CMDRIVE  12

#define P_OFFSET    3
#define CAR_HORN    1147
#define MAX_WARNS   10

forward MoneyGrubScoreUpdate();
forward Givecashdelaytimer(playerid);
//forward GrubModeReset();
forward SetPlayerRandomSpawn(playerid);
forward SetupPlayerForClassSelection(playerid);
forward GameModeExitFunc();

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

new CashScoreOld;
new iSpawnSet[MAX_PLAYERS];
new bank[MAX_PLAYERS];
new bounty[MAX_PLAYERS];
new playerCheckpoint[MAX_PLAYERS];
new gambleWarning[MAX_PLAYERS];
new worldTime;
new Float:LocX = 0.0;
new Float:LocY = 0.0;
new Float:LocZ = 0.0;
new logged[MAX_PLAYERS];
new logintimeout[MAX_PLAYERS];
new killsinarow[MAX_PLAYERS];
new gPlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
new jailed[MAX_PLAYERS];
new muted[MAX_PLAYERS];
new god[MAX_PLAYERS];
new payment[MAX_PLAYERS];
new query[MAX_PLAYERS];

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:gRandomPlayerSpawns[23][3] = {
{1958.3783,1343.1572,15.3746},
{2199.6531,1393.3678,10.8203},
{2483.5977,1222.0825,10.8203},
{2637.2712,1129.2743,11.1797},
{2000.0106,1521.1111,17.0625},
{2024.8190,1917.9425,12.3386},
{2261.9048,2035.9547,10.8203},
{2262.0986,2398.6572,10.8203},
{2244.2566,2523.7280,10.8203},
{2335.3228,2786.4478,10.8203},
{2150.0186,2734.2297,11.1763},
{2158.0811,2797.5488,10.8203},
{1969.8301,2722.8564,10.8203},
{1652.0555,2709.4072,10.8265},
{1564.0052,2756.9463,10.8203},
{1271.5452,2554.0227,10.8203},
{1441.5894,2567.9099,10.8203},
{1480.6473,2213.5718,11.0234},
{1400.5906,2225.6960,11.0234},
{1598.8419,2221.5676,11.0625},
{1318.7759,1251.3580,10.8203},
{1558.0731,1007.8292,10.8125},
{1705.2347,1025.6808,10.8203}
};

new Float:gCopPlayerSpawns[2][3] = {
{1568.4268,-1689.9911,6.2188},
{1524.5200,-1677.9397,6.2188}
};

#define MAX_POINTS 16

new Float:checkCoords[MAX_POINTS][4] = {
{-36.5483,-57.9948, -17.2655,-49.2967},     //BANK
{1894.6128,1445.3431, 2084.9739,1637.8186}, //PIRATE
{284.0546,-86.4384, 302.9315,-56.6674},     //AMMUNATION
{1925.1511,968.2358, 2019.0715,1067.4276},  //DRAGON
{-115.9544,-24.2706, -99.1631,-7.1391},     //SEXSHOP
{487.6558,-88.5900, 512.0635, -67.7503},    //BAR
{2216.7971,1638.0493, 2255.2097,1714.0806}, //CALIGULA
{144.9131,-96.0927, 177.4128,-70.7923},    	//ZIP
{201.4462,-112.4556, 218.5237,-95.1238},    //BINCO
{-204.7623,-44.0326, -200.2330,-39.8128},   //TATOO
{416.7485,-84.4242, 422.6890,-74.0611},     //BOTIQUE
{2100.6367,1841.2338, 2352.1677,2014.0052},   //STARFISH
{1406.4838,-2372.7078,1836.9307,-2205.9673},//LS_AIR
{-1581.6602,-470.2805, -1522.1350,-406.5510}, //SF_AIR
{1285.1907,1250.8591, 1351.2239,1298.0116},  //LV_AIR
{2348.8276,1920.5172,2536.5991,2073.2482}   //mcdrive
};

new Float:checkpoints[MAX_POINTS][3] = {
{-22.2549,-55.6575,1003.5469},
{2000.3132,1538.6012,13.5859},
{291.0004,-84.5168,1001.5156},
{1989.0619,1005.5241,994.4688},
{-103.5525,-22.4661,1000.7188},
{501.4927,-75.4323,998.7578},
{2235.5408,1679.0402,1008.3594},
{161.1875,-79.9915,1001.8047},
{207.5640,-97.8188,1005.2578},
{-203.4864,-41.2045,1002.2734},
{418.5547,-80.1667,1001.8047},
{2163.3354,1904.5193,10.8125},
{1685.4951,-2333.1021,13.5469},
{-1546.2997,-441.4427,6.0000},
{1313.9680,1263.4131,10.8203}
{2485.2478,2022.6079,10.5659}
};

new checkpointType[MAX_POINTS] = {
	CP_BANK,
	CP_PIRATE,
	CP_AMMU,
	CP_DRAGON,
	CP_SEXSHOP,
	CP_BAR,
	CP_CALIGULA,
	CP_ZIP,
	CP_BINCO,
	CP_TATOO,
	CP_BOTIQUE,
	CP_STARFISH
};

#define MAX_PROPERTIES	9

new propertyNames[MAX_PROPERTIES][32] = {
	"Kasyno Czterech Smoków",
	"Sex Shop",
	"Bar Shithole",
	"Kasyno Caligula's",
	"Sklep Zip",
	"Sklep Binco",
	"Salon Tatua&#380;u",
	"Botique",
	"Kasyno Star Fish"
};

new propertyValues[MAX_PROPERTIES] = {
	80000,
	25000,
	30000,
	100000,
	20000,
	15000,
	30000,
	23000,
	200000
};

new propertyEarnings[MAX_PROPERTIES] = {
	8000,
	2500,
	3000,
	10000,
	2000,
	1500,
	3000,
	2300,
	20000,
};

new propertyOwner[MAX_PROPERTIES] = {999,999,999,999,999,999,999,999,999};

#define MAX_WEAPONS 7
new weaponNames[MAX_WEAPONS][32] = {
	"Shotgun",
	"Combat Shotgun",
	"Micro Uzi",
	"Tec9",
	"MP5",
	"AK47",
	"M4"
};
new weaponIDs[MAX_WEAPONS] = {
	25,     //Shotgun
	27,     //Combat shotgun
	28,     //Micro Uzi
	32,     //Tec9
	29,     //MP5
	30,     //AK47
	31      //M4
};
new weaponCost[MAX_WEAPONS] = {
	7000,
	15000,
	7000,
	5000,
	15000,
	25000,
	30000
};
new weaponAmmo[MAX_WEAPONS] = {
	15,
	20,
	120,
	120,
	120,
	120,
	120
};
new playerWeapons[MAX_PLAYERS][MAX_WEAPONS];

#define MAX_CASINO      3
new Float:gambleAreas[MAX_CASINO][4] = {
	{1928.1771,987.5739, 1970.5675,1042.8369},
	{2171.3618,1584.2649, 2279.4915,1628.6199},
	{1117.5068,-11.2747, 1142.4843,12.5986}
};

#define MAX_SAVE 64
new savedInfo[MAX_SAVE][4];
new savedNames[MAX_SAVE][MAX_PLAYER_NAME];

#define MAX_GANGS 			32
#define MAX_GANG_MEMBERS 6
#define MAX_GANG_NAME       16
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];

//Round code stolen from mike's Manhunt :P
//new gRoundTime = 3600000;                   // Round time - 1 hour
//new gRoundTime = 1200000;					// Round time - 20 mins
//new gRoundTime = 900000;					// Round time - 15 mins
//new gRoundTime = 600000;					// Round time - 10 mins
//new gRoundTime = 300000;					// Round time - 5 mins
//new gRoundTime = 120000;					// Round time - 2 mins
//new gRoundTime = 60000;					// Round time - 1 min

new gActivePlayers[MAX_PLAYERS];
new gLastGaveCash[MAX_PLAYERS];

new RankKillNames[12][32] = {
	"Cywil",
	"Z&#322;odziej",
	"Kryminalista",
	"Morderca",
	"Zepsuty",
	"Gangster",
	"OG",
	"Maniak",
	"P&#322;atny morderca",
	"Terrorysta",
	"Potwór",
	"Bóg GTA"
};

new RankKills[12] = {
	0,
	2,
	10,
	25,
	50,
	100,
	250,
	500,
	1000,
	2500,
	5000,
	10000
};

new RankKillIARNames[12][32] = {
	"Spokojny",
	"Podwójny killer",
	"Mega killer",
	"Ultra killer",
	"&#346;mieszny killer",
	"Dziesi&#261;tka",
	"Frajer",
	"Cheat'er xD",
	"Serial Killer",
	"Wojak",
	"Mój bo&#380;e",
	"Dobry :D"
};

new RankKillsIAR[12] = {
	0,
	2,
	4,
	6,
	8,
	10,
	12,
	14,
	16,
	18,
	20,
	25
};

new RankDeathNames[12][32] = {
	"Prawiczek",
	"Ofiara",
	"Cel",
	"Z&#322;amany",
	"Suka",
	"Niezdecydowany",
	"K&#261;sek",
	"Kruchy",
	"Sitko",
	"Zrypany",
	"Duch",
	"Nie tykanly"
};

new RankDeaths[12] = {
	0,
	2,
	10,
	25,
	50,
	100,
	250,
	500,
	1000,
	2500,
	5000,
	10000
};

new RankSuicideNames[12][32] = {
	"Inteligent",
	"Z&#322;y farciarz",
	"Zabójca",
	"Szaleniec",
	"Kozak",
	"Psycho",
	"Nienawidzony",
	"Kamikadze",
	"Wolny",
	"Nutter",
	"Nie&#380;ywy",
	"Mafinja &#347;mier&#263;"
};

new RankSuicides[12] = {
	0,
	2,
	10,
	25,
	50,
	100,
	250,
	500,
	1000,
	2500,
	5000,
	10000
};

new RankMoneyNames[12][32] = {
	"Frajer",
	"Wielki gracz",
	"Pocz&#261;tkuj&#261;cy",
	"Biendy",
	"Shithead",
	"Biznesmen",
	"Bogacz",
	"Farciarz",
	"Millioner",
	"Big Boss",
	"Oligarny",
	"Milliarder"
};

new RankMoneys[12] = {
	-1000000,
	-100000,
	-10000,
	0,
	10000,
	100000,
	1000000,
	5000000,
	10000000,
	50000000,
	100000000,
	1000000000
};

new RankBountyNames[8][32] = {
	"Bez u&#380;yteczny",
	"Wybrany",
	"Ma&#322;o zainteresowany",
	"Du&#380;o zainteresowany",
	"Poszukiwany",
	"G&#322;ówny cel",
	"najbardziej poszukiwany",
	"Trudny k&#261;sek"
};

new RankBounty[8] = {
	0,
	10000,
	50000,
	100000,
	500000,
	1000000,
	5000000,
	10000000
};
//------------------------------------------------------------------------------------------------------

main()
{
		print("\n+----------------------------------+");
		print("|  Las Venturas DM~MG(+LandGrab)   |");
		print("|          Coded By          	   |");
		print("|           SiLuS        	   |");
		print("+----------------------------------+\n");
		worldTime = 12;
}

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

public 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 opu&#347;ci&#322; twój gang.", playername);
					SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
				}
				
				format(string, sizeof(string),"Opu&#347;ci&#322;e&#347; 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, "Nie jeste&#347; w gangu!");
	}
}

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

public 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;
}

public PayPlayerInArea(playerID, Float:x1, Float:y1, Float:x2, Float:y2, cash)
{

	if(IsPlayerConnected(playerID))
	{
		new Float:X, Float:Y, Float:Z;

		GetPlayerPos(playerID, X, Y, Z);
		if(X >= x1 && X <= x2 && Y >= y1 && Y <= y2)
		{
			GivePlayerMoney(playerID, cash);
			return 1;
		}
	}
	return 0;
}
//------------------------------------------------------------------------------------------------------

public TimeUpdate() {
	worldTime++;
	worldTime%=24;
	SetWorldTime(worldTime);
}
//------------------------------------------------------------------------------------------------------

public GetPlayerId(playername[])
{
	if (IsNumeric(playername))
		if (IsPlayerConnected(strval(playername))) return strval(playername);
	else
		for (new i=0;i<MAX_PLAYERS;i++)
			if ((IsPlayerConnected(i)) && (strcmp(playername, gPlayerName[i], true) == 0)) return i;
	return INVALID_PLAYER_ID;
}
//------------------------------------------------------------------------------------------------------

public PirateShipScoreUpdate()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		PayPlayerInArea(i, 1995.5, 1518.0, 2006.0, 1569.0, 100);
//		{
//            SendClientMessage(i, COLOR_YELLOW, "Dostajesz pieni&#261;dze przebywaj&#261;c na statku.");
//		}
	}
}

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

public GambleUpdate()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
	    if(IsPlayerConnected(i)) {
	        for(new j=0; j < MAX_CASINO; j++) {
	            if(isPlayerInArea(i,gambleAreas[j])) {
					gambleWarning[i]++;
					GameTextForPlayer(i,"~g~Hazard ~r~nie ~g~jest dozwolony!~r~UWA&#379;AJ!",10000,5);
					if(gambleWarning[i] > 3) {
						SetPlayerHealth(i,0);
						ResetPlayerMoney(i);
					}
				}
     		}
       	}
	}
}

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

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;
         	    	}
	            }
	        }
		}
	}
}

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

public PropertyScoreUpdate()
{
	new owners[MAX_PROPERTIES];
	new payments[MAX_PROPERTIES];
	
	for(new i=0; i < MAX_PROPERTIES; i++)
	    owners[i]=999;

	for(new i=0; i < MAX_PROPERTIES; i++)
	{
		if(propertyOwner[i] < 999) {
		
			for(new j=0; j < MAX_PROPERTIES; j++) {
			    if(owners[j]==propertyOwner[i]) {
			        payments[j]+=propertyEarnings[i];
			        j = MAX_PROPERTIES;
			    } else if (owners[j]==999) {
					owners[j]=propertyOwner[i];
					payments[j]+=propertyEarnings[i];
			        j = MAX_PROPERTIES;
				}
			}

		}
	}

	for(new i=0; i < MAX_PROPERTIES; i++) {
		if(owners[i] < 999 && IsPlayerConnected(owners[i])) {
			new string[256];

			GivePlayerMoney(owners[i], payments[i]);

			format(string, sizeof(string), "Otrzyma&#322;e&#347; $%d z kupionych budynków!", payments[i]);
			SendClientMessage(owners[i], COLOR_GREEN, string);
		}
	}

}

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

public SavedUpdate()
{
	for(new i = 0; i < MAX_SAVE; i++) {
		if(savedInfo[i][3] < 5) {
			if(savedInfo[i][3]==4) {
				savedInfo[i][0]=savedInfo[i][1]=savedInfo[i][2]=0;
				savedNames[i][0]=0;
			}
			savedInfo[i][3]++;
		}
	}
}

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

public SaveData()
{
    new playername[MAX_PLAYER_NAME];
    new Float:x, Float:y, Float:z;

    for (new i=0;i<MAX_PLAYERS;i++) {
	    GetPlayerName(i, playername, MAX_PLAYER_NAME);
	    if (dini_Exists(udb_encode(playername)) && logged[i] == 1) {
			dini_IntSet(udb_encode(playername), "money", GetPlayerMoney(i));
       		dini_IntSet(udb_encode(playername), "bank", bank[i]);
      		dini_IntSet(udb_encode(playername), "bounty", bounty[i]);
      		if (GetPlayerState(i) != PLAYER_STATE_NONE && GetPlayerState(i) != PLAYER_STATE_WASTED) {
				GetPlayerPos(i, x,y,z);
       			dini_FloatSet(udb_encode(playername), "x", x);
       			dini_FloatSet(udb_encode(playername), "y", y);
       			dini_FloatSet(udb_encode(playername), "z", z);
			}
			dini_IntSet(udb_encode(playername), "killsinarow", killsinarow[i]);
      		SendClientMessage(i, COLOR_GREEN, "* Twój post&#281;p w grze zosta&#322; zapisany.");
		}
	}

    return 1;
}
//------------------------------------------------------------------------------------------------------

public MoneyGrubScoreUpdate()
{
	new CashScore;
	new name[MAX_PLAYER_NAME];
	//new string[256];
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if (IsPlayerConnected(i))
		{
			GetPlayerName(i, name, sizeof(name));
   			CashScore = GetPlayerMoney(i);
			SetPlayerScore(i, CashScore);
			if (CashScore > CashScoreOld)
			{
				CashScoreOld = CashScore;
				//format(string, sizeof(string), "$$$ %s is now in the lead $$$", name);
				//SendClientMessageToAll(COLOR_YELLOW, string);
			}
		}
	}
}
//------------------------------------------------------------------------------------------------------

public StatGivePlayerMoney(playerid, amount)
{
	new tmp[256];
	if (IsPlayerConnected(playerid)) {
	    tmp = dini_Get(FILE_SETTINGS, "maxmoney");
		if (GetPlayerMoney(playerid)+amount <= strval(tmp)) {
		    GivePlayerMoney(playerid, amount);
		    if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
			if (amount > 0) {
                tmp = dini_Get(FILE_TOTALSTAT, "moneyreceived");
				dini_IntSet(FILE_TOTALSTAT, "moneyreceived", strval(tmp)+amount);
			}
			else {
			    tmp = dini_Get(FILE_TOTALSTAT, "moneylost");
				dini_IntSet(FILE_TOTALSTAT, "moneylost", strval(tmp)-amount);
			}
		}
		else {
		    SendClientMessage(playerid, COLOR_RED, "* UWAGA! Masz max. ilo&#347;c pieni&#281;dzy. Nie mo&#380;esz ju&#380; jej wi&#281;cej dostawa&#263;!");
		    SendClientMessage(playerid, COLOR_RED, "* Dodaj je do banku, albo przelej je komu&#347;.");
		    return 0;
		}
	}
	return 1;
}
//------------------------------------------------------------------------------------------------------
public SettingsExistsCheck()
{
	if (!dini_Exists(FILE_SETTINGS)) {
		dini_Create(FILE_SETTINGS);
		dini_IntSet(FILE_SETTINGS, "spawnmoney", 5000);
		dini_IntSet(FILE_SETTINGS, "timeupdate", 1);
		dini_IntSet(FILE_SETTINGS, "blacklist", 1);
		dini_IntSet(FILE_SETTINGS, "positionsave", 1);
		dini_IntSet(FILE_SETTINGS, "register", 1);
		dini_IntSet(FILE_SETTINGS, "maxusers", 2000);
		dini_IntSet(FILE_SETTINGS, "defaultprotection", 1);
		dini_IntSet(FILE_SETTINGS, "logintimeout", 20000);
		dini_IntSet(FILE_SETTINGS, "transact", 1);
		dini_IntSet(FILE_SETTINGS, "bounty", 1);
		dini_IntSet(FILE_SETTINGS, "protectionchange", 1);
		dini_IntSet(FILE_SETTINGS, "manualsaving", 1);
		dini_IntSet(FILE_SETTINGS, "moneyscan", 1);
		dini_IntSet(FILE_SETTINGS, "maxmoney", 9000000);
		dini_IntSet(FILE_SETTINGS, "onmoneycheat", 2);
		dini_IntSet(FILE_SETTINGS, "parachute", 1);
		dini_IntSet(FILE_SETTINGS, "blacklist", 1);
		dini_IntSet(FILE_SETTINGS, "skydive", 1);
	}
}
//------------------------------------------------------------------------------------------------------

public LoginTimeout()
{
    for (new i=0;i<MAX_PLAYERS;i++)
 		if (logged[i] == 0 && GetPlayerState(i) != PLAYER_STATE_NONE) KickMsg(i, "Uchrona", "Login timeout!");
}
//------------------------------------------------------------------------------------------------------

/*public GrubModeReset()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if (IsPlayerConnected(i))
		{
			SetPlayerScore(i, PocketMoney);
			SetPlayerRandomSpawn(i, classid);
		}
	}

}*/

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

public OnPlayerConnect(playerid)
{
	new playername[MAX_PLAYER_NAME];
	new tmp[256];
	new idx;

	GameTextForPlayer(playerid,"~r~lv: ~g~moneygrab ~r~+~b~landgrab~n~~p~wersja ~y~2.1 ~w~p~r~l~n~~r~Serwer ~y~by ~w~SiLuS",5000,5);
	GameTextForAll("~r~lv: ~g~moneygrab ~r~+~b~landgrab~n~~p~wersja ~y~2.1 ~w~p~r~l~n~~r~Serwer ~y~by ~w~SiLuS",5000,1);
	SendClientMessage(playerid, COLOR_YELLOW, "Witamy w Las Venturas MoneyGrub(+LandGrab) 2.1 PL by SiLuS ");
	SendClientMessage(playerid, COLOR_GREEN, "Prosze koniecznie wpisz /p lub /info aby wy&#347;wietli&#263; wi&#281;cej informacji.");
	GivePlayerMoney(playerid, 50000);

	gActivePlayers[playerid]++;
	gLastGaveCash[playerid] = GetTickCount();

	playerCheckpoint[playerid] = 999;

	GetPlayerName(playerid, playername, sizeof(playername));

	tmp = dini_Get(FILE_SETTINGS, "blacklist");
	if (strval(tmp) == 1) {
		tmp = dini_Get(FILE_BLACKLIST, playername);
		if (strval(strtok(tmp, idx, ',')) == 1) KickMsg(playerid, "Blacklist", strtok(tmp, idx, ','));
		idx = 0;
		if (strval(strtok(tmp, idx, ',')) == 2) BanMsg(playerid, "Blacklist", strtok(tmp, idx, ','));
	}

    if (dini_Exists(udb_encode(playername))) {
		SendClientMessage(playerid, COLOR_LIGHTRED, "* Twój nick jest zarejestrowany! Wpisz: /login [has&#322;o] aby si&#281; zalogowa&#263;");
        tmp = dini_Get(udb_encode(playername), "protection");
		if (strval(tmp) == 1) SendClientMessage(playerid, COLOR_LIGHTRED, "* Je&#347;li zaczniesz gr&#281; bez zalogowania si&#281;, zostaniesz wyrzucony!!!");
		tmp = dini_Get(udb_encode(playername), "money");
		StatGivePlayerMoney(playerid, strval(tmp));
		tmp = dini_Get(udb_encode(playername), "bank");
		bank[playerid] = strval(tmp);
		tmp = dini_Get(udb_encode(playername), "bounty");
		bounty[playerid] = strval(tmp);
		tmp = dini_Get(udb_encode(playername), "jailed");
		if (strval(tmp) == 1) jailed[playerid] = 1;
		tmp = dini_Get(udb_encode(playername), "muted");
		if (strval(tmp) == 1) muted[playerid] = 1;
    }
    else {
        SendClientMessage(playerid, COLOR_LIGHTRED, "* Jeste&#347; tu nowy? Nie wiesz od czego zacz&#261;&#263;? Koniecznie sie zarejestruj! Je&#347;li chcesz aby twoje informacje o:");
        SendClientMessage(playerid, COLOR_LIGHTRED, "*(pieni&#261;dzach, statystykach, etc) by&#322;o zapisywane na bierz&#261;co musisz sie zarejestrowa&#263;.");
        SendClientMessage(playerid, COLOR_LIGHTGREEN, "*Prosz&#281; wpisz: /register [has&#322;o] aby sie zarejestrowa&#263; na tym serverze.");
        logged[playerid] = 1;
	}

	return 1;
}

//------------------------------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
	new playername[MAX_PLAYER_NAME];
	new string[256];
	new Float:x, Float:y, Float:z;

	for(new i = 0; i < MAX_PROPERTIES; i++) {
		if(propertyOwner[i]==playerid) {
		    propertyOwner[i] = 999;
		    GivePlayerMoney(playerid, propertyValues[i]);
   		}
	}

	GetPlayerName(playerid, playername, sizeof(playername));

	if (dini_Exists(udb_encode(playername)) && logged[playerid] == 1) {
		dini_IntSet(udb_encode(playername), "money", GetPlayerMoney(playerid));
       	dini_IntSet(udb_encode(playername), "bank", bank[playerid]);
      	dini_IntSet(udb_encode(playername), "bounty", bounty[playerid]);
      	if (GetPlayerState(playerid) != PLAYER_STATE_NONE && GetPlayerState(playerid) != PLAYER_STATE_WASTED) {
			GetPlayerPos(playerid, x,y,z);
       		dini_FloatSet(udb_encode(playername), "x", x);
       		dini_FloatSet(udb_encode(playername), "y", y);
       		dini_FloatSet(udb_encode(playername), "z", z);
		}
		dini_IntSet(udb_encode(playername), "killsinarow", killsinarow[playerid]);

		format(string, sizeof(string), "Gracz: %s wylogowa&#322; sie.", playername);
		printf(string);
	}

	KillTimer(logintimeout[playerid]);
	logged[playerid] = bank[playerid] = bounty[playerid] = god[playerid] = payment[playerid] = jailed[playerid] = muted[playerid] = killsinarow[playerid] = 0;
	query[playerid] = 255;
}
//------------------------------------------------------------------------------------------------------

public OnPlayerCommandText(playerid, cmdtext[])
{
	new string[256];
	new playermoney;
	new sendername[MAX_PLAYER_NAME];
	new giveplayer[MAX_PLAYER_NAME];
	new cmd[256];
	new giveplayerid, moneys, idx, weaponid;
	
	cmd = strtok(cmdtext, idx);
	
	//------------------- /p

	if(strcmp(cmd, "/p", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"|Las Venturas MoneyGrub(+LandGrab) 2.1 PL |");
		SendClientMessage(playerid, COLOR_YELLOW,"Zanim zaczniesz gra&#263; zobacz pe&#322;n&#261; list&#281; komend w raz z opisami.");
		SendClientMessage(playerid, COLOR_ORANGE,"/cmd- pokazuje pierwsz&#261; liste komend gracza.");
		SendClientMessage(playerid, COLOR_ORANGE,"/cmd2- pokazuje drug&#261; liste komend gracza.");
		SendClientMessage(playerid, COLOR_ORANGE,"/cmd3- pokazuje trzeci&#261; liste komend gracza.");
		SendClientMessage(playerid, COLOR_ORANGE,"/cmd4- pokazuje czwart&#261; liste komend gracza.");
		SendClientMessage(playerid, COLOR_ORANGE,"/gcmd- pokazuje komendy gangu.");
		SendClientMessage(playerid, COLOR_ORANGE,"/cmda- pokazuje komendy admina.");
		SendClientMessage(playerid, COLOR_ORANGE,"/regulamin- pokazuje krótki regulamin dla graczy.");
		SendClientMessage(playerid, COLOR_ORANGE,"/about- pokazuje info o mapie i twórcach.");
		return 1;
	}
	if(strcmp(cmd, "/cmd", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"Komendy w grze:");
		SendClientMessage(playerid, COLOR_YELLOW,"/bank [suma]- wp&#322;aca wybran&#261; kwot&#281; do banku.");
		SendClientMessage(playerid, COLOR_YELLOW,"/wyplac [suma]- wyplaca wybran&#261; sume z banku.");
		SendClientMessage(playerid, COLOR_YELLOW,"/stan- pokazuje obecne pieni&#261;dze które masz w banku");
		SendClientMessage(playerid, COLOR_YELLOW,"/givecash [idgracza] [suma]- przekazuje pieni&#261;dze graczowi o podanym ID.");
		SendClientMessage(playerid, COLOR_YELLOW,"/hitman [idgracza] [suma]- wynzacza pewn&#261; kwot&#281; za g&#322;owe gracza o podanym ID.");
		SendClientMessage(playerid, COLOR_YELLOW,"/bounty [idgracza]- pokazuje nagrod&#281;, któr&#261; mo&#380;esz dostac za zabicie gracza.");
		SendClientMessage(playerid, COLOR_YELLOW,"/kup- kupuje wybrany budynek.");
		SendClientMessage(playerid, COLOR_YELLOW,"/budynki- pokazuje ID budynków i ich w&#322;a&#347;cicieli.");
        SendClientMessage(playerid, COLOR_ORANGE,"/admins- pokazuje obecnych adminów na serwerze.");
		SendClientMessage(playerid, COLOR_ORANGE,"Wpisz /cmd2 aby zobaczy&#263; ci&#261;g dalszy komend.");
		return 1;
	}
	if(strcmp(cmd, "/cmd2", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"Komendy w grze:");
		SendClientMessage(playerid, COLOR_YELLOW,"/pm [idgracza]- wysy&#322;a prywatn&#261; wiadomo&#347;&#263; do gracza o podanym ID.");
		SendClientMessage(playerid, COLOR_YELLOW,"/pozycja- pokazuje pozycjeX, Y, Z na mapie gracza.");
		SendClientMessage(playerid, COLOR_YELLOW,"/buyweapon [id broni]- kupuje wybran&#261; bro&#324;, gdy jeste&#347; w Ammunation.");
		SendClientMessage(playerid, COLOR_YELLOW,"/weaponlist- pokazuje list&#281; broni, gdy jeste&#347; w Ammunation.");
		SendClientMessage(playerid, COLOR_YELLOW,"/lock & unlock- zamyka i otwiera pojazd w którym siedzisz.");
		SendClientMessage(playerid, COLOR_YELLOW,"/odleglosc [idgraca]- pokazuje w jakiej odleg&#322;o&#347;ci znajdujesz sie od gracza w metrach.");
		SendClientMessage(playerid, COLOR_YELLOW,"/walka- zostajesz teleportowany na wie&#380;owiec i bedziesz tak walczy&#322; z przeciwnikiem.");
		SendClientMessage(playerid, COLOR_ORANGE,"Wpisz /cmd3 aby zobaczy&#263; ci&#261;g dalszych komend.");
		return 1;
	}
	if(strcmp(cmd, "/cmd3", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"Komendy w grze:");
		SendClientMessage(playerid, COLOR_YELLOW,"/skok [1000-2000]- wyskakujesz z podanej wysoko&#347;ci spadochronem.");
		SendClientMessage(playerid, COLOR_YELLOW,"/cardive- wystrzelenie w powietrze pojazdu, i swobodne spadanie.");
		SendClientMessage(playerid, COLOR_YELLOW,"/100hp- na&#322;adowanie sobie &#380;ycia za pare groszy.");
		SendClientMessage(playerid, COLOR_YELLOW,"/hp- wprawdzanie &#380;ycia w punktach.");
		SendClientMessage(playerid, COLOR_YELLOW,"/czysc- wyczyszczenie chatu.");
		SendClientMessage(playerid, COLOR_YELLOW,"/LV- Teleportacja do Las Venturas. Pami&#281;taj &#380;e musisz by&#263; na lotnisku.");
		SendClientMessage(playerid, COLOR_YELLOW,"/SF- Teleportacja do San Fierro. Pami&#281;taj &#380;e musisz by&#263; na lotnisku.");
		SendClientMessage(playerid, COLOR_YELLOW,"/LS- Teleportacja do Los Santos. Pami&#281;taj &#380;e musisz by&#263; na lotnisku.");
		SendClientMessage(playerid, COLOR_ORANGE,"Wpisz /cmd4 aby zobaczy&#263; ci&#261;g dalszy komend.");
		return 1;
	}
	if(strcmp(cmd, "/cmd4", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"Komendy w grze:");
		SendClientMessage(playerid, COLOR_YELLOW,"/time- Pokazuje obecn&#261; godzine, i date.");
		SendClientMessage(playerid, COLOR_YELLOW,"/transact [id_gracza] [suma]- wysy&#322;a xxx kasy danemu graczowi na konto bankowe.");
		SendClientMessage(playerid, COLOR_YELLOW,"/kill- zabijasz sam siebie.");
		SendClientMessage(playerid, COLOR_YELLOW,"/czysc- wyczyszczenie chatu.");
		SendClientMessage(playerid, COLOR_YELLOW,"/taxi- zostajesz Taxówkarzem.");
		SendClientMessage(playerid, COLOR_YELLOW,"/needtaxi- gracz potrzebuje taxi.");
		SendClientMessage(playerid, COLOR_YELLOW,"/wtaxi- taxi ju&#380; nie jest potrzebne.");
		SendClientMessage(playerid, COLOR_YELLOW,"/raport [id] [powód]- zg&#322;asza gracza który cheat'uje. /powody");
		return 1;
	}
	if(strcmp(cmd, "/gcmd", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"Komendy gangu:");
		SendClientMessage(playerid, COLOR_YELLOW,"/gangs- wprawdza obecne gangi na tym serwerze.");
		SendClientMessage(playerid, COLOR_YELLOW,"/gang create [nazwa]- zak&#322;adasz swój gang o dowolnej nazwie.");
		SendClientMessage(playerid, COLOR_YELLOW,"/gang join [id gangu]- do&#322;a&#324;czas do gangu o podanym ID.");
		SendClientMessage(playerid, COLOR_YELLOW,"/gang invite [id gracza]- wysy&#322;a zaproszenie do gracza o podanym ID.");
		SendClientMessage(playerid, COLOR_YELLOW,"/gang quit- odchodzisz z gangu w którym sie znajdujesz.");
		SendClientMessage(playerid, COLOR_YELLOW,"/ganginfo [numer] (bez numeru poka&#380;e sie info o twoim gangu)");
		SendClientMessage(playerid, COLOR_YELLOW,"/gbank [suma]- wp&#322;aca wybran&#261; kwot&#281; na konto gangu.");
		SendClientMessage(playerid, COLOR_YELLOW,"/gwyplac [suma]- wyplaca wybran&#261; kwot&#281; z konta gangowego.");
		SendClientMessage(playerid, COLOR_YELLOW,"/gstan- pokazuje obecne pieni&#261;dze które twój gang ma w banku.");
		SendClientMessage(playerid, COLOR_YELLOW,"![text]- chat gangowy.");
		return 1;
	}
    if(strcmp(cmd, "/cmda", true) == 0)  {
  	    if(IsPlayerAdmin(playerid)){
		SendClientMessage(playerid, COLOR_GREEN,"Dost&#281;pne komendy admina:");
        SendClientMessage(playerid, COLOR_KOMENDA,"/kick [id_gracza] [powód]- wyrzuca gracza z serwera.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/ban [id_gracza] [powód]- banuje gracza z serwera.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/god [id_gracza]- dajegraczowi 99999 ptk. &#380;ycia .");
        SendClientMessage(playerid, COLOR_KOMENDA,"/lockall- zamyka wszystkie pojazdy na serwerze..");
        SendClientMessage(playerid, COLOR_KOMENDA,"/unlockall- otwiera wszystkie pojazdy na serwerze.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/deluser [nazwa_gracza]- usuwa zarejestrowanego gracza.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/invisible- stajesz sie niewidzialny.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/visible- stajesz sie widzialny :P.");
		SendClientMessage(playerid, COLOR_KOMENDA,"/czas [godzina]- ustawie wybron&#261; godzine.");
       	SendClientMessage(playerid, COLOR_GREEN,"Wpisz /cmda2 &#380;eby zobaczy&#263; ci&#261;g dalszy komend admina.");
		}else{
        SendClientMessage(playerid, COLOR_LIGHTRED, "Musisz by&#263; adminem &#380;eby to u&#380;y&#263;!");
}
    return 1;
   }
    if(strcmp(cmd, "/cmda2", true) == 0)  {
  	    if(IsPlayerAdmin(playerid)){
		SendClientMessage(playerid, COLOR_GREEN,"Dost&#281;pne komendy admina:");
        SendClientMessage(playerid, COLOR_KOMENDA,"/lokacje- pokazuje ID lokacji do których mo&#380;na sie teleportowa&#263;.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/tp [id_gracza] [id_lokacji]- teleportuje gracza X do lokacji Y.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/tpto [id_gracza] [id_2gracza]- teleportuej gracza 1 do gracza 2.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/giveweapon [id_gracza] [id_broni] [ammo]- daje graczowi bro&#324; X i Y ammunicji.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/blackadd [nazwa_gracza] 1-2] [powód]- daje nick gracza na Czarn&#261; liste.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/blackdel [nazwa_gracza]- usuwa nick gracza z Czarnej listy.");
        SendClientMessage(playerid, COLOR_YELLOW,"[1-2] oznacza: 1-kick, 2-ban. Czyli kickuje lub banuje nick z Czarnej listy.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/svall- zapisuje stan gry wszystkim graczom.");
       	SendClientMessage(playerid, COLOR_GREEN,"Wpisz /cmda3 &#380;eby zobaczy&#263; ci&#261;g dalszy komend admina.");
		}else{
        SendClientMessage(playerid, COLOR_LIGHTRED, "Musisz by&#263; adminem &#380;eby to u&#380;y&#263;!");
}
    return 1;
   }
    if(strcmp(cmd, "/cmda3", true) == 0)  {
  	    if(IsPlayerAdmin(playerid)){
		SendClientMessage(playerid, COLOR_GREEN,"Dost&#281;pne komendy admina:");
        SendClientMessage(playerid, COLOR_KOMENDA,"/givemoney [id_gracza] [suma]- daje graczowi XXX kasy.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/setmoney [id_gracza] [suma]- soatawia graczowi xxx kasy.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/setbank [id_gracza][suma]- daje kase graczowi na konto bankowe .");
        SendClientMessage(playerid, COLOR_KOMENDA,"/getbank [id_gracza]- zabiera graczowi kase z banku.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/setbounty [id_gracza] [suma]- daje xxx kasy za g&#322;owe danego gracza.");
       	SendClientMessage(playerid, COLOR_GREEN,"Wpisz /cmda4 &#380;eby zobaczy&#263; ci&#261;g dalszy komend admina.");
		}else{
        SendClientMessage(playerid, COLOR_LIGHTRED, "Musisz by&#263; adminem &#380;eby to u&#380;y&#263;!");
}
    return 1;
   }
    if(strcmp(cmd, "/cmda4", true) == 0)  {
  	    if(IsPlayerAdmin(playerid)){
		SendClientMessage(playerid, COLOR_GREEN,"Dost&#281;pne komendy admina:");
        SendClientMessage(playerid, COLOR_KOMENDA,"/adminroom- teleportuje Cie do domku gdzie nikt ciebie nieznajedzie.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/mute [id_gracza]- wy&#322;a&#324;cza chat danego gracza.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/unmute [id_gracza]- w&#322;&#261;cza chat danego gracza.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/all- Daje 5000$ i pe&#322;ny HP dla wszystkich graczy.");
        SendClientMessage(playerid, COLOR_KOMENDA,"/clarall- czy&#347;ci ka&#380;demu okienko chat'u.");
       	SendClientMessage(playerid, COLOR_YELLOW,"Oprócz tych komend mo&#380;esz zobaczyc wi&#281;cej gdy wpiszesz /x-admin.");
		}else{
        SendClientMessage(playerid, COLOR_LIGHTRED, "Musisz by&#263; adminem &#380;eby to u&#380;y&#263;!");
}
    return 1;
   }
     if(strcmp(cmd, "/about", true) == 0) {
        SendClientMessage(playerid, COLOR_GREEN,"Informacje o mapie i twórcach.");
        SendClientMessage(playerid, COLOR_YELLOW,"Las Venturas MoneyGrub(+LandGrab) 2.1 PL");
        SendClientMessage(playerid, COLOR_BLUE,"Twórcy: SiLuS");
        SendClientMessage(playerid, COLOR_ORANGE,"Uwagi, opinie, b&#322;&#281;dy prosze kierowac pod nr. gg:");
        SendClientMessage(playerid, COLOR_RED,"SiLuS: 4126463");
        SendClientMessage(playerid, COLOR_GREEN,"Dzi&#281;ki za pomoc osob&#261; z || http://forum.pawno.programuj.com || którzy pomogli mi z komendami.");
        return 1;
    }

	if (strcmp(cmdtext, "/regulamin", true)==0) {
   SendClientMessage(playerid,COLOR_GREEN,"Krótko, zwi&#281;&#378;e na temat regulaminu!");
   SendClientMessage(playerid, COLOR_LIGHTRED,"-Gracz nie mo&#380;e:");
   SendClientMessage(playerid, COLOR_YELLOW,"-Zabija&#263; z Drive-by= czyli strzela&#263; z pojazdu z miejsca kierowcy. ");
   SendClientMessage(playerid, COLOR_YELLOW,"-Cheat'owa&#263;, Czitowa&#263;, Cheatowac= czyli u&#380;ywac programów, trainerów, modów.");
   SendClientMessage(playerid, COLOR_YELLOW,"-Zabija&#263; na Cmentarzu, na którym dostaje sie kase.");
   SendClientMessage(playerid, COLOR_YELLOW,"-Bluzga&#263;, wyzywa&#263; admina i innych graczy.");
   SendClientMessage(playerid, COLOR_GREY,"Pami&#281;taj &#380;e admin nie u&#380;ywa cheatów. Admin ma wszystkie bronie i mo&#380;e by&#263; niezniszczalny. To sa komendy admina.");
   SendClientMessage(playerid, COLOR_ORANGE,"Aby szybciej zapanowa&#263; na sytuacj&#261;, gdy jest cheater piszczcie powiadomienie");
   SendClientMessage(playerid, COLOR_ORANGE,"w taki sposób: /raport [ID] [powód]. &#321;atwiej sie wtedy sprawdza.");
	return 1;
}
	
	if(strcmp(cmd, "/info", true) == 0) {
        SendClientMessage(playerid, COLOR_LIGHTRED, "* Jeste&#347; tu nowy? Nie wiesz od czego zacz&#261;&#263;? Koniecznie sie zarejestruj! Je&#347;li chcesz aby twoje informacje o:");
        SendClientMessage(playerid, COLOR_LIGHTRED, "*(pieni&#261;dzach, statystykach, etc) by&#322;o zapisywane na bierz&#261;co musisz sie zarejestrowa&#263;.");
        SendClientMessage(playerid, COLOR_LIGHTGREEN, "*Prosz&#281; wpisz: /register [has&#322;o] aby sie zarejestrowa&#263; na tym serverze.");
		SendClientMessage(playerid, COLOR_LIGHTGREEN, "*Po pomy&#347;lnej rejestracji u&#380;yj komendy: /login [has&#322;o] w celu zalogowania sie do twojego konta.");
		SendClientMessage(playerid, COLOR_LIGHTGREEN, "*Zapami&#281;taj dobrze has&#322;o!! Je&#347;li nadal nie mo&#380;esz sie zarejestrowa&#263; wpisz: /cmdr.");
        SendClientMessage(playerid, COLOR_ORANGE, "*Twój nick zostanie zapami&#281;tany w plikach, gdy chcesz gra&#263; bez zalogowania musisz zmieni&#263; nick'a.");
        SendClientMessage(playerid, COLOR_WHITE, "*Je&#347;li nie chcesz sie rejestrowac po prostu wybierz posta&#263; i graj. Mi&#322;ej zabawy! :D");
		return 1;

}
if(strcmp(cmd, "/cardive", true) == 0) {
				if(GetPlayerMoney(playerid) < 1500)
				{
					SendClientMessage(playerid, COLOR_YELLOW, "Nie masz tyle kasy..");
					return 1;
				}
				else if(IsPlayerInAnyVehicle(playerid))
				{
	   				new Float:X;
					new Float:Y;
					new Float:Z;
     				new VehicleID;
      				GetPlayerPos(playerid, X, Y, Z);
		        	VehicleID = GetPlayerVehicleID(playerid);
		        	GivePlayerMoney(playerid, - 1500);
					SetVehiclePos(VehicleID, X, Y, Z + 900.00);
					GivePlayerWeapon(playerid,46,1);
  				}
  				else
				{
				SendClientMessage(playerid, COLOR_RED, "Nie jeste&#347; w poje&#378;dzie.");
				}
 			return 1;
		}
if (strcmp(cmdtext,"/adminroom",true)==0){ //goes to admin room
	if(IsPlayerAdmin(playerid))
	{
		SetPlayerInterior(playerid,0);
		SendClientMessage(playerid,COLOR_LIGHTBLUE,"Zosta&#322;es teleportowany do pokoju adminów.");
 		SetPlayerPos(playerid,66.937911,-83.143486,0.388838);
		return 1;
	}
	else
	{
		SendClientMessage(playerid,COLOR_LIGHTBLUE,"Musisz by&#263; adminem &#380;eby to u&#380;y&#263;.!");
		return 1;
	}
	return 1;
}
	if(strcmp(cmd, "/register", true) == 0) {

		new tmp[256];
		new tmp2[256];
		new playername[MAX_PLAYER_NAME];
	    tmp = dini_Get(FILE_SETTINGS, "register");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "* Ju&#380; nie mo&#380;na sie rejestrowa&#263;!");
		    return 1;
		}
		tmp = dini_Get(FILE_SETTINGS, "maxusers");
		tmp2 = dini_Get(FILE_TOTALSTAT, "users");
		if (strval(tmp2) >= strval(tmp)) {
		    SendClientMessage(playerid, COLOR_RED, "* Mamy ju&#380; wystarczaj&#261;ca du&#380;o graczy! Nie mo&#380;esz sie zarejestrowa&#263;.");
		    return 1;
		}

	    tmp = strtok(cmdtext, idx);

 		GetPlayerName(playerid, playername, sizeof(playername));

        if(20 < strlen(tmp) || strlen(tmp) < 5) {
			SendClientMessage(playerid, COLOR_YELLOW, "* Has&#322;o musi by&#263; od 5 do 20 znaków.");
			return 1;
		}

	    if(!strlen(tmp))
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /register [has&#322;o]");

		else {
			if (!dini_Exists(udb_encode(playername))) {
				dini_Create(udb_encode(playername));
				dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
				tmp2 = dini_Get(FILE_SETTINGS, "defaultprotection");
				dini_IntSet(udb_encode(playername), "protection", strval(tmp2));
				dini_Set(udb_encode(playername), "x", "x");
   				dini_Set(udb_encode(playername), "y", "y");
    			dini_Set(udb_encode(playername), "z", "z");
                if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
                tmp2 = dini_Get(FILE_TOTALSTAT, "users");
				dini_IntSet(FILE_TOTALSTAT, "users", strval(tmp2)+1);
				format(string, sizeof(string), "%s (id: %d) utworzy&#322;e&#347; nowe konto. Twoje has&#322;o to >>> %s <<< Zapami&#281;taj je.", playername, playerid, tmp);
				printf(string);
				format(string, sizeof(string), "Utworzy&#322;e&#347; konto o nazwie: %s! Zaloguj sie! Oto has&#322;o: >>> %s <<< Zapami&#281;taj je.)", playername, tmp);
				SendClientMessage(playerid, COLOR_GREEN, string);
			}
			else {
				format(string, sizeof(string), "* %s ju&#380; zarejestrowany.", playername,tmp);
				SendClientMessage(playerid, COLOR_RED, string);
			}
		}

		return 1;
	}

	if(strcmp(cmd, "/setpass", true) == 0) {

		new tmp[256];
		new playername[MAX_PLAYER_NAME];

        tmp = dini_Get(FILE_SETTINGS, "register");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "* Ju&#380; nie mo&#380;na sie rejestrowa&#263;!");
		    return 1;
		}

	    tmp = strtok(cmdtext, idx);

 		GetPlayerName(playerid, playername, sizeof(playername));

		if(20 < strlen(tmp) || strlen(tmp) < 5) {
			SendClientMessage(playerid, COLOR_YELLOW, "* Has&#322;o musi by&#263; od 5 do 20 znaków.");
			return 1;
		}

		if(!strlen(tmp))
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /setpass [has&#322;o]");

		else {
			if (dini_Exists(udb_encode(playername))) {
			    if (logged[playerid] == 1) {
					dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
					format(string, sizeof(string), "%s (id: %d) zmieni&#322;es has&#322;o na %s.", playername, playerid, tmp);
					printf(string);
					format(string, sizeof(string), "* Has&#322;o to: %s, Zapami&#281;taj je.", tmp);
					SendClientMessage(playerid, COLOR_GREEN, string);
				}
				else SendClientMessage(playerid, COLOR_LIGHTRED, "* Musisz sie zalogowac &#380;eby zmieni&#263; has&#322;o.");
			}
			else {
			    format(string, sizeof(string), "* %s z&#322;e konto.", playername);
				SendClientMessage(playerid, COLOR_RED, string);
			}
		}

		return 1;
	}

	if(strcmp(cmd, "/login", true) == 0) {

		new tmp[256];
		new tmp2[256];
		new playername[MAX_PLAYER_NAME];
	    tmp = dini_Get(FILE_SETTINGS, "register");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "* Ju&#380; nie mo&#380;na sie logowa&#263;!");
		    return 1;
		}

	    tmp = strtok(cmdtext, idx);

 		GetPlayerName(playerid, playername, sizeof(playername));
	    if(!strlen(tmp))
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /login [has&#322;o]");

		else {
			if (dini_Exists(udb_encode(playername))) {
		    	if (logged[playerid] == 1) {
		    	    format(string, sizeof(string), "--- %s ju&#380; zalogowany.", playername);
					printf(string);
					SendClientMessage(playerid, COLOR_YELLOW, "* Ju&#380; jeste&#347; zalogowany.");
				}
				else {
					tmp2 = dini_Get(udb_encode(playername), "password");
			  		if (udb_hash(tmp) != strval(tmp2)) {
		  			    format(string, sizeof(string), "%s (id: %d) z&#322;e has&#322;o: >>> %s <<<.", playername, playerid, tmp);
						printf(string);
			    		SendClientMessage(playerid, COLOR_LIGHTRED, "* Z&#322;e has&#322;o.");
					}
					else {
						logged[playerid] = 1;
						format(string, sizeof(string), "--- %s (id: %d) zalogowany. Has&#322;o: >>> %s <<<.", playername, playerid, tmp);
						printf(string);
						SendClientMessage(playerid, COLOR_GREEN, "* Zalogowa&#322;es sie!");
					}
				}
			}
			else {
			    format(string, sizeof(string), "* %s z&#322;e konto.", playername);
				SendClientMessage(playerid, COLOR_RED, string);
			}
		}

		return 1;
	}
        if (strcmp(cmdtext, "/lockall", true)==0)
{
if(IsPlayerAdmin(playerid) == 1) {
for(new i=1;i<=217;i++) {
for(new j=0;j<GetMaxPlayers();j++) {
if(IsPlayerConnected(j)) {
SetVehicleParamsForPlayer(i,j,0,1);
}
}
}
new pname[MAX_PLAYER_NAME];
          GetPlayerName(playerid, pname, sizeof (pname));
          format(string, sizeof(string), "Administrator: %s zamkn&#261;&#322; wszystkie samochody!", pname);
          SendClientMessageToAll(COLOR_YELLOW, string);
} else {
SendClientMessage(playerid, COLOR_RED, "Musisz by&#263; adminem, by u&#380;y&#263; tej komendy!");
}
return 1;
}
if (strcmp(cmdtext, "/unlockall", true)==0)
{
if(IsPlayerAdmin(playerid) == 1) {
for(new i=1;i<=217;i++) {
for(new j=0;j<GetMaxPlayers();j++) {
if(IsPlayerConnected(j)) {
SetVehicleParamsForPlayer(i,j,0,0);
}
}
}
new pname[MAX_PLAYER_NAME];
          GetPlayerName(playerid, pname, sizeof (pname));
          format(string, sizeof(string), "Administrator: %s otworzy&#322; wszystkie samochody!", pname);
          SendClientMessageToAll(COLOR_YELLOW, string);
} else {
SendClientMessage(playerid, COLOR_RED, "Musisz by&#263; adminem, by u&#380;y&#263; tej komendy!");
}
return 1;
}
if(strcmp(cmd, "/czas", true)==0 && IsPlayerAdmin(playerid)) {
    new newtime;
    new tmp[256];
    tmp = strtok(cmdtext, idx);
    newtime = strval(tmp);

    if(!newtime) {
        SendClientMessage(playerid, COLOR_GREEN, "U&#380;yj: /czas [godzina]");
     }
     else if (newtime >24 || newtime <0) {
         SendClientMessage(playerid, COLOR_RED, "Z&#322;a godzina!");
     }
     else {
         format(tmp, sizeof(tmp), "Czas zosta&#322; zmieniony na godzin&#281;: %d:00", newtime);
         SendClientMessageToAll(COLOR_GREEN,tmp);
         SetWorldTime(newtime);
     }
     return true;
}

if(strcmp(cmdtext, "/walka", true) == 0) {
	    SetPlayerPos(playerid,1539.9496,-1348.0341,329.4716);
	    GivePlayerWeapon(playerid,5,0);
		GameTextForPlayer(playerid,"~w~Walcz o ~r~Honor lub ~b~smierc",5000,5);
	return 1;
	}
	    if(strcmp(cmdtext, "/invisible", true) == 0) {
        if(IsPlayerAdmin(playerid)){
            SetPlayerColor(playerid, 0xFFFFFF00);
            SendClientMessage(playerid, COLOR_ORANGE, "Jeste&#347; nie widoczny.");
        }else{
            SendClientMessage(playerid, COLOR_RED, "Musisz by&#263; adminem, by u&#380;y&#263; tej komendy!");
}
    return 1;
}

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

	    	if(!newz) {
	        	SendClientMessage(playerid, COLOR_GREEN, "WPISZ: /skok [wysokosc w metrach]");
				return 1;
			 }
	     	else if (newz >20000 || newz <1000) {
	         	SendClientMessage(playerid, COLOR_RED, "Podaj wysoko&#347;&#263; z zakresu od 1000 do 20000 m!");
				return 1;
			 }
	     	else {
	     	   	format(tmp, sizeof(tmp), "Wykonujesz skok spadochronowy z wysokosci %d m!", newz);
	         	SendClientMessage(playerid, COLOR_GREEN, tmp);
	          		if (GetPlayerMoney(playerid) > 999){
						GivePlayerMoney(playerid,-1000);
						new Float:x;
						new Float:y;
						new Float:z;
						GivePlayerWeapon(playerid,46,1);
						GetPlayerPos(playerid,x,y,z);
						SetPlayerPos(playerid,x,y,z+newz);
						GameTextForPlayer(playerid,"No to HOOOOP!!!",2000,5);
					}
						else{
						SendClientMessage(playerid,COLOR_RED,"Nie stac cie na skok spadochronowy.");
					}
					return 1;
			}
			return 1;
		}

		if (strcmp(cmdtext, "/pozycja", true)==0)
                {
                new Float:X, Float:Y, Float:Z;

                GetPlayerPos(playerid, X, Y, Z);
            format(string, sizeof(string), "Twoja pozycja na mapie to: %.4f, %.4f, %.4f", X, Y, Z);
                SendClientMessage(playerid,COLOR_YELLOW,string);
              printf("%.4f,%.4f,%.4f", X, Y, Z);
            return 1;
        }
        if (strcmp(cmdtext, "/lock", true)==0) {
                if(IsPlayerInAnyVehicle(playerid)) {
              		PlayerPlaySound(playerid,CAR_HORN,LocX, LocY, LocZ);
		              GameTextForPlayer(playerid,"~w~POJAZD ZAMKNIETY!",3000,3);
                        new i;
                        for(i=0;i<MAX_PLAYERS;i++) {
                                if(i != playerid) {
                                        SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
                                }
                        }
                        SendClientMessage(playerid,COLOR_WHITE,"Pojazd zamkni&#281;ty!");

                }
                else {
                        SendClientMessage(playerid,COLOR_WHITE,"Nie jeste&#347; w poje&#378;dzie!");
                }
        return 1;
        }

                if (strcmp(cmdtext, "/unlock", true)==0) {
        if(IsPlayerInAnyVehicle(playerid)) {
      		PlayerPlaySound(playerid,CAR_HORN,LocX, LocY, LocZ);
	       GameTextForPlayer(playerid,"~r~POJAZD OTWARTY",3000,3);
                        new i;
                        for(i=0;i<MAX_PLAYERS;i++) {
                                SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0);
                        }
                        SendClientMessage(playerid,COLOR_RED,"Pojazd otwarty!");

                }
                else {
                        SendClientMessage(playerid,COLOR_LIGHTORANGE,"Nie jeste&#347; w poje&#378;dzie!");
                }
        return 1;
        }

        if(strcmp(cmd,"/odleglosc",true)==0){
new playername[MAX_PLAYER_NAME];
new tmp[256];
new pid;
new dis;
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)){
SendClientMessage(playerid,COLOR_WHITE,"U&#380;yj: /odleglosc [idgracza]");
return 1;
}
pid = strval(tmp);
if(!IsPlayerConnected(pid)){
SendClientMessage(playerid,COLOR_RED,"Nie ma takiego gracza!");
return 1;
}
dis = GetDistanceBetweenPlayers(playerid,pid);
GetPlayerName(pid,playername,sizeof(playername));
format(string,sizeof(string),"%s jest odleg&#322;y od Ciebie o %d m ",playername,dis);
SendClientMessage(playerid,COLOR_LIGHTYELLOW,string);
return 1;
}
if(strcmp(cmdtext, "/100hp", true) == 0)
	{
		        new name[MAX_PLAYER_NAME];
		        GetPlayerName(playerid,name, sizeof(name));
                format(string, sizeof(string), "- %s uzdrowi&#322; si&#281; za 5000$. -",name);
                SetPlayerHealth(playerid, 100);
				SendClientMessageToAll(0xFF8A00AA,string);
				TogglePlayerControllable(playerid,1);
				GivePlayerMoney(playerid, -5000);
				return 1;
			}
if(strcmp(cmdtext,"/czysc",true)==0) // Chat window is gone, fomg!
{
    for (new a=1;a<=10;a++)
    {
        SendClientMessage(playerid,COLOR_RED,"\n");
    }
    return 1;
}
if(strcmp(cmdtext,"/hp",true)==0) //
	{
		new Float:PlayerHP;

		GetPlayerHealth(playerid,PlayerHP);
 		format(string, sizeof(string), "Ilo&#347;&#263; &#380;ycia w punktach: %.0f", PlayerHP);
		SendClientMessage(playerid,COLOR_RED,string);
		return 1;
	}
if (strcmp(cmdtext, "/time", true)==0)
        {
            new Hours;
            new Minutes;
            new Seconds;
            new Days;
            new Months;
            new Years;
            gettime(Hours, Minutes, Seconds);
            getdate(Years, Months, Days);
            format(string, sizeof(string), "Dzi&#347; jest: %d/%d/%d, godzina %d:%d:%d", Days,Months,Years,Hours,Minutes,Seconds);
                SendClientMessage(playerid,COLOR_GREEN,string);
            return 1;
}
  if(strcmp(cmdtext, "/needtaxi", true) == 0) {
	      new pname[MAX_PLAYER_NAME];
          GetPlayerName(playerid, pname, sizeof (pname));
          format(string, sizeof(string), " %s potrzebuje Taxi", pname);
          SendClientMessage(playerid, COLOR_GREEN, string); //
          GameTextForAll(string ,3000,5);
    return 1;}
 else if(strcmp(cmdtext, "/wtaxi", true) == 0) {
	  new pname[MAX_PLAYER_NAME];
          GetPlayerName(playerid, pname, sizeof (pname));
          format(string, sizeof(string), " %s nie potrzebuje juz Taxi", pname);
          SendClientMessage(playerid, COLOR_GREEN, string); //
          GameTextForAll(string ,3000,5);
    return 1;}
else if(strcmp(cmd, "/taxi", true) == 0) {
	  new pname[MAX_PLAYER_NAME];
          GetPlayerName(playerid, pname, sizeof (pname));
          format(string, sizeof(string), " %s jest taksowkarzem. Jak chcesz go uzyc wpisz /taxi", pname);
          SendClientMessage(playerid, COLOR_GREEN, string); //
          GameTextForAll(string ,3000,5);
    return 1;}

   if(strcmp(cmd, "/visible", true) ==0) {
   			if(IsPlayerAdmin(playerid)){
  			SetPlayerColor(playerid, playerColors[playerid]);
		    SendClientMessage(playerid, COLOR_ORANGE, "Jeste&#347; widoczny.");
        }else{
            SendClientMessage(playerid, COLOR_RED, "Nie jeste&#347; adminem!");
}
    return 1;
}

			if(strcmp(cmdtext, "/invisible", true) == 0) {
        if(IsPlayerAdmin(playerid)){
            SetPlayerColor(playerid, 0xFFFFFF00);
            SendClientMessage(playerid, COLOR_ORANGE, "Jeste&#347; nie widoczny.");
        }else{
            SendClientMessage(playerid, COLOR_RED, "Nie jeste&#347; adminem!");
}
    return 1;
}

if (strcmp(cmdtext, "/all", true)==0)
	{
		for(new i=0; i<MAX_PLAYERS; i++)
if(IsPlayerConnected(i))
  GivePlayerMoney(playerid, 5000); //Change 5000 To Change money Given
  SetPlayerHealth(playerid, 100); // Change 100 from 1-100 To Change Health Given
{
SendClientMessage(playerid,COLOR_WHITE,"Gratulacje, Dosta&#322;e&#347; pieni&#261;dze i pe&#322;ne HP od Admina!");
}
return 1;
}
  	if(strcmp(cmd, "/kick", true) == 0 && IsPlayerAdmin(playerid) == 1) {

        new tmp[256];
        tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /kick [idgracza] [powód]");
			return 1;
		}
		giveplayerid = strval(tmp);

		strmid(tmp, cmdtext, 6+strlen(tmp), strlen(cmdtext));
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /kick [idgracza] [powód]");
			return 1;
		}

		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			KickMsg(giveplayerid, sendername, tmp);
		}
		else {
			format(string, sizeof(string), "* ID %d nie jest aktywnym graczem.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}
	if(strcmp(cmd, "/ban", true) == 0 && IsPlayerAdmin(playerid) == 1) {

        new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_RED, "* U&#380;yj: /ban [idgracza] [powód]");
			return 1;
		}
		giveplayerid = strval(tmp);

		strmid(tmp, cmdtext, 5+strlen(tmp), strlen(cmdtext));
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_RED, "* U&#380;yj: /ban [idgracza] [powód]");
			return 1;
		}

		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			BanMsg(giveplayerid, sendername, tmp);
			SendClientMessage(playerid, COLOR_WHITE, "Wyslane.");
		}
		else {
			format(string, sizeof(string), "* ID %d nie jest aktywnym graczem.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}
	
	if(strcmp(cmd, "/raport", true) == 0) {

		new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /raport [id_gracza] [powód]");
			return 1;
		}
		giveplayerid = strval(tmp);

		strmid(tmp, cmdtext, 6+strlen(tmp), strlen(cmdtext));
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* Uzyj: /raport [id_gracza] [powód]");
			return 1;
		}

		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
                        RaportCheater(playerid, giveplayer, tmp);
                        SendClientMessage(playerid, COLOR_RED, "Wyslane.");
		}
		else {
			format(string, sizeof(string), "* ID %d nie jest aktywnym graczem.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}
	
	if(strcmp(cmd, "/stat", true) == 0) {
		new tmp[256];
		new tmp2[256];
		tmp = strtok(cmdtext, idx);

        GetPlayerName(playerid, sendername, MAX_PLAYER_NAME);
		if(!strlen(tmp)) {
		    if (dini_Exists(udb_encode(sendername))) {
				SendClientMessage(playerid, COLOR_WHITE,"____________________________");
				format(string, sizeof(string), "Twoje statystyki: %s:", sendername);
				SendClientMessage(playerid, COLOR_ORANGE, string);
				tmp2 = dini_Get(udb_encode(sendername), "kills");
				for (new i=0;i<12;i++)
				    if (RankKills[i] <= strval(tmp2)) moneys = i;
				format(string, sizeof(string), "Zabitych: %d. Ranga: %s.", strval(tmp2),RankKillNames[moneys]);
				SendClientMessage(playerid, COLOR_GREEN, string);
				tmp2 = dini_Get(udb_encode(sendername), "killsinarow");
				for (new i=0;i<12;i++)
				    if (RankKillsIAR[i] <= strval(tmp2)) moneys = i;
				format(string, sizeof(string), "Maximum zabitych pod rz&#261;d: %d. Ranga: %s.", strval(tmp2),RankKillIARNames[moneys]);
				SendClientMessage(playerid, COLOR_WHITE, string);
				tmp2 = dini_Get(udb_encode(sendername), "deaths");
				for (new i=0;i<12;i++)
				    if (RankDeaths[i] <= strval(tmp2)) moneys = i;
				format(string, sizeof(string), "Zgin&#261;&#322;e&#347;: %d. Ranga: %s.", strval(tmp2),RankDeathNames[moneys]);
				SendClientMessage(playerid, COLOR_RED, string);
				tmp2 = dini_Get(udb_encode(sendername), "suicides");
				for (new i=0;i<12;i++)
				    if (RankSuicides[i] <= strval(tmp2)) moneys = i;
				format(string, sizeof(string), "Pope&#322;nionych samobósjtw: %d. Ranga: %s.", strval(tmp2),RankSuicideNames[moneys]);
				SendClientMessage(playerid, COLOR_GREY, string);
				for (new i=0;i<12;i++)
				    if (RankMoneys[i] <= GetPlayerMoney(playerid)+bank[playerid]) moneys = i;
				format(string, sizeof(string), "Twoje pieni&#261;dze ogó&#322;em: %d. Ranga: %s.", GetPlayerMoney(playerid)+bank[playerid],RankMoneyNames[moneys]);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
				for (new i=0;i<8;i++)
				    if (RankBounty[i] <= bounty[playerid]) moneys = i;
				format(string, sizeof(string), "Nagroda za swoj&#261; &#347;mier&#263;: %d. Ranga: %s.", bounty[playerid],RankBountyNames[moneys]);
				SendClientMessage(playerid, COLOR_YELLOW, string);
				SendClientMessage(playerid, COLOR_WHITE,"____________________________");
			}
			else {
			    format(string, sizeof(string), "* %s no such account.", sendername);
				SendClientMessage(playerid, COLOR_RED, string);
			}
		}
		else {
		    if (dini_Exists(udb_encode(tmp))) {
       			SendClientMessage(playerid, COLOR_WHITE,"____________________________");
				format(string, sizeof(string), "Twoje statystyki: %s:", tmp);
				SendClientMessage(playerid, COLOR_ORANGE, string);
    			tmp2 = dini_Get(udb_encode(tmp), "kills");
				for (new i=0;i<12;i++)
				    if (RankKills[i] <= strval(tmp2)) moneys = i;
				format(string, sizeof(string), "Zabitych: %d. Ranga: %s.", strval(tmp2),RankKillNames[moneys]);
				SendClientMessage(playerid, COLOR_GREEN, string);
				tmp2 = dini_Get(udb_encode(tmp), "killsinarow");
				for (new i=0;i<12;i++)
				    if (RankKillsIAR[i] <= strval(tmp2)) moneys = i;
				format(string, sizeof(string), "Maximum zabitych pod rz&#261;d: %d. Ranga: %s.", strval(tmp2),RankKillIARNames[moneys]);
				SendClientMessage(playerid, COLOR_WHITE, string);
				tmp2 = dini_Get(udb_encode(tmp), "deaths");
				for (new i=0;i<12;i++)
				    if (RankDeaths[i] <= strval(tmp2)) moneys = i;
				format(string, sizeof(string), "Zgin&#261;&#322;e&#347;: %d. Ranga: %s.", strval(tmp2),RankDeathNames[moneys]);
				SendClientMessage(playerid, COLOR_RED, string);
				tmp2 = dini_Get(udb_encode(tmp), "suicides");
				for (new i=0;i<12;i++)
				    if (RankSuicides[i] <= strval(tmp2)) moneys = i;
				format(string, sizeof(string), "Pope&#322;nionych samobósjtw: %d. Ranga: %s.", strval(tmp2),RankSuicideNames[moneys]);
				SendClientMessage(playerid, COLOR_GREY, string);
				SendClientMessage(playerid, COLOR_WHITE,"____________________________");
				giveplayerid = GetPlayerId(tmp);
				if (giveplayerid != INVALID_PLAYER_ID) {
				    weaponid = bounty[giveplayerid];
					giveplayerid = GetPlayerMoney(giveplayerid)+bank[giveplayerid];
				}
				else {
				    tmp2 = dini_Get(udb_encode(tmp), "money");
					giveplayerid = strval(tmp2);
                    tmp2 = dini_Get(udb_encode(tmp), "bank");
                    giveplayerid += strval(tmp2);
                    tmp2 = dini_Get(udb_encode(tmp), "bounty");
                    weaponid = strval(tmp2);
				}
				for (new i=0;i<12;i++)
				    if (RankMoneys[i] <= giveplayerid) moneys = i;
				format(string, sizeof(string), "Twoje pieni&#261;dze ogó&#322;em: %d. Ranga: %s.", giveplayerid,RankMoneyNames[moneys]);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
				for (new i=0;i<8;i++)
				    if (RankBounty[i] <= weaponid) moneys = i;
				format(string, sizeof(string), "Nagroda za swoj&#261; &#347;mier&#263;: %d. Ranga: %s.", weaponid,RankBountyNames[moneys]);
				SendClientMessage(playerid, COLOR_YELLOW, string);
				SendClientMessage(playerid, COLOR_WHITE,"____________________________");
			}
			else {
			    format(string, sizeof(string), "* %s z&#322;e konto.", tmp);
				SendClientMessage(playerid, COLOR_RED, string);
			}
		}

		return 1;
	}

	if(strcmp(cmd, "/totalstat", true) == 0) {
	    new tmp3[256];
	    new tmp[256];
	    new tmp2[256];
		SendClientMessage(playerid, COLOR_WHITE,"_________________________________________");
		format(string, sizeof(string), "Statystyki serwera:", sendername);
		SendClientMessage(playerid, COLOR_ORANGE, string);
		tmp = dini_Get(FILE_TOTALSTAT, "kills");
		tmp2 = dini_Get(FILE_TOTALSTAT, "deaths");
		tmp3 = dini_Get(FILE_TOTALSTAT, "suicides");
		format(string, sizeof(string), "* Zabitych: %d. Zgonów: %d. Samobójstw: %d.", strval(tmp),strval(tmp2),strval(tmp3));
		SendClientMessage(playerid, COLOR_GREEN, string);
		tmp = dini_Get(FILE_TOTALSTAT, "moneyreceived");
		tmp2 = dini_Get(FILE_TOTALSTAT, "moneylost");
		format(string, sizeof(string), "Pieni&#261;dze otrzymane/wygrane: %d. Pieni&#261;dze wydane/przegrane: %d.", strval(tmp), strval(tmp2));
		SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		tmp = dini_Get(FILE_TOTALSTAT, "users");
		format(string, sizeof(string), "Zarejestrowani gracze: %d.", strval(tmp));
		tmp = dini_Get(FILE_TOTALSTAT, "kicks");
		tmp2 = dini_Get(FILE_TOTALSTAT, "bans");
		format(string, sizeof(string), "Gracze zkickowani: %d. Gracze zbanowani: %d.", strval(tmp),strval(tmp2));
		SendClientMessage(playerid, COLOR_RED, string);
		SendClientMessage(playerid, COLOR_WHITE,"_________________________________________");

		return 1;
	}

	if(strcmp(cmd, "/deluser", true) == 0 && IsPlayerAdmin(playerid) == 1) {
		new tmp[256];
		new tmp2[256];
		new playername[MAX_PLAYER_NAME];
		tmp = strtok(cmdtext, idx);

 		GetPlayerName(playerid, playername, sizeof(playername));
	    if(!strlen(tmp))
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /deluser [nazwa_gracza]");

		else {
			if (dini_Exists(udb_encode(tmp))) {
				dini_Remove(udb_encode(tmp));
    			if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
                tmp2 = dini_Get(FILE_TOTALSTAT, "users");
				if (strval(tmp2) > 0) dini_IntSet(FILE_TOTALSTAT, "users", strval(tmp2)-1);
				format(string, sizeof(string), "Administrator: %s (id: %d) usun&#261;&#322; gracza %s z rejestru.", playername,playerid,tmp);
				printf(string);
				format(string, sizeof(string), "* Gracz: %s usuni&#281;ty z rejestru.", tmp);
				SendClientMessage(playerid, COLOR_RED, string);
			}
			else {
				format(string, sizeof(string), "Gracz: %s nie jest aktymnym graczem.", tmp);
				SendClientMessage(playerid, COLOR_RED, string);
			}
		}

		return 1;
	}

	if(strcmp(cmd, "/setprot", true) == 0) {

		new tmp[256];
	    tmp = dini_Get(FILE_SETTINGS, "protectionchange");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "* Protection change are not allowed on this server!");
		    return 1;
		}

		tmp = strtok(cmdtext, idx);

		GetPlayerName(playerid, sendername, MAX_PLAYER_NAME);

		if (dini_Exists(udb_encode(sendername)) && logged[playerid] == 0) {
  		    SendClientMessage(playerid, COLOR_YELLOW, "* You must be logged in to use this.");
			return 1;
		}

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /setprot [0-1]");
			return 1;
		}
		moneys = strval(tmp);

		if (moneys < 0 || moneys > 1) {
		    SendClientMessage(playerid, COLOR_YELLOW, "* Invalid parameter.");
		    return 1;
		}

	    if (dini_Exists(udb_encode(sendername))) {
	        dini_IntSet(udb_encode(sendername), "protection", moneys);

			format(string, sizeof(string), "--- %s (id: %d) sets protection to %s.", sendername,playerid,moneys);
			printf(string);
			if (moneys == 0) SendClientMessage(playerid, COLOR_YELLOW, "* You turned protection off. No login required on connect.");
			if (moneys == 1) SendClientMessage(playerid, COLOR_YELLOW, "* You turned protection on. Login required on connect.");
		}
		else {
		    format(string, sizeof(string), "* %s no such account.", sendername);
			SendClientMessage(playerid, COLOR_RED, string);
		}

		return 1;
	}

	if(strcmp(cmd, "/sv", true) == 0) {
	    new Float:x, Float:y, Float:z;
	   	new tmp[256];
	   	new playername[MAX_PLAYER_NAME];

	    tmp = dini_Get(FILE_SETTINGS, "manualsaving");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "Manualne zapisywanie post&#281;pów nie sa dost&#281;pne tutaj!");
		    return 1;
		}

	    GetPlayerName(playerid, playername, MAX_PLAYER_NAME);

	    if (dini_Exists(udb_encode(playername))) {
		    if (logged[playerid] == 1) {
				dini_IntSet(udb_encode(playername), "money", GetPlayerMoney(playerid));
       			dini_IntSet(udb_encode(playername), "bank", bank[playerid]);
      			dini_IntSet(udb_encode(playername), "bounty", bounty[playerid]);
      			if (GetPlayerState(playerid) != PLAYER_STATE_NONE && GetPlayerState(playerid) != PLAYER_STATE_WASTED) {
					GetPlayerPos(playerid, x,y,z);
       				dini_FloatSet(udb_encode(playername), "x", x);
       				dini_FloatSet(udb_encode(playername), "y", y);
       				dini_FloatSet(udb_encode(playername), "z", z);
				}
      			dini_IntSet(udb_encode(playername), "killsinarow", killsinarow[playerid]);
        		format(string, sizeof(string), "Gracz: %s (id: %d) zapisa&#322; swój post&#281;p. Pieni&#261;dze: $%d *** Bank: $%d *** Nagroda: $%d.", playername,playerid,GetPlayerMoney(playerid),bank[playerid],bounty[playerid]);
				printf(string);
        		SendClientMessage(playerid, COLOR_GREEN, "Twój post&#281;p w grze zosta&#322; zapisany.");
			}
			else SendClientMessage(playerid, COLOR_YELLOW, "Musisz sie zalogowa&#263; &#380;eby zapisa&#263; twój post&#281;p.");
		}
		else {
			format(string, sizeof(string), "* %s z&#322;e konto.", playername);
			SendClientMessage(playerid, COLOR_RED, string);
		}

	    return 1;
	}

	if(strcmp(cmd, "/svall", true) == 0 && IsPlayerAdmin(playerid) == 1) {
		new playername[MAX_PLAYER_NAME];

	    GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  		format(string, sizeof(string), "--- %s (id: %d) zapisa&#322; ka&#380;demu post&#281;p w grze :)", playername,playerid);
		printf(string);
		SaveData();
   		SendClientMessage(playerid, COLOR_GREEN, "* Zapisany ca&#322;y post&#281;p w grze.");

	    return 1;
	}
	
	 	if(strcmp(cmd, "/setbank", true) == 0 && IsPlayerAdmin(playerid) == 1) {
	 	new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /setbank [id_gracza] [suma]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /setbank [id_gracza] [suma]");
			return 1;
		}
 		moneys = strval(tmp);

		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			bank[giveplayerid] = moneys;
			format(string, sizeof(string), "Administrator: %s (id: %d) da&#322; graczowi: %s (id: %d) na konto bankowe: $%d.", sendername,playerid,giveplayer,giveplayerid,moneys);
			printf(string);
			format(string, sizeof(string), "* Da&#322;e&#347; graczowi: %s (id: %d) na konto bankowe $%d.", giveplayer,giveplayerid,moneys);
			SendClientMessage(playerid, COLOR_YELLOW, string);
			format(string, sizeof(string), "* Twój stan konta wyniosi teraz: $%d, dzi&#281;ki pomocy: %s (id: %d).", moneys,sendername,playerid);
			SendClientMessage(giveplayerid, COLOR_YELLOW, string);
		}
		else {
		    format(string, sizeof(string), "Gracz: %d nie jest aktywnym graczem.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}

	if(strcmp(cmd, "/getbank", true) == 0 && IsPlayerAdmin(playerid) == 1) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /getbank [id_gracza]");
			return 1;
		}
		giveplayerid = strval(tmp);

		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			format(string, sizeof(string), "* Stan konta: %s (id: %d) wyniosi $%d.", giveplayer,giveplayerid,bank[giveplayerid]);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}
		else {
            format(string, sizeof(string), "Gracz: %d nie jest aktywnym graczem.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}
	if(strcmp(cmd, "/setmoney", true) == 0 && IsPlayerAdmin(playerid) == 1) {
	    new oldmoneys;
		new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /setmoney [id_gracza] [suma]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /setmoney [id_gracza] [suma]");
			return 1;
		}
 		moneys = strval(tmp);

		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			oldmoneys = GetPlayerMoney(giveplayerid);
			StatGivePlayerMoney(giveplayerid, -oldmoneys+moneys);
			format(string, sizeof(string), "Administrator: %s (id: %d) doda&#322; graczowi: %s (id: %d) na konto bankowe: $%d.", sendername,playerid,giveplayer,giveplayerid,moneys);
			printf(string);
			format(string, sizeof(string), "* Da&#322;e&#347; graczowi: %s (id: %d) na konto bankowe $%d.", giveplayer,giveplayerid,moneys);
			SendClientMessage(playerid, COLOR_YELLOW, string);
			format(string, sizeof(string), "* Twój stan konta wyniosi $%d, dzi&#281;ki pomocy %s (id: %d).", moneys,sendername,playerid);
			SendClientMessage(giveplayerid, COLOR_YELLOW, string);
		}
		else {
		    format(string, sizeof(string), "Gracz %d nie jest aktywnym graczem.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}
	if(strcmp(cmd, "/tpto", true) == 0 && IsPlayerAdmin(playerid) == 1) {
		new telename[MAX_PLAYER_NAME];
		new teleid;
		new Float:pX, Float:pY, Float:pZ;
		new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /tpto [id_gracza] [do drugiego gracza]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /tpto [id_gracza] [do drugiego gracza]]");
			return 1;
		}
 		teleid = strval(tmp);

		if (IsPlayerConnected(giveplayerid) && IsPlayerConnected(teleid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			GetPlayerName(teleid, telename, sizeof(telename));
			GetPlayerPos(teleid, pX,pY,pZ);
			SetPlayerPos(giveplayerid, pX,pY,pZ);
			format(string, sizeof(string), "Administrator: %s (id: %d) teleportowa&#322; gracza %s (id: %d) do gracza %s (id: %d)", sendername,playerid,giveplayer,giveplayerid,telename,teleid);
			printf(string);
			format(string, sizeof(string), "* Teleportowa&#322;e&#347; %s (id: %d) do gracza %s (id: %d).", giveplayer,giveplayerid,telename,teleid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
			format(string, sizeof(string), "* Zosta&#322;e&#347; teleportowany do gracza %s (id: %d) przez administratora: %s (id: %d).", telename,teleid,sendername,playerid);
			SendClientMessage(giveplayerid, COLOR_YELLOW, string);
		}
		if (!IsPlayerConnected(giveplayerid)) {
			format(string, sizeof(string), "Gracz: %d nie jest aktywnym graczem.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}
		if (!IsPlayerConnected(teleid)) {
			format(string, sizeof(string), "* %d is not an active player.", teleid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}
	if(strcmp(cmd, "/lokacje", true) == 0 && IsPlayerAdmin(playerid) == 1) {
		SendClientMessage(playerid, COLOR_GREEN,"_______________________________________________________________________________");
		SendClientMessage(playerid, COLOR_YELLOW,"* LS: 1. Groove St. *** 2. Airport *** 3. Highest Building *** 4. Lighthouse");
		SendClientMessage(playerid, COLOR_YELLOW,"* SF: 5. Doherty *** 6. Airport *** 7. Highest Building *** 8. Golden Gate");
		SendClientMessage(playerid, COLOR_YELLOW,"* LV: 9. Four Dragons *** 10. Airport *** 11. Highest Building");
		SendClientMessage(playerid, COLOR_YELLOW,"* INNE: 12. Chilliad *** 13. Abandoned Airport *** 14. Area 69");
        SendClientMessage(playerid, COLOR_GREEN,"_______________________________________________________________________________");

		return 1;
	}

	if(strcmp(cmd, "/tp", true) == 0 && IsPlayerAdmin(playerid) == 1) {
		new locname[256];
		new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /tp [id_gracza] [id_lokacji]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /tp [id_gracza] [id_lokacji]");
			return 1;
		}
 		moneys = strval(tmp);

 		if (moneys < 1 || moneys > 14) {
 			SendClientMessage(playerid, COLOR_YELLOW, "* Z&#322;e ID lokacji.");
			return 1;
		}

		if (IsPlayerConnected(giveplayerid)) {
		    SetPlayerInterior(giveplayerid, 0);
		    if (moneys == 1) {
				format(locname, sizeof(locname), "LS Groove St.");
                SetPlayerPos(giveplayerid, 2492.9375,-1670.4402,13.3359);
			}
			if (moneys == 2) {
				format(locname, sizeof(locname), "LS Airport");
                SetPlayerPos(giveplayerid, 1925.1957,-2426.8733,13.5391);
			}
			if (moneys == 3) {
				format(locname, sizeof(locname), "LS Highest Building");
                SetPlayerPos(giveplayerid, 1546.1326,-1354.6786,329.4790);
			}
			if (moneys == 4) {
				format(locname, sizeof(locname), "LS Lighthouse");
                SetPlayerPos(giveplayerid, 154.0820,-1938.4050,3.7734);
			}
			if (moneys == 5) {
				format(locname, sizeof(locname), "SF Doherty");
                SetPlayerPos(giveplayerid, -2026.0696,175.2042,28.8359);
			}
			if (moneys == 6) {
				format(locname, sizeof(locname), "SF Airport");
                SetPlayerPos(giveplayerid, -1281.1655,-166.1917,14.1484);
			}
			if (moneys == 7) {
				format(locname, sizeof(locname), "SF Highest Building");
                SetPlayerPos(giveplayerid, -1753.8291,885.4835,295.8750);
			}
			if (moneys == 8) {
				format(locname, sizeof(locname), "SF Golden Gate");
                SetPlayerPos(giveplayerid, -2678.8230,1595.1827,217.2739);
			}
			if (moneys == 9) {
				format(locname, sizeof(locname), "LV Four Dragons");
                SetPlayerPos(giveplayerid, 2030.2551,1007.9247,10.8203);
			}
			if (moneys == 10) {
				format(locname, sizeof(locname), "LV Airport");
                SetPlayerPos(giveplayerid, 1525.6610,1594.5865,10.8203);
			}
			if (moneys == 11) {
				format(locname, sizeof(locname), "LV Highest Building");
                SetPlayerPos(giveplayerid, 2057.1145,2435.5623,165.6172);
			}
			if (moneys == 12) {
				format(locname, sizeof(locname), "Chilliad");
                SetPlayerPos(giveplayerid, -2321.2866,-1637.9414,483.7031);
			}
			if (moneys == 13) {
				format(locname, sizeof(locname), "Abandoned Airport");
                SetPlayerPos(giveplayerid, 324.9738,2520.6030,16.6942);
			}
			if (moneys == 14) {
				format(locname, sizeof(locname), "Area 69");
                SetPlayerPos(giveplayerid, 213.6413,1904.4032,17.6406);
			}
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			format(string, sizeof(string), "Administrator: %s (id: %d) teleportowa&#322; gracza %s (id: %d) do lokacji o ID: %d.", sendername,playerid,giveplayer,giveplayerid, moneys);
			printf(string);
			format(string, sizeof(string), "* Teleportowa&#322;e&#347; gracza %s (id: %d) do lokacji %s (id: %d).", giveplayer,giveplayerid,locname,moneys);
			SendClientMessage(playerid, COLOR_YELLOW, string);
			format(string, sizeof(string), "* Zosta&#322;e&#347; teleportowany do %s przez administratora %s (id: %d).", locname,sendername,playerid);
			SendClientMessage(giveplayerid, COLOR_YELLOW, string);
		}
		if (!IsPlayerConnected(giveplayerid)) {
			format(string, sizeof(string), "* %d is not an active player.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}

	if(strcmp(cmd, "/parachute", true) == 0) {
	    new tmp[256];
	    tmp = dini_Get(FILE_SETTINGS, "parachute");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "* Parachute nie s&#261; dost&#281;pne na tym serwerze!");
		    return 1;
		}

		GetPlayerName(playerid, giveplayer, MAX_PLAYER_NAME);

   	    if (GetPlayerState(playerid) == PLAYER_STATE_NONE || GetPlayerState(playerid) == PLAYER_STATE_WASTED) return 1;

	    if (GetPlayerMoney(playerid) > 499) {
			StatGivePlayerMoney(playerid, -500);
			GivePlayerWeapon(playerid, 46, 1);
			SendClientMessage(playerid, COLOR_YELLOW, "* Spadochron zakupiony.");
			format(string, sizeof(string), "Gracz: %s (id: %d) kupi&#322; spadochron.", giveplayer,playerid);
			printf(string);
		}
		else
		    SendClientMessage(playerid, COLOR_RED, "* Nie masz tyle kasy!");
		return 1;
	}

	if(strcmp(cmd, "/setbounty", true) == 0 && IsPlayerAdmin(playerid) == 1) {
	    new tmp[256];
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /setbounty [id_gracza] [suma]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /setbounty [id_gracza] [suma]");
			return 1;
		}
 		moneys = strval(tmp);

		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			bounty[giveplayerid] = moneys;
			format(string, sizeof(string), "Administrator: %s (id: %d) zap&#322;aci&#322; za g&#322;owe: %s (id: %d) nagrode w wysoko&#347;ci $%d.", sendername,playerid,giveplayer,giveplayerid,moneys);
			printf(string);
			format(string, sizeof(string), "* Zap&#322;aci&#322;e&#347; nagrode za %s (id: %d) wysoko&#347;ci $%d.", giveplayer,giveplayerid,moneys);
			SendClientMessage(playerid, COLOR_YELLOW, string);
			format(string, sizeof(string), "* Twoja g&#322;owa jest warta teraz $%d, podzi&#281;kuj adminowi: %s (id: %d).", moneys,sendername,playerid);
			SendClientMessage(giveplayerid, COLOR_YELLOW, string);
		}
		else {
		    format(string, sizeof(string), "Gracz: %d nie jest aktywnym graczem.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}

	if(strcmp(cmd, "/transact", true) == 0) {
	    new tmp[256];
		tmp = dini_Get(FILE_SETTINGS, "bank");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "* Banki s&#261; w sklepach 24/7!");
		    return 1;
		}

	    tmp = dini_Get(FILE_SETTINGS, "transact");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "* Wys&#322;anie nie jest mo&#380;liwe!");
		    return 1;
		}

	    if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK) {
	        SendClientMessage(playerid, COLOR_YELLOW, "* Muszi by&#263; w banku &#380;eby to u&#380;y&#263;. Banki znajduj&#261; sie w sklepach 24/7.");
			return 1;
		}

		tmp = strtok(cmdtext, idx);

		GetPlayerName(playerid, sendername, sizeof(sendername));

  		if (dini_Exists(udb_encode(sendername)) && logged[playerid] == 0) {
  		    SendClientMessage(playerid, COLOR_YELLOW, "* Musisz sie zalogowa&#263; &#380;eby to u&#380;y&#263;.");
			return 1;
		}

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /transact [id_gracza] [suma]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /trensact [id_gracza] [suma]");
			return 1;
		}
 		moneys = strval(tmp);

 		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));

		if (IsPlayerConnected(giveplayerid)) {
			if (moneys > 0 && bank[playerid] >= moneys) {
				bank[playerid] -= moneys;
				bank[giveplayerid] += moneys;
				format(string, sizeof(string), "Gracz: %s (id: %d) wys&#322;a&#322; $%d dla gracza %s (id: %d) do banku.", sendername,playerid,moneys,giveplayer,giveplayerid);
				printf(string);
				format(string, sizeof(string), "* Wys&#322;a&#322;e&#347; $%d dla gracza %s (id: %d) do banku.",  moneys,giveplayer,giveplayerid);
				SendClientMessage(playerid, COLOR_YELLOW, string);
				format(string, sizeof(string), "* Dosta&#322;e&#347; $%d od gracza %s (id: %d) do banku.", moneys,sendername,playerid);
				SendClientMessage(giveplayerid, COLOR_YELLOW, string);
			}
			else {
				SendClientMessage(playerid, COLOR_YELLOW, "* Z&#322;a suma.");
			}
		}
		else {
				format(string, sizeof(string), "Gracz: %d nie jest aktywnym graczem.", giveplayerid);
				SendClientMessage(playerid, COLOR_YELLOW, string);
		}
		return 1;
	}
if(strcmp(cmd, "/admins", true) == 0)
{
	new PlayerName[24];
	new count = 0;
	SendClientMessage(playerid, 0xFFFF00AA, "Administratorzy:");
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i) && IsPlayerAdmin(i))
		{
			GetPlayerName(i,PlayerName,24);
			format(string,sizeof(string),"%s jest obecnie online.", PlayerName);
			SendClientMessage(playerid, 0xFFFFFFAA, string);
			count++;
		}
	}
	if(count == 0)
	{
		SendClientMessage(playerid, 0xFFFFFFAA, "Nie ma teraz &#380;adnego admina na serwerze.");
	}
	return 1;
}
if(strcmp(cmdtext,"/clearall",true) == 0 && IsPlayerAdmin(playerid) == 1) // Okno chatu zosta&#322;o wyczyszczone!
	{
    for (new a=1;a<=10;a++)
    {
        SendClientMessageToAll(COLOR_GREY,"\n");
    }
    return 1;
}
if(strcmp(cmd, "/kupmax", true) == 0) {

         if (GetPlayerMoney(playerid) < 199)
         {
            SendClientMessage(playerid, COLOR_GREEN,"Nie masz wystarczaj&#261;co pieni&#281;dzy!");
            return 1;
         }
           else if (IsPlayerInCheckpoint(playerid) == 0)
         {
             SendClientMessage(playerid, COLOR_RED, "Musiszbyc w McDrive  ");
            return 1;
            }

         else if (GetPlayerMoney(playerid) > 199 && getCheckpointType(playerid) == CP_CMDRIVE && (IsPlayerInCheckpoint(playerid) == 1))
         {
            SendClientMessage(playerid, COLOR_GREEN, "Uzdrowi&#322;e&#347; si&#281; za 200$");
            SetPlayerHealth(playerid, 100);
            TogglePlayerControllable(playerid,1);
            GivePlayerMoney(playerid, -200);
         }
}
if (strcmp(cmdtext, "/flip", true)==0)
{
	new VehicleID, Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerid, X, Y, Z);
  VehicleID = GetPlayerVehicleID(playerid);
  SetVehiclePos(VehicleID, X, Y, Z);
  SetVehicleZAngle(VehicleID, 0);
    return 1;
}

//--------------------oryginalne komendy
	
	if(strcmp(cmd, "/bank", true) == 0 || strcmp(cmd, "/gbank", true) == 0) {
	    new gang;
	    if(strcmp(cmd, "/gbank", true) == 0)
	        gang = 1;
	
	    if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK) {
	        SendClientMessage(playerid, COLOR_YELLOW, "Musisz by&#263; w banku aby u&#380;y&#263; tej komendy. Banki s&#261; rozmieszczone w sklepach 24/7.");
			return 1;
		}
	
		if(gang && playerGang[playerid]==0) {
			SendClientMessage(playerid, COLOR_RED, "Nie jeste&#347; w gangu!");
			return 1;
		}

		new tmp[256];
	    tmp = strtok(cmdtext, idx);
	    
	    if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /gbank [kwota]");
			return 1;
	    }
	    moneys = strval(tmp);
	    
	    if(moneys < 1) {
			SendClientMessage(playerid, COLOR_YELLOW, "Ha, ha, jeste&#347; sp&#322;ukany.");
			return 1;
		}
		
		if(GetPlayerMoney(playerid) < moneys) {
			moneys = GetPlayerMoney(playerid);
		}

		GivePlayerMoney(playerid, 0-moneys);
		
		if(gang)
		    gangBank[playerGang[playerid]]+=moneys;
		else
			bank[playerid]+=moneys;

		if(gang)
			format(string, sizeof(string), "Wp&#322;aci&#322;e&#347; $%d, bilans konta twojego gangu to $%d.", moneys, gangBank[playerGang[playerid]]);
		else
			format(string, sizeof(string), "Wp&#322;aci&#322;e&#347; $%d, twój aktualny bilans konta to $%d.", moneys, bank[playerid]);

		SendClientMessage(playerid, COLOR_YELLOW, string);
		
		return 1;
	}
	
	//------------------- /withdraw

	if(strcmp(cmd, "/withdraw", true) == 0 || strcmp(cmd, "/gwithdraw", true) == 0) {
	    new gang;
	
	    if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK) {
	        SendClientMessage(playerid, COLOR_YELLOW, "Musisz by&#263; w banku aby u&#380;y&#263; tej komendy. Banki s&#261; rozmieszczone w sklepach 24/7.");
			return 1;
		}

		if(strcmp(cmd, "/gwithdraw", true) == 0)
		    gang = 1;

		if(gang && playerGang[playerid]==0) {
			SendClientMessage(playerid, COLOR_RED, "Nie jeste&#347; w gangu!");
			return 1;
		}

	    new tmp[256];
	    tmp = strtok(cmdtext, idx);

	    if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /gwithdraw [kwota]");
			return 1;
	    }
	    moneys = strval(tmp);

	    if(moneys < 1) {
			SendClientMessage(playerid, COLOR_YELLOW, "I gdzie s&#261; pieni&#261;dze? :-/");
			return 1;
		}
	    
	    if(gang) {
			if(moneys > gangBank[playerGang[playerid]])
			    moneys = gangBank[playerGang[playerid]];
	    } else {
		    if(moneys > bank[playerid])
		        moneys = bank[playerid];
     	}

		GivePlayerMoney(playerid, moneys);
		if(gang)
			gangBank[playerGang[playerid]] -= moneys;
		else
			bank[playerid] -= moneys;
	    
		if(gang)
			format(string, sizeof(string), "Pobra&#322;e&#347; $%d, bilans twojego gangu to $%d.", moneys, gangBank[playerGang[playerid]]);
		else
			format(string, sizeof(string), "Pobra&#322;e&#347; $%d, twój aktualny bilans to $%d.", moneys, bank[playerid]);
		SendClientMessage(playerid, COLOR_YELLOW, string);

		return 1;
   	}

	//------------------- /balance
	
	if(strcmp(cmd, "/balance", true) == 0 || strcmp(cmd, "/gbalance", true) == 0) {
		new gang;
		if(strcmp(cmd, "/gbalance", true) == 0)
			gang = 1;
	
	    if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK) {
	        SendClientMessage(playerid, COLOR_YELLOW, "Musisz by&#263; w banku aby u&#380;y&#263; tej komendy. Banki s&#261; rozmieszczone w sklepach 24/7.");
			return 1;
		}

		if(gang && playerGang[playerid]==0) {
			SendClientMessage(playerid, COLOR_RED, "Nie jeste&#347; w gangu!");
			return 1;
		}
		
		if(gang)
			format(string, sizeof(string), "Twój gang ma $%d pieni&#281;dzy w banku.", gangBank[playerGang[playerid]]);
		else
			format(string, sizeof(string), "Masz $%d pieni&#281;dzy w banku.", bank[playerid]);
		SendClientMessage(playerid, COLOR_YELLOW, string);
		
		return 1;
	}



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

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /givecash [idgracza] [kwota]");
			return 1;
		}
		giveplayerid = strval(tmp);
		
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /givecash [idgracza] [kwota]");
			return 1;
		}
 		moneys = strval(tmp);
		
		//printf("givecash_command: %d %d",giveplayerid,moneys);

		
		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			playermoney = GetPlayerMoney(playerid);
			if (moneys > 0 && playermoney >= moneys) {
				GivePlayerMoney(playerid, (0 - moneys));
				GivePlayerMoney(giveplayerid, moneys);
				format(string, sizeof(string), "%s odda&#322;e&#347; graczowi (id: %d), $%d pieni&#281;dzy.", giveplayer,giveplayerid, moneys);
				SendClientMessage(playerid, COLOR_YELLOW, string);
				format(string, sizeof(string), "Otrzyma&#322;e&#347; $%d pieni&#281;dzy od gracza %s (id: %d).", moneys, sendername, playerid);
				SendClientMessage(giveplayerid, COLOR_YELLOW, string);
				printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
			}
			else {
				SendClientMessage(playerid, COLOR_YELLOW, "Nieprawid&#322;owa kwota transakcji.");
			}
		}
		else {
				format(string, sizeof(string), "%d nie ma takiego gracza!", giveplayerid);
				SendClientMessage(playerid, COLOR_YELLOW, string);
			}
		return 1;
	}

	//------------------- /hitman

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

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /hitman [idgracza] [kwota]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /hitman [idgracza] [kwota]");
			return 1;
		}
 		moneys = strval(tmp);
	
	    if(moneys > GetPlayerMoney(playerid)) {
			SendClientMessage(playerid, COLOR_RED, "Nie masz wystarczaj&#261;cej kwoty pieni&#281;dzy!");
			return 1;
	    }
	    if(moneys < 1) {
			SendClientMessage(playerid, COLOR_YELLOW, "Jeste&#347; sp&#322;ukany/na!");
			return 1;
		}
		if(IsPlayerConnected(giveplayerid)==0) {
			SendClientMessage(playerid, COLOR_RED, "Nie ma gracza o takim ID!");
			return 1;
		}

		bounty[giveplayerid]+=moneys;
		GivePlayerMoney(playerid, 0-moneys);

		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		
//		format(string, sizeof(string), "You have put a $%d bounty on the head of %s (id: %d).", moneys, giveplayer,giveplayerid);
//		SendClientMessage(playerid, COLOR_YELLOW, string);

		format(string, sizeof(string), "%s - nagroda za zabicie gracza - $%d od %s (Razem: $%d).", giveplayer, moneys, sendername, bounty[giveplayerid]);
		SendClientMessageToAll(COLOR_ORANGE, string);

		format(string, sizeof(string), "Nagroda za twoj&#261; &#347;mier&#263; - $%d od gracza: %s (id: %d).", moneys, sendername, playerid);
		SendClientMessage(giveplayerid, COLOR_RED, string);
		
		return 1;
	}
	
	//------------------- /bounty

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

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /bounty [idgracza]");
			return 1;
		}
		giveplayerid = strval(tmp);
		
		if(IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			format(string, sizeof(string), "%s (id: %d) - nagroda za tego gracza to $%d ", giveplayer,giveplayerid,bounty[giveplayerid]);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		} else {
			SendClientMessage(playerid, COLOR_RED, "Taki gracz nie istnieje!");
		}
		
		return 1;
	}

	//------------------- /bounties

	if(strcmp(cmd, "/bounties", true) == 0)
	{
//		new tmp[256];
		new x;
	
		SendClientMessage(playerid, COLOR_GREEN, "Aktualne nagrody za graczy:");
	    for(new i=0; i < MAX_PLAYERS; i++) {
			if(IsPlayerConnected(i) && bounty[i] > 0) {
				GetPlayerName(i, giveplayer, sizeof(giveplayer));
				format(string, sizeof(string), "%s%s(%d): $%d", string,giveplayer,i,bounty[i]);

				x++;
				if(x > 3) {
				    SendClientMessage(playerid, COLOR_YELLOW, string);
				    x = 0;
					format(string, sizeof(string), "");
				} else {
					format(string, sizeof(string), "%s, ", string);
				}
			}
		}
		
		if(x <= 3 && x > 0) {
			string[strlen(string)-2] = '.';
		    SendClientMessage(playerid, COLOR_YELLOW, string);
		}
		
		return 1;
	}

	//------------------- /kup

	if(strcmp(cmd, "/kup", true) == 0) {
		new property=999;

		if(IsPlayerInCheckpoint(playerid)) {
			switch (playerCheckpoint[playerid]) {
				case CP_DRAGON:{
					property = P_DRAGON;
				}
				case CP_SEXSHOP:{
					property = P_SEXSHOP;
				}
				case CP_BAR:{
					property = P_BAR;
				}
				case CP_CALIGULA:{
					property = P_CALIGULA;
				}
				case CP_ZIP:{
					property = P_ZIP;
				}
				case CP_BINCO:{
					property = P_BINCO;
				}
				case CP_TATOO:{
					property = P_TATOO;
				}
				case CP_BOTIQUE:{
					property = P_BOTIQUE;
				}
				case CP_STARFISH: {
     property = P_STARFISH;
    }
			}

			if(property==999) {
				SendClientMessage(playerid, COLOR_YELLOW, "Musisz by&#263; w czerwonym punkcie, w posiad&#322;o&#347;ci, by móc skorzysta&#263; z komendy /kup.");
				return 1;
			}
			
//			property--;
			
			if(GetPlayerMoney(playerid) < propertyValues[property]) {
				SendClientMessage(playerid, COLOR_RED, "Nie masz wystarczaj&#261;cych pieni&#281;dzy, by kupi&#263; t&#281; posiad&#322;o&#347;&#263;!");
				return 1;
			}
			if(propertyOwner[property]==playerid) {
				SendClientMessage(playerid, COLOR_RED, "Ju&#380; posiadasz t&#281; posiad&#322;o&#347;&#263;.");
				return 1;
			}

			if(propertyOwner[property] < 999) {
				GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
				GivePlayerMoney(propertyOwner[property], propertyValues[property]);
				format (string, sizeof(string), "Twoja posiad&#322;o&#347;&#263; %s, zosta&#322;a odkupiona przez %s (id: %d).",propertyNames[property],giveplayer,playerid);
				SendClientMessage(propertyOwner[property], COLOR_RED, string);
			}

			GivePlayerMoney(playerid, 0-propertyValues[property]);
			
			propertyOwner[property]=playerid;
			
			format(string, sizeof(string), "Kupi&#322;e&#347; w&#322;a&#347;nie %s! Gratulacje!", propertyNames[property]);
			SendClientMessage(playerid, COLOR_GREEN, string);

		} else {
			SendClientMessage(playerid, COLOR_YELLOW, "Musisz by&#263; w czerwonym punkcie, w posiad&#322;o&#347;ci, by móc skorzysta&#263; z komendy /kup.");
			return 1;
		}


		return 1;
	}

	//------------------- /properties

	if(strcmp(cmd, "/properties", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN, "W&#322;a&#347;ciciele posiad&#322;o&#347;ci:");
		for(new i = 0; i < MAX_PROPERTIES; i++) {
			if(propertyOwner[i] < 999) {
				GetPlayerName(propertyOwner[i], giveplayer, sizeof(giveplayer));
				format(string, sizeof(string), "%d. %s - %s", i, propertyNames[i], giveplayer);
			} else
				format(string, sizeof(string), "%d. %s - Brak", i, propertyNames[i]);

			SendClientMessage(playerid, COLOR_YELLOW, string);
		}

		return 1;
	}
	
	//------------------- /buyweapon

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

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "WPISZ /buyweapon [idbroni]");
			return 1;
		}
		weaponid = strval(tmp);

		if(IsPlayerInCheckpoint(playerid)==0 || playerCheckpoint[playerid]!=CP_AMMU) {
			SendClientMessage(playerid, COLOR_YELLOW, "Musisz by&#263; w AmmuNation, by móc kupi&#263; bronie.");
			return 1;
		}
		if(GetPlayerMoney(playerid) < weaponCost[weaponid]) {
			SendClientMessage(playerid, COLOR_RED, "Nie masz wystarczaj&#261;cych pieni&#281;dzy!");
			return 1;
		}
		if(weaponid < 0 || weaponid > MAX_WEAPONS-1){
			SendClientMessage(playerid, COLOR_RED, "Z&#322;e ID broni!");
			return 1;
		}
		
		format (string, sizeof(string), "Kupi&#322;e&#347;/a&#347; %s bro&#324;, która b&#281;dzie dost&#281;pna przez ca&#322;y czas gry, nawet po respawnie...",weaponNames[weaponid]);
		SendClientMessage(playerid, COLOR_GREEN, string);
		
		GivePlayerWeapon(playerid, weaponIDs[weaponid], weaponAmmo[weaponid]);
		playerWeapons[playerid][weaponid]++;
		
		GivePlayerMoney(playerid, 0-weaponCost[weaponid]);

		return 1;
	}

	//------------------- /weaponlist

	if(strcmp(cmd, "/weaponlist", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN, "Lista broni:");
		for(new i = 0; i < MAX_WEAPONS; i++) {
			format (string, sizeof(string), "%d. %s - $%d",i,weaponNames[i],weaponCost[i]);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}
		return 1;
	}

	//------------------- /gang

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

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /gang [create/join/invite/quit] [nazwa/numer]");
			return 1;
		}
		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, "WPISZ: /gang [create/join/invite/quit] [nazwa/numer]");
			else if(gangcmd==1)
				SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /gang [create] [name]");
			else if(gangcmd==2)
				SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /gang [invite] [playerID]");
			return 1;
		}
		
		//Create Gang//
		if(gangcmd==1) {
		    if(playerGang[playerid]>0) {
				SendClientMessage(playerid, COLOR_RED, "Jeste&#347; ju&#380; w gangu!");
				return 1;
		    }
		    
			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),"Utworzy&#322;e&#347; gang o nazwie: %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, "Jeste&#347; ju&#380; w gangu!");
				return 1;
		    }
	 		if(gangInvite[playerid]==0) {
				SendClientMessage(playerid, COLOR_RED, "&#379;aden taki gang nie istnieje!");
				return 1;
			}
			if(gangInfo[gangnum][0]==0) {
				SendClientMessage(playerid, COLOR_RED, "Nie zosta&#322;e&#347; zaproszony do tego gangu.");
				return 1;
			}

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

				gangMembers[gangnum][i] = playerid;

			    GetPlayerName(playerid, sendername, MAX_PLAYER_NAME);
				for(new j = 0; j < gangInfo[gangnum][1]; j++) {
					format(string, sizeof(string),"%s do&#322;&#261;czy&#322; do gangu.", sendername);
					SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
				}
				
				gangInfo[gangnum][1]++;
				playerGang[playerid] = gangnum;

				SetPlayerColor(playerid,gangInfo[gangnum][2]);

				format(string, sizeof(string),"Do&#322;&#261;czy&#322;e&#347; do gangu %s (id: %d)", gangNames[gangnum], gangnum);
				SendClientMessage(playerid, COLOR_GREEN, string);

				return 1;
			}
			
			SendClientMessage(playerid, COLOR_RED, "Ten gang jest pe&#322;ny.");
			return 1;

		//Invite to Gang//
		} else if (gangcmd==2) {
	 		giveplayerid = strval(tmp);

			if(playerGang[playerid]==0) {
				SendClientMessage(playerid, COLOR_RED, "Nie jeste&#347; w gangu!");
				return 1;
			}
//			if(gangMembers[playerGang[playerid]][0]!=playerid) {
//				SendClientMessage(playerid, COLOR_RED, "You need to be the gang leader to send an invite.");
//				return 1;
//			}

			if(IsPlayerConnected(giveplayerid)) {
				GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
				GetPlayerName(playerid, sendername, sizeof(sendername));

				format(string, sizeof(string),"Wys&#322;a&#322;e&#347; zaproszenie do gangu osobie o nicku %s.", giveplayer);
				SendClientMessage(playerid, COLOR_GREEN, string);
				format(string, sizeof(string),"Otrzyma&#322;e&#347; zaproszenie od %s do gangu %s (ID: %d). Wpisz /gang join ID aby do&#322;&#261;czy&#263;.", sendername, gangNames[playerGang[playerid]],playerGang[playerid]);
				SendClientMessage(giveplayerid, COLOR_GREEN, string);
				
				gangInvite[giveplayerid]=playerGang[playerid];

			} else
				SendClientMessage(playerid, COLOR_RED, "&#379;aden taki gracz nie istnieje!");
				
		//Leave Gang//
		} else if (gangcmd==4) {
		    PlayerLeaveGang(playerid);
		}
		
		return 1;
	}

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

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

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

		if(gangInfo[gangnum][0]==0) {
			SendClientMessage(playerid, COLOR_RED, "&#379;aden taki gang nie istnieje!");
			return 1;
		}

		format(string, sizeof(string),"%s Cz&#322;onkowie gangu (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;

		SendClientMessage(playerid, COLOR_GREEN, "Istniej&#261;ce gangi:");
	    for(new i=0; i < MAX_GANGS; i++) {
			if(gangInfo[i][0]==1) {
				format(string, sizeof(string), "%s%s(%d) - %d cz&#322;onków", 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(cmd, "/setuserstr", true) == 0 && IsPlayerAdmin(playerid) == 1) {
		new tmp3[256];
		new tmp[256];
		new tmp2[256];
		new playername[MAX_PLAYER_NAME];

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /setuserstr [nazwa_gracza] [klucz] [string]");
			return 1;
		}

		tmp2 = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /setuserstr [nazwa_gracza] [klucz] [string]");
			return 1;
		}

 		tmp3 = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /setuserstr [nazwa_gracza] [klucz] [string]");
			return 1;
		}

		if (dini_Exists(udb_encode(tmp))) {
		    dini_Set(udb_encode(tmp), tmp2, tmp3);

		    GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
		    format(string, sizeof(string), "--- %s (id: %d) doda&#322; %s parametry: %s=%s.", playername,playerid,tmp,tmp2,tmp3);
			printf(string);
			format(string, sizeof(string), "Doda&#322;e&#347; parametry %s: %s=%s.", tmp,tmp2,tmp3);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}
		else {
		    format(string, sizeof(string), "* %s z&#322;e konto.", tmp);
			SendClientMessage(playerid, COLOR_RED, string);
		}

		return 1;
	}
//------------------koniec oryginalnych komend

	if(strcmp(cmd, "/setuserint", true) == 0 && IsPlayerAdmin(playerid) == 1) {
		new tmp3[256];
		new tmp[256];
		new tmp2[256];
		new playername[MAX_PLAYER_NAME];

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /setuserint [nazwa_gracza] [klucz] [value]");
			return 1;
		}

		tmp2 = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /setuserint [nazwa_gracza] [klucz] [value]");
			return 1;
		}

 		tmp3 = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /setuserint [nazwa_gracza] [klucz] [value]");
			return 1;
		}
		moneys = strval(tmp3);

		if (dini_Exists(udb_encode(tmp))) {
		    dini_IntSet(udb_encode(tmp), tmp2, moneys);

            GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
		    format(string, sizeof(string), "--- %s (id: %d) doda&#322; %s parametry: %s=%d.", playername,playerid,tmp,tmp2,moneys);
			printf(string);
			format(string, sizeof(string), "Doda&#322;es parametry %s: %s=%d.", tmp,tmp2,moneys);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}
		else {
		    format(string, sizeof(string), "* %s z&#322;e konto.", tmp);
			SendClientMessage(playerid, COLOR_RED, string);
		}

		return 1;
	}

	if(strcmp(cmd, "/setuserfloat", true) == 0 && IsPlayerAdmin(playerid) == 1) {
		new tmp3[256];
		new tmp[256];
		new tmp2[256];
		new Float:flt;
		new playername[MAX_PLAYER_NAME];

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /setuserfloat [nazwa_gracza] [key] [float]");
			return 1;
		}

		tmp2 = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /setuserfloat [nazwa_gracza] [key] [float]");
			return 1;
		}

 		tmp3 = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /setuserfloat [nazwa_gracza] [key] [float]");
			return 1;
		}
		flt = floatstr(tmp3);

		if (dini_Exists(udb_encode(tmp))) {
		    dini_FloatSet(udb_encode(tmp), tmp2, flt);

            GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
		    format(string, sizeof(string), "--- %s (id: %d) sets %s parameters: %s=%f.", playername,playerid,tmp,tmp2,flt);
			printf(string);
			format(string, sizeof(string), "Za&#322;o&#380;y&#322;e&#347; parametry %s: %s=%f.", tmp,tmp2,flt);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}
		else {
		    format(string, sizeof(string), "* %s z&#322;e konto.", tmp);
			SendClientMessage(playerid, COLOR_RED, string);
		}

		return 1;
	}

	if(strcmp(cmd, "/getuser", true) == 0 && IsPlayerAdmin(playerid) == 1) {
		new tmp3[256];
		new tmp[256];
		new tmp2[256];

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /getuser [nazwa_gracza] [key]");
			return 1;
		}

		tmp2 = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /getuser [nazwa_gracza] [key]");
			return 1;
		}

		if (dini_Exists(udb_encode(tmp))) {
		    tmp3 = dini_Get(udb_encode(tmp), tmp2);

			format(string, sizeof(string), "Twój paramert: %s: %s=%s.", tmp,tmp2,tmp3);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}
		else {
		    format(string, sizeof(string), "%s z&#322;e konto.", tmp);
			SendClientMessage(playerid, COLOR_RED, string);
		}

		return 1;
	}

	if(strcmp(cmd, "/blackadd", true) == 0 && IsPlayerAdmin(playerid)) {
		new tmp[256];
		new tmp2[256];
		new playername[MAX_PLAYER_NAME];
		tmp = dini_Get(FILE_SETTINGS, "blacklist");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "Czarna lista nie jest dost&#281;pna na tym serwerze!");
		    return 1;
		}

		new tmp3[256];

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /blackadd [nazwa_gracza] [1-2] [powód]");
			return 1;
		}

		tmp2 = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /blackadd [nazwa_gracza] [1-2] [powód]");
			return 1;
		}
		moneys = strval(tmp2);

		if (moneys < 1 || moneys > 2) {
		    SendClientMessage(playerid, COLOR_YELLOW, "Z&#322;a akcja.");
			return 1;
		}

	    strmid(tmp2, cmdtext, 12+strlen(tmp)+strlen(tmp2), strlen(cmdtext));
 		GetPlayerName(playerid, playername, sizeof(playername));

	    if(!strlen(tmp2))
			SendClientMessage(playerid, COLOR_WHITE, "U&#380;yj: /blackadd [nazwa-gracza] [0-2] [powód]");

		else {
		    format(tmp3, sizeof(tmp3), "%d,%s", moneys,tmp2);
		    if (!dini_Exists(FILE_BLACKLIST)) dini_Create(FILE_BLACKLIST);
			dini_Set(FILE_BLACKLIST, tmp, tmp3);

			format(string, sizeof(string), "Gracz: %s (id: %d) zosta&#322; dodany do Czarnej listy %s. Akcja: %d. Powód: %s", playername,playerid,tmp,moneys,tmp2);
			printf(string);
			format(string, sizeof(string), "* Doda&#322;e&#347; do Czarnej listy gracza: %s. Akcja: %d. Powód: %s", tmp,moneys,tmp2);
			SendClientMessage(playerid, COLOR_ORANGE, string);
		}

		return 1;
	}

	if(strcmp(cmd, "/blackdel", true) == 0 && IsPlayerAdmin(playerid)) {
		new tmp[256];
        new playername[MAX_PLAYER_NAME];

		tmp = dini_Get(FILE_SETTINGS, "blacklist");
		if (strval(tmp) == 0) {
		    SendClientMessage(playerid, COLOR_RED, "Czarna lista nie jest dost&#281;pna na tym serwerze!");
		    return 1;
		}

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "* U&#380;yj: /blackdel [nazwa_gracza]");
			return 1;
		}

		dini_Unset(FILE_BLACKLIST, tmp);

		format(string, sizeof(string), "Gracz: %s (id: %d) usuni&#281;ty %s z Czarnej listy.", playername,playerid,tmp);
		printf(string);
		format(string, sizeof(string), "Usune&#322;e&#347; gracza: %s z Czarnej listy.", tmp);
		SendClientMessage(playerid, COLOR_ORANGE, string);

		return 1;
	}

	return 0;
}
//------------------------------------------------------------------------------------------------------

public OnPlayerText(playerid, text[])
{
	if(text[0] == '!') {
		if(playerGang[playerid] > 0) {
		    new gangChat[256];
		    new senderName[MAX_PLAYER_NAME];
		    new string[256];
		    
//		    for(new i = 1; i < strlen(text)+1; i++)
//				gangChat[i]=text[i];

			strmid(gangChat,text,1,strlen(text));
		    
			GetPlayerName(playerid, senderName, sizeof(senderName));
			format(string, sizeof(string),"%s: %s", senderName, gangChat);

			for(new i = 0; i < gangInfo[playerGang[playerid]][1]; i++) {
				SendClientMessage(gangMembers[playerGang[playerid]][i], COLOR_LIGHTBLUE, string);
			}
		}
		
		return 0;
	}
	return 1;
}

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

public OnPlayerSpawn(playerid)
{
	new string[256];
	new playername[MAX_PLAYER_NAME];
	new tmp[256], tmp2[256], tmp3[256];

	GetPlayerName(playerid, playername, sizeof(playername));

	SetPlayerInterior(playerid,0);
	SetPlayerRandomSpawn(playerid);

	if (dini_Exists(udb_encode(playername))) {
	    tmp = dini_Get(udb_encode(playername), "protection");
	    tmp2 = dini_Get(FILE_SETTINGS, "logintimeout");
		if (logged[playerid] == 0 && strval(tmp) == 1) {
			logintimeout[playerid] = SetTimer("LoginTimeout", strval(tmp2), 0);
			format(string, sizeof(string), "Nie jeste&#347; zalogowany! Zaloguj sie w przeci&#261;gu %d sekund. Po tym czasie zostaniesz wurzucony!", strval(tmp2) / 1000);
			SendClientMessage(playerid, COLOR_RED, string);
		}
		else {
		    tmp = dini_Get(FILE_SETTINGS, "positionsave");
			if (strval(tmp) == 1) {
                tmp = dini_Get(udb_encode(playername), "x");
				tmp2 = dini_Get(udb_encode(playername), "y");
				tmp3 = dini_Get(udb_encode(playername), "z");
				if (strval(tmp) && strval(tmp2) && strval(tmp3)) SetPlayerPos(playerid, floatstr(tmp), floatstr(tmp2), floatstr(tmp3));
			}

			tmp = dini_Get(FILE_SETTINGS, "spawnweapons");
			if (strval(tmp) == 1) {
            	tmp = dini_Get(udb_encode(playername), "weapon1");
				if (strval(tmp) != 0) GivePlayerWeapon(playerid, strval(tmp), 1);
				tmp = dini_Get(udb_encode(playername), "weapon2");
				tmp2 = dini_Get(udb_encode(playername), "ammo2");
				if (strval(tmp) != 0 && strval(tmp2) != 0) GivePlayerWeapon(playerid, strval(tmp), strval(tmp2));
				tmp = dini_Get(udb_encode(playername), "weapon3");
				tmp2 = dini_Get(udb_encode(playername), "ammo3");
				if (strval(tmp) != 0 && strval(tmp2) != 0) GivePlayerWeapon(playerid, strval(tmp), strval(tmp2));
				tmp = dini_Get(udb_encode(playername), "weapon4");
				tmp2 = dini_Get(udb_encode(playername), "ammo4");
				if (strval(tmp) != 0 && strval(tmp2) != 0) GivePlayerWeapon(playerid, strval(tmp), strval(tmp2));
				tmp = dini_Get(udb_encode(playername), "weapon5");
				tmp2 = dini_Get(udb_encode(playername), "ammo5");
				if (strval(tmp) != 0 && strval(tmp2) != 0) GivePlayerWeapon(playerid, strval(tmp), strval(tmp2));
			}
		}
	}

	if (jailed[playerid] == 1) {
	    SetPlayerInterior(playerid,6);
		SetPlayerPos(playerid,265.1273,77.6823,1001.0391);
		format(string, sizeof(string), "Gracz: %s zosta&#322; wi&#281;&#378;niem.", playername);
		printf(string);
        SendClientMessage(playerid, COLOR_RED, "* Your prisoner status restored.");
	}

	tmp = dini_Get(FILE_SETTINGS, "spawnmoney");
	if (GetPlayerMoney(playerid) <= 0) StatGivePlayerMoney(playerid, strval(tmp)-GetPlayerMoney(playerid));

	return 1;
}
//------------------------------------------------------------------------------------------------------

public SetPlayerRandomSpawn(playerid)
{
	if (iSpawnSet[playerid] == 1)
	{
		new rand = random(sizeof(gCopPlayerSpawns));
		SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
		SetPlayerFacingAngle(playerid, 270.0);
    }
    else if (iSpawnSet[playerid] == 0)
    {
		new rand = random(sizeof(gRandomPlayerSpawns));
		SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player
	}
	return 1;
}
//------------------------------------------------------------------------------------------------------

public OnPlayerDeath(playerid, killerid, reason)
{

    new playercash;
	new killedplayer[MAX_PLAYER_NAME];
	new killername[MAX_PLAYER_NAME];
	new string[256];
	new tmp[256], tmp2[256];
	new idx;
	new detected;

	playercash = GetPlayerMoney(playerid);

	GetPlayerName(playerid, killedplayer, sizeof(killedplayer));

	tmp = dini_Get(FILE_SETTINGS, "forbiddenweapons");
	tmp2 = dini_Get(FILE_SETTINGS, "onweaponcheat");
	for (new i=0;i<47 && detected != 1;i++)
	    if (reason == strval(strtok(tmp, idx, ',')) && reason != 0 && !IsPlayerAdmin(playerid)) {
            if (strval(tmp2) == 1) KickMsg(killerid, "AntiCheat", "Forbidden weapon detected!");
			if (strval(tmp2) == 2) BanMsg(killerid, "AntiCheat", "Forbidden weapon detected!");
			detected = 1;
		}

	if (killerid == INVALID_PLAYER_ID) {
        SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
		SetPlayerScore(playerid,GetPlayerScore(playerid)-1);

		if (dini_Exists(udb_encode(killedplayer))) {
        	tmp = dini_Get(udb_encode(killedplayer), "suicides");
			dini_IntSet(udb_encode(killedplayer), "suicides", strval(tmp)+1);
		}

        if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
        tmp = dini_Get(FILE_TOTALSTAT, "suicides");
		dini_IntSet(FILE_TOTALSTAT, "suicides", strval(tmp)+1);

		format(string, sizeof(string), "Gracz: %s (id: %d) zabi&#322; z broni&#261;: (id: %d).", killedplayer,playerid,reason);
		printf(string);
	}
	else {
    	GetPlayerName(killerid, killername, sizeof(killername));

        if (dini_Exists(udb_encode(killername))) {
        	tmp = dini_Get(udb_encode(killername), "kills");
			dini_IntSet(udb_encode(killername), "kills", strval(tmp)+1);
		}

        if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
        tmp = dini_Get(FILE_TOTALSTAT, "kills");
		dini_IntSet(FILE_TOTALSTAT, "kills", strval(tmp)+1);

    	SendDeathMessage(killerid,playerid,reason);
		SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
		if(bounty[playerid] > 0) {
			format(string, sizeof(string), "Dosta&#322;e&#347; nagrode pieni&#281;&#380;n&#261;: $%d za zabicie %s.", bounty[playerid],killedplayer);
			SendClientMessage(killerid, COLOR_GREEN, string);

			StatGivePlayerMoney(killerid, bounty[playerid]);
			bounty[playerid] = 0;
		}
		if(playercash > 0) StatGivePlayerMoney(killerid, playercash);

		format(string, sizeof(string), "Gracz: %s (id: %d) zabi&#322;: %s (id: %d) z broni: (id: %d).", killername,killerid,killedplayer,playerid,reason);
		printf(string);

		killsinarow[killerid] += 1;
   	}

 	if (dini_Exists(udb_encode(killedplayer))) {
       	tmp = dini_Get(udb_encode(killedplayer), "deaths");
		dini_IntSet(udb_encode(killedplayer), "deaths", strval(tmp)+1);
	}

 	if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
    tmp = dini_Get(FILE_TOTALSTAT, "deaths");
	dini_IntSet(FILE_TOTALSTAT, "deaths", strval(tmp)+1);

 	dini_Set(udb_encode(killedplayer), "x", "x");
    dini_Set(udb_encode(killedplayer), "y", "y");
    dini_Set(udb_encode(killedplayer), "z", "z");

   	if(playercash > 0) StatGivePlayerMoney(playerid, -playercash);

   	killsinarow[playerid] = 0;

 	return 1;
}

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

public OnPlayerEnterCheckpoint(playerid)
{
	new string[256];
	new ownplayer[MAX_PLAYER_NAME];
	
	switch(getCheckpointType(playerid))
	{
		case CP_BANK: {
			SendClientMessage(playerid, COLOR_ORANGE, "Jeste&#347; w banku. U&#380;yj nast&#281;puj&#261;cych komend:");
			SendClientMessage(playerid, COLOR_YELLOW, "/bank [kwota]- wp&#322;acasz pieni&#261;dze do banku");
			SendClientMessage(playerid, COLOR_YELLOW, "/withdraw [kwota]-pobierasz pieni&#261;dze z konta");
			SendClientMessage(playerid, COLOR_YELLOW, "/balance -sprawdzasz stan konta");
			SendClientMessage(playerid, COLOR_YELLOW, "/gbank [kwota]-wp&#322;acasz wybran&#261; sum&#281; do banku na konto gangu");
			SendClientMessage(playerid, COLOR_YELLOW, "/gwithdraw [kwota]-wyp&#322;aca wybran&#261; sum&#281; z konta gangu");
			SendClientMessage(playerid, COLOR_YELLOW, "/gbalance -sprawdza stan konta gangu");
			SendClientMessage(playerid, COLOR_YELLOW, "Aby uzyska&#263; dodatkow&#261; pomoc wpisz: /p");
		}
		case CP_PIRATE: {
			SendClientMessage(playerid, COLOR_YELLOW, "Przebywaj&#261;c na statku dostajesz pieni&#261;dze...");
		}
		case CP_AMMU: {
			SendClientMessage(playerid, COLOR_GREEN, "Kupuj&#261;c tu bro&#324;  b&#281;dzie ona dost&#281;pna przez ca&#322;y czas gry. Nawet po respawnie!");
			SendClientMessage(playerid, COLOR_GREEN, "Aby kupi&#263; bro&#324; wpisz: ");
			SendClientMessage(playerid, COLOR_YELLOW, "/buyweapon [idbroni] - kupuje wybran&#261; bro&#324; ");
			SendClientMessage(playerid, COLOR_YELLOW, "/weaponlist - pokazuje bronie które mo&#380;na kupi&#263; ");
		}
		case CP_LS_AIR: {
			SendClientMessage(playerid, COLOR_YELLOW, "Jeste&#347; na lotnisku. Jesli chcesz kupi&#263; lot do San Fierro napisz /SF");
			SendClientMessage(playerid, COLOR_YELLOW, "Je&#347;li chcesz lecie&#263; do Las Venturas napisz /LV. Cena biletu - $2500.");

		}
		case CP_SF_AIR: {
			SendClientMessage(playerid, COLOR_YELLOW, "Jeste&#347; na lotnisku. Je&#347;li chcesz kupic lot do Los Santos napisz /LS");
			SendClientMessage(playerid, COLOR_YELLOW, "Je&#347;li chcesz lecie&#263; do Las Venturas napisz /LV. Cena biletu - $2500.");

		}
		case CP_LV_AIR: {
			SendClientMessage(playerid, COLOR_YELLOW, "Jeste&#347; na lotnisku. Je&#347;li chcesz kupi&#263; lot do Los Santos napisz /LS");
			SendClientMessage(playerid, COLOR_YELLOW, "Je&#347;li chcesz lecie&#263; do San Fierro napisz /SF. Cena biletu - $2500.");
		}
		case CP_CMDRIVE: {
         	SendClientMessage(playerid, COLOR_YELLOW, "Witam w McDrive U&#347;miech");
          	SendClientMessage(playerid, COLOR_YELLOW, "Aby uzupalnic zycie wpisz /kup koszt $200");
         }
/* 	case CP_DRAGON: {
			SendClientMessage(playerid, COLOR_YELLOW, "Mo&#380;esz kupi&#263; Kasyno Czterech Smoków za $80000 u&#380;ywaj&#261;c komendy /kup ");
			SendClientMessage(playerid, COLOR_YELLOW, "B&#281;dziesz dostawa&#263; regularnie $8000");

		}
		case CP_SEXSHOP: {
			SendClientMessage(playerid, COLOR_YELLOW, "Mo&#380;esz kupi&#263; Sex Shop za $25000 u&#380;ywaj&#261;c komendy /kup");
			SendClientMessage(playerid, COLOR_YELLOW, "B&#281;dziesz dostawa&#263; regularnie $2500");
		}
		case CP_BAR: {
			SendClientMessage(playerid, COLOR_YELLOW, "Mo&#380;esz kupi&#263; Bar Shithole za $30,000 u&#380;ywaj&#261;c komendy /kup");
			SendClientMessage(playerid, COLOR_YELLOW, "B&#281;dziesz dostawa&#263; regularnie $3,000");
		}
		case CP_CALIGULA: {
			SendClientMessage(playerid, COLOR_YELLOW, "Mo&#380;esz kupi&#263; Kasyno Caligula za $100,000 u&#380;ywaj&#261;c komendy /kup");
			SendClientMessage(playerid, COLOR_YELLOW, "B&#281;dziesz dostawa&#263; regularnie $10,000");
		}
		case CP_ZIP: {
			SendClientMessage(playerid, COLOR_YELLOW, "Mo&#380;esz kupi&#263; sklep Zip za $20,000 u&#380;ywaj&#261;c komendy /kup");
			SendClientMessage(playerid, COLOR_YELLOW, "B&#281;dziesz dostawa&#263; regularnie $2,000");
		}
	 case CP_BOTIQUE: {
    SendClientMessage(playerid, COLOR_YELLOW, "Mo&#380;esz kupi&#263; Botique za $23,000 u&#380;ywaj&#261;c komendy /kup");
    SendClientMessage(playerid, COLOR_YELLOW, "B&#281;dziesz dostawa&#263; regularnie $2,300")
  }
			case CP_STARFISH: {
			SendClientMessage(playerid, COLOR_YELLOW, "Mo&#380;esz kupi&#263; Kasyno Star Fish za $200,000 u&#380;ywaj&#261;c komendy /kup");
			SendClientMessage(playerid, COLOR_YELLOW, "B&#281;dziesz dostawa&#263; regularnie $20,000");
*/
	}
	if(getCheckpointType(playerid)>= P_OFFSET) {
		format(string, sizeof(string), "Mo&#380;esz kupi&#263; %s za $%d u&#380;ywaj&#261;c komendy /kup", propertyNames[playerCheckpoint[playerid]-P_OFFSET], propertyValues[playerCheckpoint[playerid]-P_OFFSET]);
		SendClientMessage(playerid, COLOR_YELLOW, string);
		format(string, sizeof(string), "B&#281;dziesz dostawa&#263; regularnie $%d pieni&#281;dzy.", propertyEarnings[playerCheckpoint[playerid]-P_OFFSET]);
		SendClientMessage(playerid, COLOR_YELLOW, string);
		if(propertyOwner[playerCheckpoint[playerid]-P_OFFSET]<999) {
			GetPlayerName(propertyOwner[playerCheckpoint[playerid]-P_OFFSET], ownplayer, sizeof(ownplayer));
			format(string, sizeof(string), "Ten budynek jest aktualnie kupiony przez %s. Mo&#380;esz go odkupi&#263; u&#380;ywaj&#261;c komendy /kup", ownplayer);
			SendClientMessage(playerid, COLOR_RED, string);
		}
	}
}

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

public OnPlayerRequestClass(playerid, classid)
{
	if(classid == 0 || classid == 1 || classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6)
	{
		iSpawnSet[playerid] = 1;
	}
	else
	{
		iSpawnSet[playerid] = 0;
	}
	SetupPlayerForClassSelection(playerid);
	return 1;
}

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

public GameModeExitFunc()
{
	GameModeExit();
}

public OnGameModeInit()
{
	SetGameModeText("LV DM~MG+Landgrab 2.1 PL");

	ShowPlayerMarkers(1);
	ShowNameTags(1);

	// Player Class's
	AddPlayerClass(280,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(281,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(282,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(283,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(284,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(285,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(286,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(287,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);

	AddPlayerClass(254,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(255,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(256,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(257,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(258,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(259,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(260,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(261,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(262,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(263,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(264,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(274,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(275,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(276,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);

	AddPlayerClass(1,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(2,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(290,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(291,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(292,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(293,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(294,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(295,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(296,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(297,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(298,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
    AddPlayerClass(299,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);

	AddPlayerClass(277,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(278,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(279,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(288,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(47,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(48,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(49,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(50,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(55,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(56,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(58,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(59,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(60,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(61,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(62,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(63,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(64,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(66,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(67,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(68,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(69,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(70,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(71,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(72,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(73,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(78,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(79,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(80,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(81,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(82,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(83,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(84,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(85,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(87,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(88,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(89,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(91,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(92,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(93,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(95,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(96,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(97,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(98,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(100,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(101,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(102,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(103,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(104,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(105,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(106,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(107,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(108,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(109,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(110,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(111,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(112,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(113,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(114,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(115,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(116,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(117,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(118,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(120,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(121,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(122,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(123,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(124,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(125,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(126,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(127,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(128,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(133,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(134,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(135,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(136,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(137,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(138,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(139,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
	AddPlayerClass(140,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);

    AddPlayerClass(20,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
    AddPlayerClass(19,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
    AddPlayerClass(18,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
    AddPlayerClass(16,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
    AddPlayerClass(15,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
    AddPlayerClass(14,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
    AddPlayerClass(13,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1);
    AddPlayerClass(0,320.1322,1123.0422,1083.8828,181.3320,26,3000,32,3000,-1,-1); // CJ
	// Car Spawns

AddStaticVehicle(567,2684.9705,-2022.5912,13.3927,358.0809,-1,-1);
AddStaticVehicle(534,2684.9407,-1987.3030,13.2760,177.9317,-1,-1);
AddStaticVehicle(535,2645.2156,-1989.5094,13.3178,177.8134,-1,-1);
AddStaticVehicle(522,2495.5173,-1681.2826,12.9065,98.3472,-1,-1);
AddStaticVehicle(522,2493.3677,-1656.4139,12.9223,84.8550,-1,-1);
AddStaticVehicle(522,2487.2908,-1668.5044,12.9139,89.4881,-1,-1);
AddStaticVehicle(420,1703.3619,-2314.8391,13.2410,270.3887,-1,-1);
AddStaticVehicle(420,1640.4957,-2313.2698,13.3382,89.6490,-1,-1);
AddStaticVehicle(420,1681.7374,-2328.8745,13.3264,357.6139,-1,-1);
AddStaticVehicle(519,1528.0677,-2494.7764,14.4734,270.4083,-1,-1);
AddStaticVehicle(519,1995.3162,-2595.0706,14.4689,89.8095,-1,-1);
AddStaticVehicle(541,2785.1702,-1835.1760,9.4410,220.1585,-1,-1);
AddStaticVehicle(437,2749.8174,-1874.4050,9.8091,269.8951,-1,-1);
AddStaticVehicle(519,-1367.8994,-212.4551,15.0672,324.5510,-1,-1);
AddStaticVehicle(519,-1315.5867,-253.3602,15.0699,307.9226,-1,-1);
AddStaticVehicle(420,-1448.5743,-278.2330,13.8861,60.8896,-1,-1);
AddStaticVehicle(420,-1412.6956,-304.9417,13.8432,38.5556,-1,-1);
AddStaticVehicle(420,-1394.1279,-333.9436,13.8435,200.5934,-1,-1);
AddStaticVehicle(429,-1989.7124,248.3605,34.8515,263.4052,-1,-1);
AddStaticVehicle(451,-1990.5541,257.2202,34.8825,265.1628,-1,-1);
AddStaticVehicle(477,-1988.8313,263.9637,34.9355,265.5265,-1,-1);
AddStaticVehicle(506,-1988.2429,269.8528,34.8817,265.4478,-1,-1);
AddStaticVehicle(555,-1955.1392,302.1328,35.1524,148.5440,-1,-1);
AddStaticVehicle(558,-1951.1504,256.5053,35.1019,88.1892,-1,-1);
AddStaticVehicle(559,-1949.9453,264.2937,35.1263,90.9304,-1,-1);
AddStaticVehicle(560,-1949.7380,272.6683,35.1768,88.0860,-1,-1);
AddStaticVehicle(561,-1955.0046,278.5646,35.2826,131.5863,-1,-1);
AddStaticVehicle(562,-1955.5577,279.1806,40.7068,180.5091,-1,-1);
AddStaticVehicle(603,-1954.2593,257.6462,40.8853,267.2120,-1,-1);
AddStaticVehicle(415,-1954.7677,263.6075,40.8178,270.6389,-1,-1);
AddStaticVehicle(439,-754.6018,732.2065,18.0458,146.7540,-1,-19);
AddStaticVehicle(460,-705.2302,662.9296,1.5221,335.2189,-1,-1);
AddStaticVehicle(460,-1472.1603,689.0020,1.8034,179.9899,-1,-1);
AddStaticVehicle(460,2355.7551,515.4268,1.5751,270.7536,-1,-1);
AddStaticVehicle(556,1616.2231,1159.6940,14.5973,0.0975,0,1);
AddStaticVehicle(556,1610.1365,1159.4200,14.5946,2.0360,0,1);
AddStaticVehicle(476,1279.2549,1323.8820,11.5242,270.7893,-1,-1);
AddStaticVehicle(476,1280.2168,1362.1967,11.5312,267.7886,-1,-1);
AddStaticVehicle(593,1283.9746,1446.7965,11.2676,274.2811,3,1);
AddStaticVehicle(593,-1253.4105,-38.6363,14.6021,139.2312,3,1);
AddStaticVehicle(593,1284.2164,1390.5103,11.2840,265.3953,3,1);
AddStaticVehicle(593,1282.8966,1418.0044,11.2841,269.8405,3,1);
AddStaticVehicle(487,1650.2764,1540.3087,10.9346,6.0940,-1,-1);
AddStaticVehicle(487,1615.9307,1540.7300,10.9498,353.7724,-1,-1);
AddStaticVehicle(487,1620.2600,1636.7080,11.1960,88.3206,-1,-1);
AddStaticVehicle(487,2094.2058,2414.5586,74.7559,180.9587,-1,-1);
AddStaticVehicle(521,-209.4623,2655.9817,62.1768,183.7314,-1,-1);
AddStaticVehicle(522,-214.0044,2655.9419,62.1697,179.0205,-1,-1);
AddStaticVehicle(568,-234.0206,2652.2092,62.5889,92.2438,-1,-1);
AddStaticVehicle(463,-220.1987,2657.4753,62.1420,165.3373,-1,-1);
AddStaticVehicle(523,-216.8139,2657.9468,62.1719,169.6829,-1,-1);
AddStaticVehicle(468,-204.2156,2655.4185,62.3600,170.5763,-1,-1);
AddStaticVehicle(519,-67.6876,2504.5742,17.4062,270.9824,0,0);
AddStaticVehicle(487,364.2997,2538.6543,16.8355,350.3344,0,0);
AddStaticVehicle(476,327.0665,2538.4600,17.5200,176.5708,-1,-1);
AddStaticVehicle(476,291.2311,2539.9155,17.5230,176.7857,-1,-1);
AddStaticVehicle(568,385.5122,2600.1575,16.3516,194.7182,-1,-1);
AddStaticVehicle(468,414.9343,2532.8972,16.2462,89.4582,-1,-1);
AddStaticVehicle(468,-395.4510,2237.7324,42.0988,274.9872,-1,-1);
AddStaticVehicle(468,-376.3357,2253.2776,42.1495,101.1794,-1,-1);
AddStaticVehicle(568,-341.8517,2216.9778,42.3493,111.6789,-1,-1);
AddStaticVehicle(476,275.4320,1992.3684,18.3702,258.2607,-1,-1);
AddStaticVehicle(470,276.7374,2011.9894,17.6304,301.9034,-1,-1);
AddStaticVehicle(470,273.0994,2020.2407,17.6330,270.6756,-1,-1);
AddStaticVehicle(470,270.9696,2030.3834,17.6326,271.4763,-1,-1);
AddStaticVehicle(470,280.9707,2034.7118,17.6301,227.4448,-1,-1);
AddStaticVehicle(568,277.9895,1950.1472,17.5059,180.4979,-1,-1);
AddStaticVehicle(568,277.3102,1962.1044,17.5065,3.6751,-1,-1);
AddStaticVehicle(468,276.7101,1956.4747,17.3095,274.5107,-1,-1);
AddStaticVehicle(523,2291.7573,2477.1064,10.3861,179.9268,-1,-1);
AddStaticVehicle(523,2290.7751,2443.6565,10.3907,359.5579,-1,-1);
AddStaticVehicle(523,2251.8347,2475.5486,10.3907,178.6270,-1,-1);
AddStaticVehicle(523,2252.1116,2442.7649,10.3907,0.4598,-1,-1);
AddStaticVehicle(598,2260.1001,2476.4653,10.5672,180.6902,79,1);
AddStaticVehicle(598,2260.7979,2444.2346,10.5672,358.2803,79,1);
AddStaticVehicle(598,2281.8987,2476.4758,10.5662,181.1460,79,1);
AddStaticVehicle(598,2282.1924,2443.6807,10.5699,0.3977,79,1);
AddStaticVehicle(598,2270.9355,2476.4426,10.5669,180.4777,79,1);
AddStaticVehicle(598,2271.4871,2443.6672,10.5662,0.9362,79,1);
AddStaticVehicle(420,1697.2590,1448.6200,10.5537,266.4467,-1,-1);
AddStaticVehicle(420,1720.7908,1368.1310,10.3471,196.4742,-1,-1);
AddStaticVehicle(420,1732.2589,1487.0281,10.5962,340.3221,-1,-1);
AddStaticVehicle(409,2034.6833,1007.4178,10.6220,180.1372,-1,-1);
AddStaticVehicle(409,2233.9114,1287.9066,10.6203,359.2765,-1,-1);
AddStaticVehicle(409,2158.1938,1683.4812,10.4947,3.6679,-1,-1);
AddStaticVehicle(409,2219.4500,1840.5797,10.6203,2.7264,-1,-1);
AddStaticVehicle(409,2034.9967,1909.1608,11.9769,183.6987,-1,-1);
AddStaticVehicle(411,2035.5375,1926.8351,11.9022,359.2220,-1,-1);
AddStaticVehicle(411,2170.9829,1985.2930,10.5474,89.9958,-1,-1);
AddStaticVehicle(411,2075.8914,1479.3450,10.3990,358.2139,-1,-1);
AddStaticVehicle(411,2394.1746,992.4088,10.5474,92.3904,-1,-1);
AddStaticVehicle(411,2309.8704,697.5997,11.0024,359.1182,-1,-1);
AddStaticVehicle(411,1961.1719,2755.5293,10.5474,181.2390,-1,-1);
AddStaticVehicle(411,1557.4860,2770.0322,10.5545,91.1832,-1,-1);
AddStaticVehicle(415,1432.6262,2608.3640,10.4438,87.1320,-1,-1);
AddStaticVehicle(415,2388.5510,2798.3081,10.5917,357.2150,-1,-1);
AddStaticVehicle(415,2790.1040,2432.8987,10.5912,130.3719,-1,-1);
AddStaticVehicle(415,2611.5659,2254.2090,10.5841,89.0531,-1,-1);
AddStaticVehicle(415,2546.2266,1967.9058,10.5912,270.4711,-1,-1);
AddStaticVehicle(429,2602.0159,1846.5400,10.5000,86.5979,-1,-1);
AddStaticVehicle(429,2408.4604,1658.3098,10.5000,181.3082,-1,-1);
AddStaticVehicle(429,2489.9014,1407.5928,10.5000,179.3343,-1,-1);
AddStaticVehicle(429,2216.9131,2048.7803,10.5000,268.0716,-1,-1);
AddStaticVehicle(429,2305.0005,1999.0576,15.0261,181.1305,-1,-1);
AddStaticVehicle(429,2039.2996,1313.8453,10.3516,180.0220,-1,-1);
AddStaticVehicle(451,2039.7227,1492.4209,10.3783,181.5667,-1,-1);
AddStaticVehicle(451,1889.5677,1763.8098,10.3312,179.4469,-1,-1);
AddStaticVehicle(451,2127.8789,2372.6345,10.5267,178.0685,-1,-1);
AddStaticVehicle(451,2260.5010,2775.1370,10.5268,90.2241,-1,-1);
AddStaticVehicle(521,2351.3069,1444.4956,10.3938,87.1000,-1,-1);
AddStaticVehicle(521,1957.8842,950.6057,10.3908,183.8631,-1,-1);
AddStaticVehicle(521,1624.8635,2604.4902,10.3901,2.3726,-1,-1);
AddStaticVehicle(522,983.1909,2307.1055,11.0317,271.0819,-1,-1);
AddStaticVehicle(522,982.4152,1994.2671,11.0317,267.7906,-1,-1);
AddStaticVehicle(522,928.5319,1808.2759,8.2192,320.8226,-1,-1);
AddStaticVehicle(522,1020.8854,1869.5978,10.6927,94.5098,-1,-1);
AddStaticVehicle(522,652.8371,1715.3004,6.5660,41.8192,-1,-1);
AddStaticVehicle(522,659.6678,1720.2037,6.5619,44.8019,-1,-1);
AddStaticVehicle(522,2157.1641,2220.4351,10.3850,181.4290,-1,-1);
AddStaticVehicle(522,2133.4922,1025.4205,10.3927,85.3179,-1,-1);
AddStaticVehicle(522,2301.3276,1497.6027,10.3969,270.3719,-1,-1);
AddStaticVehicle(462,2061.5906,2239.0093,9.8616,87.8918,-1,-1);
AddStaticVehicle(462,1854.0219,2084.8164,10.4094,173.1228,-1,-1);
AddStaticVehicle(462,1165.9135,2083.5212,10.4199,181.7827,-1,-1);
AddStaticVehicle(462,2440.6782,1991.6599,10.4193,353.6348,-1,-1);
AddStaticVehicle(463,2142.3022,2814.2488,10.3566,270.2944,-1,-1);
AddStaticVehicle(463,1307.0981,2524.1697,10.3607,88.6812,-1,-1);
AddStaticVehicle(463,1396.8243,2273.0427,10.3607,264.0532,-1,-1);
AddStaticVehicle(463,2183.2686,2514.6428,10.3607,55.3155,-1,-1);
AddStaticVehicle(555,2005.8937,2488.1577,10.5041,266.9313,-1,-1);
AddStaticVehicle(555,1280.9906,2548.4009,10.5047,281.4731,-1,-1);
AddStaticVehicle(555,1541.3248,2203.6545,10.5045,356.5509,-1,-1);
AddStaticVehicle(555,2102.7778,2076.1084,10.5049,269.2584,-1,-1);
AddStaticVehicle(555,1944.3433,1343.2035,8.7933,0.8824,-1,-1);
AddStaticVehicle(603,1892.6672,1592.1735,10.5063,182.2317,-1,-1);
AddStaticVehicle(603,1685.8708,1747.9069,10.6634,268.8167,-1,-1);
AddStaticVehicle(603,1367.5848,1939.4111,11.2746,270.7101,-1,-1);
AddStaticVehicle(603,1109.4929,1732.8540,10.6585,91.2455,-1,-1);
AddStaticVehicle(405,2075.3745,1389.4655,10.5467,180.6890,-1,-1);
AddStaticVehicle(405,2132.7136,1139.9778,13.3864,62.7779,-1,-1);
AddStaticVehicle(405,2171.7688,1016.1721,10.6953,270.6725,-1,-1);
AddStaticVehicle(405,2562.5894,1036.6371,10.6875,359.7820,-1,-1);
AddStaticVehicle(405,2485.5010,1536.0773,10.5922,31.4244,-1,-1);
AddStaticVehicle(439,2315.9836,1798.2666,10.7158,181.2612,-1,-1);
AddStaticVehicle(439,2074.7744,1141.7489,10.5678,176.6577,-1,-1);
AddStaticVehicle(439,1867.0037,1179.3020,10.7316,0.9594,-1,-1);
AddStaticVehicle(534,1641.5627,1311.2130,10.5433,269.8838,-1,-1);
AddStaticVehicle(534,1478.3353,723.7643,10.5450,86.4371,-1,-1);
AddStaticVehicle(534,1402.1592,1094.0211,10.5451,4.2392,-1,-1);
AddStaticVehicle(534,2005.0134,659.3234,10.8617,358.4594,-1,-1);
AddStaticVehicle(535,2039.3005,1552.2164,10.4345,180.1375,-1,-1);
AddStaticVehicle(535,2471.3411,1357.1541,10.5841,0.1311,-1,-1);
AddStaticVehicle(535,2610.6912,1675.1757,10.5845,90.5083,-1,-1);
AddStaticVehicle(535,2012.7180,2754.1484,10.5841,182.1595,-1,-1);
AddStaticVehicle(567,2111.5862,2740.1252,10.6888,268.0402,-1,-1);
AddStaticVehicle(567,711.7064,1946.5415,5.4077,180.7693,-1,-1);
AddStaticVehicle(567,842.8339,834.4537,12.7611,186.4375,-1,-1);
AddStaticVehicle(567,1389.2365,773.4502,10.6903,92.5741,-1,-1);
AddStaticVehicle(567,2129.8276,892.2366,10.6806,356.7939,-1,-1);
AddStaticVehicle(437,1067.1531,1025.4388,10.2898,235.2076,-1,-1);
AddStaticVehicle(541,2039.6429,1190.4884,10.2966,356.9030,-1,-1);
AddStaticVehicle(541,2119.3601,2142.7886,10.2968,182.6981,-1,-1);
AddStaticVehicle(541,2076.0271,2469.0640,10.4452,181.0938,-1,-1);
AddStaticVehicle(541,1610.2261,2684.8274,10.4052,266.8163,-1,-1);
AddStaticVehicle(506,2356.8171,2579.3669,10.5193,2.7096,-1,-1);
AddStaticVehicle(506,2487.7114,2527.3049,10.5247,177.6446,-1,-1);
AddStaticVehicle(506,2297.3542,2127.1067,10.5247,88.6916,-1,-1);
AddStaticVehicle(506,2194.7102,1878.0905,10.5249,178.5289,-1,-1);
AddStaticVehicle(587,2012.7782,924.6673,10.5472,270.8799,-1,-1);
AddStaticVehicle(587,2634.7615,1071.6926,10.5456,90.0729,-1,-1);
AddStaticVehicle(587,2488.2246,1297.3362,10.5379,359.8708,-1,-1);
AddStaticVehicle(587,828.9354,878.5657,13.0172,292.5466,-1,-1);
AddStaticVehicle(477,1110.4922,1831.0330,10.5753,179.9420,-1,-1);
AddStaticVehicle(477,1900.2263,2158.7151,10.5752,181.2949,-1,-1);
AddStaticVehicle(477,2361.7158,1994.5139,10.4267,180.6054,-1,-1);
AddStaticVehicle(477,2125.3018,1803.2379,10.4277,152.0696,-1,-1);
AddStaticVehicle(558,1900.6616,2082.2429,10.4508,181.1020,-1,-1);
AddStaticVehicle(558,1711.2220,2226.7529,10.4520,178.8641,-1,-1);
AddStaticVehicle(558,1549.0289,2140.6760,10.4506,89.4409,-1,-1);
AddStaticVehicle(559,1471.0782,1928.2479,10.9691,266.3216,-1,-1);
AddStaticVehicle(559,1689.0592,1641.2174,10.4767,184.4202,-1,-1);
AddStaticVehicle(559,2123.3804,1409.2528,10.4703,179.2619,-1,-1);
AddStaticVehicle(559,1881.4852,954.2305,10.4766,85.6020,-1,-1);
AddStaticVehicle(559,1761.3527,768.3695,10.4766,359.5341,-1,-1);
AddStaticVehicle(560,1917.7793,964.1596,10.5255,180.8135,-1,-1);
AddStaticVehicle(560,2162.0869,1028.3221,10.5255,271.8910,-1,-1);
AddStaticVehicle(560,2073.7729,2035.7565,10.5259,266.4422,-1,-1);
AddStaticVehicle(560,2297.5527,2042.4634,10.5257,92.9736,-1,-1);
AddStaticVehicle(560,2145.4063,1409.4391,10.5256,179.1993,-1,-1);
AddStaticVehicle(561,1524.9885,1038.4121,10.6342,94.7072,-1,-1);
AddStaticVehicle(561,1928.9497,948.1937,10.6266,91.1280,-1,-1);
AddStaticVehicle(561,2074.5403,1089.2621,10.4858,1.2950,-1,-1);
AddStaticVehicle(562,2035.2380,1035.0433,10.4814,180.8703,-1,-1);
AddStaticVehicle(562,2035.2335,987.3387,10.4800,179.8130,-1,-1);
AddStaticVehicle(562,1881.1692,988.9169,10.4795,92.4225,-1,-1);
AddStaticVehicle(562,2008.4390,2414.9854,10.4780,265.9358,-1,-1);
AddStaticVehicle(446,1629.2625,569.1407,-0.4828,280.8207,-1,-1);
AddStaticVehicle(446,-2637.9258,1503.7883,-0.4326,198.0182,-1,-1);
AddStaticVehicle(416,1600.0950,1831.3705,10.9696,0.0288,-1,-1);
AddStaticVehicle(416,1614.7391,1831.2045,10.9694,0.4478,-1,-1);
AddStaticVehicle(421,2188.9158,1822.2882,10.7028,359.8116,-1,-1);
AddStaticVehicle(421,2148.7163,1396.5952,10.6969,181.3439,-1,-1);
AddStaticVehicle(421,2352.6853,1472.9585,19.0376,271.2728,-1,-1);
AddStaticVehicle(445,2474.7888,1089.3583,10.6953,179.5485,-1,-1);
AddStaticVehicle(445,2014.7494,1699.7942,10.6953,90.8878,-1,-1);
AddStaticVehicle(445,1918.9209,2760.0837,10.6934,86.7250,-1,-1);
AddStaticVehicle(461,2066.5984,2188.2942,10.4049,276.0631,-1,-1);
AddStaticVehicle(461,1883.9268,2118.8066,10.4046,269.7591,-1,-1);
AddStaticVehicle(461,2591.4409,2279.3391,10.4068,273.3690,-1,-1);
AddStaticVehicle(461,2827.3567,2376.7488,10.4001,90.7138,-1,-1);
AddStaticVehicle(467,2890.7292,2379.2034,10.5604,270.5993,-1,-1);
AddStaticVehicle(467,2491.0601,2773.3608,10.5373,89.7958,-1,-1);
AddStaticVehicle(475,2633.8857,2207.0139,10.6245,358.7407,-1,-1);
AddStaticVehicle(475,2428.2639,2530.0999,21.6797,178.1749,-1,-1);
AddStaticVehicle(475,2541.3835,2355.3555,4.0168,88.5918,-1,-1);
AddStaticVehicle(542,1893.9451,2331.3831,10.5652,271.1566,3,46);
AddStaticVehicle(542,1628.7661,2236.2451,10.5638,358.2055,-1,-1);
AddStaticVehicle(542,1657.7009,1090.8824,10.5637,180.5101,-1,-1);
AddStaticVehicle(542,1550.4098,1021.3586,10.5636,268.5319,-1,-1);
AddStaticVehicle(542,1077.2311,1212.3351,10.5636,181.9319,79,46);
AddStaticVehicle(400,809.6285,843.1871,9.9319,285.0425,-1,-1);
AddStaticVehicle(400,662.4098,1259.8835,11.5533,25.0445,-1,-1);
AddStaticVehicle(400,787.4247,1962.1318,5.4283,261.1720,-1,-1);
AddStaticVehicle(400,992.3377,2037.5818,11.3337,93.3966,-1,-1);
AddStaticVehicle(400,1330.1243,2239.7314,10.9127,271.2026,-1,-1);
AddStaticVehicle(400,1067.9895,2386.0266,10.9127,268.7650,-1,-1);
AddStaticVehicle(490,2313.3308,2465.5623,-7.3257,88.6242,0,0);
AddStaticVehicle(490,2316.0742,2431.5762,-7.3283,0.6496,3,3);
AddStaticVehicle(490,2268.4189,2430.4072,-7.3258,181.2159,79,79);
AddStaticVehicle(490,2277.1582,2473.8132,-7.3243,178.6099,6,6);
AddStaticVehicle(411,-1955.6897,270.5793,40.7742,271.2761,-1,-1);
AddStaticVehicle(411,-1987.5156,304.6937,34.9028,89.3214,-1,-1);
AddStaticVehicle(487,1621.9562,1290.1423,10.9855,95.4568,-1,-1);
AddStaticVehicle(506,1328.5680,1279.1774,10.5250,359.2437,-1,-1);
AddStaticVehicle(542,1312.8408,1279.0232,10.5635,359.3535,0,0);
AddStaticVehicle(475,1306.4203,1279.4434,10.6350,1.2161,0,0);
AddStaticVehicle(461,1671.3730,999.9628,10.3988,180.1990,-1,-1);
AddStaticVehicle(476,1273.1141,1481.7256,11.5364,230.7264,0,0);
AddStaticVehicle(577,1584.3083,1188.8120,10.7791,183.0702,1,3);
AddStaticVehicle(476,1747.6897,-2626.7290,14.2601,0.7122,3,3);
AddStaticVehicle(476,1621.1116,-2630.0288,14.2577,1.3985,0,0);
AddStaticVehicle(593,1893.6383,-2629.3264,14.0097,357.2338,68,3);
AddStaticVehicle(593,1680.1844,-2627.9055,14.0098,359.9746,68,0);
AddStaticVehicle(411,605.6311,1705.5037,6.7193,306.5900,6,6);
AddStaticVehicle(411,-120.5536,951.7356,20.3309,271.6847,0,0);
AddStaticVehicle(415,-111.5712,1051.6532,19.5221,185.4362,0,0);
AddStaticVehicle(429,-8.8860,983.5931,19.3820,89.6957,0,1);
AddStaticVehicle(451,-160.3686,1039.0305,19.4773,280.2672,0,0);

	AddStaticPickup(371, 15, 1710.3359,1614.3585,10.1191); //para
	AddStaticPickup(371, 15, 1964.4523,1917.0341,130.9375); //para
	AddStaticPickup(371, 15, 2055.7258,2395.8589,150.4766); //para
	AddStaticPickup(371, 15, 2265.0120,1672.3837,94.9219); //para
	AddStaticPickup(371, 15, 2265.9739,1623.4060,94.9219); //para
	
	SetTimer("MoneyGrubScoreUpdate", 1000, 1);
	SetTimer("checkpointUpdate", 1100, 1);
	SetTimer("PirateShipScoreUpdate", 2001, 1);
	SetTimer("PropertyScoreUpdate", 40005, 1);
	SetTimer("GambleUpdate", 5013, 1);
	SetTimer("SavedUpdate",60017, 1);
	SetTimer("TimeUpdate",60009, 1);
	SetTimer("SettingsExistsCheck", 5000, 1);
	SetTimer("WiadomoscSystemowa",60*5000, true);

	//SetTimer("GameModeExitFunc", gRoundTime, 0);

	return 1;
}

public SendPlayerFormattedText(playerid, const str[], define)
{
	new tmpbuf[256];
	format(tmpbuf, sizeof(tmpbuf), str, define);
	SendClientMessage(playerid, 0xFFFF00AA, tmpbuf);
}

public SendAllFormattedText(playerid, const str[], define)
{
	new tmpbuf[256];
	format(tmpbuf, sizeof(tmpbuf), str, define);
	SendClientMessageToAll(0xFFFF00AA, tmpbuf);
}

public GetDistanceBetweenPlayers(playerid,playerid2){
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
new Float:dis;
if (!IsPlayerConnected(playerid) || !IsPlayerConnected(playerid2)){
return 0;
}
GetPlayerPos(playerid,x1,y1,z1);
GetPlayerPos(playerid2,x2,y2,z2);
dis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
return floatround(dis);
}

public RaportCheater(playerid, cheatername[], reason[])
{
	new string[256];
	new playername[MAX_PLAYER_NAME];
	GetPlayerName(playerid, playername, sizeof(playername));
	format(string, sizeof(string), "*** %s zg&#322;asza, &#380;e %s &#322;amie zasady gry, powód: %s ***", playername, cheatername, reason);
	printf(string);
	SendClientMessageToAdmins(COLOR_LIGHTRED, string);
	return 1;
}

public SendClientMessageToAdmins(color, const message[]) {
	for(new a=0; a<MAX_PLAYERS; a++) {
	    if(IsPlayerConnected(a)) {
	        if(IsPlayerAdmin(a)) {
	            SendClientMessage(a, color, message);
			}
		}
	}
}

public OnPlayerPrivmsg(senderid, playerid, text[])
{
	new sname[256], pname[256];
	GetPlayerName(playerid, pname, sizeof(pname));
	GetPlayerName(senderid, sname, sizeof(sname));

	new temp[256];
	format(temp, sizeof(temp), "%s -> %s: %s",sname, pname, text);

	for(new e=0; e<MAX_PLAYERS; e++)
	    if(IsPlayerAdmin(e) && e != playerid && e != senderid)
   			SendClientMessage(e, COLOR_YELLOW, temp);

	return 1;
}

public KickMsg(playerid, kickername[], reason[])
{
	new string[256];
	new playername[MAX_PLAYER_NAME];
	new tmp[256];
	GetPlayerName(playerid, playername, sizeof(playername));
	format(string, sizeof(string), "*** %s (id: %d) zosta&#322; wyrzucony przez administratora: %s. Powód: %s ***", playername, playerid, kickername, reason);
	printf(string);
	SendClientMessageToAll(COLOR_RED, string);
	Kick(playerid);
	tmp = dini_Get(FILE_TOTALSTAT, "kicks");
	dini_IntSet(FILE_TOTALSTAT, "kicks", strval(tmp)+1);
	return 1;
}

public BanMsg(playerid, kickername[], reason[])
{
	new string[256];
	new playername[MAX_PLAYER_NAME];
	new tmp[256];
	GetPlayerName(playerid, playername, sizeof(playername));
	format(string, sizeof(string), "*** %s (id: %d) zosta&#322; zbanowany przez administratora: %s. Powód: %s ***", playername, playerid, kickername, reason);
	printf(string);
	SendClientMessageToAll(COLOR_RED, string);
	Ban(playerid);
	tmp = dini_Get(FILE_TOTALSTAT, "bans");
	dini_IntSet(FILE_TOTALSTAT, "bans", strval(tmp)+1);
	return 1;

}

public WiadomoscSystemowa() {
	SendClientMessageToAll(COLOR_GREEN, "Mapka by SiLuS");
	SendClientMessageToAll(COLOR_LIGHTBLUE, "Zapraszamy na te strony:");
	SendClientMessageToAll(COLOR_YELLOW, "http://GG-klan.yoyo.pl");
	SendClientMessageToAll(COLOR_YELLOW, "http://pawno.yoyo.pl");
	SendClientMessageToAll(COLOR_LIGHTBLUE, "Oto IP naszych innych serwerów:");
	SendClientMessageToAll(COLOR_YELLOW, "193.85.245.49:7777, 193.85.244.42:7777");
	SendClientMessageToAll(COLOR_GREEN, "W krótce pojawi sie nowa aktualizacja mapki xD");

}

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