All pastes #824967 Raw Edit

Someone

public text v1 · immutable
#824967 ·published 2007-12-20 07:23 UTC
rendered paste body
#include <a_samp>
#include <core>
#include <float>

#pragma tabsize 0

#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLACK 0x000000AA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_RED 0xAA3333AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_PINK 0xFF69B4AA
#define PocketMoney 10000
#define INACTIVE_PLAYER_ID 255

#define NUMVALUES 4

forward Givecashdelaytimer(playerid);
forward SetPlayerRandomSpawn(playerid);
forward SetupPlayerForClassSelection(playerid);
forward GameModeExitFunc();

main() {print("Special mode by Mee runned!");}

new Float:RandomPlayerSpawns[17][3] = {
{1998.1599,2297.2395,10.8203},
{2516.8997,2297.4583,10.8203},
{2560.2822,1705.6771,10.8280},
{2150.3967,1453.1564,10.8125},
{2269.0291,962.7794,10.8203},
{1718.7827,1363.5579,10.6406},
{1841.9576,2088.4839,10.8203},
{1554.9244,2185.6023,11.1721},
{1962.7766,2605.4497,10.8203},
{2833.8943,2400.9993,11.0690},
{2288.6086,2157.4006,10.8203},
{1891.1609,2394.4658,11.1782},
{2043.0940,732.7563,11.4609},
{1417.5154,2773.9561,14.8135},
{648.5644,1687.0859,6.9922},
{247.6319,1410.7600,23.3703},
{1532.7927,750.7422,11.0234}
};

public OnPlayerConnect(playerid)
{
	SendClientMessage(playerid, COLOR_ORANGE, "Welcome to Las Venturas, For help type /help.");
    new pName[MAX_PLAYER_NAME];
    new string[48];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "%s has joined the server.", pName);
    SendClientMessageToAll(0xAAAAAAAA, string);
	return 1;
}

public OnPlayerDisconnect(playerid,reason)
{
    new pName[MAX_PLAYER_NAME];
    new string[56];
    GetPlayerName(playerid, pName, sizeof(pName));

    switch(reason)
    {
        case 0: format(string, sizeof(string), "%s has left the server. (Timeout)", pName);
        case 1: format(string, sizeof(string), "%s has left the server. (Leaving)", pName);
        case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", pName);
    }

    SendClientMessageToAll(0xAAAAAAAA, string);
}

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;

	cmd = strtok(cmdtext, idx);

    if(strcmp(cmd, "/kill", true) == 0) {
 		SetPlayerHealth(playerid,0);
		return 1;
	}
	
	if (strcmp(cmd, "/restart", true) == 0 && IsPlayerAdmin(playerid))	{
  		SendRconCommand("gmx");
  		for (new i=0;i<MAX_PLAYERS;i++) {
  		if (IsPlayerConnected(i))
  		GameTextForPlayer(i,"~r~RESTARTING",5000,1);
  		}
 		return 1;
	}
	
	if (strcmp(cmd, "/jetpack", true) == 0 && IsPlayerAdmin(playerid)) {
		SetPlayerSpecialAction(playerid, 2);
		return 1;
 	}
	
    if(strcmp(cmd, "/setpos", true) == 0 && IsPlayerAdmin(playerid)) {
    	new tmp[256];
	    tmp = strtok(cmdtext, idx);
    	new id = strval(tmp);
    
   	    if(!strlen(tmp) || (id > 16 || id < 0)) {
			SendClientMessage(playerid, COLOR_GREY, "*** USAGE: /setpos [0-16]");
			return 1;
		}
		
  		SetPlayerPos(playerid, RandomPlayerSpawns[id][0], RandomPlayerSpawns[id][1], RandomPlayerSpawns[id][2]);
		return 1;
	}
	
 	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);

		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), "You have sent %s(player: %d), $%d.", giveplayer,giveplayerid, moneys);
				SendClientMessage(playerid, COLOR_YELLOW, string);
				format(string, sizeof(string), "You have recieved $%d from %s(player: %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, "Invalid transaction amount.");
			}
		}
		else {
				format(string, sizeof(string), "%d is not an active player.", giveplayerid);
				SendClientMessage(playerid, COLOR_YELLOW, string);
			}
		return 1;
	}
	return 0;
}

