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 DeathMatch");
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;
}