Public feed #888867

Something

public text v1 · immutable
Raw Edit
·published 2008-02-02 13:51 UTC
rendered paste body
#include <a_samp>
#include <core>
#include <float>

#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_ORANGE 0xFF9900AA

#define PocketMoney 4000 // Amount player recieves on spawn.
#define INACTIVE_PLAYER_ID 255
#define GIVECASH_DELAY 5000 // Time in ms between /givecash commands.

#define NUMVALUES 4

#define CP_BANK 		0
#define CP_PIRATE 		1
#define CP_SKYSCARPER 	2
#define CP_ZOMBOTECH 	3
#define CP_AMMU     	4
#define CP_AMMU_2     	5
#define CP_BANK_2 		6
#define CP_BANK_3 		7
#define CP_LS_AIR 		8
#define CP_SF_AIR 		9
#define CP_LV_AIR 		10
#define CP_ALAHAM   	11
#define CP_DIDERSACHS   12
#define CP_BAR      	13
#define CP_HAIRSTUD 	14
#define CP_ZIP      	15
#define CP_BINCO    	16
#define CP_TATOO    	17
#define CP_GOLF 		18
#define CP_WANG 		19
#define CP_HOTEL 		20
#define CP_OTTOS 		21
#define CP_DRAGON       22
#define CP_CALIGULA     23
#define CP_SEXSHOP      24
#define CP_CATHAY     	25
#define CP_VERONA     	26
#define CP_ZERORC     	27
#define CP_JIZZYS     	28

#define P_ALAHAM    	0
#define P_DIDERSACHS  	1
#define P_BAR       	2
#define P_HAIRSTUD  	3
#define P_ZIP       	4
#define P_BINCO     	5
#define P_TATOO     	6
#define P_GOLF 			7
#define P_WANG 			8
#define P_HOTEL 		9
#define P_OTTOS 		10
#define P_DRAGON      	11
#define P_CALIGULA   	12
#define P_SEXSHOP    	13
#define P_CATHAY      	14
#define P_VERONA      	15
#define P_ZERORC     	16
#define P_JIZZYS      	17

#define P_OFFSET    11

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 savePos;
new worldTime;

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[78][3] = {
{2805.0862,-1180.9579,25.4536},
{2530.4785,-1063.5999,69.5695},
{-2275.2280,42.3125,35.3125},
{2042.9279,-1013.6509,39.7422},
{1497.0605,-689.1375,95.1092},
{1255.1125,-803.2986,84.1406},
{829.4501,-858.8712,70.1248},
{699.3003,-1059.2599,49.4217},
{299.0901,-1155.5858,80.9099},
{315.2544,-1772.5730,4.6776},
{-2062.5583,237.4662,35.7149},
{333.3540,-1519.2587,35.8672},
{763.0789,-1564.3256,13.5536},
{986.0850,-1095.0150,27.6041},
{1109.6948,-972.4279,42.7656},
{-2123.6570,-425.2528,35.5313},
{1438.9014,-927.2687,39.6406},
{1656.6252,-1076.3080,23.8984},
{1956.1605,-1116.0430,27.8305},
{-2653.6443,1388.2767,7.1301},
{2224.1555,-1240.3496,25.1478},
{2338.8757,-1289.3113,27.9766},
{-2838.1958,880.8605,44.0547},
{2436.4819,-1303.6724,24.6679},
{2450.9358,-1493.6650,24.0000},
{-2319.8889,578.0090,31.2498},
{2519.8420,-1678.7356,14.8524},
{2507.6228,-2019.1085,13.5469},
{-2642.2583,-274.9985,7.5393},
{1957.7228,-2183.6519,13.5469},
{1857.9117,-2042.3588,13.5469},
{-1771.3396,1205.8127,25.1250},
{1734.1467,-2099.2144,13.8666},
{2511.4326,-2589.3069,13.6443},
{2785.9890,-2417.7148,13.6341},
{2261.2937,-1930.7488,12.8935},
{2105.2878,-1913.1111,13.3828},
{-2157.2119,649.5484,52.3672},
{-2478.9902,1141.1311,55.7266},
{1833.2399,-1681.1813,13.4816},
{1665.9006,-1559.9375,13.5469},
{1125.5248,-1372.0935,13.9844},
{-2652.8887,1347.5245,7.1592},
{1289.0425,-1134.7928,23.8281},
{2842.1575,-1335.5879,14.7421},
{2767.4480,-1610.6735,10.9219},
{2753.1375,-1308.9150,53.0938},
{2789.2317,-2494.3286,13.6485},
{-1377.4271,466.0897,7.1875},
{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},
{-2569.5093,894.0370,64.9844},
{2261.9048,2035.9547,10.8203},
{2262.0986,2398.6572,10.8203},
{-2442.7913,752.1005,35.1786},
{2244.2566,2523.7280,10.8203},
{2335.3228,2786.4478,10.8203},
{-1754.9976,958.5851,24.8828},
{2150.0186,2734.2297,11.1763},
{2158.0811,2797.5488,10.8203},
{1969.8301,2722.8564,10.8203},
{-2790.7754,69.6904,7.2020},
{1652.0555,2709.4072,10.8265},
{1564.0052,2756.9463,10.8203},
{1271.5452,2554.0227,10.8203},
{1441.5894,2567.9099,10.8203},
{-2665.4282,635.6348,14.4531},
{1480.6473,2213.5718,11.0234},
{1400.5906,2225.6960,11.0234},
{-1939.9021,-858.7451,32.0234},
{1598.8419,2221.5676,11.0625},
{1318.7759,1251.3580,10.8203},
{-1660.7620,1207.0634,21.1563},
{1558.0731,1007.8292,10.8125}
};