public OnPlayerSpawn(playerid)
{
	GivePlayerMoney(playerid, PocketMoney);
	SetPlayerInterior(playerid,0);
	SetPlayerRandomSpawn(playerid);
	TogglePlayerClock(playerid,1);
	return 1;
}

public SetPlayerRandomSpawn(playerid)
{
		new rand = random(sizeof(RandomPlayerSpawns));
		SetPlayerPos(playerid, RandomPlayerSpawns[rand][0], RandomPlayerSpawns[rand][1], RandomPlayerSpawns[rand][2]);
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    new playercash;
	if(killerid == INVALID_PLAYER_ID) {
		SetPlayerScore(playerid,GetPlayerScore(playerid)-1);
        SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
        ResetPlayerMoney(playerid);
	}else{
	    	SendDeathMessage(killerid,playerid,reason);
			SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
			SetPlayerScore(playerid,GetPlayerScore(playerid)-1);
			playercash = GetPlayerMoney(playerid);
			if (playercash > 0)  {
				GivePlayerMoney(killerid, playercash);
				ResetPlayerMoney(playerid);
			}
     	}
 	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	SetupPlayerForClassSelection(playerid);
	return 1;
}

public SetupPlayerForClassSelection(playerid)
{
 	SetPlayerInterior(playerid,0);
	SetPlayerPos(playerid,2485.1860,920.6,10.82);
	SetPlayerFacingAngle(playerid, 90);
	SetPlayerCameraPos(playerid,2480.1956,920.6,11);
	SetPlayerCameraLookAt(playerid,2485.1860,920.6,10.82);
}

public GameModeExitFunc()
{
	GameModeExit();
}

public OnGameModeInit()
{
	SetGameModeText("Special mode");

	ShowPlayerMarkers(1);
	ShowNameTags(1);
 	UsePlayerPedAnims();
 	AllowInteriorWeapons(0);
	EnableStuntBonusForAll(1);

	AddPlayerClass(0,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);

	AddStaticVehicle(481,1993.7665,2301.2935,10.3240,181.3300,3,3);
	AddStaticVehicle(566,2506.0244,2290.9741,10.6008,268.6333,30,8);
	AddStaticVehicle(522,2599.0801,1684.3381,10.3841,269.8878,6,25);
	AddStaticVehicle(451,2135.8074,1397.8744,10.5287,359.6619,125,125);
	AddStaticVehicle(571,2232.0034,955.9963,10.1042,359.9597,36,2);
	AddStaticVehicle(438,1701.7919,1316.3412,10.8245,359.1071,6,76);
	AddStaticVehicle(448,1860.0288,2076.2615,10.4197,171.6431,3,6);
	AddStaticVehicle(489,1527.7339,2203.4021,10.9641,179.7664,14,123);
	AddStaticVehicle(411,1905.4557,2576.3940,10.5474,358.7072,64,1);
	AddStaticVehicle(463,2840.4612,2379.4536,10.3599,269.6672,84,84);
	AddStaticVehicle(567,2339.7461,2119.0176,10.5527,180.9213,88,64);
	AddStaticVehicle(492,1941.9785,2435.7417,10.6022,358.8138,77,26);
	AddStaticVehicle(565,2078.6191,767.3677,10.7602,179.9300,42,42);
	AddStaticVehicle(589,1422.7511,2826.2090,10.4784,90.9335,31,31);
	AddStaticVehicle(514,616.2855,1660.8507,7.5771,63.3818,25,1);
	AddStaticVehicle(470,249.8580,1371.3856,10.5779,269.2841,43,0);
	AddStaticVehicle(576,1584.1000,673.0121,10.4311,359.1800,68,96);
	AddStaticVehicle(428,2315.7275,1794.7631,10.9466,179.1563,4,75);
	AddStaticVehicle(420,2191.1204,1810.3281,10.5968,179.0382,6,1);
	AddStaticVehicle(434,2175.6599,1799.4662,10.7851,0.5671,12,12);
	AddStaticVehicle(461,2199.6472,1857.0609,10.4081,181.2480,37,1);
	AddStaticVehicle(445,2206.1948,1878.7610,10.6953,359.6989,35,35);
	AddStaticVehicle(411,2119.4844,1938.0389,10.3989,180.2743,123,1);
	AddStaticVehicle(545,2102.7859,2056.2205,10.6314,271.3054,47,1);
	AddStaticVehicle(477,2011.4750,2139.4390,10.5753,267.5010,94,1);
	AddStaticVehicle(475,1981.2705,2070.2185,10.6276,2.2517,9,39);
	AddStaticVehicle(415,1910.3361,2117.9641,10.5932,358.4568,25,1);
	AddStaticVehicle(559,1943.0232,2166.3245,10.4766,91.5207,58,8);
	AddStaticVehicle(602,1685.1736,2200.8533,10.6273,181.4998,69,1);
	AddStaticVehicle(578,1683.6177,2321.0474,11.4457,267.4077,1,1);
	AddStaticVehicle(530,1681.3312,2369.7068,10.5839,267.2715,111,1);
	AddStaticVehicle(483,1908.6686,2259.3252,10.8133,88.7127,1,31);
	AddStaticVehicle(479,1978.8265,2252.7725,26.9896,90.3300,59,36);
	AddStaticVehicle(458,1972.1985,2242.0779,20.8633,270.8190,101,1);
	AddStaticVehicle(522,1995.7633,2262.6345,12.1255,357.0990,7,79);
	AddStaticVehicle(529,1455.3342,1958.5068,10.8166,180.5730,42,42);
	AddStaticVehicle(540,1428.7120,1999.0861,10.6798,0.6301,42,42);
	AddStaticVehicle(491,1028.0989,1732.1229,10.5766,89.2882,71,72);
	AddStaticVehicle(580,1109.3849,1787.5474,10.6165,269.8966,81,81);
	AddStaticVehicle(405,1028.9110,1751.3335,10.6953,90.9035,24,1);
	AddStaticVehicle(461,963.8168,1807.9032,8.2441,271.9724,43,1);
	AddStaticVehicle(600,924.9926,1988.4127,10.5324,85.1110,32,8);
	AddStaticVehicle(551,993.2396,2307.1531,11.0343,269.5332,72,1);
	AddStaticVehicle(585,1890.2074,2639.5264,10.4079,1.6926,42,42);
	AddStaticVehicle(436,1810.2245,2633.4951,10.5877,92.0434,87,1);
	AddStaticVehicle(457,1417.4861,2774.1563,10.4471,88.1003,2,1);
	AddStaticVehicle(457,1419.3546,2750.5762,10.4471,91.8051,63,1);
	AddStaticVehicle(500,1432.6505,2609.7441,10.8452,272.9734,40,84);
	AddStaticVehicle(400,1115.5997,2323.7834,10.9127,269.6454,123,1);
	AddStaticVehicle(579,1135.4806,2267.9104,16.6485,270.6200,42,42);
	AddStaticVehicle(412,1133.5251,2194.3157,16.5569,180.2756,10,8);
	AddStaticVehicle(535,1136.2340,2235.1057,10.5915,269.2468,28,1);
	AddStaticVehicle(526,971.7280,2172.0359,10.5870,91.7790,9,39);
	AddStaticVehicle(421,971.2413,2143.2095,10.7028,270.5950,13,1);
	AddStaticVehicle(478,1034.2767,2077.6289,10.8138,272.1311,66,1);
	AddStaticVehicle(554,1072.0266,1917.2347,10.9062,359.4479,15,32);
	AddStaticVehicle(413,1055.7399,1916.5762,10.9105,178.7163,88,1);
	AddStaticVehicle(416,1607.8368,1831.8530,10.9696,90.3235,1,3);
	AddStaticVehicle(541,1654.6738,1969.5352,10.4453,1.2511,58,8);
	AddStaticVehicle(411,1586.1018,1944.2343,10.5474,359.0713,116,1);
	AddStaticVehicle(439,1568.7966,1895.8496,10.7161,181.6189,8,17);
	AddStaticVehicle(533,1905.8641,2077.8176,10.5294,269.5744,74,1);
	AddStaticVehicle(522,1907.0822,2097.6416,10.3822,84.3981,8,82);
	AddStaticVehicle(480,2217.0024,2045.3684,10.5929,89.0745,12,12);
	AddStaticVehicle(534,2284.4543,2050.4131,10.5432,270.7139,42,42);
	AddStaticVehicle(471,2376.0903,2019.6664,10.3017,87.3243,103,111);
	AddStaticVehicle(462,2239.3379,1975.3087,9.4667,184.4145,13,13);
	AddStaticVehicle(560,2272.7646,1952.5944,9.5720,0.3292,9,39);
	AddStaticVehicle(560,2222.8608,1952.3210,20.5268,90.8078,9,39);
	AddStaticVehicle(522,2228.9602,2008.1224,10.3909,5.1256,39,106);
	AddStaticVehicle(429,2185.6694,2000.1953,10.5000,269.8758,13,13);
	AddStaticVehicle(409,2033.6658,1917.4424,12.0526,178.2368,1,1);
	AddStaticVehicle(409,2161.3262,1682.4155,10.5508,180.0264,1,1);
	AddStaticVehicle(451,1985.0649,1278.5173,10.4504,90.0075,36,36);
	AddStaticVehicle(587,2208.1240,1284.9619,10.5470,359.6288,40,1);
	AddStaticVehicle(527,2403.9475,1021.1127,10.5357,91.5017,53,1);
	AddStaticVehicle(575,2551.2004,1033.5497,10.4232,179.8718,19,96);
	AddStaticVehicle(481,2057.9441,728.6427,10.9769,358.6110,6,6);
	AddStaticVehicle(541,2005.2979,739.4426,10.7521,179.8521,60,1);
	AddStaticVehicle(522,2142.5740,1022.4519,10.3779,91.2419,36,105);
	AddStaticVehicle(522,2162.9709,1012.9332,10.3850,270.2615,39,106);
	AddStaticVehicle(534,2132.1499,987.8336,10.5460,179.4302,53,53);
	AddStaticVehicle(540,2036.9771,997.2882,10.6023,180.9597,53,53);
	AddStaticVehicle(540,2037.4208,1025.8248,10.6035,179.2139,53,53);
	AddStaticVehicle(566,1881.7631,963.5634,10.5995,88.9053,95,1);
	AddStaticVehicle(580,1882.0093,954.1764,10.6165,269.2203,67,67);
	AddStaticVehicle(562,1881.7557,1013.3252,10.4805,90.0533,35,1);
	AddStaticVehicle(522,1695.0029,1287.0150,10.3833,179.7250,51,118);
	AddStaticVehicle(420,1711.9573,1399.8315,10.3481,194.9298,6,1);
	AddStaticVehicle(541,2110.4529,1408.6897,10.4453,179.7694,68,8);
	AddStaticVehicle(522,2126.1758,1408.3844,10.3842,182.2946,3,3);
	AddStaticVehicle(429,2075.6521,1610.4124,10.3516,177.5119,14,14);
	AddStaticVehicle(506,2012.1492,1751.0106,18.6383,359.8274,6,6);

	return 1;
}

strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}

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