new Float:gCopPlayerSpawns[6][3] = {
{1579.9010, -1636.5945, 13.5587},
{1525.2365, -1678.0016, 5.8906},
{2297.1064, 2452.0115, 10.8203},
{2297.0452, 2468.6743, 10.8203},
{-1635.0077, 665.8105, 7.1875},
{-1636.9252, 662.2247, 7.1875}
};


#define MAX_POINTS 29

new Float:checkCoords[MAX_POINTS][4] = {
{-36.5483,-57.9948, -17.2655,-49.2967},     	//BANK
{1894.6128,1445.3431, 2084.9739,1637.8186}, 	//LV_PIRATE
{1526.1332,-1370.5281,1558.4066,-1346.3019}, 	//LS_SKYSCARPER
{-2020.2151,593.7877,-1882.4504,745.5773}, 		//SF_ZOMBOTECH
{285.5186,-40.8558, 299.3870,-30.2428},     	//AMMUNATION
{284.0546,-86.4384, 302.9315,-56.6674},     	//AMMUNATION_2
{-37.2183,-91.8006, -14.1099,-74.6845},      	//BANK_2
{-34.6621,-31.4095, -2.6782,-25.6232},     		//BANK_3
{1406.4838,-2372.7078,1836.9307,-2205.9673},    //LS_AIRPORT
{-1720.8835,-692.9379,-1229.0609,-244.2898},    //SF_AIRPORT
{1631.2246,1319.9592,1815.6743,1549.8381},      //LV_AIRPORT
{473.8677,-24.4651, 503.5214,-10.7020},  		//ALHAMBRA
{200.4548,-168.0065, 211.3137,-156.5380},     	//DIDERSACHS
{487.6558,-88.5900, 512.0635, -67.7503},    	//BAR
{410.9893,-24.1658,415.1630,-12.6853}, 			//HAIRSTUD
{144.9131,-96.0927, 177.4128,-70.7923},    		//ZIP
{201.4462,-112.4556, 218.5237,-95.1238},    	//BINCO
{-204.7587,-27.0317, -200.2572,-22.7652},   	//TATOO
{-2815.8892,-330.0380,-2637.8352,-202.6930}, 	//SF GOLF CLUB
{-2014.8904,218.3705,-1900.5179,327.4985}, 		//SF WANG CARS
{-1804.7817,904.1232,-1682.8546,979.6241,}, 	//SF HOTEL
{-1681.0754,1168.9130,-1554.2562,1254.3335},  	//OTTO'S AUTOS
{1925.1511,968.2358, 2019.0715,1067.4276},  	//DRAGONS
{2216.7971,1638.0493, 2255.2097,1714.0806}, 	//CALIGULA
{-115.9544,-24.2706, -99.1631,-7.1391},     	//SEXSHOP
{954.5639,-1158.5366,1073.8862,-1086.4647},     //CATHAY
{1020.2889,-1581.0238,1214.4883,-1387.2167},    //VERONA
{-2240.6978,128.3114,-2224.1711,137.5221},     //ZERORC
{-2689.9849,1389.1598,-2631.0308,1431.7599}     //JIZZYS
};

new Float:checkpoints[MAX_POINTS][3] = {
{-22.2549,-55.6575,1003.5469},
{2000.3132,1538.6012,13.5859},
{1544.3478,	-1356.1665,	329.469},
{-1951.9886,686.6917,46.5625},
{291.1157,-39.9011,1001.5156},
{291.0004,-84.5168,1001.5156},
{-23.0664,-90.0882,1003.5469},
{-33.9593,-29.0792,1003.5573},
{1685.4951,-2333.1021,13.5469},
{-1423.1083,-289.5751,14.1484},
{1677.3966,1447.7908,10.7758},
{475.2822,-18.4801,1003.6953},
{204.0677,-157.7979,1000.5234},
{501.4927,-75.4323,998.7578},
{411.9587,-17.9706,1001.8047},
{161.1875,-79.9915,1001.8047},
{207.5640,-97.8188,1005.2578},
{-201.5237,-26.2863,1002.2734},
{-2724.3921,-314.7957,7.1861},
{-1957.3124,302.8924,35.4688},
{-1754.2139,960.2347,24.8828},
{-1660.4781,1218.4636,7.2500},
{1994.7078,1017.6371,994.8906},
{2235.5408,1679.0402,1008.3594},
{-103.9330,-21.0203,1000.7188},
{1022.7669,-1124.1028,23.8708},
{1129.0569,-1489.0812,22.7690},
{-2233.7097,133.7087,1035.4210},
{-2650.8259,1410.2885,906.2734}
};

new checkpointType[MAX_POINTS] = {
	CP_BANK,
	CP_PIRATE,
	CP_SKYSCARPER,
	CP_ZOMBOTECH,
	CP_AMMU,
	CP_AMMU_2,
	CP_BANK_2,
	CP_BANK_3,
	CP_LS_AIR,
	CP_SF_AIR,
	CP_LV_AIR,
	CP_ALAHAM,
	CP_DIDERSACHS,
	CP_BAR,
	CP_HAIRSTUD,
	CP_ZIP,
	CP_BINCO,
	CP_TATOO,
	CP_GOLF,
	CP_WANG,
	CP_HOTEL,
	CP_OTTOS,
	CP_DRAGON,
	CP_CALIGULA,
	CP_SEXSHOP,
	CP_CATHAY,
	CP_VERONA,
	CP_ZERORC,
	CP_JIZZYS
};

#define MAX_PROPERTIES 18

new propertyNames[MAX_PROPERTIES][32] = {
	"LS Alhambra Club",
	"Dider Sachs Boutiques",
	"Ten Green Bottles, Shithole Bar",
	"Hair Studios",
	"Zip Shops",
	"Binco Shops",
	"Tatoo Parlors",
	"SF Country Club",
	"SF Wang Cars",
	"SF Hotel",
	"SF Otto's Autos",
	"LV Four Dragons Casino",
	"LV Caligula Casino",
	"LV Sexshop",
	"LS Kathay Chineese Theatre",
	"LS Verona Mall",
	"SF Zero RC Shop",
	"SF Jizzy's Club"
};

new propertyValues[MAX_PROPERTIES] = {
	70000,
	100000,
	20000,
	30000,
	15000,
	15000,
	10000,
	220000,
	170000,
	200000,
	190000,
	75000,
	100000,
	25000,
	130000,
	150000,
	25000,
	70000
};

new propertyEarnings[MAX_PROPERTIES] = {
	4500,
	7000,
	1500,
	4000,
	1000,
	1000,
	700,
	14000,
	95000,
	12000,
	10000,
	5000,
	7000,
	2000,
	8500,
	9000,
	1500,
	4500
};

new propertyOwner[MAX_PROPERTIES] = {999,999,999,999,999,999,999,999,999,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];
new savedWeapons[MAX_SAVE][MAX_WEAPONS];

#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];

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

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

main()
{
		print("\n----------------------------------");
		print("  SAN ANDREAS Multimap Edition by McMan");
		print("----------------------------------\n");
}

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

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 izgāja no tavas bandas.", playername);
					SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
				}

				format(string, sizeof(string),"Tu izgāji no bandas '%s' (id: %d)", gangNames[gangnum], gangnum);
				SendClientMessage(playerid, COLOR_ORANGE, string);

				playerGang[playerid]=0;

				SetPlayerColor(playerid,playerColors[playerid]);

				return;
			}
		}
	} else {
		SendClientMessage(playerid, COLOR_RED, "Tu pašlaik neesi nevienā bandā.");
	}
}

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 PirateShipScoreUpdate()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		PayPlayerInArea(i, 1995.5, 1518.0, 2006.0, 1569.0, 200);
		PayPlayerInArea(i, 1516.1332, -1380.5281, 1568.4066, -1336.3019, 200);
		PayPlayerInArea(i, -1988.4744, 639.1348, -1917.0579, 715.5820, 200);
//		{
//            SendClientMessage(i, COLOR_YELLOW, "You earned money for holding pirate ship area.");
//		}
	}
}

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

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,"~r~NO GAMBLING ~g~Gamblers will be ~r~SHOT",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), "Tu nopelnīji $%d no saviem īpašumiem.", 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 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 GrubModeReset()
{
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if (IsPlayerConnected(i))
		{
			SetPlayerScore(i, PocketMoney);
			SetPlayerRandomSpawn(i, classid);
		}
	}

}*/

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

public OnPlayerConnect(playerid)
{
	new playrname[MAX_PLAYER_NAME];

	GameTextForPlayer(playerid,"~w~SA-MP: ~r~San Andreas ~g~Multimap edition",5000,5);
		SendPlayerFormattedText(playerid, "~Multimap edition~", 0);
	SendClientMessage(playerid,0x00FF00FF,"Raksti /help prekš palīdzības");
	SendClientMessage(playerid,0x00FF11FF,"Raksti /register lai reģistrētos, un /login lai ielogotos");

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

	playerCheckpoint[playerid]=999;
	bank[playerid]=0;
	playerGang[playerid]=0;
	gangInvite[playerid]=0;

	GetPlayerName(playerid, playrname, sizeof(playrname));
	for(new i = 0; i < MAX_SAVE; i++) {

	    if(isStringSame(savedNames[i], playrname, MAX_PLAYER_NAME)) {
			GivePlayerMoney(playerid, savedInfo[i][0]);
			bank[playerid] = savedInfo[i][1];
			bounty[playerid] = savedInfo[i][2];

			savedInfo[i][0]=savedInfo[i][1]=savedInfo[i][2]=0;
			savedNames[i][0]=0;

			for(new j = 0; j < MAX_WEAPONS; j++) {
				playerWeapons[playerid][j]=savedWeapons[i][j];
				savedWeapons[i][j]=0;
			}

			SendClientMessage(playerid, COLOR_GREEN, "Tava nauda tika atjaunota.");
		}
	}

	return 1;
}

//------------------------------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
	new playername[MAX_PLAYER_NAME];

	gActivePlayers[playerid]--;

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

	//Save temp info for timeouts/crashes
	GetPlayerName(playerid, playername, sizeof(playername));
	format(savedNames[savePos], MAX_PLAYER_NAME, "%s",playername);

	savedInfo[savePos][0] = GetPlayerMoney(playerid);
	savedInfo[savePos][1] = bank[playerid];
	savedInfo[savePos][2] = bounty[playerid];
	savedInfo[savePos][3] = 0;

	for(new i = 0; i < MAX_WEAPONS; i++)
		savedWeapons[savePos][i]=playerWeapons[playerid][i];
	//
	savePos++;
	if(savePos >= MAX_SAVE)
	    savePos = 0;

	PlayerLeaveGang(playerid);
	bounty[playerid] = 0;

	for(new i = 0; i < MAX_WEAPONS;i++) {
		playerWeapons[playerid][i]=0;
	}
}
//------------------------------------------------------------------------------------------------------

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

	//------------------- /help and /gangcommands for a list of gang commands.
    if (strcmp("/osta", cmdtext, true, 6) == 0)
         {
         SetPlayerPos(playerid,149.3208,-1903.6128,3.7734);
         SetPlayerFacingAngle(playerid,88.1219);
         return 1;
         }

	if(strcmp(cmd, "/help", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"San Andreas Multimap edition palīdzība!!!!");
		SendClientMessage(playerid, COLOR_YELLOW,"Šis mods ir paradzēts ļoti daudziem spēlētājiem.");
		SendClientMessage(playerid, COLOR_YELLOW,"Raksti /givecash ,lai iedotu naudu kādam citam, un /tele lai redzētu teleportācijas vietas!");
		SendClientMessage(playerid, COLOR_YELLOW,"Raksti /hitman ,lai uzliku naudu uz kāda spēlētāja galvas.");
		SendClientMessage(playerid, COLOR_ORANGE,"Raksti /gangcommands ,lai apskatītu bandas komandas.");
		SendClientMessage(playerid, COLOR_ORANGE,"Raksti /commands vai /cmd lai redzētu pilnu sarakstu ar komandām.");
		return 1;
	}
	if(strcmp(cmd, "/cmd", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"Pieejamās komandas:");
		SendClientMessage(playerid, COLOR_WHITE,"/animlist ...");
		return 1;
 	}
	if(strcmp(cmd, "/tele", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"Teleportācijas vietas:");
		SendClientMessage(playerid, COLOR_WHITE,"/osta |");
		return 1;
	}
	if(strcmp(cmd, "/commands", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"Pieejamās komandas:");
		SendClientMessage(playerid, COLOR_RED,"Reģistrētiem lietotājiem - /shelp");
		SendClientMessage(playerid, COLOR_YELLOW,"/bank [amount], /withdraw [amount], /balance");
		SendClientMessage(playerid, COLOR_YELLOW,"/givecash [playerid] [amount]");
		SendClientMessage(playerid, COLOR_YELLOW,"/hitman [playerid] [amount]");
		SendClientMessage(playerid, COLOR_YELLOW,"/bounty [playerid]");
		SendClientMessage(playerid, COLOR_YELLOW,"/buy, /properties, /properties2");
		SendClientMessage(playerid, COLOR_YELLOW,"/buyweapon, /weaponlist");
		SendClientMessage(playerid, COLOR_YELLOW,"/bounties, /gangs");
		SendClientMessage(playerid, COLOR_YELLOW,"/flylv, /flysf, /flyls");
		return 1;
	}
	if(strcmp(cmd, "/gangcommands", true) == 0) {
		SendClientMessage(playerid, COLOR_GREEN,"Bandas komandas:");
		SendClientMessage(playerid, COLOR_YELLOW,"/gang create [name]");
		SendClientMessage(playerid, COLOR_YELLOW,"/gang join");
		SendClientMessage(playerid, COLOR_YELLOW,"/gang invite [playerID]");
		SendClientMessage(playerid, COLOR_YELLOW,"/gang quit");
		SendClientMessage(playerid, COLOR_YELLOW,"/ganginfo [number] (no number given shows your gang's info)");
		SendClientMessage(playerid, COLOR_YELLOW,"/gbank [money] /gwithdraw [money] /gbalance");
		SendClientMessage(playerid, COLOR_YELLOW,"! (prefix text for gang-chat)");
		return 1;
	}
	//------------------- /flysf

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

			if (GetPlayerMoney(playerid) < 2500)
			{
				SendClientMessage(playerid,COLOR_RED,"Tev ir izbeigusies nauda.");
				return 1;
			}
			else if (IsPlayerInCheckpoint(playerid) == 0)
			{
			    SendClientMessage(playerid, COLOR_YELLOW, "Tev ir jābūt LS vai LV lidostā, lai izmantotu šo.");
				return 1;
			}
	        else if (getCheckpointType(playerid) == CP_SF_AIR)
			{
			    SendClientMessage(playerid, COLOR_YELLOW, "Rwc ue jābūt LS vai LV lidostā, lai izmantotu šo.");
				return 1;
			}
			else if (GetPlayerMoney(playerid) > 2499 && getCheckpointType(playerid) == CP_LV_AIR && IsPlayerInCheckpoint(playerid) == 1)
			{
				GivePlayerMoney(playerid,-2500);
				SetPlayerPos(playerid,-1397.0,-317.0,14.0);
				SetPlayerFacingAngle(playerid,116.0);
				GameTextForPlayer(playerid,"~w~Esi sveicināts ~b~San Fierro~w~.",2000,5);
			}
			else if (GetPlayerMoney(playerid) > 2499 && getCheckpointType(playerid) == CP_LS_AIR && IsPlayerInCheckpoint(playerid) == 1)
			{
				GivePlayerMoney(playerid,-2500);
				SetPlayerPos(playerid,-1397.0,-317.0,14.0);
				SetPlayerFacingAngle(playerid,116.0);
				GameTextForPlayer(playerid,"~w~Esi sveicināts ~b~San Fierro~w~.",2000,5);
			}

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

			if (GetPlayerMoney(playerid) < 2500)
			{
				SendClientMessage(playerid,COLOR_RED,"Tev ir izbeigusies naudas.");
				return 1;
			}
        	else if (IsPlayerInCheckpoint(playerid) == 0)
			{
			    SendClientMessage(playerid, COLOR_YELLOW, "Tev ir jābūt LV vai SF lidostā, lai izmantotu šo.");
				return 1;
			}

        	else if (getCheckpointType(playerid) == CP_LS_AIR)
			{
			    SendClientMessage(playerid, COLOR_YELLOW, "Tev ir jābūt LV vai SF lidostā, lai izmantotu šo.");
				return 1;
			}

	    	else if (GetPlayerMoney(playerid) > 2499 && getCheckpointType(playerid) == CP_LV_AIR && IsPlayerInCheckpoint(playerid) == 1)
			{
				GivePlayerMoney(playerid,-2500);
				SetPlayerPos(playerid,1642.0,-2332.0,13.0);
				SetPlayerFacingAngle(playerid,360.0);
				GameTextForPlayer(playerid,"~w~Esi sveicināts ~b~Los Santos~w~.",2000,5);
			}
			else if (GetPlayerMoney(playerid) > 2499 && getCheckpointType(playerid) == CP_SF_AIR && IsPlayerInCheckpoint(playerid) == 1)
			{
				GivePlayerMoney(playerid,-2500);
				SetPlayerPos(playerid,1642.0,-2332.0,13.0);
				SetPlayerFacingAngle(playerid,360.0);
				GameTextForPlayer(playerid,"~w~Esi sveicināts ~b~Los Santos~w~.",2000,5);
			}
		return 1;
		}
  	//------------------- /flylv
    		if(strcmp(cmd, "/flylv", true) == 0) {

			if (GetPlayerMoney(playerid) < 2500)
			{
				SendClientMessage(playerid,COLOR_RED,"Tev ir izbeigusies nauda.");
				return 1;
			}
    	    else if (IsPlayerInCheckpoint(playerid) == 0)
			{
			    SendClientMessage(playerid, COLOR_YELLOW, "Tev ir jābūt LS vai SF lidostā, lai izmantotu šo.");
				return 1;
			}
    		else if (getCheckpointType(playerid) == CP_LV_AIR)
			{
			    SendClientMessage(playerid, COLOR_YELLOW, "Tev ir jābūt LS vai SF lidostā, lai izmantotu šo.");
				return 1;
			}
			else if (GetPlayerMoney(playerid) > 2499 && getCheckpointType(playerid) == CP_SF_AIR && IsPlayerInCheckpoint(playerid) == 1)
			{
				GivePlayerMoney(playerid,-2500);
				SetPlayerPos(playerid,1704.0,1365.0,10.0);
				SetPlayerFacingAngle(playerid,354.0);
				GameTextForPlayer(playerid,"~w~Esi svieicnāts ~b~Las Venturas~w~.",2000,5);
			}
			else if (GetPlayerMoney(playerid) > 2499 && getCheckpointType(playerid) == CP_LS_AIR && IsPlayerInCheckpoint(playerid) == 1)
			{
				GivePlayerMoney(playerid,-2500);
				SetPlayerPos(playerid,1704.0,1365.0,10.0);
				SetPlayerFacingAngle(playerid,354.0);
				GameTextForPlayer(playerid,"~w~Esi sveicināts ~b~Las Venturas~w~.",2000,5);
			}
			else if (GetPlayerMoney(playerid) < 2500)
			{
				SendClientMessage(playerid,COLOR_RED,"Tev ir izbeigusies nauda.");
			}

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

	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 && getCheckpointType(playerid) != CP_BANK_2 && getCheckpointType(playerid) != CP_BANK_3) {
	        SendClientMessage(playerid, COLOR_YELLOW, "Tev ir jābūt bankas teritorija lai izmantotu šo.");
			return 1;
		}
		if(gang && playerGang[playerid]==0) {
			SendClientMessage(playerid, COLOR_RED, "Tu neesi bandā!");
			return 1;
		}

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

	    if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /(g)bank [amount]");
			return 1;
	    }
	    moneys = strval(tmp);

	    if(moneys < 1) {
			SendClientMessage(playerid, COLOR_YELLOW, "Ewwww! LOL, kuru tu mēģini te piemānīt.");
			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), "Tu nogūldīji $%d, tavas bandas atlikums ir $%d.", moneys, gangBank[playerGang[playerid]]);
		else
			format(string, sizeof(string), "Tu nogūldīji $%d, tavs atlikums ir $%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 && getCheckpointType(playerid) != CP_BANK_2 && getCheckpointType(playerid) != CP_BANK_3 ) {
	        SendClientMessage(playerid, COLOR_YELLOW, "Tev ir jābūt bankas teritorija lai izmantotu šo.");
			return 1;
		}

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

		if(gang && playerGang[playerid]==0) {
			SendClientMessage(playerid, COLOR_RED, "Tu neesi bandā!");
			return 1;
		}

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

	    if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /(g)withdraw [amount]");
			return 1;
	    }
	    moneys = strval(tmp);

	    if(moneys < 1) {
			SendClientMessage(playerid, COLOR_YELLOW, "Eww!! LOL, kuru tu te mēģini piemānīt.");
			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), "Tu izņēmi $%d, tavas bandas atlikums ir $%d.", moneys, gangBank[playerGang[playerid]]);
		else
			format(string, sizeof(string), "Tu izņēmi $%d, tavs atlikums ir $%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 && getCheckpointType(playerid) != CP_BANK_2 && getCheckpointType(playerid) != CP_BANK_3) {
	        SendClientMessage(playerid, COLOR_YELLOW, "Tev ir jābūt bankas teritorija lai izmantotu šo.");
			return 1;
		}

		if(gang && playerGang[playerid]==0) {
			SendClientMessage(playerid, COLOR_RED, "Tu neesi bandā!");
			return 1;
		}

		if(gang)
			format(string, sizeof(string), "Tavai bandai ir $%d iekšā bankā.", gangBank[playerGang[playerid]]);
		else
			format(string, sizeof(string), "Tev ir $%d bankā.", 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, "USAGE: /givecash [playerid] [amount]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
			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), "Tu aizsūtīji %s (id: %d), $%d.", giveplayer,giveplayerid, moneys);
				SendClientMessage(playerid, COLOR_YELLOW, string);
				format(string, sizeof(string), "Tu saņēmi $%d no %s (id: %d).", moneys, sendername, playerid);
				SendClientMessage(giveplayerid, COLOR_YELLOW, string);
				printf("%s(playerid:%d) aizsūtīja %d - %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
			}
			else {
				SendClientMessage(playerid, COLOR_YELLOW, "Nepareiza darījuma summa.");
			}
		}
		else {
				format(string, sizeof(string), "%d nav aktīvs spēlētājs.", 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, "USAGE: /hitman [playerid] [amount]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_WHITE, "USAGE: /hitman [playerid] [amount]");
			return 1;
		}
 		moneys = strval(tmp);

	    if(moneys > GetPlayerMoney(playerid)) {
			SendClientMessage(playerid, COLOR_RED, "Tev nepietiek naudas!");
			return 1;
	    }
	    if(moneys < 1) {
			SendClientMessage(playerid, COLOR_YELLOW, "Eww!!!! LOL ar ko tu mēgini te pūlēties.");
			return 1;
		}
		if(IsPlayerConnected(giveplayerid)==0) {
			SendClientMessage(playerid, COLOR_RED, "Tāda spēlētāja nepastāv.");
			return 1;
		}

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

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


		format(string, sizeof(string), "%s has had a $%d bounty put on his head from %s (total: $%d).", giveplayer, moneys, sendername, bounty[giveplayerid]);
		SendClientMessageToAll(COLOR_ORANGE, string);

		format(string, sizeof(string), "You have had a $%d bounty put on you from %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, "USAGE: /bounty [playerid]");
			return 1;
		}
		giveplayerid = strval(tmp);

		if(IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			format(string, sizeof(string), "Spēlētājam %s (id: %d) ir $%d atlīdzība par viņa galvu.", giveplayer,giveplayerid,bounty[giveplayerid]);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		} else {
			SendClientMessage(playerid, COLOR_RED, "Tāda spēlētāja nepastāv!");
		}

		return 1;
	}

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

	if(strcmp(cmd, "/bounties", true) == 0)
	{
//		new tmp[256];
		new x;

		SendClientMessage(playerid, COLOR_GREEN, "Pašreizējās atlīdzības:");
	    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;
	}

	//------------------- /buy