Raised This Month: $12 Target: $400
 3% 

Jailbreak Day Menu [Recoded]


Post New Thread Reply   
 
Thread Tools Display Modes
Plugin Info:     Modification:   ALL        Category:   Admin Commands       
imgur
Junior Member
Join Date: Jul 2012
Old 12-04-2012 , 22:43   Jailbreak Day Menu [Recoded]
Reply With Quote #1

Hey guys. I brought together 2 of the most popular jailbreak scripts and added some new features of my own. I don't have any of the resources anymore, but I figure some of you can get some use out of this. I have shut down my community and no longer play Counter-Strike.

Credits go to the original authors, H3avY Ra1n and tomboy

Code:

Code:
/**
*
* 		Jailbreak Day Menu
* 		  Recoded by lambda
*
* 		Features
*
* 			- Day Menu
* 				+ Guards choose
* 				+ One day at a time
*
*			- Gun Menu for Guards
*				+ Choose from 7 Weapons
*				+ Choose personal Pistol
*
* 			- Many Day Options
* 				+ Cage Day
* 				+ Free Day (Restricted/Unrestricted)
* 				+ Zombie Day
* 				+ Nightcrawler Day
* 				+ Shark Day
*				+ Gravity Day
*				+ Spartan Day
* 				+ Lava Day
* 				+ USP Ninja Day
* 				+ Dodgeball Day
*					- Grenades Given after 10 Seconds
*					- Auto Reload Nades After Throwing
*				+ Deathmatch Day (Free for all/Team/Multi-Team)
*				+ Gang Day (Free for all/Team/Multi-Team)
*				+ Team Day (2/3 Teams)
* 				+ Space Day
* 				+ Knife Day
* 				+ Hide and Seek Day
* 				+ Cowboy Day
* 				+ Soap Day
* 				+ Riot Day
* 				+ VIP Day
* 				+ Silent Day
* 				+ Ghostbuster Day
* 				+ Nemesis Day
* 				+ Shotgun Battle Day
* 				+ War Day
* 				+ Battle Day
* 				+ Headshot Battle Day
* 				+ Golden Gun Day
*
* 			- Reverse Days For:
* 				+ Zombie Day
* 				+ Nightcrawler Day
* 				+ Shark Day
*				+ Gravity Day
*				+ Spartan Day
*				+ VIP Day
*				+ Ghostbuster Day
* 				+ Nemesis Day
*
* 			- Objectives Displayed
*			- Cells auto open at 7:59 if unopened
* 			- Prevent Weapon Pickup On Certain Days
*			- Prisoner shopmenu (Points are refunded if Special Day is chosen)
*			- Automatic Freeday when timelimit expires
*
*		Last Request Options
*
*			- Knife Battle 			// Fight with knives 1v1
*			- Shot 4 Shot			// Take turns shooting a weapon
*			- Nade Battle			// Fight with nades 1v1
*			- Race				// Race across a certain part of the map
*			- Spray Contest			// Prisoner chooses highest/lowest/furthest spray at desired location.
*			- Gun Toss			// See who can throw the deagle the farthest
*			- Nade Toss			// See who can throw the grenade the farthest
*			- Scout Battle			// Fight with scouts 1v1
*			- Shotgun Battle		// Fight with shotguns 1v1
*			- Showdown			// Showdown duel 1v1
*			- Global War			// Free for all
*			- Custom LR			// Prisoner chooses custom game
*			- Special Day			// Prisoner chooses next special day
*			- Free Day			// Prisoner receives freeday
*			- Rambo				// Rebels with a machine gun and 250 HP.
*			- Deagle Dude			// Rebels with deagle and 500 HP
*			- Crazy Terrorist		// Rebels with stealth, ak-47, 1hp.
*			- The Hidden			// Rebels with stealth and a 1 minute time limit.
*
*
*		Client Commands
*	
*			/lr - Opens Last Request Menu, only final living Terrorist can use it.
*			!lr
*			/lastrequest
*			!lastrequest
*			/shop - Prisoners have a shopmenu to buy from
*			/open - Guards can open cells from anywhere
*			/race - Guards can start a timer for Race Lr or Custom Lr
*			/showdown - Starts the Last Request countdown for showdown lr
*
*
*		CVARS
*			- jb_opencells	<0/1>		// Whether cells should be opened when day is chosen or not. (0=OFF, 1=ON)
*			- jb_shop			// Opens the shop
*			- jb_blocktvoice		// Blocks Terrorist from voice chat
*			- jb_showrebels			// Show rebels in chat when they are killed
*			- jb_points_kill_t		// How many points a CT gets for killing a T
*			- jb_points_kill_ct		// How many points a T gets for killing a CT
*			- jb_points_headshot		// How many extra points a T gets for killing a CT with a headshot
*			- jb_points_survive		// How many points are awarded for surviving the Day
*			- jb_shop_gunprice_usp		// How many points a USP costs
*			- jb_shop_gunprice_fiveseven	// How many points a Fiveseven costs
*			- jb_shop_healthprice		// How many points health cost
*			- jb_shop_armorprice		// How many points armor costs
*			- jb_shop_skinprice		// How many points CT skin costs
*			- jb_shop_stealthprice		// How many points stealth costs
*			- jb_shop_freedayprice		// How many points freeday costs
*			- jb_shop_silentstepsprice	// How many points silent footsteps costs
*			- jb_shop_nadeprice		// How many points frag nade costs
*			- jb_shop_flashprice		// How many points flash bang costs
*			- jb_shop_shieldprice		// How many points shield costs
*			- jb_shop_gravityprice		// How many points low gravity costs
*			- jb_shop_parachuteprice	// How many points parachute costs
*
*
**/
//////////////
// Includes //
//////////////

#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < fun >
#include < hamsandwich >
#include < fakemeta >
#include < engine >
#include < nvault >
#include < colorchat >
#include < fakemeta_util >

///////////////////
//--- Defines ---//
///////////////////

#define ADMIN_VOICE ADMIN_LEVEL_C
#define PARACHUTE_LEVEL ADMIN_LEVEL_A
#define CELL_RADIUS	Float:200.0

#define m_Activity 73
#define m_IdealActivity 74
#define m_afButtonPressed 246
#define m_fLongJump 356

#define PLAYER_SUPERJUMP 7
#define ACT_LEAP 8
#define MAX_PLAYERS 32

#define SF_TRIGGER_HURT_NO_CLIENTS 8
#define m_bitsDamageInflict 71

#define FBitSet(%1,%2)		(%1 & %2)

#define MAX_SPECIALROUNDS 999

#define MaxDmg 1800
#define ExplRange 250.0
#define DmgPrPoint = ExplRange / StartDMG

// Uncomment this line if you want simon
//#define USE_SIMON 1

////////////////////////
//--- Enumerations ---//
////////////////////////

enum
{
	DAY_NONE = -1,
	DAY_CAGE,
	DAY_FREE,
	DAY_ZOMBIE,
	DAY_NIGHTCRAWLER,
	DAY_SHARK,
	DAY_GRAVITY,
	DAY_SPARTAN,
	DAY_LAVA,
	DAY_USP_NINJA,
	DAY_DODGEBALL,	
	DAY_DEATHMATCH,
	DAY_GANG,
	DAY_TEAM,
	DAY_SNIPER,
	DAY_KNIFE,
	DAY_HNS,
	DAY_COWBOY,
	DAY_SOAP,
	DAY_RIOT,
	DAY_VIP,
	DAY_SILENT,
	DAY_GHOSTBUSTER,
	DAY_NEMESIS,
	DAY_SHOTGUN_BATTLE,
	DAY_WAR,
	DAY_BATTLE,
	DAY_HEADSHOT_BATTLE,
	DAY_GOLDEN,
	
	MAX_DAYS
}

enum
{
	LR_NONE = -1,
	LR_KNIFE,
	LR_S4S,
	LR_NADE,
	LR_RACE,
	LR_SPRAY,
	LR_GUNTOSS,
	LR_NADETOSS,
	LR_SCOUT,
	LR_SHOTGUN,
	LR_SHOWDOWN,
	LR_GLOBAL_WAR,
	LR_CUSTOM,
	LR_SPECIAL,
	LR_FREE,
	LR_RAMBO,
	LR_DUDE,
	LR_CRAZY,
	LR_HIDDEN,
	LR_KAMIKAZE,
	
	MAX_GAMES
}

enum
{
	UNRESTRICTED,
	RESTRICTED
}

enum
{
	LOW,
	HIGH
}

enum
{
	GANG_FREE_FOR_ALL,
	GANG_TEAM,
	GANG_MULTI_TEAM
}

enum
{
	DM_FREE_FOR_ALL,
	DM_TEAM,
	DM_MULTI_TEAM
}

enum
{
	TEAM,
	MULTI_TEAM
}

enum
{
	COLOR_RED = 1,
	COLOR_GREEN,
	COLOR_BLUE
}

enum
{
	CT,
	T
}

enum
{
	SHOTGUN,
	SUB_MACHINE_GUN,
	RIFLE,
	
	PRIMARY_GUN_MENU
}

enum
{
	M3,
	XM1014,
	
	PRIMARY_SHOTGUNS
}

enum
{
	TMP,
	MAC10,
	UMP,
	MP5NAVY,
	P90,
	
	PRIMARY_SUB_MACHINE_GUNS
}

enum
{
	M4A1,
	AK47,
	SCOUT,
	AWP,
	SG552,
	AUG,
	FAMAS,
	GALIL,
	
	PRIMARY_RIFLES
}

enum
{
	GLOCK,
	USP,
	P228,
	DEAGLE,
	FIVESEVEN,
	ELITES,
	
	SECONDARY_PISTOLS
}

enum
{
	S4S_DEAGLE,
	S4S_USP,
	S4S_AK,
	S4S_M4A1,
	S4S_MP5,
	S4S_SCOUT,
	S4S_PARA,
	
	S4S_GUNS
}

enum
{
	ALIVE, 
	DEAD, 
	ALL	
}

enum
{
	LR_PRISONER,
	LR_GUARD
};

enum ( += 100 )
{
	TASK_BEACON,
	TASK_ENDLR,
	TASK_CELL,
	TASK_FREE
}

enum ( += 100 )
{
	TASK_HEGRENADE = 100,
	TASK_DODGEBALL,
	TASK_HIDENSEEK,
	TASK_GLOBAL_WAR,
	TASK_COLORHUD
}

////////////////////
//--- Integers ---//
////////////////////

new g_iTimeLeft;
new g_iVarTimer;
new g_iVarTimer2;
new g_iCurrentDay;
new g_iMaxPlayers;
new g_iMaxGuards;
new g_iMaxPrisoners;
new g_iSprite;
new g_iVip;
new g_iCurrentBomber;
new g_iLastBomber;
new g_iS4SWeapon;
new g_iMsgExplode;
new g_iMsgSmoke;
new g_iKillUser[ MAX_PLAYERS+1 ];	// 0 == VictimID | 1 == KillerID | Since there is no next frame function in amxx, we make one. Killing ppl inside a Message is bad, we therefore make a mark of the player for death. And kill him next server frame
new g_iWeaponName[ MAX_PLAYERS+1 ][ 40 ];

new g_iFreedayType;
new g_iZombieType;
new g_iNightcrawlerType;
new g_iSharkType;
new g_iGravityType;
new g_iSpartanType;
new g_iVipType;
new g_iGhostbusterType;
new g_iNemesisType;
new g_iDeathmatchType;
new g_iGangType;
new g_iTeamType;

new g_iCurrentGame = LR_NONE;
new g_iLastRequest[ 2 ];
new g_iCurrentPage[ 33 ];
new g_iChosenGame[ 33 ];
new g_iColorType[ 33 ];

//trigger hurts with healing
new g_TriggerHurtHealers[ 100 ];
new g_TrigHurtHealTotal;

//////////////////
//--- PCVars ---//
//////////////////

new cvar_shop;
new cvar_tvoiceblock;
new cvar_showrebels;
new cvar_killpoints_t;
new cvar_killpoints_ct;
new cvar_headshotpoints;
new cvar_survivepoints;
new cvar_gunprice_usp;
new cvar_gunprice_fiveseven;
new cvar_healthprice;
new cvar_armorprice;
new cvar_skinprice;
new cvar_stealthprice;
new cvar_freedayprice;
new cvar_silentstepsprice;
new cvar_nadeprice;
new cvar_flashprice;
new cvar_shieldprice;
new cvar_gravityprice;
new cvar_parachuteprice;

///////////////////
//--- Handles ---//
///////////////////

new g_hDaysMenu;
new g_hFreedayMenu;
new g_hZombieMenu;
new g_hNightcrawlerMenu;
new g_hSharkMenu;
new g_hGravityMenu;
new g_hSpartanMenu;
new g_hVipMenu;
new g_hGhostbusterMenu;
new g_hNemesisMenu;
new g_hDeathmatchMenu;
new g_hGangMenu;
new g_hTeamMenu;

/////////////////////////
//--- Points System ---//
/////////////////////////

new playerpoints[ 33 ];			// Amount of Points a player has
new g_vault;				// Open a new vault to store a players points.

///////////////////////////
//--- Parachute Stuff ---//
///////////////////////////

new para_ent[ 33 ];
new gCStrike = 0;
new pDetach, pFallSpeed, pEnabled;

////////////////////////
//--- New LR Stuff ---//
////////////////////////

new gWeaponID[ 33 ];
new gTimer;
new RaceName[ 33 ];
new gCount = 5;
new gTimeLeft;
new gRebelRequest;
new gLastT;
new gLastCt;
new g_iSpecialLimit = 3;
new g_iSpecialRounds = MAX_SPECIALROUNDS;

////////////////////
//--- Booleans ---//
////////////////////

new bool:g_bBoughtUSP[ 33 ];
new bool:g_bBoughtFiveseven[ 33 ];
new bool:g_bBoughtStealth[ 33 ];
new bool:g_bBoughtNade[ 33 ];
new bool:g_bBoughtFlash[ 33 ];
new bool:g_bBoughtShield[ 33 ];
new bool:g_bBoughtGravity[ 33 ];
new bool:g_bBoughtParachute[ 33 ];
new bool:g_bBoughtFreeday[ 33 ];
new bool:g_bBoughtSilentsteps[ 33 ];
new bool:g_bBoughtSkin[ 33 ];

new bool:g_bAlive[ 33 ];
new bool:g_bConnected[ 33 ];
new bool:g_bSpecialLr[ 33 ];		// Specialday next round
new bool:g_bFreedayLr[ 33 ];		// Freeday next round
new bool:g_bGet_name = false;		// Got the players name on countdown?
new bool:g_bCountdown_on = false;	// Is race countdown started?
new bool:g_bLastRequestAllowed;
new bool:g_bSuperJump[ MAX_PLAYERS+1 ];

//////////////////
//--- Arrays ---//
//////////////////

new Float:g_fWallOrigin[ 33 ][ 3 ];

new g_iButtons[ 10 ];

#if defined USE_SIMON 
	new g_iSimon;
#endif

////////////////////
//--- Messages ---//
////////////////////

new g_msgNVGToggle;

/////////////////////
//--- Constants ---//
/////////////////////

new const g_szDaymenuOptions[ MAX_DAYS ][ ] = 
{
	"Cage Day",
	"Free Day",
	"Zombie Day",
	"NightCrawler Day",
	"Shark Day",
	"Gravity Day",
	"Spartan Day",
	"Lava Day",
	"USP Ninja Day",
	"Dodgeball Day",
	"Deathmatch Day",
	"Gang Day",
	"Team Day",
	"Sniper Duel Day",
	"Knife Day",
	"Hide and Seek Day",
	"Cowboy Day",
	"Riot Day",
	"VIP Day",
	"Silent Day",
	"Ghostbuster Day",
	"Nemesis Day",
	"Shotgun Battle Day",
	"War Day",
	"Battle Day",
	"Headshot Battle Day",
	"Golden Gun Day"
};

new const g_szGameNames[ MAX_GAMES ][ ] = 
{
	"Knife Battle",
	"Shot 4 Shot",
	"Nade Battle",
	"Race",
	"Spray Contest",
	"Gun Toss",
	"Nade Toss",
	"Scout Battle",
	"Shotgun Battle",
	"Showdown",
	"Global War",
	"Custom Last Request",
	"Special Day (Rebel)",
	"Free Day (Rebel)",
	"Rambo (Rebel)",
	"Deagle Dude (Rebel)",
	"Crazy Terrorist (Rebel)",
	"The Hidden (Rebel)",
	"Kamikaze (Rebel)"
};

//////////////////
//--- Sounds ---//
//////////////////

new race_go[ ] 			= "sound/jailbreak/race_go.mp3";
new ncsound[ ]			= "jailbreak/ncsound.wav";
new hnssound[ ]			= "jailbreak/hnssound.wav";
new jawssound[ ] 		= "jailbreak/jawssound.wav";
new zombiemusic[ ]		= "jailbreak/zombiemusic.wav";
new nemesismusic[ ]		= "jailbreak/nemesismusic.wav";
new s4ssound[ ] 		= "jailbreak/s4ssound.wav";
new spartansound[ ] 		= "jailbreak/spartansound.wav";
new rambosound[ ]		= "jailbreak/rambosound.wav";
new dodgeballsound[ ]		= "jailbreak/dodgeballsound.wav";
new spacesound[ ]		= "jailbreak/spacesound.wav";
new battlesound[ ]		= "jailbreak/battlesound.wav";
new warsound[ ]			= "jailbreak/warsound.wav";

//////////////////
//--- Models ---//
//////////////////

new const g_szZombieModel1[ ] 	= "models/player/jb_zombie/jb_zombie.mdl";
new const g_szZombieModel2[ ] 	= "models/player/jb_nemesis/jb_nemesis.mdl";
new const g_szZombieHands1[ ] 	= "models/lambda/zombie_hands.mdl";
new const g_szZombieHands2[ ] 	= "models/lambda/nemesis_hands.mdl";
new const g_szGoldenGun[ ] 	= "models/lambda/goldengun.mdl";

///////////////////
//--- Sprites ---//
///////////////////
new const g_szBeaconSprite[ ]	= "sprites/white.spr";

new const g_szPrefix[ ]		= "^x03[eQ]^x01";
new const g_szVersion[ ]	= "3.4";

////////////////////////////////
//--------- PRECACHE ---------//
////////////////////////////////
public plugin_precache()
{
	precache_sound( "radio/com_go.wav" );
	precache_sound( "fvox/one.wav" );
	precache_sound( "fvox/two.wav" );
	precache_sound( "fvox/three.wav" );
	precache_sound( "fvox/four.wav" );
	precache_sound( "fvox/five.wav" );
	precache_sound( "fvox/six.wav" );
	precache_sound( "fvox/seven.wav" );
	precache_sound( "fvox/eight.wav" );
	precache_sound( "fvox/nine.wav" );
	precache_sound( "fvox/ten.wav" );
	precache_sound( "fvox/eleven.wav" );
	precache_sound( "fvox/twelve.wav" );
	precache_sound( "fvox/thirteen.wav" );
	precache_sound( "fvox/fourteen.wav" );
	precache_sound( "fvox/fifteen.wav" );
	
	precache_generic( race_go );
	precache_sound( s4ssound );
	precache_sound( spartansound );
	precache_sound( rambosound );
	precache_sound( dodgeballsound );
	precache_sound( spacesound );
	precache_sound( warsound );
	precache_sound( battlesound );
	precache_sound( ncsound );
	precache_sound( hnssound );
	precache_sound( jawssound );
	precache_sound( zombiemusic );
	precache_sound( nemesismusic );
	
	precache_model( g_szZombieModel1 );
	precache_model( g_szZombieModel2 );
	precache_model( g_szZombieHands1 );
	precache_model( g_szZombieHands2 );
	precache_model( g_szGoldenGun );
	
	precache_model( "models/parachute.mdl" )
	precache_model( "models/player/jb_gign/jb_gign.mdl" );
	
	g_iSprite = precache_model( g_szBeaconSprite );
	g_iMsgSmoke = precache_model( "sprites/steam1.spr" );
	g_iMsgExplode = precache_model( "sprites/zerogxplode.spr" );
}

////////////////////////////////////
//--------- Plugin Init ----------//
////////////////////////////////////
public plugin_init()
{	
	register_plugin( "Jailbreak Daymenu", g_szVersion, "H3avY Ra1n + tomboy + lambda" );
	
	register_clcmd( "say /daysmenu", "Cmd_DaysMenu" );
	register_clcmd( "say /shop", "cmd_shop" );
	register_clcmd( "say /lr", "Cmd_LastRequest" );
	register_clcmd( "say !lr", "Cmd_LastRequest" );
	register_clcmd( "say /lastrequest", "Cmd_LastRequest" );
	register_clcmd( "say !lastrequest", "Cmd_LastRequest" );
	register_clcmd( "say /rules", "ShowRules" );
	register_clcmd( "say /open", "Push_Button" );
	register_clcmd( "say /race", "cmdRace" );
	register_clcmd( "say /showdown", "cmdShowdown" );
	
	register_clcmd( "say_team /daysmenu", "Cmd_DaysMenu" );
	register_clcmd( "say_team /shop", "cmd_shop" );
	register_clcmd( "say_team /lr", "Cmd_LastRequest" );
	register_clcmd( "say_team !lr", "Cmd_LastRequest" );
	register_clcmd( "say_team /lastrequest", "Cmd_LastRequest" );
	register_clcmd( "say_team !lastrequest", "Cmd_LastRequest" );
	register_clcmd( "say_team /rules", "ShowRules" );
	register_clcmd( "say_team /open", "Push_Button" );
	register_clcmd( "say_team /race", "cmdRace" );
	register_clcmd( "say_team /showdown", "cmdShowdown" );
	
	register_concmd( "amx_take_points", "cmd_take_points", ADMIN_LEVEL_H, "<target> <amount>" );
	register_concmd( "amx_give_points", "cmd_give_points", ADMIN_LEVEL_H, "<target> <amount>" );
	register_concmd( "amx_points", "cmd_total_points", ADMIN_LEVEL_H, "<target>" );
	
	register_logevent( "Event_RoundStart", 2, "1=Round_Start" );
	register_logevent( "Event_RoundEnd", 2, "1=Round_End" );
	register_logevent( "Event_Dropped_The_Bomb", 3, "2=Dropped_The_Bomb") ;
	register_logevent( "Event_Got_The_Bomb", 3, "2=Got_The_Bomb" );
	
	register_event( "HLTV", "Event_RoundStart", "a", "1=0", "2=0" );
	register_event( "DeathMsg", "Event_DeathMsg", "a" );
	register_event( "CurWeapon", "Event_CurWeapon", "be","1=1" );
	//register_event( "WeapPickup", "Event_Function", "be", "1=6" );
	//register_event( "StatusIcon", "Event_Bomb_Pickup", "be", "1=1", "1=2", "2=c4" );
	
	RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1 );
	RegisterHam( Ham_Killed, "player", "Ham_PlayerKilled_Post", 1 );
	RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
	RegisterHam( Ham_TakeDamage, "player", "Player_TakeDamage", 1 );
	RegisterHam( Ham_TraceAttack, "player", "HamTraceAttack" );
	
	register_touch( "trigger_hurt", "player", "Touch_TriggerHurt" );
	
	RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_deagle", "Ham_DeagleFire_Post", 1 );
	RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_usp", "Ham_UspFire_Post", 1 );
	RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_m4a1", "Ham_M4A1Fire_Post", 1 );
	RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_ak47", "Ham_AK47Fire_Post", 1 );
	RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_mp5navy", "Ham_Mp5Fire_Post", 1 );
	RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_scout", "Ham_ScoutFire_Post", 1 );
	RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_m249", "Ham_ParaFire_Post", 1 );
	RegisterHam( Ham_Weapon_SecondaryAttack, "weapon_usp", "Ham_USP_SecondaryAttack_Pre", 1 );
	
	RegisterHam( Ham_Touch, "armoury_entity", "Ham_WeaponTouch_Pre", 0 );
	RegisterHam( Ham_Touch, "weaponbox", "Ham_WeaponTouch_Pre", 0 );
	
	RegisterHam( Ham_Touch, "worldspawn", "Ham_WallTouch_Pre", 0 );
	RegisterHam( Ham_Touch, "func_wall", "Ham_WallTouch_Pre", 0 );
	RegisterHam( Ham_Touch, "func_breakable", "Ham_WallTouch_Pre", 0 );
	
	RegisterHam( Ham_Use, "func_button", "HAM_Button_Pushed", 1 );
	
	RegisterHam( Ham_Player_Jump, "player", "Player_Jump" );
	RegisterHam( Ham_Player_Duck, "player", "Player_Duck" );
	
	register_forward( FM_AddToFullPack, "Forward_AddToFullPack_Post", 1 );
	register_forward( FM_PlayerPreThink, "Forward_PreThink", 0 );
	register_forward( FM_Think, "Forward_EntityThink_Pre", 0 );
	register_forward( FM_ClientKill, "Forward_ClientKill", 0 );
	register_forward( FM_Voice_SetClientListening, "FwdSetVoice" );

	register_message( get_user_msgid( "TextMsg" ), "Message_TextMsg" );
	
	cvar_shop = register_cvar( "jb_shop", "1" );
	cvar_tvoiceblock = register_cvar( "jb_blocktvoice", "1" );
	cvar_showrebels = register_cvar( "jb_show_rebels", "1" );
	cvar_killpoints_t = register_cvar( "jb_points_kill_t", "1" );
	cvar_killpoints_ct = register_cvar( "jb_points_kill_ct", "8" );
	cvar_headshotpoints = register_cvar( "jb_points_headshot", "4" );
	cvar_survivepoints = register_cvar( "jb_points_survive", "2" );
	cvar_gunprice_usp = register_cvar( "jb_shop_gunprice_usp", "70" );
	cvar_gunprice_fiveseven = register_cvar( "jb_shop_gunprice_fiveseven", "50" );
	cvar_healthprice = register_cvar( "jb_shop_healthprice", "8" );
	cvar_armorprice = register_cvar( "jb_shop_armorprice", "10" );
	cvar_skinprice = register_cvar( "jb_shop_skinprice", "50" );
	cvar_stealthprice = register_cvar( "jb_shop_stealthprice", "50" );
	cvar_freedayprice = register_cvar( "jb_shop_freedayprice", "85" );
	cvar_silentstepsprice = register_cvar( "jb_shop_silentstepsprice", "20" );
	cvar_nadeprice = register_cvar( "jb_shop_nadeprice", "15" );
	cvar_flashprice = register_cvar( "jb_shop_flashprice", "8" );
	cvar_shieldprice = register_cvar( "jb_shop_shieldprice", "25" );
	cvar_gravityprice = register_cvar( "jb_shop_gravityprice", "20" );
	cvar_parachuteprice = register_cvar( "jb_shop_parachuteprice", "8" );
	
	pEnabled = register_cvar("sv_parachute", "1" );
	pFallSpeed = register_cvar("parachute_fallspeed", "100");
	pDetach = register_cvar("parachute_detach", "1");
	
	if( cstrike_running( ) ) gCStrike = true
	if( gCStrike ) 
	{
		register_concmd("amx_parachute", "admin_give_parachute", PARACHUTE_LEVEL, "<nick, #userid or @team>" )
	}
	
	server_cmd( "mp_roundtime 9" );
	server_cmd( "mp_freezetime 2" );
	
#if defined USE_SIMON
	g_iSimon = get_xvar_id( "g_iSimon" );
	
	if( g_iSimon == -1 )
	{
		set_fail_state( "[Days Menu] Simon plugin not running!" );
	}	
#endif

	g_msgNVGToggle	= get_user_msgid( "NVGToggle" );
	g_vault 	= nvault_open( "jbpoints" );			// Open a vault for the points
	g_iMaxPlayers 	= get_maxplayers();
	g_iVarTimer	= register_cvar( "co_timer", "60.0" );
	g_iVarTimer2	= register_cvar( "co_timer2", "540.0" );
	
	/*set_task( 2.0, "StartBeacon", .flags="b" );*/
	set_task( get_pcvar_float( g_iVarTimer ), "TASK_PushButton", TASK_CELL );
	set_task( get_pcvar_float( g_iVarTimer2 ), "TASK_Glow", TASK_FREE );
	set_task( 500.0, "Task_Advertise", .flags="b" );
	set_task( 1.0, "Players_Hud", 0, _, _, "b" );
	
	register_cvar( "daymenu_version_novote", g_szVersion, FCVAR_SPONLY|FCVAR_SERVER );
	
	CreateMenus();
	
	setup_buttons();
}

//////////////////////////////////////////////
//--------------- RULES MOTD ---------------//
//////////////////////////////////////////////
public ShowRules( id )
{
	show_motd( id, "motd.html", "Lambda's Jailbreak Rules" );
}

//////////////////////////////////////////////////////
//--------------- CLIENT PUTINSERVER ---------------//
//////////////////////////////////////////////////////
public client_putinserver( id )
{
	LoadData(id);
	g_iCurrentPage[ id ] = 0;
	
	g_bConnected[ id ] = true;

	if( g_iCurrentDay == DAY_ZOMBIE )
	{
		engfunc( EngFunc_LightStyle, 0, "b" );
	}
	
	if( g_iCurrentDay == DAY_NEMESIS )
	{
		engfunc( EngFunc_LightStyle, 0, "b" );
	}
	
	if( g_iCurrentDay == DAY_HNS )
	{
		engfunc( EngFunc_LightStyle, 0, "b" );
	}
	
	else engfunc( EngFunc_LightStyle, 0, "m" );
}

/////////////////////////////////////////////////////
//--------------- CLIENT DISCONNECT ---------------//
/////////////////////////////////////////////////////
public client_disconnect( id )
{
	parachute_reset( id );
	SaveData( id );
	g_bConnected[ id ] = false;
	
	if( g_bAlive[ id ] )
		g_bAlive[ id ] = false;
	
	if( g_bLastRequestAllowed && !gRebelRequest )
	{
		if( id == g_iLastRequest[ LR_PRISONER ] || id == g_iLastRequest[ LR_GUARD ] )
		{
			EndLastRequest( id == g_iLastRequest[ LR_PRISONER ] ? g_iLastRequest[ LR_GUARD ] : g_iLastRequest[ LR_PRISONER ], id );
		}
	}
	
	remove_task( id + TASK_ENDLR );
}

////////////////////////////////////////////////////////////
//---------------- ROUND START/ ROUND END ----------------//
////////////////////////////////////////////////////////////
public Event_RoundStart()
{
	for( new i = 0; i < g_iMaxPlayers; i++ )
	{
		g_bBoughtUSP[i] = false;
		g_bBoughtFiveseven[i] = false;
		g_bBoughtStealth[i] = false;
		g_bBoughtNade[i] = false;
		g_bBoughtFlash[i] = false;
		g_bBoughtShield[i] = false;
		g_bBoughtGravity[i] = false;
		g_bBoughtParachute[i] = false;
		g_bBoughtFreeday[i] = false;
		g_bBoughtSilentsteps[i] = false;
		g_bBoughtSkin[i] = false;
	}
	
	g_iMaxGuards = 0;
	g_iMaxPrisoners = 0;
	g_iCurrentBomber = 0;
	g_iLastBomber = 0;
	
	g_iSpecialRounds++;
	
	g_iCurrentDay = DAY_NONE;
	g_iCurrentGame = LR_NONE;
	
	engfunc( EngFunc_LightStyle, 0, "m" );
	
	msg_create_fog( 0, 0, 0, 0 );
	
	server_cmd( "decalfrequency 15" );
	server_cmd( "mp_flashlight 0" );
	
	Reset();
	RemoveAllTasks();
	
	set_task( get_pcvar_float( g_iVarTimer ), "TASK_PushButton", TASK_CELL );
	set_task( get_pcvar_float( g_iVarTimer2 ), "TASK_Glow", TASK_FREE );
}

public Event_RoundEnd()
{	
	if( !g_bLastRequestAllowed && get_playercount( CS_TEAM_T, ALIVE ) == 0 )
	{
		g_bLastRequestAllowed = true;
	}
	
	gLastT = 0;
	gLastCt = 0;
	gRebelRequest = 0;
	
	g_bLastRequestAllowed = false;
	g_iCurrentDay = DAY_NONE;
	g_iCurrentGame = LR_NONE;
	
	msg_create_fog( 0, 0, 0, 0 );
	
	client_cmd( 0, "mp3 stop" );
	client_cmd( 0, "stopsound" );
	client_cmd( 0, "slot10" );
	
	new players[ 32 ], num, player;
	get_players( players, num );
	
	for( new i = 0; i < num; i++ )
	{
		player = players[ i ];
		if( is_user_alive( player ) )
		{
			playerpoints[ player ] += get_pcvar_num( cvar_survivepoints );
			ColorChat( player, NORMAL, "%s You have received 2 eQ-Points for surving the day.", g_szPrefix );
		}
	}
	
	Reset();
	RemoveAllTasks();
	
	show_menu( 0, 0, "^n", 1 );
}

/////////////////////////////////////////////////////
//----- PLAYER DEATH + ADDING POINTS FOR KILLS-----//
/////////////////////////////////////////////////////
public Event_DeathMsg()
{
	new attacker = read_data( 1 );
	new victim = read_data( 2 );
	new headshot = read_data( 3 );
	
	new AttackerName[ 32 ];
	new VictimName[ 32 ];
	
	new players[ 32 ], tNum;
	get_players( players, tNum, "ae", "TERRORIST" );
	
	/*if( tNum == 1 )
	{
		if( g_iCurrentDay == DAY_ZOMBIE )
		{
			engfunc( EngFunc_LightStyle, 0, "m" );
			
			cs_reset_user_model( players[ 0 ] );
			if( get_user_weapon( players[ 0 ] ) == CSW_KNIFE )
				set_pev( players[ 0 ], pev_viewmodel2, "models/v_knife.mdl" );
		}
		
		g_iCurrentDay = -1;
	}*/
	
	if( g_iCurrentDay == DAY_VIP && g_iCurrentGame == LR_NONE )
	{
		if( victim == g_iVip && cs_get_user_team( victim ) == CS_TEAM_CT )
		{
			new players[ 32 ], Ctnum;
			get_players( players, Ctnum, "ae", "CT" );
			
			for( new i = 0; i < Ctnum; i++ )
			{
				if( is_user_alive( players[ i ] ) )
				{
					user_silentkill( players[ i ] );
				}
			}
			
			if( !is_user_alive( attacker ) )
			{
				ColorChat( 0, RED, "%s The ^x03VIP ^x04suicided!", g_szPrefix );
			}
			
			else
			{
				new name[32];
				get_user_name( attacker, name, 31 );
				ColorChat( 0, RED, "%s ^x03%s ^x04killed the ^x03VIP^x04! The Guards failed to protect him.", g_szPrefix, name );
			}
		}
		
		if( victim == g_iVip && cs_get_user_team( victim ) == CS_TEAM_T )
		{
			new players[ 32 ], Tnum;
			get_players( players, Tnum, "ae", "TERRORIST" );
			
			for( new i = 0; i < Tnum; i++ )
			{
				if( is_user_alive( players[ i ] ) )
				{
					user_silentkill( players[ i ] );
				}
			}
			
			if( !is_user_alive( attacker ) )
			{
				ColorChat( 0, RED, "%s The ^x03VIP ^x04suicided!", g_szPrefix );
			}
			
			else
			{
				new name[32];
				get_user_name( attacker, name, 31 );
				ColorChat( 0, RED, "%s ^x03%s ^x04killed the ^x03VIP^x04! The Prisoners failed to protect him.", g_szPrefix, name );
			}
		}
	}
	
	if( g_iCurrentDay == DAY_GANG && g_iCurrentDay == DAY_DEATHMATCH && g_iCurrentDay == DAY_TEAM )
	{
		new players[ 32], num;
		get_players( players, num, "ae", "TERRORIST" );
		
		if( num == 1 )
			g_iCurrentDay = -1;
	}
	
	if( g_iCurrentDay == DAY_GOLDEN )
	{
		new players[32], num;
		get_players( players, num, "ae", "TERRORIST" );
		
		if( num == 1 )
		{
			if( get_user_weapon( players[ 0 ] ) == CSW_DEAGLE )
				set_pev( players[ 0 ], pev_viewmodel2, "models/v_deagle.mdl" );
		}
	}
	
	if ( gRebelRequest )
	{
		new players_ct[ 32 ], players_t[ 32 ], iCt, iTe;
		get_players( players_ct, iCt, "ae", "CT" );
		get_players( players_t, iTe, "ae", "TERRORIST" );
		
		if ( iCt == 1 && iTe == 1 )
		{ 
			gLastCt = players_ct[ 0 ];
			gLastT = players_t[ 0 ];
		}
		
		if ( iCt == 0 && iTe >= 1 )
		{
			EndLastRequest( gLastT, gLastCt );
		}
		
		else if ( iCt >= 1 && iTe == 0 )
		{
			EndLastRequest( gLastCt, gLastT );
		}
	}
	
	get_user_name( attacker, AttackerName, 31 );
	get_user_name( victim, VictimName, 31 );
	
	if( !( 1 <= attacker <= g_iMaxPlayers ) )
		return PLUGIN_HANDLED;
	
	if( !( 1 <= victim <= g_iMaxPlayers ) )
		return PLUGIN_HANDLED;
	
	if( cs_get_user_team( attacker ) == CS_TEAM_CT && cs_get_user_team( victim ) == CS_TEAM_T )
	{
		if( get_pcvar_num( cvar_showrebels ) && g_iCurrentGame != LR_NONE )
		{
			ColorChat(0, RED, "%s Guard ^x03%s^x01 killed Prisoner ^x03%s^x01!", g_szPrefix, AttackerName, VictimName);
		}
	}
	
	if( cs_get_user_team( attacker ) == CS_TEAM_T && cs_get_user_team( victim ) == CS_TEAM_CT )
	{
		playerpoints[ attacker ] += get_pcvar_num( cvar_killpoints_ct );
		
		if( headshot )
			playerpoints[ attacker ] += get_pcvar_num( cvar_headshotpoints );
	}
	
	if( cs_get_user_team( attacker ) == CS_TEAM_CT && cs_get_user_team( victim ) == CS_TEAM_T )
	{
		playerpoints[ attacker ] += get_pcvar_num( cvar_killpoints_t );
	}
	
	if( task_exists( attacker ) )
		remove_task( attacker );
	
	if( task_exists( victim ) )
		remove_task( victim );
	
	SaveData( attacker );
	
	return PLUGIN_HANDLED;
}

////////////////////////////
//----- PLAYER SPAWN -----//
////////////////////////////
public Ham_PlayerSpawn_Post( id )
{
	if( !is_user_alive( id ) )
		return HAM_IGNORED;
	
	if( get_user_noclip( id ) )
		set_user_noclip( id, 0 );
	
	set_user_footsteps( id, 0 );
	
	set_user_rendering( id );
	
	set_user_gravity( id );	
	
	cs_reset_user_model( id );
		
	set_user_gnvision( id, 0 );
	
	StripPlayerWeapons( id );
	ShowWeaponMenu( id );
	
	if( get_user_weapon( id ) == CSW_KNIFE )
		set_pev( id, pev_viewmodel2, "models/v_knife.mdl" );
	
	if( get_user_weapon( id ) == CSW_DEAGLE )
		set_pev( id, pev_viewmodel2, "models/v_deagle.mdl" );
	
	if(cs_get_user_team( id ) == CS_TEAM_CT && g_iCurrentDay != DAY_SHARK )
	{
		ShowWeaponMenu( id );
	}	
	
	if( cs_get_user_team( id ) == CS_TEAM_T )
	{
		if( g_bSpecialLr[ id ] )
		{
			new szName[ 32 ];
			get_user_name( id, szName, 31 );
			
			ColorChat( 0, RED, "%s ^x04%s^x01 is choosing the ^x04Special Day^x01.", g_szPrefix, szName );
			Cmd_DaysMenu( id );
			g_bSpecialLr[ id ] = false;
		}
		
		else if( g_bFreedayLr[ id ] )
		{
			new szName[ 32 ];
			get_user_name( id, szName, 31 );
			
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 is now glowing and has a^x04 Freeday^x01.", g_szPrefix, szName );
			set_user_rendering( id, kRenderFxGlowShell, 255, 140, 0, kRenderNormal, 16 );
			g_bFreedayLr[ id ] = false;
		}
		
		else
		{
			client_cmd( id, "slot10" );
		}
	}
	
	g_bAlive[ id ] = true;	
	
	return HAM_IGNORED;
}

/////////////////////////////
//----- CLIENT KILL -----////
/////////////////////////////
public Forward_ClientKill( id )
{
	if( !is_user_alive( id ) )
		return FMRES_IGNORED;
	
	if( id == g_iVip && g_iCurrentDay == DAY_VIP )
	{
		console_print( id, "%s You can't use the kill command while you're the VIP!", g_szPrefix );
		return FMRES_SUPERCEDE;
	}
	
	return FMRES_HANDLED;
}

////////////////////////////////////
//----- POINTS SAVE AND LOAD -----//
////////////////////////////////////
public SaveData( id ) 
{  
	new authid[ 32 ];
	get_user_authid( id, authid, 31 );
	
	new vaultkey[ 64 ], vaultdata[ 64 ];
	
	//Save their points     
	format( vaultkey, 63, "jb-%s-points", authid );     
	format( vaultdata, 63, "%d", playerpoints[ id ] );     
	nvault_set( g_vault, vaultkey, vaultdata );
}

public LoadData( id ) 
{
	new authid[ 32 ]; 
	get_user_authid( id, authid, 31 ); 
	
	new vaultkey[ 64 ];
	//Load their points
	format( vaultkey, 63, "jb-%s-points", authid ); 
	playerpoints[ id ] = nvault_get( g_vault, vaultkey );
}

/////////////////////////////////////////////
//----- ON MAP CHANGE OR SERVER CRASH -----//
/////////////////////////////////////////////
public plugin_end()
{
	nvault_close( g_vault );
}

////////////////////////////////
//----- GIVE/TAKE POINTS -----//
////////////////////////////////
public cmd_give_points( id, level, cid ) 
{		
	if( !cmd_access( id, level, cid, 3 ) )
		return PLUGIN_HANDLED;
	
	new arg[ 32 ], amount[ 21 ], admin_name[ 32 ], player_name[ 32 ], authid[ 35 ], authid2[ 35 ];
	
	read_argv( 1, arg, 31 );
	read_argv( 2, amount, 20 );
	get_user_name( id, admin_name, 31 );
	get_user_authid( id, authid, 34 );
	
	new pointnum = str_to_num( amount );
	
	if( arg[0]=='@' )
	{
		new players[ 32 ], inum;
		if( equali( "T", arg[ 1 ] ) )		copy( arg[ 1 ], 31, "TERRORIST" );
		if( equali( "ALL", arg[ 1 ] ) )	get_players( players, inum );
		else					get_players( players, inum, "e", arg[ 1 ] );
			
		if( inum == 0 ) 
		{
			console_print( id, "No clients in such team" );
			return PLUGIN_HANDLED;
		}
		
		for( new a = 0; a < inum; a++ ) 
		{
			playerpoints[ players[ a ] ] += pointnum;
		}
		
		switch( get_cvar_num( "amx_show_activity" ) )	
		{
			case 2:	client_print( 0, print_chat, "%s ADMIN %s: gave %i points to ^"%s^" players.", g_szPrefix, admin_name, pointnum, arg[ 1 ] );
			case 1:	client_print( 0, print_chat, "%s ADMIN: gave %i points to ^"%s^" players.", g_szPrefix, pointnum, arg[ 1 ] );
		}
		
		log_amx( "^"%s<%d><%s><>^" gave points to ^"%s^"", admin_name, get_user_userid( id ), authid, arg[ 1 ] );
	}
	else 
	{
		
		new player = cmd_target( id, arg, 6 );
		if( !player )
			return PLUGIN_HANDLED;
		
		get_user_name( player, player_name, 31 );
		get_user_authid( player, authid2, 34 );
		
		playerpoints[ player ] += pointnum;
		
		switch( get_cvar_num( "amx_show_activity" ) ) 
		{
			case 2:	client_print( 0, print_chat, "%s ADMIN %s: gave %i points to ^"%s^"", g_szPrefix, admin_name, pointnum, player_name );
			case 1:	client_print( 0, print_chat, "%s ADMIN: gave %i points to ^"%s^"", g_szPrefix, pointnum, player_name );
		}
		
		client_print( player, print_chat, "%s You received %i points.(Total: %d)", g_szPrefix, pointnum, playerpoints[ player ] );
		log_amx( "^"%s<%d><%s><>^" gave points to ^"%s<%d><%s><>^"", admin_name, get_user_userid( id ), authid, player_name, get_user_userid( player ), authid2 );
	}
	
	SaveData( id );
	
	return PLUGIN_HANDLED;
}

public cmd_take_points( id, level, cid ) 
{		
	if( !cmd_access( id, level, cid, 3 ) )
		return PLUGIN_HANDLED;
	
	new arg[ 32 ], amount[ 21 ], admin_name[ 32 ], player_name[ 32 ], authid[ 35 ], authid2[ 35 ];
	
	read_argv( 1, arg, 31 );
	read_argv( 2, amount, 20 );
	get_user_name( id, admin_name, 31 );
	get_user_authid( id, authid, 34 );
	
	new pointnum = str_to_num( amount );
	
	if( arg[0]=='@' )
	{
		new players[ 32 ], inum;
		if( equali( "T", arg[ 1 ] ) )		copy( arg[ 1 ], 31, "TERRORIST" );
		if( equali( "ALL", arg[ 1 ] ) )	get_players( players, inum );
		else					get_players( players, inum, "e", arg[ 1 ] );
			
		if( inum == 0 ) 
		{
			console_print( id, "No clients in such team" );
			return PLUGIN_HANDLED;
		}
		
		for( new a = 0; a < inum; a++ ) 
		{
			playerpoints[ players[ a ] ] -= pointnum;
		}
		
		switch( get_cvar_num( "amx_show_activity" ) )	
		{
			case 2:	client_print( 0, print_chat, "%s ADMIN %s: took %i points from ^"%s^" players.", g_szPrefix, admin_name, pointnum, arg[ 1 ] );
			case 1:	client_print( 0, print_chat, "%s ADMIN: took %i points from ^"%s^" players.", g_szPrefix, pointnum, arg[ 1 ] );
		}
		
		log_amx( "^"%s<%d><%s><>^" took points from ^"%s^"", admin_name, get_user_userid( id ), authid, arg[ 1 ] );
	}
	else 
	{
		
		new player = cmd_target( id, arg, 6 );
		if( !player )
			return PLUGIN_HANDLED;
		
		get_user_name( player, player_name, 31 );
		get_user_authid( player, authid2, 34 );
		
		playerpoints[ player ] -= pointnum;
		
		switch( get_cvar_num( "amx_show_activity" ) ) 
		{
			case 2:	client_print( 0, print_chat, "%s ADMIN %s: took %i points from ^"%s^"", g_szPrefix, admin_name, pointnum, player_name );
			case 1:	client_print( 0, print_chat, "%s ADMIN: took %i points from ^"%s^"", g_szPrefix, pointnum, player_name );
		}
		
		client_print( player, print_chat, "%s You lost %i points.(Total: %d)", g_szPrefix, pointnum, playerpoints[ player ] );
		log_amx( "^"%s<%d><%s><>^" took points from ^"%s<%d><%s><>^"", admin_name, get_user_userid( id ), authid, player_name, get_user_userid( player ), authid2 );
	}
	
	SaveData( id );
	
	return PLUGIN_HANDLED;
}

////////////////////////////
//----- TOTAL POINTS -----//
////////////////////////////
public cmd_total_points( id, level, cid ) 
{		
	if( !cmd_access( id, level, cid, 2 ) )
		return PLUGIN_HANDLED;
	
	new arg[ 32 ], player_name[ 32 ];
	
	read_argv( 1, arg, 31 );
	 
	new player = cmd_target( id, arg, 6 );
	if( !player )
		return PLUGIN_HANDLED;
	
	get_user_name( player, player_name, 31 );
	
	switch( get_cvar_num( "amx_show_activity" ) ) 
	{
		case 2:	client_print( id, print_chat, "%s ^"%s^" has a total of %d Points.", g_szPrefix, player_name, playerpoints[ player ] );
		case 1:	client_print( id, print_chat, "%s ^"%s^" has a total of %d Points.", g_szPrefix, player_name, playerpoints[ player ] );
	}
	
	return PLUGIN_HANDLED;
}

/////////////////////////////////////////////////////////////////////////
//----------------- PRIMARY AND SECONDARY WEAPON MENU -----------------//
/////////////////////////////////////////////////////////////////////////
public ShowWeaponMenu( id )
{
	if( !( 1 <= id <= g_iMaxPlayers ) )
		return PLUGIN_HANDLED;
	
	new menu = menu_create( "Choose Your Weapon Class:",  "PrimeWeapon_MenuHandler" );
	menu_additem( menu, "Shotguns", "0" );
	menu_additem( menu, "Sub-Machine Guns", "1" );
	menu_additem( menu, "Rifles", "2" );
	
	if( cs_get_user_team( id ) != CS_TEAM_T )
	{
		menu_display( id, menu, 0 );
	}
	
	menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
	return PLUGIN_HANDLED;
}

public PrimeWeapon_MenuHandler( id, menu, item )
{
	if( !is_user_alive( id ) )
		return PLUGIN_HANDLED;
		
	if( item == MENU_EXIT )
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	
	if( g_iCurrentDay != DAY_NONE && g_iCurrentDay != DAY_GRAVITY && g_iCurrentDay != DAY_FREE && g_iCurrentDay != DAY_LAVA && g_iCurrentDay != DAY_CAGE && g_iCurrentDay != DAY_DEATHMATCH
		&& g_iCurrentDay != DAY_TEAM && g_iCurrentDay != DAY_HNS && g_iCurrentDay != DAY_GANG && g_iCurrentDay != DAY_RIOT && g_iCurrentDay != DAY_SILENT )
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	
	if( id == g_iVip && g_iCurrentDay == DAY_VIP )
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	
	if( g_bLastRequestAllowed )
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	
	menu_item_getinfo( menu, item, access, data, 5, szName, 63, callback );
	
	new key = str_to_num( data );
	
	switch( key )
	{
		case SHOTGUN:
		{
			ShowShotgunMenu( id );
		}
		
		case SUB_MACHINE_GUN:
		{
			ShowSubMachineMenu( id );
		}
		
		case RIFLE:
		{
			ShowRifleMenu( id );
		}
	}
	
	return PLUGIN_HANDLED;
}

public ShowShotgunMenu( id )
{
	if( !( 1 <= id <= g_iMaxPlayers ) )
		return PLUGIN_HANDLED;
	
	new shotgunmenu = menu_create( "Choose Your Shotgun:",  "ShotgunWeapon_MenuHandler" );
	menu_additem( shotgunmenu, "M3", "0" );
	menu_additem( shotgunmenu, "XM1014", "1" );
	
	menu_setprop( shotgunmenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, shotgunmenu, 0 );
	return PLUGIN_HANDLED;
}

public ShotgunWeapon_MenuHandler( id, shotgunmenu, item )
{
	if( !is_user_alive( id ) )
		return PLUGIN_HANDLED;
		
	if( item == MENU_EXIT )
	{
		menu_destroy( shotgunmenu );
		return PLUGIN_HANDLED;
	}
	
	if( g_iCurrentDay != DAY_NONE && g_iCurrentDay != DAY_GRAVITY && g_iCurrentDay != DAY_FREE && g_iCurrentDay != DAY_LAVA && g_iCurrentDay != DAY_CAGE && g_iCurrentDay != DAY_DEATHMATCH
		&& g_iCurrentDay != DAY_TEAM && g_iCurrentDay != DAY_HNS && g_iCurrentDay != DAY_GANG && g_iCurrentDay != DAY_RIOT && g_iCurrentDay != DAY_SILENT )
	{
		menu_destroy( shotgunmenu );
		return PLUGIN_HANDLED;
	}
	
	if( id == g_iVip && g_iCurrentDay == DAY_VIP )
	{
		menu_destroy( shotgunmenu );
		return PLUGIN_HANDLED;
	}
	
	if( g_bLastRequestAllowed )
	{
		menu_destroy( shotgunmenu );
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	
	menu_item_getinfo( shotgunmenu, item, access, data, 5, szName, 63, callback );
	
	new key = str_to_num( data );
	
	StripPlayerWeapons( id );
	
	switch( key )
	{
		case M3:
		{
			give_item( id, "weapon_m3" );
			cs_set_user_bpammo( id, CSW_M3, 500 );
		}
		
		case XM1014:
		{
			give_item( id, "weapon_xm1014" );
			cs_set_user_bpammo( id, CSW_XM1014, 500 );
		}
	}
	
	cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM );
	give_item( id, "weapon_hegrenade" );
	ShowPistolMenu( id );
	
	return PLUGIN_HANDLED;
}

public ShowSubMachineMenu( id )
{
	if( !( 1 <= id <= g_iMaxPlayers ) )
		return PLUGIN_HANDLED;
	
	new submachinemenu = menu_create( "Choose Your Sub-Machine Gun:",  "SubMachineWeapon_MenuHandler" );
	menu_additem( submachinemenu, "TMP	", "0" );
	menu_additem( submachinemenu, "Mac10", "1" );
	menu_additem( submachinemenu, "UMP", "2" );
	menu_additem( submachinemenu, "Mp5Navy", "3" );
	menu_additem( submachinemenu, "P90", "4" );
	
	menu_setprop( submachinemenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, submachinemenu, 0 );
	return PLUGIN_HANDLED;
}

public SubMachineWeapon_MenuHandler( id, submachinemenu, item )
{
	if( !is_user_alive( id ) )
		return PLUGIN_HANDLED;
		
	if( item == MENU_EXIT )
	{
		menu_destroy( submachinemenu );
		return PLUGIN_HANDLED;
	}
	
	if( g_iCurrentDay != DAY_NONE && g_iCurrentDay != DAY_GRAVITY && g_iCurrentDay != DAY_FREE && g_iCurrentDay != DAY_LAVA && g_iCurrentDay != DAY_CAGE && g_iCurrentDay != DAY_DEATHMATCH
		&& g_iCurrentDay != DAY_TEAM && g_iCurrentDay != DAY_HNS && g_iCurrentDay != DAY_GANG && g_iCurrentDay != DAY_RIOT && g_iCurrentDay != DAY_SILENT )
	{
		menu_destroy( submachinemenu );
		return PLUGIN_HANDLED;
	}
	
	if( id == g_iVip && g_iCurrentDay == DAY_VIP )
	{
		menu_destroy( submachinemenu );
		return PLUGIN_HANDLED;
	}
	
	if( g_bLastRequestAllowed )
	{
		menu_destroy( submachinemenu );
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	
	menu_item_getinfo( submachinemenu, item, access, data, 5, szName, 63, callback );
	
	new key = str_to_num( data );
	
	StripPlayerWeapons( id );
	
	switch( key )
	{
		case TMP:
		{
			give_item( id, "weapon_tmp" );
			cs_set_user_bpammo( id, CSW_TMP, 500 );
		}
		
		case MAC10:
		{
			give_item( id, "weapon_mac10" );
			cs_set_user_bpammo( id, CSW_MAC10, 500 );
		}
		
		case UMP:
		{
			give_item( id, "weapon_ump45" );
			cs_set_user_bpammo( id, CSW_UMP45, 500 );
		}
		
		case MP5NAVY:
		{
			give_item( id, "weapon_mp5navy" );
			cs_set_user_bpammo( id, CSW_MP5NAVY, 500 );
		}
		
		case P90:
		{
			give_item( id, "weapon_p90" );
			cs_set_user_bpammo( id, CSW_P90, 500 );
		}
	}
	
	cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM );
	give_item( id, "weapon_hegrenade" );
	ShowPistolMenu( id );
	
	return PLUGIN_HANDLED;
}

public ShowRifleMenu( id )
{
	if( !( 1 <= id <= g_iMaxPlayers ) )
		return PLUGIN_HANDLED;
	
	new riflemenu = menu_create( "Choose Your Rifle:",  "RifleWeapon_MenuHandler" );
	menu_additem( riflemenu, "M4a1", "0" );
	menu_additem( riflemenu, "AK-47", "1" );
	menu_additem( riflemenu, "Scout", "2" );
	menu_additem( riflemenu, "Awp", "3" );
	menu_additem( riflemenu, "SG552", "4" );
	menu_additem( riflemenu, "AUG", "5" );
	menu_additem( riflemenu, "Famas", "6" );
	menu_additem( riflemenu, "Galil", "7" );
	
	menu_setprop( riflemenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, riflemenu, 0 );
	return PLUGIN_HANDLED;
}

public RifleWeapon_MenuHandler( id, riflemenu, item )
{
	if( !is_user_alive( id ) )
		return PLUGIN_HANDLED;
		
	if( item == MENU_EXIT )
	{
		menu_destroy( riflemenu );
		return PLUGIN_HANDLED;
	}
	
	if( g_iCurrentDay != DAY_NONE && g_iCurrentDay != DAY_GRAVITY && g_iCurrentDay != DAY_FREE && g_iCurrentDay != DAY_LAVA && g_iCurrentDay != DAY_CAGE && g_iCurrentDay != DAY_DEATHMATCH
		&& g_iCurrentDay != DAY_TEAM && g_iCurrentDay != DAY_HNS && g_iCurrentDay != DAY_GANG && g_iCurrentDay != DAY_RIOT && g_iCurrentDay != DAY_SILENT )
	{
		menu_destroy( riflemenu );
		return PLUGIN_HANDLED;
	}
	
	if( id == g_iVip && g_iCurrentDay == DAY_VIP )
	{
		menu_destroy( riflemenu );
		return PLUGIN_HANDLED;
	}
	
	if( g_bLastRequestAllowed )
	{
		menu_destroy( riflemenu );
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	
	menu_item_getinfo( riflemenu, item, access, data, 5, szName, 63, callback );
	
	new key = str_to_num( data );
	
	StripPlayerWeapons( id );
	
	switch( key )
	{
		case M4A1:
		{
			give_item( id, "weapon_m4a1" );
			cs_set_user_bpammo( id, CSW_M4A1, 500 );
		}
		
		case AK47:
		{
			give_item( id, "weapon_ak47" );
			cs_set_user_bpammo( id, CSW_AK47, 500 );
		}
		
		case SCOUT:
		{
			give_item( id, "weapon_scout" );
			cs_set_user_bpammo( id, CSW_SCOUT, 500 );
		}
		
		case AWP:
		{
			give_item( id, "weapon_awp" );
			cs_set_user_bpammo( id, CSW_AWP, 500 );
		}
		
		case SG552:
		{
			give_item( id, "weapon_sg552" );
			cs_set_user_bpammo( id, CSW_SG552, 500 );
		}
		
		case AUG:
		{
			give_item( id, "weapon_aug" );
			cs_set_user_bpammo( id, CSW_AUG, 500 );
		}
		
		case FAMAS:
		{
			give_item( id, "weapon_famas" );
			cs_set_user_bpammo( id, CSW_FAMAS, 500 );
		}
		
		case GALIL:
		{
			give_item( id, "weapon_galil" );
			cs_set_user_bpammo( id, CSW_GALIL, 500 );
		}
	}
	
	cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM );
	give_item( id, "weapon_hegrenade" );
	ShowPistolMenu( id );
	
	return PLUGIN_HANDLED;
}

public ShowPistolMenu( id )
{
	if( !( 1 <= id <= g_iMaxPlayers ) )
		return PLUGIN_HANDLED;
	
	new secondmenu = menu_create( "Choose Your Pistol:",  "SecondWeapon_MenuHandler" );
	menu_additem( secondmenu, "Glock18", "0" );
	menu_additem( secondmenu, "USP", "1" );
	menu_additem( secondmenu, "P228", "2" );
	menu_additem( secondmenu, "Deagle", "3" );
	menu_additem( secondmenu, "Fiveseven", "4" );
	menu_additem( secondmenu, "Elites", "5" );
	
	menu_setprop( secondmenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, secondmenu, 0 );
	return PLUGIN_HANDLED;
}

public SecondWeapon_MenuHandler( id, secondmenu, item )
{
	if( !is_user_alive( id ) )
		return PLUGIN_HANDLED;
		
	if( item == MENU_EXIT )
	{
		menu_destroy( secondmenu );
		return PLUGIN_HANDLED;
	}
	
	if( g_iCurrentDay != DAY_NONE && g_iCurrentDay != DAY_GRAVITY && g_iCurrentDay != DAY_FREE && g_iCurrentDay != DAY_LAVA && g_iCurrentDay != DAY_CAGE && g_iCurrentDay != DAY_DEATHMATCH
		&& g_iCurrentDay != DAY_TEAM && g_iCurrentDay != DAY_HNS && g_iCurrentDay != DAY_GANG && g_iCurrentDay != DAY_RIOT && g_iCurrentDay != DAY_SILENT )
	{
		menu_destroy( secondmenu );
		return PLUGIN_HANDLED;
	}
	
	if( id == g_iVip && g_iCurrentDay == DAY_VIP )
	{
		menu_destroy( secondmenu );
		return PLUGIN_HANDLED;
	}
	
	if( g_bLastRequestAllowed )
	{
		menu_destroy( secondmenu );
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	
	menu_item_getinfo( secondmenu, item, access, data, 5, szName, 63, callback );
	
	new key = str_to_num( data );
	
	switch( key )
	{
		case GLOCK:
		{
			give_item( id, "weapon_glock18" );
			cs_set_user_bpammo( id, CSW_GLOCK18, 200 );
		}
		
		case USP:
		{
			give_item( id, "weapon_usp" );
			cs_set_user_bpammo( id, CSW_USP, 200 );
		}
		
		case P228:
		{
			give_item( id, "weapon_p228" );
			cs_set_user_bpammo( id, CSW_P228, 200 );
		}
		
		case DEAGLE:
		{
			give_item( id, "weapon_deagle" );
			cs_set_user_bpammo( id, CSW_DEAGLE, 200 );
		}
		
		case FIVESEVEN:
		{
			give_item( id, "weapon_fiveseven" );
			cs_set_user_bpammo( id, CSW_FIVESEVEN, 200 );
		}
		
		case ELITES:
		{
			give_item( id, "weapon_elite" );
			cs_set_user_bpammo( id, CSW_ELITE, 200 );
		}
	}
	return PLUGIN_HANDLED;
}

//////////////////////////////////////////
//------------ REMOVE TASKS ------------//
//////////////////////////////////////////
public RemoveAllTasks()
{
	if( task_exists( TASK_HEGRENADE ) )
		remove_task( TASK_HEGRENADE );
	
	if( task_exists( TASK_DODGEBALL ) )
		remove_task( TASK_DODGEBALL );
	
	if( task_exists( TASK_HIDENSEEK ) )
		remove_task( TASK_HIDENSEEK );
	
	if( task_exists( TASK_GLOBAL_WAR ) )
		remove_task( TASK_GLOBAL_WAR );
	
	if( task_exists( TASK_COLORHUD ) )
		remove_task( TASK_COLORHUD );
	
	if( task_exists( TASK_CELL ) )
		remove_task( TASK_CELL );
	
	if( task_exists( TASK_FREE ) )
		remove_task( TASK_FREE );
}

///////////////////////////////////////////////
//------------ STANDARD SETTINGS ------------//
///////////////////////////////////////////////
public Reset()
{
	if( get_cvar_num( "sv_gravity" ) != 800 )
		server_cmd( "sv_gravity 800" );
	
	if( get_cvar_num( "mp_friendlyfire" ) )
		server_cmd( "mp_friendlyfire 0" );
	
	if( get_cvar_num( "decalfrequency" ) == 15 )
		server_cmd( "decalfrequency 15" );
		
	/* Reset ALL variables */
	g_iCurrentDay = -1;
	g_iFreedayType = -1;
	g_iSharkType = -1;
	g_iNightcrawlerType = -1;
	g_iZombieType = -1;
	g_iGravityType = -1;
	g_iSpartanType = -1;
	g_iGhostbusterType = -1;
	g_iNemesisType = -1;
	g_iDeathmatchType = -1;
	g_iGangType = -1;
	g_iTeamType = -1;
	g_iVip = -1;
}

/////////////////////////////////////////
//------------ CELL OPENER ------------//
/////////////////////////////////////////
public setup_buttons()
{
	new ent = 1;
	new ent3;
	new Float:origin[ 3 ];
	new Float:radius = 200.0;
	new class[ 32 ];
	new name[ 32 ];
	new pos;
	while( ( pos <= sizeof( g_iButtons ) ) && ( ent = engfunc( EngFunc_FindEntityByString, ent, "classname", "info_player_deathmatch" ) ) ) // info_player_deathmatch = tspawn
	{ 
			new ent2 = 1;
			pev( ent, pev_origin, origin );
			while( ( ent2 = engfunc( EngFunc_FindEntityInSphere, ent2, origin, radius ) ) )  // find doors near T spawn
			{ 
					if( !pev_valid( ent2 ) ) 
							continue;

					pev( ent2, pev_classname, class, charsmax( class ) );
					if( !equal( class, "func_door" ) ) // if it's not a door, move on to the next iteration
							continue;

					pev( ent2, pev_targetname, name, charsmax( name ) );
					ent3 = engfunc( EngFunc_FindEntityByString, 0, "target", name ); // find button that opens this door
					if( pev_valid( ent3 ) && ( in_array( ent3, g_iButtons, sizeof( g_iButtons ) ) < 0 ) ) 
					{ 
							ExecuteHamB( Ham_Use, ent3, 0, 0, 1, 1.0 ); // zomg poosh it
							g_iButtons[ pos ] = ent3;
							pos++; // next
							break; // break from current while loop
					} 
			} 
	} 
	return pos;
}

public Push_Button( id )
{
	if( cs_get_user_team( id ) != CS_TEAM_CT )
	{
		ColorChat( id, NORMAL, "%s Only ^x04Guards^x01 can use ^x03/open^x01.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	if( !is_user_alive( id ) )
	{
		ColorChat(id, NORMAL, "%s You must be^x03 alive^x04 to open cells.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	else if( cs_get_user_team( id ) == CS_TEAM_CT )
	{
		static i;
		for( i = 0; i < sizeof( g_iButtons ); i++ )
		{
			if( g_iButtons[ i ] )
			{
				ExecuteHamB( Ham_Use, g_iButtons[ i ], 0, 0, 1, 1.0 );
				entity_set_float( g_iButtons[ i ], EV_FL_frame, 0.0 );
			}
		}
		new name[ 32 ];
		get_user_name( id, name, 31 );
		
		ColorChat( 0, NORMAL, "%s ^x04%s^x01 has opened the^x04 cells^x01.", g_szPrefix, name );
		
		if( task_exists( TASK_CELL ) )
			remove_task( TASK_CELL );
	}
	return PLUGIN_HANDLED;
}

public TASK_PushButton()
{
	if( g_iCurrentDay != DAY_NONE )
		return PLUGIN_HANDLED;
	
	static i;
	for( i = 0; i < sizeof( g_iButtons ); i++ )
	{
		if( g_iButtons[ i ] )
		{
			ExecuteHamB( Ham_Use, g_iButtons[ i ], 0, 0, 1, 1.0 );
			entity_set_float( g_iButtons[ i ], EV_FL_frame, 0.0 );
		}
	}
	new players[ 32 ], num, player;
	get_players( players, num, "ae", "TERRORIST" );
	
	for( new i = 0; i < num; i++ )
	{
		player = players[ i ];
		
		if( !is_user_alive( player ) )
			continue;
		
		if( g_bBoughtFreeday[ player ] || g_bBoughtStealth[ player ] || g_bBoughtSkin[ player ] )
		{
			ColorChat( player, NORMAL, "%s Everyone was given a Freeday. Your points have been ^x03refunded^x01.", g_szPrefix );
			playerpoints[ player ] += get_pcvar_num( cvar_freedayprice );
		}
		
		set_user_rendering( player, kRenderFxGlowShell, 255, 140, 0, kRenderNormal, 16);
	}
	ColorChat( 0, NORMAL, "%s Today is an^x04 Unrestricted Freeday^x01. Cells were not opened by^x04 8:00^x01.", g_szPrefix );
	g_iCurrentDay = DAY_FREE;
		
	return PLUGIN_HANDLED;
}

public HAM_Button_Pushed( iButton, caller, activator, use_type, Float:value ) // someone pushed a button, so see if it's the button used to open cells
{
	new targ[ 32 ];
	pev( iButton, pev_target, targ, 31 ); // get name of what the button affects
	
	new target = engfunc( EngFunc_FindEntityByString, 0, "targetname", targ ); // get ent that is affected
	
	if( !pev_valid( target ) )
		return;
		
	new classname[ 32 ];
	pev( target, pev_classname, classname, 31 ); // func_door, func_button, worldspawn, etc.
	
	if( equal( classname, "func_door" ) ) // if button pushed opened a door
	{
		if( task_exists( TASK_CELL ) )
			remove_task( TASK_CELL ); // stop the task from auto-opening
	}
}

///////////////////////////////////////////
//------------ END DAY TIMER ------------//
///////////////////////////////////////////
public TASK_Glow()
{
	if( g_iCurrentDay != DAY_NONE && g_iCurrentDay != DAY_CAGE && g_iCurrentDay != DAY_GRAVITY && g_iCurrentDay != DAY_LAVA && g_iCurrentDay != DAY_TEAM && g_iCurrentDay != DAY_HNS && g_iCurrentDay != DAY_RIOT && g_iCurrentDay != DAY_SILENT )
		return PLUGIN_HANDLED;
	
	if( g_iCurrentDay != DAY_FREE && g_iFreedayType == RESTRICTED )
		return PLUGIN_HANDLED;
	
	if( g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	new players[ 32 ], num, player;
	get_players( players, num, "ae", "TERRORIST" );
	
	for( new i = 0; i < num; i++ )
	{
		player = players[ i ];
		
		if( !is_user_alive( player ) )
			continue;
		
		set_user_rendering( player, kRenderFxGlowShell, 255, 140, 0, kRenderNormal, 16);
	}
	engfunc( EngFunc_LightStyle, 0, "m" );
	ColorChat( 0, NORMAL, "%s The timelimit has^x04 expired^x01. It is now an^x04 Unrestricted Freeday^x01.", g_szPrefix );
	g_iCurrentDay = DAY_FREE;
	
	if( task_exists( TASK_FREE ) )
		remove_task( TASK_FREE );
		
	return PLUGIN_HANDLED;
}

//////////////////////////////////////////////////
//---------------- THE DAYSMENU ----------------//
//////////////////////////////////////////////////
public Cmd_DaysMenu( id )
{
#if defined USE_SIMON 
	if( id != get_xvar_num( g_iSimon ) )
	{
		ColorChat( id, NORMAL, "%s You must be ^x03Simon ^x01to use this command.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
#else
	if( cs_get_user_team( id ) != CS_TEAM_CT && !g_bSpecialLr[ id ] )
	{
		ColorChat( id, NORMAL, "%s You must be a ^x03Guard ^x01to use this command.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
#endif
	
	else if( !is_user_alive( id ) )
	{
		ColorChat( id, NORMAL, "%s You must be ^x03alive^x01 to use this command.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	else if( g_iCurrentDay != DAY_NONE )
	{
		ColorChat( id, NORMAL, "%s There is already a day^x04 chosen^x01.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	else if( g_iCurrentGame != LR_NONE )
	{
		ColorChat( id, NORMAL, "%s ^x03Last Request^x01 is currently active. You cannot choose a ^x04special day^x01.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	menu_display( id, g_hDaysMenu, 0 );
	
	return PLUGIN_HANDLED;
}

public CreateMenus()
{
	g_hDaysMenu = menu_create( "Choose a Day:", "DaysMenu_Handler" );
	
	new szInfo[ 6 ];
	
	for( new i = 0; i < MAX_DAYS; i++ )
	{
		num_to_str( i, szInfo, charsmax( szInfo ) );
		menu_additem( g_hDaysMenu, g_szDaymenuOptions[ i ], szInfo );
	}
	
	g_hNightcrawlerMenu = menu_create( "Choose the Nightcrawlers:", "NightcrawlerMenu_Handler" );
	menu_additem( g_hNightcrawlerMenu, "Guards", "0" );
	menu_additem( g_hNightcrawlerMenu, "Prisoners", "1" );
	
	g_hSharkMenu = menu_create( "Choose the Sharks:", "SharkMenu_Handler" );
	menu_additem( g_hSharkMenu, "Guards", "0" );
	menu_additem( g_hSharkMenu, "Prisoners", "1" );
	
	g_hZombieMenu = menu_create( "Choose the Zombies:", "ZombieMenu_Handler" );
	menu_additem( g_hZombieMenu, "Guards", "0" );
	menu_additem( g_hZombieMenu, "Prisoners", "1" );
	
	g_hFreedayMenu = menu_create( "Choose the Freeday:", "FreedayMenu_Handler" );
	menu_additem( g_hFreedayMenu, "Unrestricted", "0" );
	menu_additem( g_hFreedayMenu, "Resticted", "1" );
	
	g_hGravityMenu = menu_create( "Choose type of Gravity:", "GravityMenu_Handler" );
	menu_additem( g_hGravityMenu, "Low", "0" );
	menu_additem( g_hGravityMenu, "High", "1" );
	
	g_hSpartanMenu = menu_create( "Choose the Spartans:", "SpartanMenu_Handler" );
	menu_additem( g_hSpartanMenu, "Guards", "0" );
	menu_additem( g_hSpartanMenu, "Prisoners", "1" );
	
	g_hVipMenu = menu_create( "Choose the team with the VIP:", "VipMenu_Handler" );
	menu_additem( g_hVipMenu, "Guards", "0" );
	menu_additem( g_hVipMenu, "Prisoners", "1" );
	
	g_hGhostbusterMenu = menu_create( "Choose the Ghosts:", "GhostbusterMenu_Handler" );
	menu_additem( g_hGhostbusterMenu, "Guards", "0" );
	menu_additem( g_hGhostbusterMenu, "Prisoners", "1" );
	
	g_hNemesisMenu = menu_create( "Choose the Nemesis:", "NemesisMenu_Handler" );
	menu_additem( g_hNemesisMenu, "Guards", "0" );
	menu_additem( g_hNemesisMenu, "Prisoners", "1" );
	
	g_hDeathmatchMenu = menu_create( "Choose type of Deathmatch Day:", "DeathmatchMenu_Handler" );
	menu_additem( g_hDeathmatchMenu, "Free For All", "0" );
	menu_additem( g_hDeathmatchMenu, "2 Teams", "1" );
	menu_additem( g_hDeathmatchMenu, "3 Teams", "2" );
	
	g_hGangMenu = menu_create( "Choose type of Gang Day:", "GangMenu_Handler" );
	menu_additem( g_hGangMenu, "Free For All", "0" );
	menu_additem( g_hGangMenu, "2 Gangs", "1" );
	menu_additem( g_hGangMenu, "3 Gangs", "2" );
	
	g_hTeamMenu = menu_create( "Choose amount of teams:", "TeamMenu_Handler" );
	menu_additem( g_hTeamMenu, "2 Teams", "0" );
	menu_additem( g_hTeamMenu, "3 Teams", "1" );
}

public DaysMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new szData[ 6 ], iAccess, hCallback;
	menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), _, _, hCallback );
	
	switch( str_to_num( szData ) )
	{
		case DAY_FREE:
		{
			showFreedayMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_ZOMBIE:
		{
			showZombieMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_NIGHTCRAWLER:
		{			
			showNightcrawlerMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_SHARK:
		{
			showSharkMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_GRAVITY:
		{
			showGravityMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_SPARTAN:
		{
			showSpartanMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_VIP:
		{
			showVipMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_GHOSTBUSTER:
		{
			showGhostbusterMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_NEMESIS:
		{
			showNemesisMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_DEATHMATCH:
		{
			showDeathmatchMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_GANG:
		{
			showGangMenu( id );
			return PLUGIN_HANDLED;
		}
		
		case DAY_TEAM:
		{
			showTeamMenu( id );
			return PLUGIN_HANDLED;
		}
		
		default:
		{
			new name[ 32 ];
			get_user_name( id, name, 31 );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
			g_iCurrentDay = str_to_num( szData );
			startDay();
		}
	}
	return PLUGIN_HANDLED;
}

public showFreedayMenu( id )
{	
	menu_display( id, g_hFreedayMenu, 0 );
}

public FreedayMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iFreedayType = str_to_num( szData );
	
	g_iCurrentDay = DAY_FREE;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showNightcrawlerMenu( id )
{	
	menu_display( id, g_hNightcrawlerMenu, 0 );
}

public NightcrawlerMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iNightcrawlerType = str_to_num( szData );
	
	g_iCurrentDay = DAY_NIGHTCRAWLER;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showZombieMenu( id )
{
	menu_display( id, g_hZombieMenu, 0 );
}

public ZombieMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iZombieType = str_to_num( szData );
	
	g_iCurrentDay = DAY_ZOMBIE;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showSharkMenu( id )
{
	menu_display( id, g_hSharkMenu, 0 );
}

public SharkMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iSharkType = str_to_num( szData );
	
	g_iCurrentDay = DAY_SHARK;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showGravityMenu( id )
{
	menu_display( id, g_hGravityMenu, 0 );
}

public GravityMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iGravityType = str_to_num( szData );
	
	g_iCurrentDay = DAY_GRAVITY;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showSpartanMenu( id )
{
	menu_display( id, g_hSpartanMenu, 0 );
}

public SpartanMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iSpartanType = str_to_num( szData );
	
	g_iCurrentDay = DAY_SPARTAN;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showVipMenu( id )
{
	menu_display( id, g_hVipMenu, 0 );
}

public VipMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iVipType = str_to_num( szData );
	
	g_iCurrentDay = DAY_VIP;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showGhostbusterMenu( id )
{
	menu_display( id, g_hGhostbusterMenu, 0 );
}

public GhostbusterMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iGhostbusterType = str_to_num( szData );
	
	g_iCurrentDay = DAY_GHOSTBUSTER;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showNemesisMenu( id )
{
	menu_display( id, g_hNemesisMenu, 0 );
}

public NemesisMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iNemesisType = str_to_num( szData );
	
	g_iCurrentDay = DAY_NEMESIS;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showDeathmatchMenu( id )
{
	menu_display( id, g_hDeathmatchMenu, 0 );
}

public DeathmatchMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iDeathmatchType = str_to_num( szData );
	
	g_iCurrentDay = DAY_DEATHMATCH;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showGangMenu( id )
{
	menu_display( id, g_hGangMenu, 0 );
}

public GangMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iGangType = str_to_num( szData );
	
	g_iCurrentDay = DAY_GANG;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public showTeamMenu( id )
{
	menu_display( id, g_hTeamMenu, 0 );
}

public TeamMenu_Handler( id, hMenu, iItem )
{
	if( g_iCurrentDay != DAY_NONE || g_iCurrentGame != LR_NONE )
		return PLUGIN_HANDLED;
	
	if( !is_user_alive( id ) || iItem == MENU_EXIT )
		return PLUGIN_HANDLED;
	
	new name[ 32 ];
	get_user_name( id, name, 31 );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen a ^x04Special Day^x01.", g_szPrefix, name );
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iTeamType = str_to_num( szData );
	
	g_iCurrentDay = DAY_TEAM;
	
	startAlternativeDay();
	return PLUGIN_HANDLED;
}

public startDay()
{
	switch( g_iCurrentDay )
	{
		case DAY_CAGE:
		{
			ColorChat( 0, NORMAL, "%s Today is^x03 Cage Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s All Prisoners must report into the cage, where Guards will direct orders.", g_szPrefix );
		}
		
		case DAY_LAVA: 
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Lava Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s The only safe zone for Prisoners is on top of a spray. Guards may give more precise rules.", g_szPrefix );
		}
		
		case DAY_USP_NINJA:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03USP Ninja Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Everyone has a silenced USP and silent footsteps. Guards have 150 HP. Kill the opposite team.", g_szPrefix );
			
			new players[ 32 ], num, player;
			get_players( players, num, "a" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				RefundShopPoints( player );
				StripPlayerWeapons( player );
				set_user_rendering( player );
				set_user_footsteps( player, 0 );
				set_user_gravity( player );
				parachute_reset( player );
				give_item( player, "weapon_usp" );
				
				if( cs_get_user_team( player ) == CS_TEAM_CT )
				{
					set_user_health( player, 150 );
					cs_set_user_bpammo( player, CSW_USP, 200 );
				}
				
				else
				{
					set_user_health( player, 100 );
					cs_set_user_bpammo( player, CSW_USP, 200 );
				}
				
				new ent = find_ent_by_owner( 0, "weapon_usp", player );
				cs_set_weapon_silen( ent, 1 );
				
				set_user_footsteps( player, 1 );
			}
			server_cmd( "sv_gravity 300" );
		}
		
		case DAY_DODGEBALL:
		{
			ColorChat( 0, NORMAL, "%s Today is^x03 Dodgeball Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Kill the opposite team with HE-Grenades. You will start receiving nades in 10 seconds.", g_szPrefix );
			
			set_task( 10.0, "startDodgeballDay", TASK_DODGEBALL );
			client_cmd( 0, "spk ^"%s^"", dodgeballsound );
			
			new iPlayers[ 32 ], iNum;
			get_players( iPlayers, iNum, "a" );
			
			for( new i = 0; i < iNum; i++ )
			{
				RefundShopPoints( iPlayers[ i ] );
				StripPlayerWeapons( iPlayers[ i ] );
				set_user_rendering( iPlayers[ i ] );
				set_user_footsteps( iPlayers[ i ], 0 );
				set_user_gravity( iPlayers[ i ] );
				parachute_reset( iPlayers[ i ] );
			}
		}
		
		case DAY_SNIPER:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Sniper Duel Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Prisoners have scouts. Guards have AWPS. Duel to the death!", g_szPrefix );
			
			new players[ 32 ], num, player;
			get_players( players, num, "a" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				RefundShopPoints( player );
				StripPlayerWeapons( player );
				set_user_rendering( player );
				set_user_footsteps( player, 0 );
				parachute_reset( player );
				set_user_health( player, 100 );
				
				switch( cs_get_user_team( player ) )
				{
					case CS_TEAM_CT:
					{
						give_item( player, "weapon_awp" );
						cs_set_user_bpammo( player, CSW_AWP, 200 );
					}
					
					case CS_TEAM_T:
					{
						give_item( player, "weapon_scout" );
						cs_set_user_bpammo( player, CSW_SCOUT, 200 );
					}
				}
			}
			server_cmd( "sv_gravity 200" );
			client_cmd( 0, "spk ^"%s^"", spacesound );
		}
		
		case DAY_KNIFE:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Knife Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Guards have 135 HP. Prisoners have 35 HP. Begin knife battle!", g_szPrefix );
			
			new players[ 32 ], num, player;
			get_players( players,  num, "a" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				RefundShopPoints( player );
				StripPlayerWeapons( player );
				set_user_rendering( player );
				set_user_footsteps( player, 0 );
				set_user_gravity( player );
				parachute_reset( player );
				
				switch( cs_get_user_team( player ) )
				{
					case CS_TEAM_CT:
					{
						set_user_health( player, 135 );
					}
					
					case CS_TEAM_T:
					{
						set_user_health( player, 35 );
					}
				}
			}
		}
		
		case DAY_HNS:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03HideNSeek Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Prisoners hide for 1 minute until they become visible, and are then hunted down.", g_szPrefix );
			
			engfunc( EngFunc_LightStyle, 0, "b" );
			
			new players[ 32 ], num, player;
			get_players( players, num, "ae", "TERRORIST" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				
				if( !is_user_alive( player ) )
					continue;
				
				RefundShopPoints( player );
				set_user_gravity( player );
				parachute_reset( player );
				StripPlayerWeapons( player );
				set_user_rendering( player, kRenderFxGlowShell, 1, 1, 1, kRenderTransAlpha, 1 );
				set_user_footsteps( player, 1 );
			}
			
			for( new i = 1; i <= g_iMaxPlayers; i++ )
			{
				if( ( 1 <= i <= g_iMaxPlayers ) && is_user_alive( i ) )
				{
					cs_set_user_nvg( i, 0 );
					server_cmd( "mp_flashlight 1" );
				}
			}
			
			g_iTimeLeft = 60;
			set_task( 1.0, "Hidenseek_Countdown", TASK_HIDENSEEK, _, _, "a", g_iTimeLeft + 1 );
		}
		
		case DAY_COWBOY:
		{
			ColorChat( 0, NORMAL, "%s Today is^x03 Cowboy Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Everyone has elites. Guards have 250 HP. Kill the opposite team.", g_szPrefix );
			
			new players[ 32 ], num, player;
			get_players( players,  num, "a" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				RefundShopPoints( player );
				StripPlayerWeapons( player );
				set_user_rendering( player );
				set_user_footsteps( player, 0 );
				set_user_gravity( player );
				parachute_reset( player );
				
				switch( cs_get_user_team( player ) )
				{
					case CS_TEAM_CT:
					{
						set_user_health( player, 250 );
						give_item( player, "weapon_elite");
						cs_set_user_bpammo( player, CSW_ELITE, 300);
					}
					
					case CS_TEAM_T:
					{
						set_user_health( player, 100 );
						give_item( player, "weapon_elite");
						cs_set_user_bpammo( player, CSW_ELITE, 300);
					}
				}
			}
			client_cmd( 0, "spk ^"%s^"", s4ssound );
		}
		
		case DAY_RIOT:
		{
			new players[ 32 ], num;
			get_players( players, num, "ae", "TERRORIST" );
			
			if( num == 0 )
			{
				ColorChat( 0, RED, "%s There are currently no ^x03Prisoners^x01 for^x04 Riot day^x01.", g_szPrefix );
				g_iCurrentDay = DAY_NONE;
				return PLUGIN_HANDLED;
			}
			
			new iRandom = random( num );
			
			while( !is_user_alive( players[ iRandom ] ) )
				iRandom = random( num );
			
			new chosen = players[ iRandom ];
			give_item( chosen, "weapon_m4a1" );
			cs_set_user_bpammo( chosen, CSW_M4A1, 500 );
			
			give_item( chosen, "weapon_deagle" );
			cs_set_user_bpammo( chosen, CSW_DEAGLE, 200 );
			
			new name[ 32 ];
			get_user_name( chosen, name, 31 );
			
			ColorChat( 0, NORMAL, "%s Today is ^x03Riot Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s One random Prisoner is given weapons. Guards will now give rules.", g_szPrefix );
			
			for( new i = 0; i < num; i++ )
			{
				ColorChat( players[ i ], RED, "%s ^x03%s^x04 received weapons for ^x03Riot Day^x04.", g_szPrefix, name );
			}
		}
		
		case DAY_SILENT:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Silent Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Prisoners must be silent throughout the day. They may be killed for making any noise.", g_szPrefix );
			
			new players[ 32 ], num, player;
			get_players( players,  num, "a" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				
				set_user_health( player, 100 );
			}
		}
		
		case DAY_SHOTGUN_BATTLE:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Shotgun Battle Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Guards have 500 HP. Prisoners have 250 HP. Kill the opposite team with shotguns.", g_szPrefix );
			
			new players[ 32 ], num, player;
			get_players( players,  num, "a" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				RefundShopPoints( player );
				StripPlayerWeapons( player );
				set_user_rendering( player );
				set_user_footsteps( player, 0 );
				set_user_gravity( player );
				parachute_reset( player );
				
				switch( cs_get_user_team( player ) )
				{
					case CS_TEAM_CT:
					{
						set_user_health( player, 500 );
						
						give_item( player, "weapon_xm1014" );
						cs_set_user_bpammo( player, CSW_XM1014, 500 );
						cs_set_user_armor( player, 100, CS_ARMOR_VESTHELM );
					}
					
					case CS_TEAM_T:
					{
						set_user_health( player, 250 );
							
						give_item( player, "weapon_m3" );
						cs_set_user_bpammo( player, CSW_M3, 500 );
						cs_set_user_armor( player, 100, CS_ARMOR_VESTHELM );
					}
				}
			}
		}
		
		case DAY_WAR:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03War Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Guards have 200 HP. Everyone has random weapons. Kill the opposite team.", g_szPrefix );
			
			new players[ 32 ], num, player;
			get_players( players,  num, "a" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				RefundShopPoints( player );
				StripPlayerWeapons( player );
				set_user_rendering( player );
				set_user_footsteps( player, 0 );
				set_user_gravity( player );
				parachute_reset( player );
				
				switch( cs_get_user_team( player ) )
				{
					case CS_TEAM_CT:
					{
						set_user_health( player, 200 );
					}
					
					case CS_TEAM_T:
					{
						set_user_health( player, 100 );
					}
				}
				
				switch( random_num( 0, 23 ) )
				{
					case 0:
					{
						give_item( player, "weapon_elite" );
						cs_set_user_bpammo( player, CSW_ELITE, 300 );
					}
					
					case 1: 
					{
						give_item( player, "weapon_mp5navy" );
						cs_set_user_bpammo( player, CSW_MP5NAVY, 500 );
					}
					
					case 2:
					{
						give_item( player, "weapon_tmp" );
						cs_set_user_bpammo( player, CSW_TMP, 500 );
					}
					
					case 3:
					{
						give_item( player, "weapon_p90" );
						cs_set_user_bpammo( player, CSW_P90, 500 );
					}
					
					case 4:
					{
						give_item( player, "weapon_mac10" );
						cs_set_user_bpammo( player, CSW_MAC10, 500 );
					}
					
					case 5:
					{
						give_item( player, "weapon_ak47" );
						cs_set_user_bpammo( player, CSW_AK47, 500 );
					}
					
					case 6:
					{
						give_item( player, "weapon_sg552" );
						cs_set_user_bpammo( player, CSW_SG552, 500 );
					}
					
					case 7:
					{
						give_item( player, "weapon_m4a1" );
						cs_set_user_bpammo( player, CSW_M4A1, 500 );
					}
					
					case 8:
					{
						give_item( player, "weapon_aug" );
						cs_set_user_bpammo( player, CSW_AUG, 500 );
					}
					
					case 9:
					{
						give_item( player, "weapon_scout" );
						cs_set_user_bpammo( player, CSW_SCOUT, 200 );
					}
					
					case 10:
					{
						give_item( player, "weapon_g3sg1" );
						cs_set_user_bpammo( player, CSW_G3SG1, 500 );
					}
					
					case 11:
					{
						give_item( player, "weapon_awp" );
						cs_set_user_bpammo( player, CSW_AWP, 200 );
					}
					
					case 12:
					{
						give_item( player, "weapon_m3" );
						cs_set_user_bpammo( player, CSW_M3, 500 );
					}
					
					case 13:
					{
						give_item( player, "weapon_xm1014" );
						cs_set_user_bpammo( player, CSW_XM1014, 500 );
					}
					
					case 14:
					{
						give_item( player, "weapon_m249" );
						cs_set_user_bpammo( player, CSW_M249, 500 );
					}
					
					case 15:
					{
						give_item( player, "weapon_usp" );
						cs_set_user_bpammo( player, CSW_USP, 300 );
					}
					
					case 16:
					{
						give_item( player, "weapon_p228" );
						cs_set_user_bpammo( player, CSW_P228, 300 );
					}		
					
					case 17:
					{
						give_item( player, "weapon_deagle" );
						cs_set_user_bpammo( player, CSW_DEAGLE, 300 );
					}
					
					case 18:
					{
						give_item( player, "weapon_fiveseven" );
						cs_set_user_bpammo( player, CSW_FIVESEVEN, 300 );
					}
					
					case 19:
					{
						give_item( player, "weapon_glock18" );
						cs_set_user_bpammo( player, CSW_GLOCK18, 300 );
					}
					
					case 20:
					{
						give_item( player, "weapon_ump45" );
						cs_set_user_bpammo( player, CSW_UMP45, 300 );
					}
					
					case 21:
					{
						give_item( player, "weapon_galil" );
						cs_set_user_bpammo( player, CSW_GALIL, 300 );
					}
					
					case 22:
					{
						give_item( player, "weapon_famas" );
						cs_set_user_bpammo( player, CSW_FAMAS, 300 );
					}
					
					case 23:
					{
						give_item( player, "weapon_sg550" );
						cs_set_user_bpammo( player, CSW_SG550, 500 );
					}
				}
				
				switch( random_num( 0, 3 ) )
				{
					case 0:	cs_set_user_armor( player, 100, CS_ARMOR_VESTHELM );
					case 1: give_item( player, "weapon_hegrenade" );
					case 2: give_item( player, "weapon_flashbang" );
					case 3: give_item( player, "weapon_smokegrenade" );
				}
			}
			client_cmd( 0, "spk ^"%s^"", warsound );
		}
		
		case DAY_BATTLE:
		{
			ColorChat( 0, NORMAL, "%s Today is^x03 Battle Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Guards have 200 HP. Everyone has the same random weapon. Kill the opposite team.", g_szPrefix );
			
			new percent = random_num( 0, 23 );
			
			new players[ 32 ], num, player;
			get_players( players,  num, "a" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				RefundShopPoints( player );
				StripPlayerWeapons( player );
				set_user_rendering( player );
				set_user_footsteps( player, 0 );
				set_user_gravity( player );
				parachute_reset( player );
				
				switch( cs_get_user_team( player ) )
				{
					case CS_TEAM_CT:
					{
							cs_set_user_armor( player, 100, CS_ARMOR_VESTHELM );
							set_user_health( player, 200 );
					}
					
					case CS_TEAM_T:
					{
							cs_set_user_armor( player, 100, CS_ARMOR_VESTHELM );
							set_user_health( player, 100 );
					}
				}
				
				switch( percent )
				{
					case 0:
					{
						give_item( player, "weapon_elite" );
						cs_set_user_bpammo( player, CSW_ELITE, 300 );
					}
					
					case 1: 
					{
						give_item( player, "weapon_mp5navy" );
						cs_set_user_bpammo( player, CSW_MP5NAVY, 500 );
					}
					
					case 2:
					{
						give_item( player, "weapon_tmp" );
						cs_set_user_bpammo( player, CSW_TMP, 500 );
					}
					
					case 3:
					{
						give_item( player, "weapon_p90" );
						cs_set_user_bpammo( player, CSW_P90, 500 );
					}
					
					case 4:
					{
						give_item( player, "weapon_mac10" );
						cs_set_user_bpammo( player, CSW_MAC10, 500 );
					}
					
					case 5:
					{
						give_item( player, "weapon_ak47" );
						cs_set_user_bpammo( player, CSW_AK47, 500 );
					}
					
					case 6:
					{
						give_item( player, "weapon_sg552" );
						cs_set_user_bpammo( player, CSW_SG552, 500 );
					}
					
					case 7:
					{
						give_item( player, "weapon_m4a1" );
						cs_set_user_bpammo( player, CSW_M4A1, 500 );
					}
					
					case 8:
					{
						give_item( player, "weapon_aug" );
						cs_set_user_bpammo( player, CSW_AUG, 500 );
					}
					
					case 9:
					{
						give_item( player, "weapon_scout" );
						cs_set_user_bpammo( player, CSW_SCOUT, 200 );
					}
					
					case 10:
					{
						give_item( player, "weapon_g3sg1" );
						cs_set_user_bpammo( player, CSW_G3SG1, 500 );
					}
					
					case 11:
					{
						give_item( player, "weapon_awp" );
						cs_set_user_bpammo( player, CSW_AWP, 200 );
					}
					
					case 12:
					{
						give_item( player, "weapon_m3" );
						cs_set_user_bpammo( player, CSW_M3, 500 );
					}
					
					case 13:
					{
						give_item( player, "weapon_xm1014" );
						cs_set_user_bpammo( player, CSW_XM1014, 500 );
					}
					
					case 14:
					{
						give_item( player, "weapon_m249" );
						cs_set_user_bpammo( player, CSW_M249, 500 );
					}
					
					case 15:
					{
						give_item( player, "weapon_usp" );
						cs_set_user_bpammo( player, CSW_USP, 300 );
					}
					
					case 16:
					{
						give_item( player, "weapon_p228" );
						cs_set_user_bpammo( player, CSW_P228, 300 );
					}		
					
					case 17:
					{
						give_item( player, "weapon_deagle" );
						cs_set_user_bpammo( player, CSW_DEAGLE, 300 );
					}
					
					case 18:
					{
						give_item( player, "weapon_fiveseven" );
						cs_set_user_bpammo( player, CSW_FIVESEVEN, 300 );
					}
					
					case 19:
					{
						give_item( player, "weapon_glock18" );
						cs_set_user_bpammo( player, CSW_GLOCK18, 300 );
					}
					
					case 20:
					{
						give_item( player, "weapon_ump45" );
						cs_set_user_bpammo( player, CSW_UMP45, 300 );
					}
					
					case 21:
					{
						give_item( player, "weapon_galil" );
						cs_set_user_bpammo( player, CSW_GALIL, 300 );
					}
					
					case 22:
					{
						give_item( player, "weapon_famas" );
						cs_set_user_bpammo( player, CSW_FAMAS, 300 );
					}
					
					case 23:
					{
						give_item( player, "weapon_sg550" );
						cs_set_user_bpammo( player, CSW_SG550, 500 );
					}
				}
			}
			client_cmd( 0, "spk ^"%s^"", battlesound );
		}
		
		case DAY_HEADSHOT_BATTLE:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Headshot Battle Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s Guards have 200 HP. Everyone has the same random weapon and it's headshots only. Kill the opposite team.", g_szPrefix );
			
			new percent = random_num( 0, 23 );
			
			new players[ 32 ], num, player;
			get_players( players,  num, "a" );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				RefundShopPoints( player );
				StripPlayerWeapons( player );
				set_user_rendering( player );
				set_user_footsteps( player, 0 );
				set_user_gravity( player );
				parachute_reset( player );
				
				switch( cs_get_user_team( player ) )
				{
					case CS_TEAM_CT:
					{
							cs_set_user_armor( player, 100, CS_ARMOR_VESTHELM );
							set_user_health( player, 200 );
					}
					
					case CS_TEAM_T:
					{
							cs_set_user_armor( player, 100, CS_ARMOR_VESTHELM );
							set_user_health( player, 100 );
					}
				}
				
				switch( percent )
				{
					case 0:
					{
						give_item( player, "weapon_elite" );
						cs_set_user_bpammo( player, CSW_ELITE, 300 );
					}
					
					case 1: 
					{
						give_item( player, "weapon_mp5navy" );
						cs_set_user_bpammo( player, CSW_MP5NAVY, 500 );
					}
					
					case 2:
					{
						give_item( player, "weapon_tmp" );
						cs_set_user_bpammo( player, CSW_TMP, 500 );
					}
					
					case 3:
					{
						give_item( player, "weapon_p90" );
						cs_set_user_bpammo( player, CSW_P90, 500 );
					}
					
					case 4:
					{
						give_item( player, "weapon_mac10" );
						cs_set_user_bpammo( player, CSW_MAC10, 500 );
					}
					
					case 5:
					{
						give_item( player, "weapon_ak47" );
						cs_set_user_bpammo( player, CSW_AK47, 500 );
					}
					
					case 6:
					{
						give_item( player, "weapon_sg552" );
						cs_set_user_bpammo( player, CSW_SG552, 500 );
					}
					
					case 7:
					{
						give_item( player, "weapon_m4a1" );
						cs_set_user_bpammo( player, CSW_M4A1, 500 );
					}
					
					case 8:
					{
						give_item( player, "weapon_aug" );
						cs_set_user_bpammo( player, CSW_AUG, 500 );
					}
					
					case 9:
					{
						give_item( player, "weapon_scout" );
						cs_set_user_bpammo( player, CSW_SCOUT, 200 );
					}
					
					case 10:
					{
						give_item( player, "weapon_g3sg1" );
						cs_set_user_bpammo( player, CSW_G3SG1, 500 );
					}
					
					case 11:
					{
						give_item( player, "weapon_awp" );
						cs_set_user_bpammo( player, CSW_AWP, 200 );
					}
					
					case 12:
					{
						give_item( player, "weapon_m3" );
						cs_set_user_bpammo( player, CSW_M3, 500 );
					}
					
					case 13:
					{
						give_item( player, "weapon_xm1014" );
						cs_set_user_bpammo( player, CSW_XM1014, 500 );
					}
					
					case 14:
					{
						give_item( player, "weapon_m249" );
						cs_set_user_bpammo( player, CSW_M249, 500 );
					}
					
					case 15:
					{
						give_item( player, "weapon_usp" );
						cs_set_user_bpammo( player, CSW_USP, 300 );
					}
					
					case 16:
					{
						give_item( player, "weapon_p228" );
						cs_set_user_bpammo( player, CSW_P228, 300 );
					}		
					
					case 17:
					{
						give_item( player, "weapon_deagle" );
						cs_set_user_bpammo( player, CSW_DEAGLE, 300 );
					}
					
					case 18:
					{
						give_item( player, "weapon_fiveseven" );
						cs_set_user_bpammo( player, CSW_FIVESEVEN, 300 );
					}
					
					case 19:
					{
						give_item( player, "weapon_glock18" );
						cs_set_user_bpammo( player, CSW_GLOCK18, 300 );
					}
					
					case 20:
					{
						give_item( player, "weapon_ump45" );
						cs_set_user_bpammo( player, CSW_UMP45, 300 );
					}
					
					case 21:
					{
						give_item( player, "weapon_galil" );
						cs_set_user_bpammo( player, CSW_GALIL, 300 );
					}
					
					case 22:
					{
						give_item( player, "weapon_famas" );
						cs_set_user_bpammo( player, CSW_FAMAS, 300 );
					}
					
					case 23:
					{
						give_item( player, "weapon_sg550" );
						cs_set_user_bpammo( player, CSW_SG550, 500 );
					}
				}
			}
			client_cmd( 0, "spk ^"%s^"", battlesound );
		}
		
		case DAY_GOLDEN:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Golden Gun Day^x01.", g_szPrefix );
			ColorChat( 0, NORMAL, "%s It's ^x03license to kill^x01. Everyone dies in one shot! There is ^x03NO HEALING^x01.", g_szPrefix );
			
			for( new i = 0; i <= g_iMaxPlayers; i++ )
			{
				if( is_user_alive( i ) )
				{
					RefundShopPoints( i );
					set_user_rendering( i );
					set_user_footsteps( i, 0 );
					set_user_gravity( i );
					parachute_reset( i );
					strip_user_weapons( i );
					switch( cs_get_user_team( i ) )
					{
						case CS_TEAM_T:
						{
							set_user_health( i, 1 );
							give_item( i, "weapon_deagle" );
							cs_set_user_bpammo( i, CSW_DEAGLE, 300 );
							set_pev( i, pev_viewmodel2, g_szGoldenGun );
						}
						
						case CS_TEAM_CT:
						{
							set_user_health( i, 1 );
							give_item( i, "weapon_deagle" );
							cs_set_user_bpammo( i, CSW_DEAGLE, 300 );
							set_pev( i, pev_viewmodel2, g_szGoldenGun );
						}
						
					}
				}
			}		
		}
	}
	return PLUGIN_HANDLED;
}

public startAlternativeDay()
{
	switch( g_iCurrentDay )
	{
		case DAY_FREE:
		{
			switch( g_iFreedayType )
			{
				case UNRESTRICTED:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "ae", "TERRORIST" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						
						if( !is_user_alive( player ) )
							continue;
						
						if( g_bBoughtFreeday[ player ] )
						{
							ColorChat( player, NORMAL, "%s Everyone was given a Freeday. Your points have been ^x03refunded^x01.", g_szPrefix );
							playerpoints[ player ] += get_pcvar_num( cvar_freedayprice );
						}
						
						set_user_rendering( player, kRenderFxGlowShell, 255, 140, 0, kRenderNormal, 16);
					}
					ColorChat( 0, NORMAL, "%s Today is an ^x03Unrestricted Freeday^x01.", g_szPrefix );
				}
				
				case RESTRICTED:
				{
					ColorChat( 0, NORMAL, "%s Today is a ^x03Restricted Freeday^x01.", g_szPrefix );
				}
			}
			ColorChat( 0, NORMAL, "%s All prisoners are free to do what they want, so long as they do not rebel.", g_szPrefix );
		}
		
		case DAY_NIGHTCRAWLER:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Nightcrawler Day^x01.", g_szPrefix );
			
			switch( g_iNightcrawlerType )
			{
				case CT:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) ) 
						{
							case CS_TEAM_T:	
							{
								give_item( player, "weapon_m4a1" );
								give_item( player, "weapon_deagle" );
								
								cs_set_user_bpammo( player, CSW_M4A1, 500 );
								cs_set_user_bpammo( player, CSW_DEAGLE, 200 );
								
								set_user_health( player, 100 );
							}
							
							case CS_TEAM_CT:
							{								
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0 );
								set_user_footsteps( player, 1 );
								set_user_health( player, 150 );
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Guards^x01 are the ^x03Night-Crawlers^x01 with 150 HP.", g_szPrefix );
				}
				
				case T:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) ) 
						{
							case CS_TEAM_CT:	
							{
								give_item( player, "weapon_m4a1" );
								give_item( player, "weapon_deagle" );
								
								cs_set_user_bpammo( player, CSW_M4A1, 500 );
								cs_set_user_bpammo( player, CSW_DEAGLE, 200 );
								
								set_user_health( player, 100 );
							}
							
							case CS_TEAM_T:
							{								
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0 );
								set_user_footsteps( player, 1 );
								set_user_health( player, 150 );
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Prisoners^x01 are the ^x03Night-Crawlers^x01 with 150 HP.", g_szPrefix );
				}
			}
			ColorChat( 0, NORMAL, "%s Nightcrawlers have knives, invisiblity, wall climb, and silent footsteps. Kill the opposite team.", g_szPrefix );
			client_cmd( 0, "spk ^"%s^"", ncsound );
			msg_create_fog( 255, 255, 255, 2 );
		}
		
		case DAY_SHARK:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Shark Day^x01.", g_szPrefix );
			
			switch( g_iSharkType )
			{
				case CT:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						set_user_health( player, 100 );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) )
						{
							case CS_TEAM_T:
							{
								give_item( player, "weapon_awp" );
								cs_set_user_bpammo( player, CSW_AWP, 200 );
							}
							
							case CS_TEAM_CT:
							{
								set_user_noclip( player, 1 );
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Guards^x01 are the ^x03Sharks^x01.", g_szPrefix );
				}
				
				case T:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						set_user_health( player, 100 );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) )
						{
							case CS_TEAM_CT:
							{
								give_item( player, "weapon_awp" );
								cs_set_user_bpammo( player, CSW_AWP, 200 );
							}
							
							case CS_TEAM_T:
							{
								set_user_noclip( player, 1 );
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Prisoners^x01 are the ^x03Sharks^x01.", g_szPrefix );
				}
			}
			ColorChat( 0, NORMAL, "%s Sharks can move through objects, everybody else has awps. Kill the opposite team.", g_szPrefix );
			client_cmd( 0, "spk ^"%s^"", jawssound );
		}
		
		case DAY_ZOMBIE:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Zombie Day^x01.", g_szPrefix );
			
			engfunc( EngFunc_LightStyle, 0, "b" );
			
			switch( g_iZombieType )
			{
				case CT:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) )
						{
							case CS_TEAM_CT:
							{
								set_user_health( player, 4000 );
								cs_set_user_model( player, "jb_zombie" );
								set_pev( player, pev_viewmodel2, g_szZombieHands1 );
								set_user_gnvision( player, 1 );
							}
							
							case CS_TEAM_T:
							{
								set_user_health( player, 100 );
								
								switch( random_num( 0, 2 ) )
								{
									case 0:
									{
									give_item( player, "weapon_mp5navy" )
									cs_set_user_bpammo( player, CSW_MP5NAVY, 500 )
									}
									
									case 1: 
									{
									give_item( player, "weapon_m4a1" )
									cs_set_user_bpammo( player, CSW_M4A1, 500 )
									}
									
									case 2:
									{
									give_item( player, "weapon_ak47" )
									cs_set_user_bpammo( player, CSW_AK47, 500 )
									}
								}
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Guards^x01 are the ^x03Zombies^x01 with 4,000 HP.", g_szPrefix );
				}
				
				case T:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) )
						{
							case CS_TEAM_T:
							{
								set_user_health( player, 2000 );
								cs_set_user_model( player, "jb_zombie" );
								set_pev( player, pev_viewmodel2, g_szZombieHands1 );
								set_user_gnvision( player, 1 );
							}
							
							case CS_TEAM_CT:
							{
								set_user_health( player, 100 );
								
								switch( random_num( 0, 2 ) )
								{
									case 0:
									{
									give_item( player, "weapon_mp5navy" )
									cs_set_user_bpammo( player, CSW_MP5NAVY, 500 )
									}
									
									case 1: 
									{
									give_item( player, "weapon_m4a1" )
									cs_set_user_bpammo( player, CSW_M4A1, 500 )
									}
									
									case 2:
									{
									give_item( player, "weapon_ak47" )
									cs_set_user_bpammo( player, CSW_AK47, 500 )
									}
								}
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Prisoners^x01 are the ^x03Zombies^x01 with 2,000 HP.", g_szPrefix );
				}
			}
			ColorChat( 0, NORMAL, "%s Kill the Zombies before they overrun you.", g_szPrefix );
			client_cmd( 0, "spk ^"%s^"", zombiemusic );
		}
		
		case DAY_GRAVITY:
		{			
			switch( g_iGravityType )
			{
				case LOW:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						
						if( g_bBoughtGravity[ player ] )
						{
							set_user_gravity( player );
							ColorChat( player, NORMAL, "%s Everyone has low gravity now. Your points have been ^x03refunded^x01.", g_szPrefix );
							playerpoints[ player ] += get_pcvar_num( cvar_gravityprice );
						}
					}
					ColorChat( 0, NORMAL, "%s Today is ^x03Low Gravity Day^x01. Guards will now give rules.", g_szPrefix );
					server_cmd( "sv_gravity 200" );
				}
				
				case HIGH:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						
						if( g_bBoughtGravity[ player ] )
						{
							set_user_gravity( player );
							ColorChat( player, NORMAL, "%s You can't use low gravity now. Your points have been ^x03refunded^x01.", g_szPrefix );
							playerpoints[ player ] += get_pcvar_num( cvar_gravityprice );
						}
					}
					ColorChat( 0, NORMAL, "%s Today is ^x03High Gravity Day^x01. Guards will now give rules.", g_szPrefix );
					server_cmd( "sv_gravity 1600" );
				}
			}
			client_cmd( 0, "spk ^"%s^"", spacesound );
		}
		
		case DAY_SPARTAN:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Spartan Day^x01.", g_szPrefix );
			
			switch( g_iSpartanType )
			{
				case CT:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) )
						{
							case CS_TEAM_T:
							{
								give_item( player, "weapon_deagle" )
								give_item( player, "weapon_m4a1" )
								
								cs_set_user_bpammo( player, CSW_DEAGLE, 200 )
								cs_set_user_bpammo( player, CSW_M4A1, 500 )
								set_user_health( player, 100 )
							}
							
							case CS_TEAM_CT:
							{
								give_item( player, "weapon_shield" )
								give_item( player, "weapon_deagle" )
								
								cs_set_user_bpammo( player, CSW_DEAGLE, 200 )
								set_user_health( player, 150 )
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Guards^x01 are the ^x03Spartans^x01.", g_szPrefix );
				}
				
				case T:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) )
						{
							case CS_TEAM_CT:
							{
								give_item( player, "weapon_deagle" )
								give_item( player, "weapon_m4a1" )
								
								cs_set_user_bpammo( player, CSW_DEAGLE, 200 )
								cs_set_user_bpammo( player, CSW_M4A1, 500 )
								set_user_health( player, 150 )
							}
							
							case CS_TEAM_T:
							{
								give_item( player, "weapon_shield" )
								give_item( player, "weapon_deagle" )
								
								cs_set_user_bpammo( player, CSW_DEAGLE, 200 )
								set_user_health( player, 100 )
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Prisoners^x01 are the ^x03Spartans^x01.", g_szPrefix );
				}
			}
			ColorChat( 0, NORMAL, "%s Spartans are equipped with a shield and deagle. Guards have 150 HP. Kill the opposite team.", g_szPrefix );
			client_cmd( 0, "spk ^"%s^"", spartansound );
		}
		
		case DAY_VIP:
		{
			switch( g_iVipType )
			{
				case CT:
				{
					new ct[ 32 ], ctNum;
					get_players( ct, ctNum, "ae", "CT" );
					
					new t[ 32 ], tNum;
					get_players( t, tNum, "ae", "TERRORIST" );
					
					if( tNum== 0 )
					{
						ColorChat( 0, NORMAL, "%s There are currently no ^x03Prisoners^x01 alive.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					new iRandom = random_num( 0, ctNum - 1 );
					
					while( !is_user_alive( ct[ iRandom ] ) )
						iRandom = random_num( 0, ctNum - 1 );
					
					new chosen = ct[ iRandom ];
					
					g_iVip = chosen;
					
					StripPlayerWeapons( chosen );
					
					give_item( chosen, "weapon_usp" );
					cs_set_user_bpammo( chosen, CSW_USP, 300 );
					
					set_user_health( chosen, 500 );
					set_user_armor( chosen, 200 );
					
					set_user_rendering( chosen, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 16 );
					
					new name[ 32 ];
					get_user_name( chosen, name, 31 );
					
					ColorChat( 0, NORMAL, "%s Today is ^x03VIP Day^x01.", g_szPrefix );
					ColorChat( 0, NORMAL, "%s One Guard is the VIP with a USP, 500 HP and 200 Armor. The round ends if he dies.", g_szPrefix );
					ColorChat( 0, NORMAL, "%s ^x03%s^x01 is the ^x03VIP^x01.", g_szPrefix, name );
					
					new player;
					for( new i = 0; i < tNum; i++ )
					{
						player = t[ i ];
						if( !is_user_alive( player ) )
							continue;
						
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						give_item( player, "weapon_m4a1" );
						cs_set_user_bpammo( player, CSW_M4A1, 500 );
						
						set_user_rendering( player );
						set_user_footsteps( player, 0 );
						set_user_gravity( player );
						parachute_reset( player );
					}
				}
				
				case T:
				{
					new t[ 32 ], tNum;
					get_players( t, tNum, "ae", "TERRORIST" );
					
					if( tNum== 0 )
					{
						ColorChat( 0, NORMAL, "%s There are currently no ^x03Prisoners^x01 alive.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					new player;
					for( new i = 0; i < tNum; i++ )
					{
						player = t[ i ];
						if( !is_user_alive( player ) )
							continue;
						
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						set_user_rendering( player );
						set_user_footsteps( player, 0 );
						set_user_gravity( player );
						parachute_reset( player );
						give_item( player, "weapon_deagle" );
						cs_set_user_bpammo( player, CSW_DEAGLE, 300 );
					}
					
					new iRandom = random_num( 0, tNum - 1 );
					
					while( !is_user_alive( t[ iRandom ] ) )
						iRandom = random_num( 0, tNum - 1 );
					
					new chosen = t[ iRandom ];
					
					g_iVip = chosen;
					
					set_user_health( chosen, 200 );
					cs_set_user_armor( chosen, 200, CS_ARMOR_VESTHELM );
					
					set_user_rendering( chosen, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16 );
					
					new name[32];
					get_user_name( chosen, name, 31 );
					
					ColorChat( 0, NORMAL, "%s Today is ^x03VIP Day^x01.", g_szPrefix );
					ColorChat( 0, NORMAL, "%s All Prisoners have deagles. One Prisoner is the VIP with 200 HP. The round ends if he dies.", g_szPrefix );
					ColorChat( 0, NORMAL, "%s ^x03%s^x01 is the ^x03VIP^x01.", g_szPrefix, name );			
				}
			}	
		}
		
		case DAY_GHOSTBUSTER:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Ghostbuster Day^x01.", g_szPrefix );
			
			switch( g_iGhostbusterType )
			{
				case CT:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) ) 
						{
							case CS_TEAM_T:	
							{
								give_item( player, "weapon_m249" );
								cs_set_user_bpammo( player, CSW_M249, 500 );
								set_user_health( player, 100 );
							}
							
							case CS_TEAM_CT:
							{
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 50 );
								set_user_health( player, 400 );
								set_user_noclip( player, 1 );
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Guards^x01 are the ^x03Ghosts^x01 with 400 HP.", g_szPrefix );
				}
				
				case T:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) ) 
						{
							case CS_TEAM_CT:	
							{
								give_item( player, "weapon_m249" );
								cs_set_user_bpammo( player, CSW_M249, 500 );
								set_user_health( player, 100 );
							}
							
							case CS_TEAM_T:
							{
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 50 );
								set_user_health( player, 200 );
								set_user_noclip( player, 1 );
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Prisoners^x01 are the ^x03Ghosts^x01 with 200 HP.", g_szPrefix );
				}
			}
			ColorChat( 0, NORMAL, "%s Ghosts can move through objects, have stealth, and knives. Ghostbusters must eliminate Ghosts.", g_szPrefix );
		}
		
		case DAY_NEMESIS:
		{
			ColorChat( 0, NORMAL, "%s Today is ^x03Nemesis Day^x01.", g_szPrefix );
			
			engfunc( EngFunc_LightStyle, 0, "b" );
			
			switch( g_iNemesisType )
			{
				case CT:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) )
						{
							case CS_TEAM_CT:
							{
								give_item( player, "item_longjump" );
								cs_set_user_model( player, "jb_nemesis" );
								set_pev( player, pev_viewmodel2, g_szZombieHands2 );
								
								set_user_gravity( player, 0.6875 );
								set_user_health( player, 5000 );
								set_user_rendering( player, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16 );
								set_user_gnvision( player, 1 );
							}
							
							case CS_TEAM_T:
							{
								set_user_health( player, 100 );
								
								switch( random_num( 0, 2 ) )
								{
									case 0:
									{
									give_item( player, "weapon_mp5navy" )
									cs_set_user_bpammo( player, CSW_MP5NAVY, 500 )
									}
									
									case 1: 
									{
									give_item( player, "weapon_m4a1" )
									cs_set_user_bpammo( player, CSW_M4A1, 500 )
									}
									
									case 2:
									{
									give_item( player, "weapon_ak47" )
									cs_set_user_bpammo( player, CSW_AK47, 500 )
									}
								}
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Guards^x01 are the ^x03Nemesis^x01 with 5,000 HP.", g_szPrefix );
				}
				
				case T:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "a" );
					
					for( new i = 0; i < num; i++ )
					{
						player = players[ i ];
						RefundShopPoints( player );
						StripPlayerWeapons( player );
						parachute_reset( player );
						
						switch( cs_get_user_team( player ) )
						{
							case CS_TEAM_T:
							{
								give_item( player, "item_longjump" );
								cs_set_user_model( player, "jb_nemesis" );
								set_pev( player, pev_viewmodel2, g_szZombieHands2 );
								
								set_user_gravity( player, 0.6875 );
								set_user_health( player, 1000 );
								set_user_rendering( player, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16 );
								set_user_gnvision( player, 1 );
							}
							
							case CS_TEAM_CT:
							{
								set_user_health( player, 100 );
								
								switch( random_num( 0, 2 ) )
								{
									case 0:
									{
									give_item( player, "weapon_mp5navy" )
									cs_set_user_bpammo( player, CSW_MP5NAVY, 500 )
									}
									
									case 1: 
									{
									give_item( player, "weapon_m4a1" )
									cs_set_user_bpammo( player, CSW_M4A1, 500 )
									}
									
									case 2:
									{
									give_item( player, "weapon_ak47" )
									cs_set_user_bpammo( player, CSW_AK47, 500 )
									}
								}
							}
						}
					}
					ColorChat( 0, NORMAL, "%s The ^x03Prisoners^x01 are the ^x03Nemesis^x01 with 1,000 HP.", g_szPrefix );
				}
			}
			ColorChat( 0, NORMAL, "%s Nemesis have low gravity and long jump. Shooters have unlimited ammo. Kill the Nemesis.", g_szPrefix );
			client_cmd( 0, "spk ^"%s^"", nemesismusic );
		}
		
		case DAY_DEATHMATCH:
		{
			switch( g_iDeathmatchType )
			{
				case DM_FREE_FOR_ALL:
				{
					new t[ 32 ], tNum;
					get_players( t, tNum, "ae", "TERRORIST" );
					
					if( tNum < 2 )
					{
						ColorChat( 0, RED, "%s There are not enough ^x03Prisoners^x01 for^x04 Deathmatch Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					else
					{
						new players[ 32 ], num, player;
						get_players( players, num, "a" );
						
						for( new i = 0; i < num; i++ )
						{
							player = players[i];
							RefundShopPoints( player );
							
							switch( cs_get_user_team( player ) ) 
							{
								case CS_TEAM_CT:	
								{
									set_user_health( player, 100 );
									set_user_footsteps( player, 0 );
									set_user_gravity( player );
									set_user_health( player, 100 );
								}
								
								case CS_TEAM_T:
								{
									StripPlayerWeapons( player );
									set_user_health( player, 100 );
									set_user_footsteps( player, 0 );
									set_user_gravity( player );
									set_user_health( player, 100 );
									parachute_reset( player );
								}
							}
						}
						ColorChat( 0, NORMAL, "%s Today is^x03 Deathmatch Day^x01. Every Prisoner for himself.", g_szPrefix );
					}
				}
				
				case DM_TEAM:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "ae", "TERRORIST" );
					
					if( num == 0 )
					{
						ColorChat( 0, RED, "%s There are currently no ^x03Prisoners^x01 for ^x04Team Deathmatch Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					else
					{
						new red = floatround( float( num / 2 ), floatround_floor );
						
						if( red == 0 )
						{
							ColorChat( 0, RED, "%s There are not enough ^x03Prisoners^x01 for ^x04Team Deathmatch Day^x01.", g_szPrefix );
							g_iCurrentDay = DAY_NONE;
							return PLUGIN_HANDLED;
						}
						
						for( new i = 0; i < num; i++ )
						{
							player = players[ i ];
							
							if( !is_user_alive( player ) )
								continue;
							
							RefundShopPoints( player );
							
							if( i < red )
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_RED;
							}
							
							else
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_BLUE;
							}
						}
						ColorChat( 0, NORMAL, "%s Today is ^x03Team Deathmatch Day^x01.", g_szPrefix );
						ColorChat( 0, NORMAL, "%s Prisoners are split into ^x03Red^x01 and^x03 Blue^x01 teams. Kill the other team!", g_szPrefix );
						
						set_task( 1.0, "DisplayGlowColor", TASK_COLORHUD, .flags="b" );
					}
				}
				
				case DM_MULTI_TEAM:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "ae", "TERRORIST" );
					
					if( num == 0 )
					{
						ColorChat( 0, RED, "%s There are currently no ^x03Prisoners^x01 for ^x04Multi Team DeathMatch Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					if( num == 4  || num == 5  || num == 7  || num == 8  || num == 10  || num == 11  || num == 13  || num == 14  || num == 16  || num == 17 || num == 19 || num == 20 || num == 22 || num == 23 )
					{
						ColorChat( 0, RED, "%s There is an uneven ^x03Prisoner ratio^x01 for ^x04Multi Team DeathMatch Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					else
					{
						new iThirdOfPlayers = floatround( float( num / 3 ), floatround_floor ); // Get a third of the amount of players. If 12 players, this number is 4
						
						if( iThirdOfPlayers == 0 ) // If there is not a third of players (if 2 or less players) then you can't have the day
						{
							ColorChat( 0, RED, "%s There are not enough ^x03Prisoners^x01 for ^x04Multi Team DeathMatch Day^x01.", g_szPrefix );
							g_iCurrentDay = DAY_NONE;
							return PLUGIN_HANDLED;
						}
						
						for( new i = 0; i < num; i++ )
						{
							player = players[ i ];
							
							if( !is_user_alive( player ) )
								continue;
							
							RefundShopPoints( player );
							
							if( i < iThirdOfPlayers ) // First Third
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_RED;
							}
							
							else if( i >= iThirdOfPlayers * 2 ) // Last Third
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_GREEN;
							}
							
							else // Middle Third
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_BLUE;
							}
						}
						ColorChat( 0, NORMAL, "%s Today is ^x03Multi-Team Deathmatch Day^x01.", g_szPrefix );
						ColorChat( 0, NORMAL, "%s Prisoners are split into ^x03Red^x01,^x03 Blue^x01, and ^x03Green^x01 teams. Kill the other teams!", g_szPrefix );
						
						set_task( 1.0, "DisplayGlowColor2", TASK_COLORHUD, .flags="b" );
					}
				}
			}
			server_cmd( "mp_friendlyfire 1" );
		}
		
		case DAY_GANG:
		{			
			switch( g_iGangType )
			{
				case GANG_FREE_FOR_ALL:
				{
					new t[ 32 ], tNum;
					get_players( t, tNum, "ae", "TERRORIST" );
					
					if( tNum < 2 )
					{
						ColorChat( 0, RED, "%s There are not enough ^x03Prisoners^x01 for^x04 Free-For-All Gang Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					else
					{
						new players[ 32 ], num, player;
						get_players( players, num, "a" );
						
						for( new i = 0; i < num; i++ )
						{
							player = players[i];
							RefundShopPoints( player );
							
							switch( cs_get_user_team( player ) ) 
							{
								case CS_TEAM_CT:	
								{
									set_user_health( player, 100 );
									set_user_footsteps( player, 0 );
									set_user_gravity( player );
									set_user_health( player, 100 );
								}
								
								case CS_TEAM_T:
								{
									StripPlayerWeapons( player );
									set_user_health( player, 100 );
									set_user_footsteps( player, 0 );
									set_user_gravity( player );
									set_user_health( player, 100 );
									parachute_reset( player );
									
									give_item( player, "weapon_tmp" );
									cs_set_user_bpammo( player, CSW_TMP, 500 );
								}
							}
						}
						ColorChat( 0, NORMAL, "%s Today is^x03 Free-For-All Gang Day^x01. Every Prisoner for himself.", g_szPrefix );
					}
				}
				
				case GANG_TEAM:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "ae", "TERRORIST" );
					
					if( num == 0 )
					{
						ColorChat( 0, RED, "%s There are currently no ^x03Prisoners^x01 for ^x04Team Gang Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					else
					{
						new red = floatround( float( num / 2 ), floatround_floor );
						
						if( red == 0 )
						{
							ColorChat( 0, RED, "%s There are not enough ^x03Prisoners^x01 for ^x04Team Gang Day^x01.", g_szPrefix );
							g_iCurrentDay = DAY_NONE;
							return PLUGIN_HANDLED;
						}
						
						for( new i = 0; i < num; i++ )
						{
							player = players[ i ];
							
							if( !is_user_alive( player ) )
								continue;
							
							RefundShopPoints( player );
							
							if( i < red )
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_RED;
							}
							
							else
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_BLUE;
							}
							give_item( player, "weapon_tmp" );
							cs_set_user_bpammo( player, CSW_TMP, 500 );
						}
						ColorChat( 0, NORMAL, "%s Today is ^x03Team Gang Day^x01.", g_szPrefix );
						ColorChat( 0, NORMAL, "%s Prisoners are split into ^x03Red^x01 and^x03 Blue^x01 gangs. Kill the other gang!", g_szPrefix );
						
						set_task( 1.0, "DisplayGlowColor", TASK_COLORHUD, .flags="b" );
					}
				}
				
				case GANG_MULTI_TEAM:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "ae", "TERRORIST" );
					
					if( num == 0 )
					{
						ColorChat( 0, RED, "%s There are currently no ^x03Prisoners^x01 for ^x04Multi Team Gang Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					if( num == 4  || num == 5  || num == 7  || num == 8  || num == 10  || num == 11  || num == 13  || num == 14  || num == 16  || num == 17 || num == 19 || num == 20 || num == 22 || num == 23 )
					{
						ColorChat( 0, RED, "%s There is an uneven ^x03Prisoner ratio^x01 for ^x04Multi Team Gang Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					else
					{
						new iThirdOfPlayers = floatround( float( num / 3 ), floatround_floor ); // Get a third of the amount of players. If 12 players, this number is 4
						
						if( iThirdOfPlayers == 0 ) // If there is not a third of players (if 2 or less players) then you can't have the day
						{
							ColorChat( 0, RED, "%s There are not enough ^x03Prisoners^x01 for ^x04Multi Team Gang Day^x01.", g_szPrefix );
							g_iCurrentDay = DAY_NONE;
							return PLUGIN_HANDLED;
						}
						
						for( new i = 0; i < num; i++ )
						{
							player = players[ i ];
							
							if( !is_user_alive( player ) )
								continue;
							
							RefundShopPoints( player );
							
							if( i < iThirdOfPlayers ) // First Third
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_RED;
							}
							
							else if( i >= iThirdOfPlayers * 2 ) // Last Third
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_GREEN;
							}
							
							else // Middle Third
							{
								StripPlayerWeapons( player );
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 16 );
								parachute_reset( player );
								
								g_iColorType[ player ] = COLOR_BLUE;
							}
							give_item( player, "weapon_tmp" );
							cs_set_user_bpammo( player, CSW_TMP, 500 );
						}
						ColorChat( 0, NORMAL, "%s Today is ^x03Multi-Team Gang Day^x01.", g_szPrefix );
						ColorChat( 0, NORMAL, "%s Prisoners are split into ^x03Red^x01,^x03 Blue^x01, and ^x03Green^x01 gangs. Kill the other gangs!", g_szPrefix );
						
						set_task( 1.0, "DisplayGlowColor2", TASK_COLORHUD, .flags="b" );
					}
				}
			}
			server_cmd( "mp_friendlyfire 1" );
		}
		
		case DAY_TEAM:
		{			
			switch( g_iTeamType )
			{
				case TEAM:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "ae", "TERRORIST" );
					
					if( num == 0 )
					{
						ColorChat( 0, RED, "%s There are currently no ^x03Prisoners^x01 for ^x04Team Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					else
					{
						new red = floatround( float( num / 2 ), floatround_floor );
						
						if( red == 0 )
						{
							ColorChat( 0, RED, "%s There are not enough ^x03Prisoners^x01 for ^x04Team Day^x01.", g_szPrefix );
							g_iCurrentDay = DAY_NONE;
							return PLUGIN_HANDLED;
						}
						
						for( new i = 0; i < num; i++ )
						{
							player = players[ i ];
							
							if( !is_user_alive( player ) )
								continue;
							
							RefundShopPoints( player );
							
							if( i < red )
							{
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16 );
								
								g_iColorType[ player ] = COLOR_RED;
							}
							
							else
							{
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 16 );
								
								g_iColorType[ player ] = COLOR_BLUE;
							}
						}
						ColorChat( 0, NORMAL, "%s Today is ^x03Team Day^x01.", g_szPrefix );
						ColorChat( 0, NORMAL, "%s Prisoners are split into ^x03Red^x01 and^x03 Blue^x01 teams.", g_szPrefix );
						
						set_task( 1.0, "DisplayGlowColor", TASK_COLORHUD, .flags="b" );
					}
				}
				
				case MULTI_TEAM:
				{
					new players[ 32 ], num, player;
					get_players( players, num, "ae", "TERRORIST" );
					
					if( num == 0 )
					{
						ColorChat( 0, RED, "%s There are currently no ^x03Prisoners^x01 for ^x04Multi Team Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					if( num == 4  || num == 5  || num == 7  || num == 8  || num == 10  || num == 11  || num == 13  || num == 14  || num == 16  || num == 17 || num == 19 || num == 20 || num == 22 || num == 23 )
					{
						ColorChat( 0, RED, "%s There is an uneven ^x03Prisoner ratio^x01 for ^x04Multi Team Day^x01.", g_szPrefix );
						g_iCurrentDay = DAY_NONE;
						return PLUGIN_HANDLED;
					}
					
					else
					{
						new iThirdOfPlayers = floatround( float( num / 3 ), floatround_floor ); // Get a third of the amount of players. If 12 players, this number is 4
						
						if( iThirdOfPlayers == 0 ) // If there is not a third of players (if 2 or less players) then you can't have the day
						{
							ColorChat( 0, RED, "%s There are not enough ^x03Prisoners^x01 for ^x04Multi Team Gang Day^x01.", g_szPrefix );
							g_iCurrentDay = DAY_NONE;
							return PLUGIN_HANDLED;
						}
						
						for( new i = 0; i < num; i++ )
						{
							player = players[ i ];
							
							if( !is_user_alive( player ) )
								continue;
							
							RefundShopPoints( player );
							
							if( i < iThirdOfPlayers ) // First Third
							{
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 16 );
								
								g_iColorType[ player ] = COLOR_RED;
							}
							
							else if( i >= iThirdOfPlayers * 2 ) // Last Third
							{
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 16 );
								
								g_iColorType[ player ] = COLOR_GREEN;
							}
							
							else // Middle Third
							{
								set_user_footsteps( player, 0 );
								set_user_gravity( player );
								set_user_health( player, 100 );
								set_user_rendering( player, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 16 );
								
								g_iColorType[ player ] = COLOR_BLUE;
							}
						}
						ColorChat( 0, NORMAL, "%s Today is ^x03Multi-Team Day^x01.", g_szPrefix );
						ColorChat( 0, NORMAL, "%s Prisoners are split into ^x03Red^x01,^x03 Blue^x01, and ^x03Green^x01 Teams.", g_szPrefix );
						
						set_task( 1.0, "DisplayGlowColor2", TASK_COLORHUD, .flags="b" );
					}
				}
			}
		}
	}
	return PLUGIN_HANDLED;
}

//////////////////////////////////////////
//------------ USP SILENCER ------------//
//////////////////////////////////////////
public Ham_USP_SecondaryAttack_Pre( ent )
{
	if( g_iCurrentDay != DAY_USP_NINJA )
		return HAM_IGNORED;
	
	if( !pev_valid( ent ) )
		return HAM_IGNORED;
	
	if( cs_get_weapon_silen( ent ) )
		return HAM_IGNORED;
	
	else cs_set_weapon_silen( ent, 1 );
	
	return HAM_IGNORED;
}

/////////////////////////////////////////////
//------------ NC's See Others ------------//
/////////////////////////////////////////////
public Forward_AddToFullPack_Post( es_handle, e, ent, host, hostflags, id, pSet ) 
{
	if( id && g_iCurrentDay == DAY_NIGHTCRAWLER ) 
	{
		if( get_user_team( host ) == get_user_team( ent ) ) 
		{
			set_es( es_handle, ES_RenderMode, kRenderTransTexture );
			set_es( es_handle, ES_RenderAmt, 255 );
			
		}
	}
}

////////////////////////////////////////
//------------ WALL CLIMB ------------//
////////////////////////////////////////
public Ham_WallTouch_Pre( iEntity, id )
{
	if( !is_user_alive( id ) || g_iCurrentDay != DAY_NIGHTCRAWLER )
		return FMRES_IGNORED;

	pev( id, pev_origin, g_fWallOrigin[id] );
	
	return FMRES_IGNORED;
}

public Forward_PreThink( id )
{
	if( g_iCurrentDay != DAY_NIGHTCRAWLER )
		return FMRES_IGNORED;
	
	new CsTeams:team = cs_get_user_team( id );
	
	if( team == CS_TEAM_CT && g_iNightcrawlerType == T )
		return FMRES_IGNORED;
	
	else if( team == CS_TEAM_T && g_iNightcrawlerType == CT )
		return FMRES_IGNORED;
	
	new button = fm_get_user_button( id );
	
	if( button & IN_USE )
	{
		static Float:origin[3];
		pev( id, pev_origin, origin );
		
		if( get_distance_f( origin, g_fWallOrigin[id] ) > 10.0 )
			return FMRES_IGNORED;
		
		if( fm_get_entity_flags( id ) & FL_ONGROUND )
			return FMRES_IGNORED;
		
		if( button & IN_FORWARD )
		{
			static Float:velocity[3];
			velocity_by_aim( id, 240, velocity );
			
			fm_set_user_velocity( id, velocity );
		}
		
		else if( button & IN_BACK )
		{
			static Float:velocity[3];
			velocity_by_aim( id, -240, velocity );
			
			fm_set_user_velocity( id, velocity );
		}
	}
	
	return FMRES_IGNORED;
}

/////////////////////////
//----- GIVE NADES ----//
/////////////////////////
public startDodgeballDay()
{
	set_task( 0.1, "giveNades", TASK_HEGRENADE, _, _, "b" );
}

public giveNades()
{
	static players[ 32 ], num, player;
	get_players( players, num, "a" );
	
	for( new i = 0; i < num; i++ )
	{
		player = players[i];
		
		if( !is_user_alive( player ) ) continue;
		
		give_item( player, "weapon_hegrenade" );
		cs_set_user_bpammo( player, CSW_HEGRENADE, 50 );
		
		if( !user_has_weapon( player, CSW_HEGRENADE ) )
		{
			give_item( player, "weapon_hegrenade" );
		}
	}
}

////////////////////////////
//----- HNS COUNTDOWN ----//
////////////////////////////
public Hidenseek_Countdown()
{
	g_iTimeLeft--;
	
	if( g_iTimeLeft >= 0 )
	{
		set_hudmessage( 0, 255, 0, -1.0, 0.2, 0, 0.0, 1.0, 0.1, 0.1, 4 );
		show_hudmessage( 0, "%i More Seconds To Hide!", g_iTimeLeft );
	}
	
	else
	{
		set_hudmessage( 0, 255, 0, -1.0, 0.2, 0, 0.0, 5.0, 0.1, 0.1, 4 );
		show_hudmessage( 0, "READY OR NOT, HERE WE COME!" );
		client_cmd( 0, "spk ^"%s^"", hnssound );
		
		new players[ 32 ], num, player;
		get_players( players, num, "ae", "TERRORIST" );
		
		for( new i = 0; i < num; i++ )
		{
			player = players[i];
			
			if( !is_user_alive( player ) )
				continue;
			
			set_user_rendering( player );
			set_user_footsteps( player, 0 );
			set_user_gravity( player );
			parachute_reset( player );
		}
		
		if( task_exists( TASK_HIDENSEEK ) )
			remove_task( TASK_HIDENSEEK );	
		
		ColorChat( 0, NORMAL, "%s The ^x03Prisoners^x01 are now visible. FIND THEM!", g_szPrefix );
	}
}

///////////////////////////////
//----- GLOW TEAM COLORS ----//
///////////////////////////////
public DisplayGlowColor( iTaskID )
{
	if( ( g_iCurrentDay != DAY_DEATHMATCH && g_iDeathmatchType == DM_TEAM )
		|| ( g_iCurrentDay != DAY_GANG && g_iGangType == GANG_TEAM )
		|| ( g_iCurrentDay != DAY_TEAM && g_iTeamType == TEAM ) )
			remove_task( iTaskID );
	
	new players[ 32 ], num, player;
	get_players( players, num, "ae", "TERRORIST" );
	
	set_hudmessage( 0, 255, 0, -1.0, 0.6, 0, 0.1, 1.2, 0.1, 0.1, -1 );
	
	for( new i = 0; i < num; i++ )
	{
		player = players[ i ];
		
		show_hudmessage( player, "You are glowing %s", ( g_iColorType[ player ] == COLOR_RED ) ? "red" : "blue" );
	}
}

public DisplayGlowColor2( iTaskID )
{
	if( ( g_iCurrentDay != DAY_DEATHMATCH && g_iDeathmatchType == DM_MULTI_TEAM )
		|| ( g_iCurrentDay != DAY_GANG && g_iGangType == GANG_MULTI_TEAM )
		|| ( g_iCurrentDay != DAY_TEAM && g_iTeamType == MULTI_TEAM ) )
			remove_task( iTaskID );
	
	new players[ 32 ], num, player;
	get_players( players, num, "ae", "TERRORIST" );
	
	set_hudmessage( 0, 255, 0, -1.0, 0.6, 0, 0.1, 1.2, 0.1, 0.1, -1 );
	
	for( new i = 0; i < num; i++ )
	{
		player = players[ i ];
		
		if( g_iColorType[ player ] == COLOR_RED )
			show_hudmessage( player, "You are glowing red" );
		
		else
			show_hudmessage( player, "You are glowing %s", ( g_iColorType[ player ] == COLOR_BLUE ) ? "blue" : "green" );
	}
}

/////////////////////////////////
//----- Dropped Bomb Stuff ----//
/////////////////////////////////
public Event_Dropped_The_Bomb()
{
	new loguser[ 80 ], name[ 32 ];
	read_logargv( 0, loguser, charsmax( loguser ) );
	parse_loguser( loguser, name, charsmax( name ) );
	
	g_iLastBomber = get_user_index( name );
}

public Event_Got_The_Bomb()
{
	new carrier = 0, ownerent, bomb = fm_find_ent_by_class( -1, "weapon_c4" );
	if ( bomb && ( ownerent = pev( bomb, pev_owner ) ) <= g_iMaxPlayers )
		carrier = ownerent;
	
	g_iCurrentBomber = carrier;
	
	if ( carrier )
	{
		set_user_rendering( g_iLastBomber, _, 0, 0, 0, _, 0 );
		set_user_rendering( g_iCurrentBomber, kRenderFxGlowShell, 255, 255, 255, kRenderNormal, 16 );
	}
}

/*public Event_Bomb_Pickup( id )
{
	if( !g_iLastBomber )
	{
		set_user_rendering( g_iLastBomber, _, 0, 0, 0, _, 0 );
		g_iLastBomber = -1;
	}
	
	if( is_user_alive( id ) )
	{
		set_user_rendering( id, kRenderFxGlowShell, 255, 255, 255, kRenderNormal, 16 );
		g_iLastBomber = id;
	}
}*/

///////////////////////
//----- THE SHOP ----//
///////////////////////
public cmd_shop( id )
{
	if( !get_pcvar_num( cvar_shop ) )
	{
		ColorChat( id, RED, "%s We are currently working on the shop, it will be opened soon.", g_szPrefix );
		
		return PLUGIN_HANDLED;
	}
	
	if( cs_get_user_team( id ) != CS_TEAM_T )
	{
		ColorChat( id, RED, "%s Only^x03 Prisoners^x04 can use the shop.", g_szPrefix );
		
		return PLUGIN_HANDLED;
	}
	
	if( g_bLastRequestAllowed )
	{
		ColorChat( id, RED, "%s You can't use the shop while last request is activated.", g_szPrefix );
		
		return PLUGIN_CONTINUE;
	}
	
	if( !is_user_alive( id ) )
	{
		ColorChat( id, RED, "%s You must be^x03 alive^x04 to use the shop.", g_szPrefix );
		
		return PLUGIN_HANDLED;
	}
	
	if( g_iCurrentDay != DAY_NONE && g_iCurrentDay != DAY_FREE && g_iCurrentDay != DAY_CAGE && g_iCurrentDay != DAY_LAVA && g_iCurrentDay != DAY_GRAVITY && g_iCurrentDay != DAY_SOAP && g_iCurrentDay != DAY_RIOT && g_iCurrentDay != DAY_TEAM && g_iCurrentDay != DAY_SILENT )
	{
		ColorChat( id, RED, "%s You cannot use the shop during this day.", g_szPrefix );
		
		return PLUGIN_HANDLED;
	}
	
	else if( cs_get_user_team( id ) == CS_TEAM_T )
	{
		shopmenu( id );
	}
	return PLUGIN_HANDLED;
}

public shopmenu( id )
{
	if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_T )
	{
		new szText[ 555 char ];
		new points = playerpoints[ id ];
		
		formatex( szText, charsmax( szText ), "Jailbreak Shop^nYour eQ-Points: %d", points );
		new shopmenu = menu_create( szText, "sub_shopmenu" );
		
		formatex( szText, charsmax( szText ), "30 Health: %d eQ-Points", get_pcvar_num( cvar_healthprice ) );
		menu_additem( shopmenu, szText, "1" , 0 );
		
		formatex( szText, charsmax( szText ), "50 Armor: %d eQ-Points", get_pcvar_num( cvar_armorprice ) );
		menu_additem( shopmenu, szText, "2", 0 );
		
		formatex( szText, charsmax( szText ), "HE Grenade: %d eQ-Points", get_pcvar_num( cvar_nadeprice ) );
		menu_additem( shopmenu, szText, "3", 0 );
		
		formatex( szText, charsmax( szText ), "Flashbang: %d eQ-Points", get_pcvar_num( cvar_flashprice ) );
		menu_additem( shopmenu, szText, "4", 0 );
		
		formatex( szText, charsmax( szText ), "Low Gravity: %d eQ-Points", get_pcvar_num( cvar_gravityprice ) );
		menu_additem( shopmenu, szText, "5", 0 );
		
		formatex( szText, charsmax( szText ), "Parachute: %d eQ-Points", get_pcvar_num( cvar_parachuteprice ) );
		menu_additem( shopmenu, szText, "6", 0 );
		
		formatex( szText, charsmax( szText ), "Shield: %d eQ-Points", get_pcvar_num( cvar_shieldprice ) );
		menu_additem( shopmenu, szText, "7", 0 );
		
		formatex( szText, charsmax( szText ), "Freeday: %d eQ-Points", get_pcvar_num( cvar_freedayprice ) );
		menu_additem( shopmenu, szText, "8", 0 );
		
		formatex( szText, charsmax( szText ), "Silent Footsteps: %d eQ-Points", get_pcvar_num( cvar_silentstepsprice ) );
		menu_additem( shopmenu, szText, "9", 0 );
		
		formatex( szText, charsmax( szText ), "USP: %d eQ-Points (REBEL)", get_pcvar_num( cvar_gunprice_usp ) );
		menu_additem( shopmenu, szText, "10", 0 );
		
		formatex( szText, charsmax( szText ), "Fiveseven: %d eQ-Points (REBEL)", get_pcvar_num( cvar_gunprice_fiveseven ) );
		menu_additem( shopmenu, szText, "11", 0 );
		
		formatex( szText, charsmax( szText ), "Camouflage: %d eQ-Points (REBEL)", get_pcvar_num( cvar_skinprice ) );
		menu_additem( shopmenu, szText, "12", 0 );
		
		formatex( szText, charsmax( szText ), "Stealth: %d eQ-Points (REBEL)", get_pcvar_num( cvar_stealthprice ) );
		menu_additem( shopmenu, szText, "13", 0 );
		
		menu_setprop( shopmenu, MPROP_EXIT , MEXIT_ALL );
		menu_display( id, shopmenu, 0 );
	}
	return PLUGIN_HANDLED;
}

public sub_shopmenu( id, shopmenu, item )  
{
	if( item == MENU_EXIT || g_iCurrentDay != DAY_NONE && g_iCurrentDay != DAY_FREE && g_iCurrentDay != DAY_CAGE && g_iCurrentDay != DAY_LAVA && g_iCurrentDay != DAY_GRAVITY && g_iCurrentDay != DAY_SOAP && g_iCurrentDay != DAY_RIOT && g_iCurrentDay != DAY_TEAM && g_iCurrentDay != DAY_SILENT )
	{
		menu_destroy( shopmenu );
		return PLUGIN_HANDLED;
	}
	
	new Data[7], Name[64];
	new Access, Callback;
	menu_item_getinfo( shopmenu, item, Access, Data,5, Name, 63, Callback );
	
	new Key = str_to_num( Data );
	
	switch ( Key )
	{
		case 1: 
		{
			new hp = get_user_health( id );
			if( playerpoints[ id ] < get_pcvar_num( cvar_healthprice ) )
			{
				ColorChat(id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );
				
				return PLUGIN_HANDLED;
			}
			
			else if( hp >= 200 && hp < 250 )
			{
				set_user_health( id, 250 );
				ColorChat( id, NORMAL, "%s You have successfully bought to ^x03max health^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_healthprice );
				
				return PLUGIN_HANDLED;
			}
			
			else
			{
				if( hp == 250 )
				{
					ColorChat( id, NORMAL, "%s You already have the ^x03max health^x01.", g_szPrefix );
					return PLUGIN_HANDLED;
				}
				
				set_user_health( id, hp + 30 );
				ColorChat( id, NORMAL, "%s You have successfully bought^x03 30 health^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_healthprice )
				
				return PLUGIN_HANDLED;
			}
		}
		
		case 2:
		{
			new ap = get_user_armor( id );
			if( playerpoints[ id ] < get_pcvar_num( cvar_armorprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );
				
				return PLUGIN_HANDLED;
			}
			
			else if( ap >= 50 && ap < 100 )
			{
				cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM );
				ColorChat( id, NORMAL, "%s You have successfully bought^x03 50 Armor^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_armorprice );
				
				return PLUGIN_HANDLED;
			}
			
			else
			{
				if( ap == 100 )
				{
					ColorChat( id, NORMAL, "%s You already have the ^x03max Armor^x01.", g_szPrefix );
					return PLUGIN_HANDLED;
				}
				
				cs_set_user_armor( id, ap + 50, CS_ARMOR_VESTHELM );
				ColorChat( id, NORMAL, "%s You have successfully bought^x03 50 Armor^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_armorprice );
				
				return PLUGIN_HANDLED;
			}
		}
		
		case 3:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_nadeprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );		
				
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtNade[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought an ^x03HE grenade^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				give_item( id, "weapon_hegrenade" );
				ColorChat( id, NORMAL, "%s You have successfully bought an ^x03HE Grenade^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_nadeprice );
				g_bBoughtNade[ id ] = true;
			}
		}
		
		case 4:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_flashprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );	
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtFlash[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought a^x03 flashbang^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				give_item( id, "weapon_flashbang" );
				ColorChat( id, NORMAL, "%s You have successfully bought a^x03 flashbang^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_flashprice );
				g_bBoughtFlash[ id ] = true;
			}
		}
		
		case 5:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_gravityprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );		
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtGravity[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought ^x03low gravity^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				set_user_gravity( id, 0.5 );
				ColorChat( id, NORMAL, "%s You have successfully bought ^x03low gravity^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_gravityprice );
				g_bBoughtGravity[ id ] = true;
			}
		}
		
		case 6:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_parachuteprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtParachute[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought a ^x03parachute^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				ColorChat( id, NORMAL, "%s You have successfully bought a ^x03parachute^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_parachuteprice );
				g_bBoughtParachute[ id ] = true;
			}
		}
		
		case 7:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_shieldprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );		
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtShield[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought a ^x03shield^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				give_item( id, "weapon_shield" );
				ColorChat( id, NORMAL, "%s You have successfully bought a ^x03shield^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_shieldprice );
				g_bBoughtShield[ id ] = true;
			}
		}
		
		case 8:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_freedayprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtFreeday[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought a^x03 Freeday^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				new szName[ 32 ]
				get_user_name(id, szName, 31)
				
				ColorChat( 0, NORMAL, "%s ^x04%s^x01 bought a^x04 Freeday^x01.", g_szPrefix, szName);
				
				ColorChat( id, NORMAL, "%s You have successfully bought a^x03 Freeday^x01.", g_szPrefix );
				set_user_rendering( id, kRenderFxGlowShell, 255, 140, 0, kRenderNormal, 16 );
				playerpoints[ id ] -= get_pcvar_num( cvar_freedayprice );
				g_bBoughtFreeday[ id ] = true;
			}
		}

		case 9:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_silentstepsprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );
				return PLUGIN_HANDLED;
			}

			else if( g_bBoughtSilentsteps[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought ^x03Silent Footsteps^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}

			else
			{
				set_user_footsteps( id, 1 );
				ColorChat( id, NORMAL, "%s You have successfully bought ^x03Silent Footsteps^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_silentstepsprice );
				g_bBoughtSilentsteps[ id ] = true;
			}
		}
		
		case 10:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_gunprice_usp ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtUSP[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought a ^x03USP^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				give_item( id, "weapon_usp" );
				cs_set_user_bpammo( id, CSW_USP, 100 );
				ColorChat( id, NORMAL, "%s You have successfully bought a ^x03USP^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_gunprice_usp );
				g_bBoughtUSP[ id ] = true;
			}
		}
		
		case 11:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_gunprice_fiveseven ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtFiveseven[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought a^x03 Fiveseven^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				give_item( id, "weapon_fiveseven" );
				cs_set_user_bpammo( id, CSW_FIVESEVEN, 100 );
				ColorChat( id, NORMAL, "%s You have successfully bought a^x03 Fiveseven^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_gunprice_fiveseven );
				g_bBoughtFiveseven[ id ] = true;
			}
		}
		
		case 12:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_skinprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );	
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtSkin[ id ] )
			{
				ColorChat( id, NORMAL, "%s You are already wearing a ^x03Guard's uniform^x01!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16);
				cs_set_user_model( id, "jb_gign" );
				cs_set_weapon_ammo( give_item( id, "weapon_m4a1" ), 0 );
				ColorChat( id, NORMAL, "%s You are wearing a ^x03Guard's uniform^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_skinprice );
				g_bBoughtSkin[ id ] = true;
			}
		}
		
		case 13:
		{
			if( playerpoints[ id ] < get_pcvar_num( cvar_stealthprice ) )
			{
				ColorChat( id, RED, "%s You don't have enough^x03 eQ-Points^x04 to buy that item.", g_szPrefix );	
				return PLUGIN_HANDLED;
			}
			
			else if( g_bBoughtStealth[ id ] )
			{
				ColorChat( id, NORMAL, "%s You already bought ^x03stealth^x01 this round!", g_szPrefix );
				return PLUGIN_HANDLED;
			}
			
			else
			{
				set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 30 );
				ColorChat( id, NORMAL, "%s You have successfully bought ^x03stealth^x01.", g_szPrefix );
				playerpoints[ id ] -= get_pcvar_num( cvar_stealthprice );
				g_bBoughtStealth[ id ] = true;
			}
		}
	}	
	menu_destroy(shopmenu);
	return PLUGIN_HANDLED;
}

///////////////////////////////////////////////////
//------------ PREVENT WEAPON DAMAGE ------------//
///////////////////////////////////////////////////
public Ham_TakeDamage_Pre( iVictim, iInflictor, iAttacker, Float:fldamage, iBits )
{
	switch( g_iCurrentDay )
	{
		case DAY_HNS:
		{
			if( task_exists( TASK_HIDENSEEK ) && cs_get_user_team( iVictim ) == CS_TEAM_CT )
				return HAM_SUPERCEDE;
		}
		
		case DAY_DODGEBALL:
		{
			if( task_exists( TASK_DODGEBALL ) )
				return HAM_SUPERCEDE;
		}
		
		case DAY_GANG:
		{
			if( cs_get_user_team( iVictim ) == CS_TEAM_CT )
				return HAM_SUPERCEDE;
			
			else if( ( g_iColorType[ iVictim ] == g_iColorType[ iAttacker ] && g_iGangType == GANG_TEAM )
				|| ( g_iColorType[ iVictim ] == g_iColorType[ iAttacker ] && g_iGangType == GANG_MULTI_TEAM ) )
			{
				new players[ 32 ], num;
				get_players( players, num, "ae", "TERRORIST" );
				
				if( num > 2 )
					return HAM_SUPERCEDE;
				
				else return HAM_IGNORED;
			}
			else return HAM_IGNORED;
		}
		
		case DAY_DEATHMATCH:
		{
			if( cs_get_user_team( iVictim ) == CS_TEAM_CT )
				return HAM_SUPERCEDE;
			
			else if( ( g_iColorType[ iVictim ] == g_iColorType[ iAttacker ] && g_iDeathmatchType == DM_TEAM )
				|| ( g_iColorType[ iVictim ] == g_iColorType[ iAttacker ] && g_iDeathmatchType == DM_MULTI_TEAM ) )
			{
				new players[ 32 ], num;
				get_players( players, num, "ae", "TERRORIST" );
				
				if( num > 2 )
					return HAM_SUPERCEDE;
				
				else return HAM_IGNORED;
			}
			else return HAM_IGNORED;
		}
		
		case DAY_NIGHTCRAWLER:
		{
			if( ( cs_get_user_team( iVictim ) == CS_TEAM_CT && g_iNightcrawlerType == CT && iBits & DMG_FALL ) 
				|| ( cs_get_user_team( iVictim ) == CS_TEAM_T && g_iNightcrawlerType == T && iBits & DMG_FALL ) ) 
					return HAM_SUPERCEDE;
		}
		
		case DAY_GOLDEN:
		{
			if( ( cs_get_user_team( iVictim ) == CS_TEAM_CT && iBits & DMG_FALL ) 
				|| ( cs_get_user_team( iVictim ) == CS_TEAM_T && iBits & DMG_FALL ) ) 
					return HAM_SUPERCEDE;
		}
	}
	
	if( g_iCurrentGame == LR_GLOBAL_WAR && task_exists( TASK_GLOBAL_WAR ) )
		return HAM_SUPERCEDE;
	
	if( !( 1 <= iAttacker <= g_iMaxPlayers ) )
		return HAM_IGNORED;
	
	if( g_iCurrentGame == -1 || g_iCurrentGame == LR_GLOBAL_WAR || g_iCurrentGame == LR_SPECIAL || g_iCurrentGame == LR_FREE || g_iCurrentGame == LR_RAMBO || g_iCurrentGame == LR_DUDE || g_iCurrentGame == LR_CRAZY || g_iCurrentGame == LR_HIDDEN || g_iCurrentGame == LR_KAMIKAZE )
		return HAM_IGNORED;
	
	new bool:g_bVictimLR = iVictim == g_iLastRequest[ LR_PRISONER ] || iVictim == g_iLastRequest[ LR_GUARD ];
	new bool:g_bAttackerLR = iAttacker == g_iLastRequest[ LR_PRISONER ] || iAttacker == g_iLastRequest[ LR_GUARD ];
	
	if( g_bVictimLR && !g_bAttackerLR )
	{
		return HAM_SUPERCEDE;
	}
	
	else if( !g_bVictimLR && g_bAttackerLR )
	{
		return HAM_SUPERCEDE;
	}
	
	return HAM_HANDLED;
}

public Player_TakeDamage( const Victim, const Inflictor, const Attacker )
{
	if( g_iCurrentDay == DAY_NEMESIS )
	{
		if( ( 1 <= Attacker <= g_iMaxPlayers && get_user_weapon( Attacker ) == CSW_M4A1 )
			|| ( 1 <= Attacker <= g_iMaxPlayers && get_user_weapon( Attacker ) == CSW_AK47 )
				|| ( 1 <= Attacker <= g_iMaxPlayers && get_user_weapon( Attacker ) == CSW_MP5NAVY ) )
					set_pdata_float( Victim, 108, 1.0 );
	}
}

public Ham_PlayerKilled_Post( iVictim, iKiller, iShouldGib )
{	
	g_bAlive[ iVictim ] = false;
	
	if( g_bLastRequestAllowed && !gRebelRequest )
	{
		if( iVictim == g_iLastRequest[ LR_PRISONER ] )
		{
			EndLastRequest( g_iLastRequest[ LR_GUARD ], iVictim );
		}
		
		if( iVictim == g_iLastRequest[ LR_GUARD ] )
		{
			EndLastRequest( g_iLastRequest[ LR_PRISONER ], iVictim );
		}
	}
	
	if( !g_bLastRequestAllowed && cs_get_user_team( iVictim ) == CS_TEAM_T )
	{
		if( get_playercount( CS_TEAM_T, ALIVE ) == 1 )
		{
			g_bLastRequestAllowed = true;
		}
	}
}

//////////////////////////////////////////
//------------ TEXT MESSAGE ------------//
//////////////////////////////////////////
public Message_TextMsg()
{
	if( g_iCurrentGame == LR_NONE )
	{
		return PLUGIN_CONTINUE;
	}
	
	static szText[ 25 ];
	get_msg_arg_string( 2, szText, charsmax( szText ) );
	
	if( equal( szText, "#Round_Draw" ) || equal( szText, "#Game_will_restart_in" ) || equal( szText, "#Game_Commencing" ) )
	{
		g_iCurrentGame = LR_NONE;
		
		strip_user_weapons( g_iLastRequest[ LR_PRISONER ] );
		strip_user_weapons( g_iLastRequest[ LR_GUARD ] );
		
		GiveWeapons( g_iLastRequest[ LR_GUARD ] );
		
		g_iLastRequest[ LR_PRISONER ] = 0;
		g_iLastRequest[ LR_GUARD ] = 0;
	}
	
	return PLUGIN_CONTINUE;
}

///////////////////////////////////////////////////
//------------ PREVENT WEAPON PICKUP ------------//
///////////////////////////////////////////////////
public Ham_WeaponTouch_Pre( iEntity, id )
{
	if( !is_user_alive( id ) )
		return HAM_IGNORED;
	
	new Model[ 32 ];
	pev( iEntity, pev_model, Model, 31 );
	
	new CsTeams:team = cs_get_user_team( id );
	
	
	switch( g_iCurrentDay )
	{
		case DAY_ZOMBIE:
		{
			switch( g_iZombieType )
			{
				case CT:
				{
					switch( team )
					{
						case CS_TEAM_T: if( ( !equal( Model, "models/w_m4a1.mdl" ) )
									|| ( !equal( Model, "models/w_ak47.mdl" ) )
									|| ( !equal( Model, "models/w_mp5.mdl" ) ) )
										return HAM_SUPERCEDE;
						case CS_TEAM_CT: return HAM_SUPERCEDE;
					}
				}
				
				case T:
				{
					switch( team )
					{
						case CS_TEAM_T: return HAM_SUPERCEDE;
						case CS_TEAM_CT: if( ( !equal( Model, "models/w_m4a1.mdl" ) )
									|| ( !equal( Model, "models/w_ak47.mdl" ) )
									|| ( !equal( Model, "models/w_mp5.mdl" ) ) )
										return HAM_SUPERCEDE;
					}
				}
			}
		}
		
		case DAY_NIGHTCRAWLER:
		{
			switch( g_iNightcrawlerType )
			{
				case CT:
				{
					switch( team )
					{
						case CS_TEAM_T: if( ( !equal( Model, "models/w_m4a1.mdl" ) )
									|| ( !equal( Model, "models/w_deagle.mdl" ) ) )
										return HAM_SUPERCEDE;
						case CS_TEAM_CT: return HAM_SUPERCEDE;
					}
				}
				
				case T:
				{
					switch( team )
					{
						case CS_TEAM_T: return HAM_SUPERCEDE;
						case CS_TEAM_CT: if( ( !equal( Model, "models/w_m4a1.mdl" ) )
									|| ( !equal( Model, "models/w_deagle.mdl" ) ) )
										return HAM_SUPERCEDE;
					}
				}
			}
		}
		
		case DAY_SHARK:
		{
			switch( g_iSharkType )
			{
				case CT:
				{
					switch( team )
					{
						case CS_TEAM_T: if( !equal( Model, "models/w_awp.mdl" ) ) return HAM_SUPERCEDE;
						case CS_TEAM_CT: return HAM_SUPERCEDE;
					}
				}
				
				case T:
				{
					switch( team )
					{
						case CS_TEAM_T: return HAM_SUPERCEDE;
						case CS_TEAM_CT: if( !equal( Model, "models/w_awp.mdl" ) ) return HAM_SUPERCEDE;
					}
				}
			}
		}
		
		case DAY_SPARTAN:
		{
			switch( g_iSpartanType )
			{
				case CT:
				{
					switch( team )
					{
						case CS_TEAM_T: if( ( !equal( Model, "models/w_m4a1.mdl" ) )
									|| ( !equal( Model, "models/w_deagle.mdl" ) ) )
										return HAM_SUPERCEDE;
						case CS_TEAM_CT: if( ( !equal( Model, "models/w_shield.mdl" ) )
									|| ( !equal( Model, "models/w_deagle.mdl" ) ) )
										return HAM_SUPERCEDE;
					}
				}
				
				case T:
				{
					switch( team )
					{
						case CS_TEAM_T: if( ( !equal( Model, "models/w_shield.mdl" ) )
									|| ( !equal( Model, "models/w_deagle.mdl" ) ) )
										return HAM_SUPERCEDE;
						case CS_TEAM_CT: if( ( !equal( Model, "models/w_m4a1.mdl" ) )
									|| ( !equal( Model, "models/w_deagle.mdl" ) ) )
										return HAM_SUPERCEDE;
					}
				}
			}
		}
		
		case DAY_GHOSTBUSTER:
		{
			switch( g_iGhostbusterType )
			{
				case CT:
				{
					switch( team )
					{
						case CS_TEAM_T: if( !equal( Model, "models/w_m249.mdl" ) ) return HAM_SUPERCEDE;
						case CS_TEAM_CT: return HAM_SUPERCEDE;
					}
				}
				
				case T:
				{
					switch( team )
					{
						case CS_TEAM_T: return HAM_SUPERCEDE;
						case CS_TEAM_CT: if( !equal( Model, "models/w_m249.mdl" ) ) return HAM_SUPERCEDE;
					}
				}
			}
		}
		
		case DAY_NEMESIS:
		{
			switch( g_iNemesisType )
			{
				case CT:
				{
					switch( team )
					{
						case CS_TEAM_T: if( ( !equal( Model, "models/w_m4a1.mdl" ) )
									|| ( !equal( Model, "models/w_ak47.mdl" ) )
									|| ( !equal( Model, "models/w_mp5.mdl" ) ) )
										return HAM_SUPERCEDE;
						case CS_TEAM_CT: return HAM_SUPERCEDE;
					}
				}
				
				case T:
				{
					switch( team )
					{
						case CS_TEAM_T: return HAM_SUPERCEDE;
						case CS_TEAM_CT: if( ( !equal( Model, "models/w_m4a1.mdl" ) )
									|| ( !equal( Model, "models/w_ak47.mdl" ) )
									|| ( !equal( Model, "models/w_mp5.mdl" ) ) )
										return HAM_SUPERCEDE;
					}
				}
			}
		}
		
		case DAY_VIP:
		{
			switch( g_iVipType )
			{
				case CT:
				{
					switch( team )
					{
						case CS_TEAM_T: if( !equal( Model, "models/w_m4a1.mdl" ) ) return HAM_SUPERCEDE;
						case CS_TEAM_CT: if( id == g_iVip && !equal( Model, "models/w_usp.mdl" ) ) return HAM_SUPERCEDE;
								else return HAM_IGNORED;
					}
				}
				
				case T:
				{
					switch( team )
					{
						case CS_TEAM_T: if( !equal( Model, "models/w_deagle.mdl" ) ) return HAM_SUPERCEDE;
						case CS_TEAM_CT: return HAM_IGNORED;
					}
				}
			}
		}
		
		case DAY_SNIPER:
		{
			switch( team )
			{
				case CS_TEAM_T: if( !equal( Model, "models/w_scout.mdl" ) ) return HAM_SUPERCEDE;
				case CS_TEAM_CT: if( !equal( Model, "models/w_awp.mdl" ) ) return HAM_SUPERCEDE;
			}
		}
		
		case DAY_USP_NINJA:
		{
			switch( team )
			{
				case CS_TEAM_T: if( !equal( Model, "models/w_usp.mdl" ) ) return HAM_SUPERCEDE;
				case CS_TEAM_CT: if( !equal( Model, "models/w_usp.mdl" ) ) return HAM_SUPERCEDE;
			}
		}
		
		case DAY_COWBOY:
		{
			switch( team )
			{
				case CS_TEAM_T: if( !equal( Model, "models/w_elite.mdl" ) ) return HAM_SUPERCEDE;
				case CS_TEAM_CT: if( !equal( Model, "models/w_elite.mdl" ) ) return HAM_SUPERCEDE;
			}
		}
		
		case DAY_SHOTGUN_BATTLE:
		{
			switch( team )
			{
				case CS_TEAM_T: if( !equal( Model, "models/w_m3.mdl" ) ) return HAM_SUPERCEDE;
				case CS_TEAM_CT: if( !equal( Model, "models/w_m3.mdl" ) ) return HAM_SUPERCEDE;
			}
		}
		
		case DAY_GOLDEN:
		{
			switch( team )
			{
				case CS_TEAM_T: if( !equal( Model, "models/w_deagle.mdl" ) ) return HAM_SUPERCEDE;
				case CS_TEAM_CT: if( !equal( Model, "models/w_deagle.mdl" ) ) return HAM_SUPERCEDE;
			}
		}
		
		case DAY_GANG:
		{
			if( team == CS_TEAM_T )
				if( !equal( Model, "models/w_tmp.mdl" ) ) return HAM_SUPERCEDE;
		}
		
		case DAY_HNS, DAY_DEATHMATCH:
		{
			if( team == CS_TEAM_T )
				return HAM_SUPERCEDE;
		}
		
		case DAY_KNIFE, DAY_DODGEBALL, DAY_WAR, DAY_BATTLE, DAY_HEADSHOT_BATTLE:
		{
			return HAM_SUPERCEDE;
		}
	}
	
	if( g_iCurrentGame == LR_KNIFE || g_iCurrentGame == LR_NADE || g_iCurrentGame == LR_RACE || g_iCurrentGame == LR_SPRAY || g_iCurrentGame == LR_NADETOSS || g_iCurrentGame == LR_CUSTOM || g_iCurrentGame == LR_HIDDEN )
		return HAM_SUPERCEDE;
	
	if( g_iCurrentGame == LR_GUNTOSS )
	{
		if( !equal( Model, "models/w_deagle.mdl" ) )
			return HAM_SUPERCEDE;
	}
	
	if( g_iCurrentGame == LR_S4S )
	{
		if( ( !equal( Model, "models/w_deagle.mdl" ) )
			|| ( !equal( Model, "models/w_usp.mdl" ) )
			|| ( !equal( Model, "models/w_m4a1.mdl" ) )
			|| ( !equal( Model, "models/w_ak47.mdl" ) )
			|| ( !equal( Model, "models/w_scout.mdl" ) )
			|| ( !equal( Model, "models/w_mp5.mdl" ) )
			|| ( !equal( Model, "models/w_m249.mdl" ) ) )
				return HAM_SUPERCEDE;
	}
	
	if( g_iCurrentGame == LR_SCOUT )
	{
		if( !equal( Model, "models/w_scout.mdl" ) )
			return HAM_SUPERCEDE;
	}
	
	if( g_iCurrentGame == LR_SHOTGUN )
	{
		if( !equal( Model, "models/w_m3.mdl" ) )
			return HAM_SUPERCEDE;
	}
	
	if( g_iCurrentGame == LR_SHOWDOWN )
	{
		if( ( !equal( Model, "models/w_usp.mdl" ) )
			|| ( !equal( Model, "models/w_glock18.mdl" ) )
			|| ( !equal( Model, "models/w_p228.mdl" ) )
			|| ( !equal( Model, "models/w_deagle.mdl" ) )
			|| ( !equal( Model, "models/w_fiveseven.mdl" ) )
			|| ( !equal( Model, "models/w_elite.mdl" ) ) )
				return HAM_SUPERCEDE;
	}
	
	if( g_iCurrentGame == LR_GLOBAL_WAR )
	{
		if( ( !equal( Model, "models/w_deagle.mdl" ) )
			|| ( !equal( Model, "models/w_m4a1.mdl" ) ) )
				return HAM_SUPERCEDE;
	}
	
	if( g_iCurrentGame == LR_RAMBO || g_iCurrentGame == LR_DUDE || g_iCurrentGame == LR_CRAZY )
	{
		if( team == CS_TEAM_T )
			return HAM_SUPERCEDE;
	}
	return HAM_IGNORED;
}

//////////////////////////////////////////////////////////////
//----- By ConnorMcLeod - Prevent Weapon Pickup Glitch -----//
//////////////////////////////////////////////////////////////
#define OFFSET_PRIMARYWEAPON        116 

public StripPlayerWeapons( id )
{ 
	strip_user_weapons( id );
	set_pdata_int( id, OFFSET_PRIMARYWEAPON, 0 );
	give_item( id, "weapon_knife" );
	cs_set_user_nvg( id, 1 );
}

stock in_array( needle, data[], size )
{
	for( new i = 0; i < size; i++ )
	{
		if( data[ i ] == needle )
			return i;
	}
	return -1;
}

///////////////////////////////
//----- Set Nightvision -----//
///////////////////////////////
set_user_gnvision( id, toggle )
{
	// Toggle NVG message
	message_begin( MSG_ONE, g_msgNVGToggle, _, id );
	write_byte( toggle ); // toggle
	message_end();
}

//////////////////////////////////
//----- Last Request Stuff -----//
//////////////////////////////////
public Cmd_LastRequest( id )
{
	if( !g_bAlive[ id ] )
	{
		ColorChat( id, NORMAL, "%s You must be^x04 alive^x01 to ^x03Last Request^x01.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	else if( cs_get_user_team( id ) != CS_TEAM_T )
	{
		ColorChat( id, NORMAL, "%s You must be a ^x04Prisoner^x01 to ^x03Last Request^x01.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	else if( !g_bLastRequestAllowed )
	{
		if ( get_playercount( CS_TEAM_CT, ALIVE ) == 0 )
		{
			ColorChat( 0, NORMAL, "%s There is no one to ^x03Last Request^x01.", g_szPrefix );
			return PLUGIN_HANDLED;
		}
		
		if ( get_playercount( CS_TEAM_T, ALIVE ) == 1 )
		{
			g_bLastRequestAllowed = true;
			LastRequestMenu( id );
			ColorChat( 0, NORMAL, "%s ^x03Last Request^x01 is now active.", g_szPrefix );
		}
		
		else
		{
			ColorChat( id, NORMAL, "%s There are too many ^x04Prisoners^x01 remaining to ^x03Last Request^x01.", g_szPrefix );
			return PLUGIN_HANDLED;
		}
	}
		
	else if( g_iCurrentGame != LR_NONE )
	{
		ColorChat( id, NORMAL, "%s ^x03Last Request^x01 already in progress!", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	else LastRequestMenu( id );
	
	return PLUGIN_HANDLED;
}

public LastRequestMenu( id )
{
	new hMenu = menu_create( "\yLast Request Menu:", "LastRequestMenu_Handler" );
	
	new szInfo[ 6 ];
	
	for( new i = 0; i < MAX_GAMES; i++ )
	{
		num_to_str( i, szInfo, charsmax( szInfo ) );
		menu_additem( hMenu, g_szGameNames[ i ], szInfo );
	}
	
	menu_setprop( hMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, hMenu, 0 );
	return PLUGIN_HANDLED;
}

public LastRequestMenu_Handler( id, hMenu, iItem )
{
	if( iItem == MENU_EXIT )
	{
		menu_destroy( hMenu );
		return PLUGIN_HANDLED;
	}
	
	new szData[ 6 ];
	new iAccess, hCallback;
	menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), _, _, hCallback );
	
	g_iChosenGame[ id ] = str_to_num( szData );
	
	if( g_iCurrentGame != LR_NONE )
	{
		menu_destroy( hMenu );
		g_iChosenGame[ id ] = LR_NONE;
		ColorChat( id, NORMAL, "%s ^x03Last Request^x01 is in progress.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	menu_destroy( hMenu );
	showPlayerMenu( id );
	
	return PLUGIN_HANDLED;
}

//////////////////////////////
//----- LR Player Menu -----//
//////////////////////////////
public showPlayerMenu( id )
{
	new hMenu = menu_create( "\yChoose your Opponent:", "PlayerMenu_Handler" );
	
	new szPlayerName[ 32 ], szInfo[ 6 ];
	
	for( new i = 1; i < g_iMaxPlayers; i++ )
	{
		if( !g_bAlive[ i ] || cs_get_user_team( i ) != CS_TEAM_CT )
			continue;
		
		get_user_name( i, szPlayerName, charsmax( szPlayerName ) );
		
		num_to_str( i, szInfo, charsmax( szInfo ) );
		
		menu_additem( hMenu, szPlayerName, szInfo );
	}
	
	menu_setprop( hMenu, MPROP_NEXTNAME, "Next Page" );
	menu_setprop( hMenu, MPROP_BACKNAME, "Previous Page" );
	
	menu_display( id, hMenu, 0 );
	return PLUGIN_HANDLED;
}

public PlayerMenu_Handler( id, hMenu, iItem )
{	
	if( iItem == MENU_EXIT || !g_bAlive[ id ] || !g_bLastRequestAllowed || g_iCurrentGame != LR_NONE )
	{
		g_iChosenGame[ id ] = LR_NONE;
		
		menu_destroy( hMenu );
		return PLUGIN_HANDLED;
	}
	
	new szData[ 6 ], szPlayerName[ 64 ];
	new iAccess, hCallback;
	
	menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), szPlayerName, charsmax( szPlayerName ), hCallback );
	
	new iGuard = str_to_num( szData );
	
	if( !g_bAlive[ iGuard ] || cs_get_user_team( iGuard ) != CS_TEAM_CT )
	{
		ColorChat( id, NORMAL, "%s That player is no longer available for ^x03Last Request^x01.", g_szPrefix );
		menu_destroy( hMenu );
		
		showPlayerMenu( id );
		return PLUGIN_HANDLED;
	}
	
	StartGame( g_iChosenGame[ id ], id, iGuard );
	
	menu_destroy( hMenu );
	return PLUGIN_HANDLED;
}

/////////////////////////////////
//----- START LASTREQUEST -----//
/////////////////////////////////
public StartGame( iGame, iPrisoner, iGuard )
{
	g_iCurrentDay = DAY_NONE;
	g_iCurrentGame = iGame;
	
	g_iLastRequest[ LR_PRISONER ] = iPrisoner;
	g_iLastRequest[ LR_GUARD ] = iGuard;
	
	if( !is_user_alive( iPrisoner ) || !is_user_alive( iGuard ) )
		return HAM_IGNORED;
	
	Reset();
	RemoveAllTasks();
	
	set_user_footsteps( iPrisoner, 0 );
	set_user_footsteps( iGuard, 0 );
	
	set_user_rendering( iPrisoner );
	set_user_rendering( iGuard );
	
	set_user_gravity( iPrisoner );
	set_user_gravity( iGuard );	
	
	cs_reset_user_model( iPrisoner );
	cs_reset_user_model( iGuard );
	
	parachute_reset( iPrisoner );
	parachute_reset( iGuard );
	
	set_user_gnvision( iPrisoner, 0 );
	set_user_gnvision( iGuard, 0 );
	
	server_cmd( "mp_footsteps 1" );
	server_cmd( "sv_gravity 800" );
	
	engfunc( EngFunc_LightStyle, 0, "m" );
	msg_create_fog( 0, 0, 0, 0 );

	client_cmd( 0, "mp3 stop" );
	client_cmd( 0, "stopsound" );
	
	if( get_user_weapon( iPrisoner ) == CSW_KNIFE )
		set_pev( iPrisoner, pev_viewmodel2, "models/v_knife.mdl" );
	
	if( get_user_weapon( iGuard ) == CSW_KNIFE )
		set_pev( iGuard, pev_viewmodel2, "models/v_knife.mdl" );
	
	if( get_user_weapon( iPrisoner ) == CSW_DEAGLE )
		set_pev( iPrisoner, pev_viewmodel2, "models/v_deagle.mdl" );
	
	if( get_user_weapon( iGuard ) == CSW_DEAGLE )
		set_pev( iGuard, pev_viewmodel2, "models/v_deagle.mdl" );
	
	new szPrisonerName[ 32 ], szGuardName[ 32 ];
	
	get_user_name( iPrisoner, szPrisonerName, charsmax( szPrisonerName ) );
	get_user_name( iGuard, szGuardName, charsmax( szGuardName ) );
	
	switch( iGame )
	{	
		case LR_KNIFE:
		{
			KnifeMenu( iPrisoner, iGuard );
		}
		
		case LR_S4S:
		{
			Shot4ShotWeaponMenu( iPrisoner, iGuard );
		}
		
		case LR_NADE:
		{
			if( get_user_noclip( iPrisoner ) || get_user_noclip( iGuard ) )
			{
				ExecuteHamB( Ham_CS_RoundRespawn, iPrisoner );
				set_user_noclip( iPrisoner, 0 );
				
				ExecuteHamB( Ham_CS_RoundRespawn, iGuard );
				set_user_noclip( iGuard, 0 );
			}
			
			StripPlayerWeapons( iPrisoner );
			give_item( iPrisoner, "weapon_hegrenade" );
			cs_set_user_bpammo( iPrisoner, CSW_HEGRENADE, 50 );
			set_user_health( iPrisoner, 100 );
			cs_set_user_armor( iPrisoner, 100, CS_ARMOR_VESTHELM );
			
			StripPlayerWeapons( iGuard );
			give_item( iGuard, "weapon_hegrenade" );
			cs_set_user_bpammo( iGuard, CSW_HEGRENADE, 50 );
			set_user_health( iGuard, 100 );
			cs_set_user_armor( iGuard, 100, CS_ARMOR_VESTHELM );
			
			set_task( 0.1, "StartBeacon", iPrisoner );
			set_task( 0.1, "StartBeacon", iGuard );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03%s^x01!", g_szPrefix, szPrisonerName, szGuardName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner and Guard will attack each other with HE grenades until one dies.", g_szPrefix );
		}
		
		case LR_RACE:
		{
			if( get_user_noclip( iPrisoner ) || get_user_noclip( iGuard ) )
			{
				ExecuteHamB( Ham_CS_RoundRespawn, iPrisoner );
				set_user_noclip( iPrisoner, 0 );
				
				ExecuteHamB( Ham_CS_RoundRespawn, iGuard );
				set_user_noclip( iGuard, 0 );
			}
			
			StripPlayerWeapons( iPrisoner );
			set_user_health( iPrisoner, 100 );
			cs_set_user_armor( iPrisoner, 100, CS_ARMOR_VESTHELM );
			
			StripPlayerWeapons( iGuard );
			set_user_health( iGuard, 100 );
			cs_set_user_armor( iGuard, 100, CS_ARMOR_VESTHELM );
			
			set_task( 0.1, "StartBeacon", iPrisoner );
			set_task( 0.1, "StartBeacon", iGuard );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03%s^x01!", g_szPrefix, szPrisonerName, szGuardName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner and Guard have an even race based on prisoners rules. The loser dies.", g_szPrefix );
			ColorChat( iGuard, NORMAL, "%s Type /race to activate countdown.", g_szPrefix );
		}
		
		case LR_SPRAY:
		{
			if( get_user_noclip( iPrisoner ) || get_user_noclip( iGuard ) )
			{
				ExecuteHamB( Ham_CS_RoundRespawn, iPrisoner );
				set_user_noclip( iPrisoner, 0 );
				
				ExecuteHamB( Ham_CS_RoundRespawn, iGuard );
				set_user_noclip( iGuard, 0 );
			}
			
			StripPlayerWeapons( iPrisoner );
			server_cmd("decalfrequency 0");
			set_user_health( iPrisoner, 100 );
			cs_set_user_armor( iPrisoner, 100, CS_ARMOR_VESTHELM );
			
			StripPlayerWeapons( iGuard );
			server_cmd("decalfrequency 0");
			set_user_health( iGuard, 100 );
			cs_set_user_armor( iGuard, 100, CS_ARMOR_VESTHELM );
			
			set_task( 0.1, "StartBeacon", iPrisoner );
			set_task( 0.1, "StartBeacon", iGuard );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03%s^x01!", g_szPrefix, szPrisonerName, szGuardName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner chooses highest/lowest/furthest/closest spray at desired location. Prisoner may be more specific. The loser dies.", g_szPrefix );
		}
		
		case LR_GUNTOSS:
		{
			if( get_user_noclip( iPrisoner ) || get_user_noclip( iGuard ) )
			{
				ExecuteHamB( Ham_CS_RoundRespawn, iPrisoner );
				set_user_noclip( iPrisoner, 0 );
				
				ExecuteHamB( Ham_CS_RoundRespawn, iGuard );
				set_user_noclip( iGuard, 0 );
			}
			
			StripPlayerWeapons( iPrisoner );
			cs_set_weapon_ammo( give_item( iPrisoner, "weapon_deagle" ), 0 );
			set_user_health( iPrisoner, 100 );
			cs_set_user_armor( iPrisoner, 100, CS_ARMOR_VESTHELM );
			
			StripPlayerWeapons( iGuard );
			cs_set_weapon_ammo( give_item( iGuard, "weapon_deagle" ), 0 );
			set_user_health( iGuard, 100 );
			cs_set_user_armor( iGuard, 100, CS_ARMOR_VESTHELM );
			
			set_task( 0.1, "StartBeacon", iPrisoner );
			set_task( 0.1, "StartBeacon", iGuard );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03%s^x01!", g_szPrefix, szPrisonerName, szGuardName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner and Guard will see who can toss their weapon the best, based on rules given.", g_szPrefix );
		}
		
		case LR_NADETOSS:
		{
			if( get_user_noclip( iPrisoner ) || get_user_noclip( iGuard ) )
			{
				ExecuteHamB( Ham_CS_RoundRespawn, iPrisoner );
				set_user_noclip( iPrisoner, 0 );
				
				ExecuteHamB( Ham_CS_RoundRespawn, iGuard );
				set_user_noclip( iGuard, 0 );
			}
			
			StripPlayerWeapons( iPrisoner );
			give_item( iPrisoner, "weapon_smokegrenade" );
			ColorChat( iPrisoner, NORMAL, "%s Do not throw the nade until you are doing the toss!", g_szPrefix );
			set_user_health( iPrisoner, 100 );
			cs_set_user_armor( iPrisoner, 100, CS_ARMOR_VESTHELM );
			
			StripPlayerWeapons( iGuard );
			give_item( iGuard, "weapon_smokegrenade" );
			ColorChat( iGuard, NORMAL, "%s Do not throw the nade until you are doing the toss!", g_szPrefix );
			set_user_health( iGuard, 100 );
			cs_set_user_armor( iGuard, 100, CS_ARMOR_VESTHELM );
			
			set_task( 0.1, "StartBeacon", iPrisoner );
			set_task( 0.1, "StartBeacon", iGuard );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03%s^x01!", g_szPrefix, szPrisonerName, szGuardName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner and Guard will see who can throw their nade the best, based on rules given.", g_szPrefix );
		}
		
		case LR_SCOUT:
		{
			if( get_user_noclip( iPrisoner ) || get_user_noclip( iGuard ) )
			{
				ExecuteHamB( Ham_CS_RoundRespawn, iPrisoner );
				set_user_noclip( iPrisoner, 0 );
				
				ExecuteHamB( Ham_CS_RoundRespawn, iGuard );
				set_user_noclip( iGuard, 0 );
			}
			
			StripPlayerWeapons( iPrisoner );
			give_item( iPrisoner, "weapon_scout" );
			cs_set_user_bpammo( iPrisoner, CSW_SCOUT, 200 );
			set_user_health( iPrisoner, 100 );
			cs_set_user_armor( iPrisoner, 100, CS_ARMOR_VESTHELM );
			
			StripPlayerWeapons( iGuard );
			give_item( iGuard, "weapon_scout" );
			cs_set_user_bpammo( iGuard, CSW_SCOUT, 200 );
			set_user_health( iGuard, 100 );
			cs_set_user_armor( iGuard, 100, CS_ARMOR_VESTHELM );
			
			set_task( 0.1, "StartBeacon", iPrisoner );
			set_task( 0.1, "StartBeacon", iGuard );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03%s^x01!", g_szPrefix, szPrisonerName, szGuardName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner and Guard will attack each other with scouts until one dies.", g_szPrefix );
		}
		
		case LR_SHOTGUN:
		{
			if( get_user_noclip( iPrisoner ) || get_user_noclip( iGuard ) )
			{
				ExecuteHamB( Ham_CS_RoundRespawn, iPrisoner );
				set_user_noclip( iPrisoner, 0 );
				
				ExecuteHamB( Ham_CS_RoundRespawn, iGuard );
				set_user_noclip( iGuard, 0 );
			}
			
			StripPlayerWeapons( iPrisoner );
			give_item( iPrisoner, "weapon_m3" );
			cs_set_user_bpammo( iPrisoner, CSW_M3, 500 );
			set_user_health( iPrisoner, 500 );
			cs_set_user_armor( iPrisoner, 100, CS_ARMOR_VESTHELM );
			
			StripPlayerWeapons( iGuard );
			give_item( iGuard, "weapon_m3" );
			cs_set_user_bpammo( iGuard, CSW_M3, 500 );
			set_user_health( iGuard, 500 );
			cs_set_user_armor( iGuard, 100, CS_ARMOR_VESTHELM );
			
			set_task( 0.1, "StartBeacon", iPrisoner );
			set_task( 0.1, "StartBeacon", iGuard );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03%s^x01!", g_szPrefix, szPrisonerName, szGuardName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner and Guard have 500 HP and will attack each other with shotguns until one dies.", g_szPrefix );
		}
		
		case LR_SHOWDOWN:
		{
			if( get_user_noclip( iPrisoner ) || get_user_noclip( iGuard ) )
			{
				ExecuteHamB( Ham_CS_RoundRespawn, iPrisoner );
				set_user_noclip( iPrisoner, 0 );
				
				ExecuteHamB( Ham_CS_RoundRespawn, iGuard );
				set_user_noclip( iGuard, 0 );
			}
			
			strip_user_weapons( iPrisoner );
			set_user_health( iPrisoner, 100 );
			cs_set_user_armor( iPrisoner, 100, CS_ARMOR_VESTHELM );
			
			StripPlayerWeapons( iGuard );
			set_user_health( iGuard, 100 );
			cs_set_user_armor( iGuard, 100, CS_ARMOR_VESTHELM );
			
			set_task( 0.1, "StartBeacon", iPrisoner );
			set_task( 0.1, "StartBeacon", iGuard );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03%s^x01!", g_szPrefix, szPrisonerName, szGuardName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner and guard will line up back to back and follow the directions given.", g_szPrefix );
			ColorChat( iPrisoner, NORMAL, "%s Type ^x04/showdown^x01 to begin ^x04Showdown^x01.", g_szPrefix );
		}
		
		case LR_GLOBAL_WAR:
		{
			new ct[ 32 ], ctNum;
			get_players( ct, ctNum, "ae", "CT" );
			
			new t[ 32 ], tNum;
			get_players( t, tNum, "ae", "TERRORIST" );
			
			new guard;
			for(new i = 0; i < ctNum; i++) 
			{
				guard = ct[ i ];
				if( get_user_noclip( guard ) )
				{
					ExecuteHamB( Ham_CS_RoundRespawn, guard );
					set_user_noclip( guard, 0 );
				}
				
				set_user_health( guard, 100 );	
				set_user_rendering( guard );
				set_user_gravity( guard );
			}
			
			new prisoner;
			for( new i = 0; i < tNum; i++ )
			{
				prisoner = t[ i ];
				if( get_user_noclip( prisoner ) )
				{
					ExecuteHamB( Ham_CS_RoundRespawn, prisoner );
					set_user_noclip( prisoner, 0 );
				}
				
				set_user_health( prisoner, 100 );
				set_user_gravity( prisoner );
			}
			
			new players[ 32 ], num, player;
			get_players( players, num );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				StripPlayerWeapons( player );
				set_user_health( player, 100 );
			}
			
			gCount = 5;
			gRebelRequest = 1;
			set_task( 1.0, "giveGlobalWarWeapons", TASK_GLOBAL_WAR, _, _, "a", gCount + 1 );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 has chosen ^x03%s^x01!", g_szPrefix, szPrisonerName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 It is now a free-for-all. Every man for himself.", g_szPrefix );
		}
		
		case LR_CUSTOM:
		{
			if( get_user_noclip( iPrisoner ) || get_user_noclip( iGuard ) )
			{
				ExecuteHamB( Ham_CS_RoundRespawn, iPrisoner );
				set_user_noclip( iPrisoner, 0 );
				
				ExecuteHamB( Ham_CS_RoundRespawn, iGuard );
				set_user_noclip( iGuard, 0 );
			}
			
			StripPlayerWeapons( iPrisoner );
			set_user_health( iPrisoner, 100 );
			
			StripPlayerWeapons( iGuard );
			set_user_health( iGuard, 100 );
			
			set_task( 0.1, "StartBeacon", iPrisoner );
			set_task( 0.1, "StartBeacon", iGuard );
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03%s^x01!", g_szPrefix, szPrisonerName, szGuardName, g_szGameNames[ iGame ] );
			ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner may perform a custom last request (Examples: Russian Roulette, Soccer Game, etc).", g_szPrefix );
		}
		
		case LR_SPECIAL:
		{
			new iOffset = 0;
			
			iOffset =  min( MAX_SPECIALROUNDS, g_iSpecialLimit ) - g_iSpecialRounds;
			if( iOffset > 0 )
			{
			 	ColorChat( iPrisoner, NORMAL, "%s You cannot choose this option for another %d rounds.", g_szPrefix, iOffset );
				return PLUGIN_HANDLED;
			}
			
			new players[ 32 ], num, player;
			get_players( players, num );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				if( get_user_noclip( player ) )
				{
					if( cs_get_user_team( player ) == CS_TEAM_T || cs_get_user_team( player ) == CS_TEAM_CT )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, player );
						set_user_noclip( player, 0 );
					}
				}
				
				set_user_health( player, 100 );
				set_user_footsteps( player, 0 );
				set_user_rendering( player );
				set_user_gravity( player );
				cs_reset_user_model( player );
				parachute_reset( player );
				set_user_gnvision( player, 0 );
				
				if( get_user_weapon( player ) == CSW_KNIFE || get_user_weapon( player ) == CSW_AWP )
				{
					set_pev( player, pev_viewmodel2, "models/v_knife.mdl" );
					if( cs_get_user_team( player ) == CS_TEAM_CT )
					{
						StripPlayerWeapons( player );
						give_item( player, "weapon_m4a1" )
						give_item( player, "weapon_deagle" );
						cs_set_user_bpammo( player, CSW_M4A1, 500 );
						cs_set_user_bpammo( player, CSW_DEAGLE, 200 );
					}
				}
			}
			
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 will choose the special day next round. ^x03Kill him^x01.", g_szPrefix, szPrisonerName );
			
			g_iSpecialRounds = 0;
			gRebelRequest = 1;
			g_bSpecialLr[ iPrisoner ] = true;
		}
		
		case LR_FREE:
		{
			new players[ 32 ], num, player;
			get_players( players, num );
			
			for( new i = 0; i < num; i++ )
			{
				player = players[ i ];
				if( get_user_noclip( player ) )
				{
					if( cs_get_user_team( player ) == CS_TEAM_T || cs_get_user_team( player ) == CS_TEAM_CT )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, player );
						set_user_noclip( player, 0 );
					}
				}
				
				set_user_health( player, 100 );
				set_user_footsteps( player, 0 );
				set_user_rendering( player );
				set_user_gravity( player );
				cs_reset_user_model( player );
				parachute_reset( player );
				set_user_gnvision( player, 0 );
				
				if( get_user_weapon( player ) == CSW_KNIFE || get_user_weapon( player ) == CSW_AWP )
				{
					set_pev( player, pev_viewmodel2, "models/v_knife.mdl" );
					if( cs_get_user_team( player ) == CS_TEAM_CT )
					{
						give_item( player, "weapon_m4a1" )
						give_item( player, "weapon_deagle" );
						cs_set_user_bpammo( player, CSW_M4A1, 500 );
						cs_set_user_bpammo( player, CSW_DEAGLE, 200 );
					}
				}
			}
			
			ColorChat( 0, NORMAL, "%s ^x04%s^x01 will will receive a Freeday next round. ^x03Kill him^x01.", g_szPrefix, szPrisonerName );
			
			gRebelRequest = 1;
			g_bFreedayLr[ iPrisoner ] = true;
		}
		
		case LR_RAMBO:
		{
			new ct[ 32 ], ctNum;
			get_players( ct, ctNum, "ae", "CT" );
			
			new t[ 32 ], tNum;
			get_players( t, tNum, "ae", "TERRORIST" );
			
			if( ctNum < 3 )
			{
				client_print( iPrisoner, print_chat, "At least 3 Guards must be alive for Rambo." );
				g_iCurrentGame = LR_NONE;
			}
			
			else
			{
				new guard;
				for( new i = 0; i < ctNum; i++ ) 
				{
					guard = ct[ i ];
					if( get_user_noclip( guard ) )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, guard );
						set_user_noclip( guard, 0 );
					}
					
					set_user_health( guard, 100 );
					set_user_rendering( guard );
					set_user_footsteps( guard, 0 );
					set_user_gravity( guard );
					cs_reset_user_model( guard );
					parachute_reset( guard );
					set_user_gnvision( guard, 0 );
					
					if( get_user_weapon( guard ) == CSW_KNIFE )
					{
						set_pev( guard, pev_viewmodel2, "models/v_knife.mdl" );
						give_item( guard, "weapon_m4a1" )
						give_item( guard, "weapon_deagle" );
						cs_set_user_bpammo( guard, CSW_M4A1, 500 );
						cs_set_user_bpammo( guard, CSW_DEAGLE, 200 );
					}
				}
				
				new prisoner;
				for( new i = 0; i < tNum; i++ )
				{
					prisoner = t[ i ];
					if( get_user_noclip( prisoner ) )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, prisoner );
						set_user_noclip( prisoner, 0 );
					}
					
					StripPlayerWeapons( prisoner );
					give_item( prisoner, "weapon_m249" );
					cs_set_user_bpammo( prisoner, CSW_M249, 300 );
					set_user_health( prisoner, 250 );
					set_user_rendering( prisoner );
					set_user_footsteps( prisoner, 0 );
					set_user_gravity( prisoner );
				}
				
				gRebelRequest = 1;
				client_cmd( 0, "spk ^"%s^"", rambosound );
				ColorChat( 0, NORMAL, "%s ^x04%s^x01 is now Rambo and has a machine gun with 250 HP. ^x03KILL HIM^x01!!", g_szPrefix, szPrisonerName );
			}
		}
		
		case LR_DUDE:
		{
			new ct[ 32 ], ctNum;
			get_players( ct, ctNum, "ae", "CT" );
			
			new t[ 32 ], tNum;
			get_players( t, tNum, "ae", "TERRORIST" );
			
			if( ctNum < 3 )
			{
				client_print( iPrisoner, print_chat, "At least 3 Guards must be alive for Deagle Dude." );
				g_iCurrentGame = LR_NONE;
			}
			
			else
			{
				new guard;
				for( new i = 0; i < ctNum; i++ ) 
				{
					guard = ct[ i ];
					if( get_user_noclip( guard ) )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, guard );
						set_user_noclip( guard, 0 );
					}
					
					set_user_health( guard, 100 );	
					set_user_rendering( guard );
					set_user_footsteps( guard, 0 );
					set_user_gravity( guard );
					cs_reset_user_model( guard );
					parachute_reset( guard );
					set_user_gnvision( guard, 0 );
					
					if( get_user_weapon( guard ) == CSW_KNIFE )
					{
						set_pev( guard, pev_viewmodel2, "models/v_knife.mdl" );
						give_item( guard, "weapon_m4a1" )
						give_item( guard, "weapon_deagle" );
						cs_set_user_bpammo( guard, CSW_M4A1, 500 );
						cs_set_user_bpammo( guard, CSW_DEAGLE, 200 );
					}
				}
				
				new prisoner;
				for( new i = 0; i < tNum; i++ )
				{
					prisoner = t[ i ];
					if( get_user_noclip( prisoner ) )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, prisoner );
						set_user_noclip( prisoner, 0 );
					}
					
					StripPlayerWeapons( prisoner );
					give_item( prisoner, "weapon_deagle" );
					cs_set_user_bpammo( prisoner, CSW_DEAGLE, 200 );
					set_user_health( prisoner, 500 );
					set_user_gravity( prisoner );
					set_user_rendering( prisoner );
					set_user_footsteps( prisoner, 0 );
				}
				
				gRebelRequest = 1;
				ColorChat( 0, NORMAL, "%s ^x04%s^x01 is now Deagle Dude and has a deagle with 500 HP. ^x03KILL HIM^x01!!", g_szPrefix, szPrisonerName );
			}
		}
				
		case LR_CRAZY:
		{
			new ct[ 32 ], ctNum;
			get_players( ct, ctNum, "ae", "CT" );
			
			new t[ 32 ], tNum;
			get_players( t, tNum, "ae", "TERRORIST" );
			
			if( ctNum < 2 )
			{
				client_print( iPrisoner, print_chat, "At least 2 Guards must be alive for Crazy Terrorist." );
				g_iCurrentGame = LR_NONE;
			}
			
			else
			{
				new guard;
				for( new i = 0; i < ctNum; i++ ) 
				{
					guard = ct[ i ];
					if( get_user_noclip( guard ) )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, guard );
						set_user_noclip( guard, 0 );
					}
					
					set_user_health( guard, 100 );
					set_user_rendering( guard );
					set_user_footsteps( guard, 0 );
					set_user_gravity( guard );
					cs_reset_user_model( guard );
					parachute_reset( guard );
					set_user_gnvision( guard, 0 );
					
					if( get_user_weapon( guard ) == CSW_KNIFE )
					{
						set_pev( guard, pev_viewmodel2, "models/v_knife.mdl" );
						give_item( guard, "weapon_m4a1" )
						give_item( guard, "weapon_deagle" );
						cs_set_user_bpammo( guard, CSW_M4A1, 500 );
						cs_set_user_bpammo( guard, CSW_DEAGLE, 200 );
					}
				}
				
				new prisoner;
				for( new i = 0; i < tNum; i++ )
				{
					prisoner = t[ i ];
					if( get_user_noclip( prisoner ) )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, prisoner );
						set_user_noclip( prisoner, 0 );
					}
					
					StripPlayerWeapons( prisoner );
					give_item( prisoner, "weapon_ak47" );
					cs_set_user_bpammo( prisoner, CSW_AK47, 500 );
					set_user_rendering( prisoner, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 14 );
					set_user_health( prisoner, 1 );
					set_user_gravity( prisoner );
					set_user_footsteps( prisoner, 0 );
				}
				
				gRebelRequest = 1;
				ColorChat( 0, NORMAL, "%s ^x04%s^x01 is the Crazy Terrorist and has stealth, an AK47, and 1 HP. ^x03KILL HIM^x01!!", g_szPrefix, szPrisonerName );
			}
		}
		
		case LR_HIDDEN:
		{
			new ct[ 32 ], ctNum;
			get_players( ct, ctNum, "ae", "CT" );
			
			new t[ 32 ], tNum;
			get_players( t, tNum, "ae", "TERRORIST" );
			
			if( ctNum < 3 )
			{
				client_print( iPrisoner, print_chat, "At least 3 Guards must be alive for The Hidden." );
				g_iCurrentGame = LR_NONE;
			}
			
			else
			{			
				new guard;
				for( new i = 0; i < ctNum; i++ ) 
				{
					guard = ct[ i ];
					if( get_user_noclip( guard ) )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, guard );
						set_user_noclip( guard, 0 );
					}
					
					StripPlayerWeapons( guard );
					set_user_health( guard, 100 );
					set_user_rendering( guard );
					set_user_footsteps( guard, 0 );
					set_user_gravity( guard );
					cs_reset_user_model( guard );
					parachute_reset( guard );
					set_user_gnvision( guard, 0 );
					
					if( get_user_weapon( guard ) == CSW_KNIFE )
					{
						set_pev( guard, pev_viewmodel2, "models/v_knife.mdl" );
						give_item( guard, "weapon_m4a1" )
						give_item( guard, "weapon_deagle" );
						cs_set_user_bpammo( guard, CSW_M4A1, 500 );
						cs_set_user_bpammo( guard, CSW_DEAGLE, 200 );
					}
				}
				
				new prisoner;
				for( new i = 0; i < tNum; i++ )
				{
					prisoner = t[ i ];
					if( get_user_noclip( prisoner ) )
					{
						ExecuteHamB( Ham_CS_RoundRespawn, prisoner );
						set_user_noclip( prisoner, 0 );
					}
					
					StripPlayerWeapons( prisoner );
					set_user_rendering( prisoner, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 14 );
					set_user_health( prisoner, 100 );
					set_user_gravity( prisoner );
					set_user_footsteps( prisoner, 1 );
				}
				
				gRebelRequest = 1;
				ColorChat( 0, NORMAL, "%s ^x04%s^x01 is The Hidden Terrorist and has stealth. ^x03KILL HIM BEFORE TIME RUNS OUT^x01!!", g_szPrefix, szPrisonerName );
				
				gTimeLeft = 60;
				set_task( 1.0, "HiddenCountdown", prisoner + 255, _, _, "b", gTimeLeft + 1 );
				set_hudmessage( random_num( 1, 255 ), random_num( 1, 255 ), random_num( 1, 255 ), -1.0, -1.0, 0, 6.0, 20.0 );
				show_hudmessage( 0, "= KILL THE HIDDEN TERRORIST =" );
			}
		}
		
		case LR_KAMIKAZE:
		{
			new ct[ 32 ], ctNum;
			get_players( ct, ctNum, "ae", "CT" );
			
			new t[ 32 ], tNum;
			get_players( t, tNum, "ae", "TERRORIST" );
			
			if( ctNum < 2 )
			{
				client_print( iPrisoner, print_chat, "At least 2 Guards must be alive for Kamikaze." );
				g_iCurrentGame = LR_NONE;
			}
			
			else
			{
				new guard;
				for( new i = 0; i < ctNum; i++ ) 
				{
					guard = ct[ i ];
					set_user_rendering( guard );
					set_user_footsteps( guard, 0 );
					set_user_gravity( guard );
					cs_reset_user_model( guard );
					parachute_reset( guard );
					set_user_gnvision( guard, 0 );
				}
				
				new prisoner;
				for( new i = 0; i < tNum; i++ )
				{
					prisoner = t[ i ];
					StripPlayerWeapons( prisoner );
					set_user_gravity( prisoner );
					set_user_footsteps( prisoner, 0 );
					set_task( 0.1, "Task_Kamikaze", prisoner, _, _, "a", 1 );
				}
				
				gRebelRequest = 1;
				ColorChat( 0, NORMAL, "%s ^x04%s^x01 has ^x04Kamikazied^x01!", g_szPrefix, szPrisonerName );
			}
		}
	}
	return PLUGIN_HANDLED;
}

////////////////////////////////
//----- LR Knife HP Menu -----//
////////////////////////////////
public KnifeMenu ( id, iGuard )
{
	new hKnifeMenu = menu_create( "Choose HP Amount:", "KnifeMenu_Handler" );
	menu_additem( hKnifeMenu, "35 HP", "35" );
	menu_additem( hKnifeMenu, "100 HP", "100" );
	menu_additem( hKnifeMenu, "250 HP", "250" );
	menu_additem( hKnifeMenu, "1000 HP", "1000" );
	
	menu_setprop( hKnifeMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, hKnifeMenu, 0 );
}

public KnifeMenu_Handler ( id, hKnifeMenu, iItem )
{
	new g_iKnifeHP;
	if( iItem == MENU_EXIT )
	{
		menu_destroy( hKnifeMenu );
		return PLUGIN_HANDLED;
	}
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hKnifeMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iKnifeHP = str_to_num( szData );
	
	g_iCurrentGame = LR_KNIFE;
	
	new tempid = g_iLastRequest[ LR_GUARD ];
	
	if( get_user_noclip( id ) || get_user_noclip( tempid ) )
	{
		ExecuteHamB( Ham_CS_RoundRespawn, id );
		set_user_noclip( id, 0 );
		
		ExecuteHamB( Ham_CS_RoundRespawn, tempid );
		set_user_noclip( tempid, 0 );
	}
	
	set_user_health( id, g_iKnifeHP );
	set_user_health( tempid, g_iKnifeHP );
	
	StripPlayerWeapons( id );
	StripPlayerWeapons( tempid );
	
	cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM );
	cs_set_user_armor( tempid, 100, CS_ARMOR_VESTHELM );
	
	new szPrisonerName[ 32 ], szGuardName[ 32 ];
	
	get_user_name( id, szPrisonerName, 31 );
	get_user_name( tempid, szGuardName, 31 );
	
	set_task( 0.1, "StartBeacon", id );
	set_task( 0.1, "StartBeacon", tempid );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03Knife Battle^x01 with %i HP!", g_szPrefix, szPrisonerName, szGuardName, g_iKnifeHP );
	ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner and Guard knife it out until one is dead.", g_szPrefix );
	
	return PLUGIN_HANDLED;
}

////////////////////////////////
//----- Shot 4 Shot Menu -----//
////////////////////////////////
public Shot4ShotWeaponMenu( id, iGuard)
{
	new hShotForShotMenu = menu_create( "Choose Your Weapon:", "Shot4ShotWeaponMenu_Handler" );
	menu_additem( hShotForShotMenu, "Deagle", "0" );
	menu_additem( hShotForShotMenu, "USP", "1" );
	menu_additem( hShotForShotMenu, "Ak-47", "2" );
	menu_additem( hShotForShotMenu, "M4a1", "3" );
	menu_additem( hShotForShotMenu, "MP5", "4" );
	menu_additem( hShotForShotMenu, "Scout", "5" );
	menu_additem( hShotForShotMenu, "Para (M249)", "6" );
	
	menu_setprop( hShotForShotMenu, MPROP_EXIT, MEXIT_ALL );
	menu_display( id, hShotForShotMenu, 0 );
}

public Shot4ShotWeaponMenu_Handler( id, hShotForShotMenu, iItem )
{
	if( iItem == MENU_EXIT )
	{
		menu_destroy( hShotForShotMenu );
		return PLUGIN_HANDLED;
	}
	
	new szData[ 6 ], iAccess, hCallback;
	
	menu_item_getinfo( hShotForShotMenu, iItem, iAccess, szData, 5, _, _, hCallback );
	
	g_iS4SWeapon = str_to_num( szData );
	
	g_iCurrentGame = LR_S4S;
	
	new tempid = g_iLastRequest[ LR_GUARD ];
	
	if( get_user_noclip( id ) || get_user_noclip( tempid ) )
	{
		ExecuteHamB( Ham_CS_RoundRespawn, id );
		set_user_noclip( id, 0 );
		
		ExecuteHamB( Ham_CS_RoundRespawn, tempid );
		set_user_noclip( tempid, 0 );
	}
	
	strip_user_weapons( id );
	strip_user_weapons( tempid );
	
	set_user_health( id, 100 );
	set_user_health( tempid, 100 );
	
	cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM );
	cs_set_user_armor( tempid, 100, CS_ARMOR_VESTHELM );
	
	switch( g_iS4SWeapon )
	{
		case S4S_DEAGLE:
		{
			if( id == g_iLastRequest[ LR_PRISONER ] )
			{
				cs_set_weapon_ammo( give_item( id, "weapon_deagle" ), 1 );
			}
			
			if( tempid == g_iLastRequest[ LR_GUARD ] )
			{
				cs_set_weapon_ammo( give_item( tempid, "weapon_deagle" ), 0 );
			}
		}
		
		case S4S_USP:
		{
			if( id == g_iLastRequest[ LR_PRISONER ] )
			{
				cs_set_weapon_ammo( give_item( id, "weapon_usp" ), 1 );
			}
			
			if( tempid == g_iLastRequest[ LR_GUARD ] )
			{
				cs_set_weapon_ammo( give_item( tempid, "weapon_usp" ), 0 );
			}
		}
		
		case S4S_AK:
		{
			if( id == g_iLastRequest[ LR_PRISONER ] )
			{
				cs_set_weapon_ammo( give_item( id, "weapon_ak47" ), 1 );
			}
			
			if( tempid == g_iLastRequest[ LR_GUARD ] )
			{
				cs_set_weapon_ammo( give_item( tempid, "weapon_ak47" ), 0 );
			}
		}
		
		case S4S_M4A1:
		{
			if( id == g_iLastRequest[ LR_PRISONER ] )
			{
				cs_set_weapon_ammo( give_item( id, "weapon_m4a1" ), 1 );
			}
			
			if( tempid == g_iLastRequest[ LR_GUARD ] )
			{
				cs_set_weapon_ammo( give_item( tempid, "weapon_m4a1" ), 0 );
			}
		}
		
		case S4S_MP5:
		{
			if( id == g_iLastRequest[ LR_PRISONER ] )
			{
				cs_set_weapon_ammo( give_item( id, "weapon_mp5navy" ), 1 );
			}
			
			if( tempid == g_iLastRequest[ LR_GUARD ] )
			{
				cs_set_weapon_ammo( give_item( tempid, "weapon_mp5navy" ), 0 );
			}
		}
		
		case S4S_SCOUT:
		{
			if( id == g_iLastRequest[ LR_PRISONER ] )
			{
				cs_set_weapon_ammo( give_item( id, "weapon_scout" ), 1 );
			}
			
			if( tempid == g_iLastRequest[ LR_GUARD ] )
			{
				cs_set_weapon_ammo( give_item( tempid, "weapon_scout" ), 0 );
			}
		}
		
		case S4S_PARA:
		{
			if( id == g_iLastRequest[ LR_PRISONER ] )
			{
				cs_set_weapon_ammo( give_item( id, "weapon_m249" ), 1 );
			}
			
			if( tempid == g_iLastRequest[ LR_GUARD ] )
			{
				cs_set_weapon_ammo( give_item( tempid, "weapon_m249" ), 0 );
			}
		}
	}
	
	new szPrisonerName[ 32 ], szGuardName[ 32 ];
	
	get_user_name( id, szPrisonerName, 31 );
	get_user_name( tempid, szGuardName, 31 );
	
	set_task( 0.1, "StartBeacon", id );
	set_task( 0.1, "StartBeacon", tempid );
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 against ^x04%s^x01 in a ^x03Shot 4 Shot^x01!", g_szPrefix, szPrisonerName, szGuardName );
	ColorChat( 0, NORMAL, "%s ^x04Objective:^x01 Prisoner and Guard take turns shooting at each other until one is dead.", g_szPrefix );
	
	return PLUGIN_HANDLED;
}

/////////////////////////////////////////////////
//------------ SHOT 4 SHOT BULLETS ------------//
/////////////////////////////////////////////////
public Ham_DeagleFire_Post( iEnt )
{
	if( g_iCurrentGame != LR_S4S )
	{
		return;
	}
	
	new id = pev( iEnt, pev_owner );
	new iOpponentEnt;
	
	if( cs_get_weapon_ammo( iEnt ) == 0 )
	{
		if( id == g_iLastRequest[ LR_PRISONER ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_deagle", g_iLastRequest[ LR_GUARD ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
		
		else if( id == g_iLastRequest[ LR_GUARD ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_deagle", g_iLastRequest[ LR_PRISONER ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
	}
}

public Ham_UspFire_Post( iEnt )
{
	if( g_iCurrentGame != LR_S4S )
	{
		return;
	}
	
	new id = pev( iEnt, pev_owner );
	new iOpponentEnt;
	
	if( cs_get_weapon_ammo( iEnt ) == 0 )
	{
		if( id == g_iLastRequest[ LR_PRISONER ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_usp", g_iLastRequest[ LR_GUARD ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
		
		else if( id == g_iLastRequest[ LR_GUARD ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_usp", g_iLastRequest[ LR_PRISONER ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
	}
}

public Ham_M4A1Fire_Post( iEnt )
{
	if( g_iCurrentGame != LR_S4S )
	{
		return;
	}
	
	new id = pev( iEnt, pev_owner );
	new iOpponentEnt;
	
	if( cs_get_weapon_ammo( iEnt ) == 0 )
	{
		if( id == g_iLastRequest[ LR_PRISONER ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_m4a1", g_iLastRequest[ LR_GUARD ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
		
		else if( id == g_iLastRequest[ LR_GUARD ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_m4a1", g_iLastRequest[ LR_PRISONER ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
	}
}

public Ham_AK47Fire_Post( iEnt )
{
	if( g_iCurrentGame != LR_S4S )
	{
		return;
	}
	
	new id = pev( iEnt, pev_owner );
	new iOpponentEnt;
	
	if( cs_get_weapon_ammo( iEnt ) == 0 )
	{
		if( id == g_iLastRequest[ LR_PRISONER ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_ak47", g_iLastRequest[ LR_GUARD ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
		
		else if( id == g_iLastRequest[ LR_GUARD ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_ak47", g_iLastRequest[ LR_PRISONER ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
	}
}

public Ham_Mp5Fire_Post( iEnt )
{
	if( g_iCurrentGame != LR_S4S )
	{
		return;
	}
	
	new id = pev( iEnt, pev_owner );
	new iOpponentEnt;
	
	if( cs_get_weapon_ammo( iEnt ) == 0 )
	{
		if( id == g_iLastRequest[ LR_PRISONER ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_mp5navy", g_iLastRequest[ LR_GUARD ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
		
		else if( id == g_iLastRequest[ LR_GUARD ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_mp5navy", g_iLastRequest[ LR_PRISONER ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
	}
}

public Ham_ScoutFire_Post( iEnt )
{
	if( g_iCurrentGame != LR_S4S )
	{
		return;
	}
	
	new id = pev( iEnt, pev_owner );
	new iOpponentEnt;
	
	if( cs_get_weapon_ammo( iEnt ) == 0 )
	{
		if( id == g_iLastRequest[ LR_PRISONER ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_scout", g_iLastRequest[ LR_GUARD ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
		
		else if( id == g_iLastRequest[ LR_GUARD ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_scout", g_iLastRequest[ LR_PRISONER ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
	}
}

public Ham_ParaFire_Post( iEnt )
{
	if( g_iCurrentGame != LR_S4S )
	{
		return;
	}
	
	new id = pev( iEnt, pev_owner );
	new iOpponentEnt;
	
	if( cs_get_weapon_ammo( iEnt ) == 0 )
	{
		if( id == g_iLastRequest[ LR_PRISONER ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_m249", g_iLastRequest[ LR_GUARD ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
		
		else if( id == g_iLastRequest[ LR_GUARD ] )
		{
			iOpponentEnt = fm_find_ent_by_owner( -1, "weapon_m249", g_iLastRequest[ LR_PRISONER ] );
			
			if( pev_valid( iOpponentEnt ) )
				cs_set_weapon_ammo( iOpponentEnt, 1 );
		}
	}
}

//////////////////////////////////////////////
//------------ NADE TOSS CODING ------------//
//////////////////////////////////////////////
public Forward_EntityThink_Pre( iEnt )
{
	if( !pev_valid( iEnt ) || g_iCurrentGame != LR_NADETOSS )
		return FMRES_IGNORED;
	
	new id = pev( iEnt, pev_owner );
	
	if( id != g_iLastRequest[ LR_PRISONER ] && id != g_iLastRequest[ LR_GUARD ] )
		return FMRES_IGNORED;
		
	new szModel[ 32 ];
	
	pev( iEnt, pev_model, szModel, charsmax( szModel ) );
	
	if( equal( szModel, "models/w_smokegrenade.mdl" ) )
	{
		set_pev( iEnt, pev_renderfx, kRenderFxGlowShell );
		set_pev( iEnt, pev_renderamt, 125.0 );
		set_pev( iEnt, pev_rendermode, kRenderTransAlpha );
		
		set_pev( iEnt, pev_rendercolor, id == g_iLastRequest[ LR_GUARD ] ? { 0.0, 0.0, 255.0 } : { 255.0, 0.0, 0.0 } );
		
		return FMRES_SUPERCEDE;
	}	
	
	return FMRES_IGNORED;
}

//////////////////////////////
//----- Race Countdown -----//
//////////////////////////////
public cmdRace( id )
{
	if( id != g_iLastRequest[ LR_GUARD ] )
	{
		ColorChat( id, RED, "You cannot use this command at this time." );
		return PLUGIN_HANDLED;
	}
	
	if( g_bCountdown_on )
	{
		ColorChat(id, RED, "%s There is already a^x03 countdown^x01 active.", g_szPrefix );
		return PLUGIN_HANDLED;
	}
	
	if( g_iCurrentGame == LR_RACE || g_iCurrentGame == LR_CUSTOM )
	{
		new RaceMenu = menu_create("\yRace CountDown Menu", "RaceMenu_handler");
		
		menu_additem( RaceMenu, "\w5 Seconds", "1", 0 );
		menu_additem( RaceMenu, "\w10 Seconds", "2", 0 );
		menu_additem( RaceMenu, "\w15 Seconds", "3", 0 );
		
		menu_setprop( RaceMenu, MPROP_EXIT, MEXIT_ALL );
		menu_display( id, RaceMenu, 0 );
		
		return PLUGIN_HANDLED;
	}
	
	else
	{
		ColorChat( id, RED, "You cannot use this command at this time." );
	}
	
	return PLUGIN_HANDLED;
}

public RaceMenu_handler( id, RaceMenu, item )
{
	if( item == MENU_EXIT )
	{
		menu_destroy( RaceMenu );
		return PLUGIN_HANDLED;
	}
	
	new Data[ 7 ], Name[ 64 ];
	new Access, Callback;
	menu_item_getinfo( RaceMenu, item, Access, Data,5, Name, 63, Callback );
	
	new Key = str_to_num( Data );
	
	switch( Key )
	{
		case 1:
		{
			gTimer = 5;
		}
		
		case 2:
		{
			gTimer = 10;
		}
		
		case 3:
		{
			gTimer = 15;
		}
	}
	
	g_bCountdown_on = true;
	g_bGet_name = false;
	countdown( id );
	menu_destroy( RaceMenu );
	return PLUGIN_HANDLED;
}

public countdown( id )
{
	if( !g_bGet_name )
		get_user_name( id, RaceName, 32 );
	
	switch( gTimer )
	{
		case 0:
		{
			set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 6.0, 3.0 );
			show_hudmessage( 0, "Go go go" );
			client_cmd( 0, "spk ^"sound/radio/com_go.wav^"" );
			g_bCountdown_on = false;
		}
		
		case 1:
		{
			client_cmd( 0, "spk ^"fvox/one.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 2:
		{
			client_cmd( 0, "spk ^"fvox/two.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 3:
		{
			client_cmd( 0, "spk ^"fvox/three.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 4:
		{
			client_cmd( 0, "spk ^"fvox/four.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 5:
		{
			client_cmd( 0, "spk ^"fvox/five.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 6:
		{
			client_cmd( 0, "spk ^"fvox/six.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		case 7:
		{
			client_cmd( 0, "spk ^"fvox/seven.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 8:
		{
			client_cmd( 0, "spk ^"fvox/eight.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 9:
		{
			client_cmd( 0, "spk ^"fvox/nine.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 10:
		{
			client_cmd( 0, "spk ^"fvox/ten.wav^"" );		
			set_task( 1.0, "countdown", 0 );
		}
		
		case 11:
		{
			client_cmd( 0, "spk ^"fvox/eleven.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 12:
		{
			client_cmd( 0, "spk ^"fvox/twelve.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 13:
		{
			client_cmd( 0, "spk ^"fvox/thirteen.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 14:
		{
			client_cmd( 0, "spk ^"fvox/fourteen.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
		
		case 15:
		{
			client_cmd( 0, "spk ^"fvox/fifteen.wav^"" );
			set_task( 1.0, "countdown", 0 );
		}
	}
	
	if( gTimer != 0 )
	{
		set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 6.0, 3.0 );
		show_hudmessage( 0, "%s started countdown: %i", RaceName, gTimer );
		gTimer--;
	}
	g_bGet_name = true;
}

///////////////////////////
//----- Showdown LR -----//
///////////////////////////
public cmdShowdown( id )
{
	if( id != g_iLastRequest[ LR_PRISONER ] )
	{
		ColorChat( id, NORMAL, "You cannot use this command at this time." );
		return PLUGIN_HANDLED;
	}
	
	if( g_iCurrentGame == LR_SHOWDOWN )
	{
		ColorChat( 0, NORMAL, "Showdown will begin in 10 seconds." );
		gCount = 10;
		set_task( 1.0, "countdownShowdown", _, _, _, "a", gCount + 1 );
	}
	
	else
	{
		ColorChat( id, NORMAL, "You cannot use this command at this time." );
	}
	
	return PLUGIN_HANDLED;
}

public countdownShowdown( iPrisoner, iGuard )
{
	new iPrisoner = g_iLastRequest[ LR_PRISONER ];
	new iGuard = g_iLastRequest[ LR_GUARD ];
	
	if( gCount > 5 )
	{
		set_hudmessage( 0, 255, 0, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 );
		show_hudmessage( 0, "Get back to back with your opponent. [%i]", gCount - 5 );
		
		gCount--;
	}
	
	else if( gCount > 0 )
	{
		set_hudmessage( 0, 255, 0, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 );
		show_hudmessage( 0, "Begin walking. Turn and shoot after the countdown finishes. [%i]", gCount );
		
		gCount--;
	}
	
	else
	{
		strip_user_weapons( iPrisoner );
		strip_user_weapons( iGuard );
		
		switch( random_num( 0, 5 ) )
		{
			case 0:
			{
				gWeaponID[iPrisoner] = give_item( iPrisoner, "weapon_fiveseven" );
				gWeaponID[iGuard] = give_item( iGuard, "weapon_fiveseven" );
				
				cs_set_weapon_ammo( gWeaponID[iPrisoner], 20 );
				cs_set_weapon_ammo( gWeaponID[iGuard], 20 );
				
				cs_set_user_bpammo( iPrisoner, CSW_FIVESEVEN, 200 );
				cs_set_user_bpammo( iGuard, CSW_FIVESEVEN, 200 );
			}
			
			case 1:
			{
				gWeaponID[iPrisoner] = give_item( iPrisoner, "weapon_elite" );
				gWeaponID[iGuard] = give_item( iGuard, "weapon_elite" );
				
				cs_set_weapon_ammo( gWeaponID[iPrisoner], 30 );
				cs_set_weapon_ammo( gWeaponID[iGuard], 30 );
				
				cs_set_user_bpammo( iPrisoner, CSW_ELITE, 200 );
				cs_set_user_bpammo( iGuard, CSW_ELITE, 200 );
			}
			
			case 2:
			{
				gWeaponID[iPrisoner] = give_item( iPrisoner, "weapon_deagle" );
				gWeaponID[iGuard] = give_item( iGuard, "weapon_deagle" );
				
				cs_set_weapon_ammo( gWeaponID[iPrisoner], 7 );
				cs_set_weapon_ammo( gWeaponID[iGuard], 7 );
				
				cs_set_user_bpammo( iPrisoner, CSW_DEAGLE, 200 );
				cs_set_user_bpammo( iGuard, CSW_DEAGLE, 200 );
			}
			
			case 3:
			{
				gWeaponID[iPrisoner] = give_item( iPrisoner, "weapon_p228" );
				gWeaponID[iGuard] = give_item( iGuard, "weapon_p228" );
				
				cs_set_weapon_ammo( gWeaponID[iPrisoner], 13 );
				cs_set_weapon_ammo( gWeaponID[iGuard], 13 );
				
				cs_set_user_bpammo( iPrisoner, CSW_P228, 200 );
				cs_set_user_bpammo( iGuard, CSW_P228, 200 );
			}
			
			case 4:
			{
				gWeaponID[iPrisoner] = give_item( iPrisoner, "weapon_usp" );
				gWeaponID[iGuard] = give_item( iGuard, "weapon_usp" );
				
				cs_set_weapon_ammo( gWeaponID[iPrisoner], 12 );
				cs_set_weapon_ammo( gWeaponID[iGuard], 12 );
				
				cs_set_user_bpammo( iPrisoner, CSW_USP, 200 );
				cs_set_user_bpammo( iGuard, CSW_USP, 200 );
			}
			
			case 5:
			{
				gWeaponID[iPrisoner] = give_item( iPrisoner, "weapon_glock18" );
				gWeaponID[iGuard] = give_item( iGuard, "weapon_glock18" );
				
				cs_set_weapon_ammo( gWeaponID[iPrisoner], 20 );
				cs_set_weapon_ammo( gWeaponID[iGuard], 20 );
				
				cs_set_user_bpammo( iPrisoner, CSW_GLOCK18, 200 );
				cs_set_user_bpammo( iGuard, CSW_GLOCK18, 200 );
			}
		}
	}
	
	return PLUGIN_HANDLED;
}

//////////////////////////////////////
//----- Give Global War Weapons-----//
//////////////////////////////////////
public giveGlobalWarWeapons()
{
	if( gCount )
	{
		set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.1, 1.0, 0.1, 0.1, 4 );
		show_hudmessage( 0, "You will be equipped in %i seconds.", gCount );
		
		gCount--;
		
		return PLUGIN_HANDLED;
	}
	
	new players[ 32 ], num, id;
	get_players( players, num );
	
	for( new i = 0; i < num; i++ )
	{
		id = players[i];
		if( is_user_alive( id ) )
		{
			gWeaponID[id] = give_item( id, "weapon_m4a1" );
			cs_set_weapon_ammo( gWeaponID[id], 30 );
			
			gWeaponID[id] = give_item( id, "weapon_deagle" );
			cs_set_weapon_ammo( gWeaponID[id], 7 );
			
			cs_set_user_bpammo( id, CSW_M4A1, 500 );
			cs_set_user_bpammo( id, CSW_DEAGLE, 200 );
				
			set_user_health( id, 100 );
			cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM );
		}
	}
		
	if( task_exists( TASK_GLOBAL_WAR ) )
		remove_task( TASK_GLOBAL_WAR );
	
	server_cmd( "mp_friendlyfire 1" );
	return PLUGIN_HANDLED;
}

///////////////////////////////////
//----- The Hidden Countdown-----//
///////////////////////////////////
public HiddenCountdown( id )
{
	id -= 255;
	
	new players[ 32 ], num;
	get_players( players, num, "ae", "CT" );
	
	
	if( !is_user_alive( id ) || num == 0 )
	{
		if( task_exists( id + 255 ) )
			remove_task( id + 255 );
	}
	
	if( gTimeLeft >= 0 )
	{
		set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.0, 1.0, 0.0, 0.0, 4 );
		show_hudmessage( 0, "%i Seconds Remaining to find the Hidden!", gTimeLeft );
		gTimeLeft--;
	}
	
	else
	{		
		for( new i = 0; i < num; i++ )
		{
			if( is_user_alive( players[i] ) )
			{
				user_silentkill( players[i] );
			}
		}
		
		set_hudmessage( 255, 255, 255, -1.0, 0.35, 0, 0.0, 5.0, 0.0, 0.0, 4 );
		show_hudmessage( 0, "Times Up!", gTimeLeft );
		
		if( task_exists( id + 255 ) )
			remove_task( id + 255 );
	}
	
	return PLUGIN_HANDLED;
}

//////////////////////
//----- Beacon -----//
//////////////////////

public StartBeacon()
{
	if( g_iCurrentGame == LR_NONE )
	{
		return;
	}
	
	new id;
	
	for( new i = 0; i < 2; i++ )
	{
		id = g_iLastRequest[ i ];
		
		static origin[3]
		
		get_user_origin( id, origin )
		message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
		write_byte( TE_BEAMCYLINDER )
		write_coord( origin[0] )	//position.x
		write_coord( origin[1] )	//position.y
		write_coord( origin[2]-20 )	//position.z
		write_coord( origin[0] )    	//axis.x
		write_coord( origin[1] )    	//axis.y
		write_coord( origin[2]+200 )	//axis.z
		write_short( g_iSprite )	//sprite index
		write_byte( 0 )       		//starting frame
		write_byte( 1 )       		//frame rate in 0.1's
		write_byte( 6 )        		//life in 0.1's
		write_byte( 4 )        		//line width in 0.1's
		write_byte( 1 )        		//noise amplitude in 0.01's
		
		switch( cs_get_user_team( id ) )
		{
			case CS_TEAM_CT:
			{
				write_byte( 0 );	//red
				write_byte( 0 );	//green
				write_byte( 255 );	//blue
			}
			
			case CS_TEAM_T:
			{
				write_byte( 255 );	//red
				write_byte( 0 );	//green
				write_byte( 0 );	//blue
			}
		}
		
		write_byte( 255 );			// brightness
		write_byte( 0 );			// scroll speed in 0.1's
		message_end();
	}
	set_task( 1.0, "StartBeacon", id );
}

//////////////////////////////////
//----- Kamikaze Explosion -----//
//////////////////////////////////
public Task_Kamikaze( id )
{
	new Origin[ 3 ];
	new Team = get_user_team( id );
	new Float:Dist;
	
	get_user_origin( id, Origin );
	for( new i = 0; i <= 3; i++ )
	{
		MakeExpl( id, Origin );
		MakeSmoke( id, Origin );
	}
	
	for( new i = 1; i <= g_iMaxPlayers; i++ ) if( is_user_alive( i ) && get_user_team( i ) != Team )
	{
		Dist = entity_range( id, i );
		if( Dist < ExplRange )
		{
			RadiusDmg( id, i, Dist );				
		}
	}
}

stock RadiusDmg( attacker, victim, Float:Dist )
{
	new Float:Dmg = MaxDmg * ( 1 - Dist/ExplRange );
	
	new Float:HP = entity_get_float( victim, EV_FL_health );
	if( HP > Dmg )
	{
		entity_set_float( victim, EV_FL_health, ( HP-Dmg ) );
		
		new Name[ 32 ];
		get_user_name( victim, Name, 31 );
		client_print( attacker, print_chat, "You did %.0f Damage on %s", Dmg, Name );	
	}
	else
		RegKill( attacker, victim, "Kamikaze" );
}

stock MakeExpl( id, origin[ 3 ] )
{
	callfunc_begin( "EffectExplosion" );
	callfunc_push_int( id );
	callfunc_push_int( origin[ 0 ] );
	callfunc_push_int( origin[ 1 ] );
	callfunc_push_int( origin[ 2 ] );
	callfunc_end();
}

stock MakeSmoke( id, origin[ 3 ] )
{	
	callfunc_begin( "EffectSmoke" )
	callfunc_push_int( id );
	callfunc_push_int( origin[ 0 ] );
	callfunc_push_int( origin[ 1 ] );
	callfunc_push_int( origin[ 2 ] );
	callfunc_end();
}

stock RegKill( killer, victim, Weapon[ ] )
{
	callfunc_begin( "RegisterKill" );
	callfunc_push_int( killer );
	callfunc_push_int( victim );
	callfunc_push_str( Weapon );
	return callfunc_end();
}

public EffectExplosion( id, origin0, origin1, origin2 )
{
	new origin[ 3 ];
	origin[ 0 ] = origin0;
	origin[ 1 ] = origin1;
	origin[ 2 ] = origin2;
	
	message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
	write_byte( TE_EXPLOSION); // This just makes a dynamic light now
	write_coord( origin[ 0 ] + random_num( -100, 100 ) );
	write_coord( origin[ 1 ] + random_num( -100, 100 ) );
	write_coord( origin[ 2 ] + random_num( -50, 50 ) );
	write_short( g_iMsgExplode );
	write_byte( random_num( 0, 20 ) + 20  ); // scale * 10
	write_byte( 12  ); // framerate
	write_byte( TE_EXPLFLAG_NONE );
	message_end();
}

public EffectSmoke( id, origin0, origin1, origin2 )
{
	new origin[ 3 ];
	origin[ 0 ] = origin0;
	origin[ 1 ] = origin1;
	origin[ 2 ] = origin2;
	
	message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
	write_byte( TE_SMOKE );
	write_coord( origin[ 0 ] + random_num( -100, 100 ) );
	write_coord( origin[ 1 ] + random_num( -100, 100 ) );
	write_coord( origin[ 2 ] + random_num( -50, 50 ) );
	write_short( g_iMsgSmoke );
	write_byte( 60 ); // scale * 10
	write_byte( 10 ); // framerate
	message_end();
}

public RegisterKill( killer, victim, Weapon[ ] )
{
	g_iKillUser[ 0 ]++;
	g_iKillUser[ victim ] = killer;
	
	copy( g_iWeaponName[ victim ], 39, Weapon );
}

////////////////////////////////
//----- End Last Request -----//
////////////////////////////////
public EndLastRequest( iWinner, iLoser )
{
	new iWinner = read_data( 1 );
	new iLoser = read_data( 2 );
	
	new szWinnerName[ 32 ], szLoserName[ 32 ];
	
	get_user_name( iWinner, szWinnerName, 31 );
	get_user_name( iLoser, szLoserName, 31 );
	
	ColorChat( 0, NORMAL, "%s ^x04%s^x01 beat ^x04%s^x01 in the ^x03Last Request^x01.", g_szPrefix, szWinnerName, szLoserName );
	
	g_iCurrentGame = LR_NONE;
	
	g_iLastRequest[ LR_PRISONER ] = 0;
	g_iLastRequest[ LR_GUARD ] = 0;
	
	set_task( 0.1, "Task_EndLR", TASK_ENDLR + iWinner );
}

public Task_EndLR( iTaskID )
{
	new id = iTaskID - TASK_ENDLR;
	if( cs_get_user_team( id ) == CS_TEAM_T )
	{
		StripPlayerWeapons( id );
	}
}

////////////////////////////
//----- Give Weapons -----//
////////////////////////////
GiveWeapons( id )
{
	give_item( id, "weapon_m4a1" );
	give_item( id, "weapon_deagle" );
	give_item( id, "weapon_smokegrenade" );
	
	cs_set_user_bpammo( id, CSW_M4A1, 500 );
	cs_set_user_bpammo( id, CSW_DEAGLE, 200 );
	cs_set_user_armor( id, 100, CS_ARMOR_VESTHELM );
}

//////////////////////////////
//----- Advertisements -----//
//////////////////////////////
public Task_Advertise()
{
	ColorChat( 0, NORMAL, "%s Check out eQ forums at ^x04www.equilibriumcs.com^x01.", g_szPrefix );
}

////////////////////////////
//----- Player Count -----//
////////////////////////////
get_playercount( CsTeams:iTeam, iStatus )
{
	new iPlayerCount;
	
	for( new i = 1; i <= g_iMaxPlayers; i++ )
	{
		if( !g_bConnected[ i ] || cs_get_user_team( i ) != iTeam ) continue;
		
		switch( iStatus )
		{
			case DEAD: if( g_bAlive[ i ] ) continue;
			case ALIVE: if( !g_bAlive[ i ] ) continue;
		}
		
		iPlayerCount++;
	}
	
	return iPlayerCount;
}

//////////////////////////////////////////
//----- Show the Remaining Players -----//
//////////////////////////////////////////
public Players_Hud()
{
	g_iMaxGuards = 0;
	g_iMaxPrisoners = 0;
	
	for( new i = 0; i < g_iMaxPlayers; i++ )
	{
		new id = i;
		
		if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_CT )
		{
			g_iMaxGuards++;
		}
		else if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_T )
		{	
			g_iMaxPrisoners++;
		}	
	}
	set_hudmessage( 0, 255, 0, -1.0, 0.01 );
	show_hudmessage( 0,"Prisoners: %i^nGuards: %i", g_iMaxPrisoners, g_iMaxGuards );
}

/////////////////////////////////////
//----- T GAG BY Exolent[jNr] -----//
/////////////////////////////////////
public FwdSetVoice( receiver, sender, bool:listen )
{
	if( !get_pcvar_num( cvar_tvoiceblock ) )
		return PLUGIN_HANDLED;
	
	if( !( 1 <= receiver <= g_iMaxPlayers )
	|| !g_bConnected[ receiver ]
	|| !( 1 <= sender <= g_iMaxPlayers )
	|| !g_bConnected[ sender ] ) return FMRES_IGNORED;
	
	new CsTeams:team = cs_get_user_team( sender );
	if( ( team == CS_TEAM_T || team == CS_TEAM_CT && !is_user_alive( sender ) ) && !access( sender, ADMIN_VOICE ) )
	{
		engfunc( EngFunc_SetClientListening, receiver, sender, 0 );
		return FMRES_SUPERCEDE;
	}
	return FMRES_IGNORED;
}

/////////////////////////
//----- LONG JUMP -----//
/////////////////////////
public Player_Duck( id )
{
	if( g_iCurrentDay == DAY_NEMESIS )
	{
		if( g_bSuperJump[ id ] )
		{
			g_bSuperJump[ id ] = false;
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

public Player_Jump( id )
{
	if( g_iCurrentDay == DAY_NEMESIS )
	{
		if( !is_user_alive( id ) )
		{
			return HAM_IGNORED;
		}
		
		static iFlags ; iFlags = entity_get_int( id, EV_INT_flags )
		
		if( FBitSet( iFlags, FL_WATERJUMP ) || entity_get_int( id, EV_INT_waterlevel ) >= 2 )
		{
			return HAM_IGNORED;
		}
		
		static afButtonPressed ; afButtonPressed = get_pdata_int(id, m_afButtonPressed)
		
		if( !FBitSet( afButtonPressed, IN_JUMP ) || !FBitSet( iFlags, FL_ONGROUND ) )
		{
			return HAM_IGNORED;
		}
		
		if(	( entity_get_int( id, EV_INT_bInDuck ) || iFlags & FL_DUCKING )
		&&	get_pdata_int( id, m_fLongJump )
		&&	entity_get_int( id, EV_INT_button ) & IN_DUCK
		&&	entity_get_int( id, EV_INT_flDuckTime )	)
		{
			static Float:fVecTemp[ 3 ];
			entity_get_vector( id, EV_VEC_velocity, fVecTemp );
			if( vector_length( fVecTemp ) > 50.0 )
			{
				entity_get_vector( id, EV_VEC_punchangle, fVecTemp );
				fVecTemp[ 0 ] = -5.0;
				entity_set_vector( id, EV_VEC_punchangle, fVecTemp );
				
				get_global_vector( GL_v_forward, fVecTemp );
				fVecTemp[ 0 ] *= 560.0;
				fVecTemp[ 1 ] *= 560.0;
				fVecTemp[ 2 ] = 299.33259094191531084669989858532;
				
				entity_set_vector( id, EV_VEC_velocity, fVecTemp );
				
				set_pdata_int( id, m_Activity, ACT_LEAP );
				set_pdata_int( id, m_IdealActivity, ACT_LEAP );
				g_bSuperJump[ id ] = true;
				
				entity_set_int( id, EV_INT_oldbuttons, entity_get_int( id, EV_INT_oldbuttons ) | IN_JUMP );
				
				entity_set_int( id, EV_INT_gaitsequence, PLAYER_SUPERJUMP );
				entity_set_float( id, EV_FL_frame, 0.0 );
				
				set_pdata_int( id, m_afButtonPressed, afButtonPressed & ~IN_JUMP );
				return HAM_SUPERCEDE;
			}
		}
	}
	return HAM_IGNORED;
}

//////////////////////////////
//----- UNLIMITED AMMO -----//
//////////////////////////////
public Event_CurWeapon( id ) 
{     
	if( g_iCurrentDay == DAY_NEMESIS )
	{
		static wpnid, clip;
		wpnid = read_data( 2 );
		clip = read_data( 3 );
		
		give_ammo( id , wpnid , clip );
	}
	
	return PLUGIN_CONTINUE;
}

public give_ammo( id , wpnid , clip )
{
	if( !is_user_alive( id ) )
		return;
	
	if(	wpnid==CSW_C4		||
		wpnid==CSW_KNIFE	||
		wpnid==CSW_HEGRENADE	||
		wpnid==CSW_SMOKEGRENADE	||
		wpnid==CSW_FLASHBANG	) 
			return;
	
	if( !clip )
	{
		static weapname[ 33 ];
		get_weaponname( wpnid , weapname , 32 );
	
		static wpn;
		wpn = -1;
		while( ( wpn = find_ent_by_class( wpn , weapname ) ) != 0 )
		{
			if( id == entity_get_edict( wpn , EV_ENT_owner ) )
			{
				cs_set_weapon_ammo( wpn , maxclip( wpnid ) );
				break;
			}
		}
	}
}

stock maxclip( wpnid ) 
{
	static ca;
	ca = 0;
	
	switch ( wpnid ) 
	{
		case CSW_P228 : ca = 13;
		case CSW_SCOUT : ca = 10;
		case CSW_HEGRENADE : ca = 0;
		case CSW_XM1014 : ca = 7;
		case CSW_C4 : ca = 0;
		case CSW_MAC10 : ca = 30;
		case CSW_AUG : ca = 30;
		case CSW_SMOKEGRENADE : ca = 0;
		case CSW_ELITE : ca = 15;
		case CSW_FIVESEVEN : ca = 20;
		case CSW_UMP45 : ca = 25;
		case CSW_SG550 : ca = 30;
		case CSW_GALI : ca = 35;
		case CSW_FAMAS : ca = 25;
		case CSW_USP : ca = 12;
		case CSW_GLOCK18 : ca = 20;
		case CSW_AWP : ca = 10;
		case CSW_MP5NAVY : ca = 30;
		case CSW_M249 : ca = 100;
		case CSW_M3 : ca = 8;
		case CSW_M4A1 : ca = 30;
		case CSW_TMP : ca = 30;
		case CSW_G3SG1 : ca = 20;
		case CSW_FLASHBANG : ca = 0;
		case CSW_DEAGLE	: ca = 7;
		case CSW_SG552 : ca = 30;
		case CSW_AK47 : ca = 30;
		case CSW_P90 : ca = 50;
	}
	return ca;
}

/////////////////////////////
//----- HEADSHOT ONLY -----//
/////////////////////////////
public HamTraceAttack( iVictim, iAttacker, Float:dmg, Float:dir[3], Traceresult, iBits )
{
	if( g_iCurrentDay == DAY_HEADSHOT_BATTLE )
	{
		if( !( 1 <= iAttacker <= g_iMaxPlayers ) || !( 1 <= iVictim <= g_iMaxPlayers ) || iVictim == iAttacker )
			return HAM_IGNORED;
	
		if( get_tr2( Traceresult, TR_iHitgroup ) != HIT_HEAD )
		{
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}

///////////////////////////////
//----- PARACHUTE STUFF -----//
///////////////////////////////
public plugin_natives()
{
	set_module_filter( "module_filter" );
	set_native_filter( "native_filter" );
}

public module_filter( const module[ ] )
{
	if( !cstrike_running( ) && equali( module, "cstrike" ) )
	{
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

public native_filter( const name[ ], index, trap )
{
	if(!trap) return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}
public client_connect( id )
{
	parachute_reset( id );
}

public death_event()
{
	new id = read_data( 2 );
	parachute_reset( id );
}

parachute_reset( id )
{
	if( para_ent[ id ] > 0 ) 
	{
		if( is_valid_ent( para_ent[ id ] ) ) 
		{
			remove_entity( para_ent[ id ] );
		}
	}
	
	if( is_user_alive( id ) ) set_user_gravity( id, 1.0 );
	
	g_bBoughtParachute[ id ] = false;
	para_ent[ id ] = 0;
}

public newSpawn( id )
{
	if( para_ent[ id ] > 0 ) 
	{
		remove_entity( para_ent[ id ] );
		set_user_gravity( id, 1.0 );
		para_ent[id] = 0;
	}
	
	if( !gCStrike || access( id, PARACHUTE_LEVEL ) ) 
	{
		g_bBoughtParachute[id] = true;
		//set_view( id, CAMERA_3RDPERSON );
	}
}

public admin_give_parachute( id, level, cid ) 
{
	
	if( !gCStrike ) return PLUGIN_CONTINUE;
	
	if( !cmd_access( id, level, cid, 2 ) ) return PLUGIN_HANDLED;
	
	if( !get_pcvar_num( pEnabled ) ) 
	{
		client_print( id, print_chat, "[AMXX] Parachute plugin is disabled" );
		return PLUGIN_HANDLED;
	}
	
	new arg[ 32 ], name[ 32 ], name2[ 32 ], authid[ 35 ], authid2[ 35 ];
	read_argv( 1, arg, 31 );
	get_user_name( id, name, 31 );
	get_user_authid( id, authid, 34 );
	
	if( arg[ 0 ]=='@' )
	{
		new players[ 32 ], inum;
		if( equali( "T", arg[ 1 ] ) )		copy( arg[ 1 ], 31, "TERRORIST" );
		if( equali( "ALL", arg[ 1 ] ) )	get_players( players, inum );
		else					get_players( players, inum, "e", arg[ 1 ] );
			
		if( inum == 0 ) 
		{
			console_print( id, "No clients in such team" );
			return PLUGIN_HANDLED;
		}
		
		for( new a = 0; a < inum; a++ ) 
		{
			g_bBoughtParachute[ players[ a ] ] = true;
		}
		
		switch( get_cvar_num( "amx_show_activity" ) )	
		{
			case 2:	client_print( 0, print_chat, "ADMIN %s: gave a parachute to ^"%s^" players", name, arg[ 1 ] );
			case 1:	client_print( 0, print_chat, "ADMIN: gave a parachute to ^"%s^" players", arg[ 1 ] );
		}
		
		console_print( id, "[AMXX] You gave a parachute to ^"%s^" players", arg[ 1 ] );
		log_amx( "^"%s<%d><%s><>^" gave a parachute to ^"%s^"", name, get_user_userid( id ), authid, arg[ 1 ] );
	}
	else 
	{
		
		new player = cmd_target( id, arg, 6 );
		if( !player ) return PLUGIN_HANDLED;
		
		g_bBoughtParachute[ player ] = true;
		
		get_user_name( player, name2, 31 );
		get_user_authid( player, authid2, 34 );
		
		switch( get_cvar_num( "amx_show_activity" ) ) 
		{
			case 2:	client_print( 0, print_chat, "ADMIN %s: gave a parachute to ^"%s^"", name, name2 );
			case 1:	client_print( 0, print_chat, "ADMIN: gave a parachute to ^"%s^"", name2 );
		}
		
		console_print( id, "[AMXX] You gave a parachute to ^"%s^"", name2 );
		log_amx( "^"%s<%d><%s><>^" gave a parachute to ^"%s<%d><%s><>^"", name, get_user_userid( id ), authid, name2, get_user_userid( player ), authid2 );
	}
	return PLUGIN_HANDLED;
}

public client_PreThink( id )
{
	//parachute.mdl animation information
	//0 - deploy - 84 frames
	//1 - idle - 39 frames
	//2 - detach - 29 frames
	
	if( !get_pcvar_num( pEnabled ) ) return;
	if( !is_user_alive( id ) || !g_bBoughtParachute[ id ] ) return;
	
	new Float:fallspeed = get_pcvar_float(pFallSpeed) * -1.0;
	new Float:frame;
	
	new button = get_user_button( id );
	new oldbutton = get_user_oldbutton( id );
	new flags = get_entity_flags( id );
	
	if( para_ent[ id ] > 0 && ( flags & FL_ONGROUND ) ) 
	{
		
		if( get_pcvar_num( pDetach ) ) 
		{
			
			if( get_user_gravity( id ) == 0.1 ) set_user_gravity( id, 1.0 );
			
			if( entity_get_int( para_ent[ id ], EV_INT_sequence ) != 2 ) 
			{
				entity_set_int( para_ent[ id ], EV_INT_sequence, 2 );
				entity_set_int( para_ent[ id ], EV_INT_gaitsequence, 1 );
				entity_set_float( para_ent[ id ], EV_FL_frame, 0.0 );
				entity_set_float( para_ent[ id ], EV_FL_fuser1, 0.0 );
				entity_set_float( para_ent[ id ], EV_FL_animtime, 0.0 );
				entity_set_float( para_ent[ id ], EV_FL_framerate, 0.0 );
				return;
			}
			
			frame = entity_get_float( para_ent[ id ], EV_FL_fuser1 ) + 2.0;
			entity_set_float( para_ent[ id ], EV_FL_fuser1, frame );
			entity_set_float( para_ent[ id ], EV_FL_frame, frame );
			
			if( frame > 254.0 ) 
			{
				remove_entity( para_ent[ id ] );
				para_ent[id] = 0;
			}
		}
		else 
		{
			remove_entity( para_ent[ id ] );
			set_user_gravity( id, 1.0 );
			para_ent[ id ] = 0;
		}
		
		return;
	}
	
	if( button & IN_USE ) 
	{
		
		new Float:velocity[ 3 ];
		entity_get_vector( id, EV_VEC_velocity, velocity );
		
		if( velocity[ 2 ] < 0.0 ) 
		{
			
			if( para_ent[ id ] <= 0 ) 
			{
				para_ent[ id ] = create_entity( "info_target" );
				if( para_ent[ id ] > 0) 
				{
					entity_set_string( para_ent[ id ], EV_SZ_classname,"parachute" );
					entity_set_edict( para_ent[ id ], EV_ENT_aiment, id );
					entity_set_edict( para_ent[ id ], EV_ENT_owner, id );
					entity_set_int( para_ent[ id ], EV_INT_movetype, MOVETYPE_FOLLOW );
					entity_set_model( para_ent[ id ], "models/parachute.mdl" );
					entity_set_int( para_ent[ id ], EV_INT_sequence, 0 );
					entity_set_int( para_ent[ id ], EV_INT_gaitsequence, 1 );
					entity_set_float( para_ent[ id ], EV_FL_frame, 0.0 );
					entity_set_float( para_ent[ id ], EV_FL_fuser1, 0.0 );
				}
			}
			
			if( para_ent[ id ] > 0 ) 
			{
				entity_set_int( id, EV_INT_sequence, 3 );
				entity_set_int( id, EV_INT_gaitsequence, 1 );
				entity_set_float( id, EV_FL_frame, 1.0 );
				entity_set_float( id, EV_FL_framerate, 1.0 );
				set_user_gravity( id, 0.1 );
				
				velocity[ 2 ] = ( velocity[ 2 ] + 40.0 < fallspeed ) ? velocity[ 2 ] + 40.0 : fallspeed;
				entity_set_vector( id, EV_VEC_velocity, velocity );
				
				if( entity_get_int( para_ent[ id ], EV_INT_sequence ) == 0 ) 
				{
					
					frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0;
					entity_set_float(para_ent[id],EV_FL_fuser1,frame);
					entity_set_float(para_ent[id],EV_FL_frame,frame);
					
					if( frame > 100.0 ) 
					{
						entity_set_float( para_ent[ id ], EV_FL_animtime, 0.0 );
						entity_set_float( para_ent[ id ], EV_FL_framerate, 0.4 );
						entity_set_int( para_ent[ id ], EV_INT_sequence, 1 );
						entity_set_int( para_ent[ id ], EV_INT_gaitsequence, 1 );
						entity_set_float( para_ent[ id ], EV_FL_frame, 0.0 );
						entity_set_float( para_ent[ id ], EV_FL_fuser1, 0.0 );
					}
				}
			}
		}
		else if( para_ent[ id ] > 0 ) 
		{
			remove_entity( para_ent[ id ] );
			set_user_gravity( id, 1.0 );
			para_ent[ id ] = 0;
		}
	}
	else if( ( oldbutton & IN_USE ) && para_ent[ id ] > 0 ) 
	{
		remove_entity( para_ent[ id ] );
		set_user_gravity( id, 1.0 );
		para_ent[ id ] = 0;
	}
}

///////////////////////////
//----- FOG CHANGER -----//
///////////////////////////
stock msg_create_fog( iRed, iGreen, iBlue, iDensity )
{
    // Fog density offsets [Thnx to DA]
    new const fog_density[ ] = { 0, 0, 0, 0, 111, 18, 3, 58, 111, 18, 125, 58, 66, 96, 27, 59, 90, 101, 60, 59, 90,
            101, 68, 59, 10, 41, 95, 59, 111, 18, 125, 59, 111, 18, 3, 60, 68, 116, 19, 60 };
    
    // Get the amount of density
    new dens;
    dens = ( 4 * iDensity );
    
    // The fog message
    message_begin( MSG_BROADCAST, get_user_msgid( "Fog" ), { 0,0,0 }, 0 );
    write_byte( iRed ); // Red
    write_byte( iGreen ); // Green
    write_byte( iBlue ); // Blue
    write_byte( fog_density[ dens ] ); // SD
    write_byte( fog_density[ dens + 1 ] ); // ED
    write_byte( fog_density[ dens + 2 ] ); // D1
    write_byte( fog_density[ dens + 3 ] ); // D2
    message_end( );
}

//////////////////////////////////
//----- REFUND SHOP POINTS -----//
//////////////////////////////////
RefundShopPoints( id )
{
	new hp = get_user_health( id );
	
	if( hp > 101 && hp <= 130 )
	{
		ColorChat( id, NORMAL, "%s You can't use extra health now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
	}
	
	if( hp > 131 && hp <= 160 )
	{
		ColorChat( id, NORMAL, "%s You can't use extra health now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
	}
	
	if( hp > 161 && hp <= 190 )
	{
		ColorChat( id, NORMAL, "%s You can't use extra health now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
	}
	
	if( hp > 191 && hp <= 220 )
	{
		ColorChat( id, NORMAL, "%s You can't use extra health now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
	}
	
	if( hp >= 221 )
	{
		ColorChat( id, NORMAL, "%s You can't use extra health now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
		playerpoints[ id ] += get_pcvar_num( cvar_healthprice );
	}
	
	if( g_bBoughtNade[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't use an HE grenade now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_nadeprice );
	}
	
	if( g_bBoughtFlash[ id ] )
																					{
		ColorChat( id, NORMAL, "%s You can't use a flashbang now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_flashprice );
	}
	
	if( g_bBoughtGravity[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't use low gravity now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_gravityprice );
	}
	
	if( g_bBoughtParachute[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't use a parachute now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_parachuteprice );
	}
	
	if( g_bBoughtShield[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't use a shield now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_shieldprice );
	}
	
	if( g_bBoughtFreeday[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't have a Freeday now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_freedayprice );
		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16);
	}
	
	if( g_bBoughtSilentsteps[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't use silent footsteps now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_silentstepsprice );
	}
	
	if( g_bBoughtUSP[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't use a USP now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_gunprice_usp );
	}
	
	if( g_bBoughtFiveseven[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't use a Fiveseven now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_gunprice_fiveseven );
	}
	
	if( g_bBoughtSkin[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't use camoflauge now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_skinprice );
		cs_reset_user_model( id );
	}
	
	if( g_bBoughtStealth[ id ] )
	{
		ColorChat( id, NORMAL, "%s You can't use stealth now. Your points have been ^x03refunded^x01.", g_szPrefix );
		playerpoints[ id ] += get_pcvar_num( cvar_stealthprice );
		set_user_rendering( id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16);
	}
}

////////////////////////////
//----- PREVENT HEAL -----//
////////////////////////////
/*public HurtTouch( iEnt, id )
{
	if( g_iCurrentDay == DAY_GOLDEN )
	{
		if( entity_get_float( iEnt, EV_FL_dmg ) >= 0.0 )
		{
			ColorChat( id, NORMAL, "%s There is^x03 no healing^x01 during this day.", g_szPrefix );
			return;
		}
		
		if( entity_get_float( id, EV_FL_takedamage ) == 0.0 )
		{
			ColorChat( id, NORMAL, "%s There is^x03 no healing^x01 during this day.", g_szPrefix );
			return;
		}
		
		if( entity_get_int( iEnt, EV_INT_spawnflags ) & SF_TRIGGER_HURT_NO_CLIENTS )
		{
			ColorChat( id, NORMAL, "%s There is^x03 no healing^x01 during this day.", g_szPrefix );
			return;
		}
		
		static Float:fTime ; fTime = get_gametime( );
		if( entity_get_float( iEnt, EV_FL_dmgtime ) > fTime )
		{
			if( fTime != entity_get_float( iEnt, EV_FL_pain_finished ) )
			{
				if(  !( entity_get_int( iEnt, EV_INT_impulse ) & ( 1 << ( id - 1 ) ) ) )
				{
					g_iGonnaBeHurt[ id ] = get_pdata_int( iEnt, m_bitsDamageInflict, 4 );
				}
			}
		}
		else
		{
			g_iGonnaBeHurt[ id ] = get_pdata_int( iEnt, m_bitsDamageInflict, 4 );
		}
	}
}*/

//respawn player, compensate for if olympics is turned off
public Touch_TriggerHurt( hurt, id ) 
{
	if( is_user_alive( id ) )
	{
		if( g_iCurrentDay == DAY_GOLDEN )
		{
			new bool:check;
			for( new x = 0; x < g_TrigHurtHealTotal; x++ ) //Allow hurts to heal.
			{
				if( g_TriggerHurtHealers[ x ] == hurt )
				{
					check = true;
					ColorChat( hurt, NORMAL, "%s (1) There is^x03 no healing^x01 during this day.", g_szPrefix );
				}
				
				if( !check )
				{
					ColorChat( hurt, NORMAL, "%s (2) There is^x03 no healing^x01 during this day.", g_szPrefix );
				}
			}
		}
	}
}

public pfn_keyvalue( entid )
{
	new classname[ 32 ], key[ 32 ], value[ 32 ];
	copy_keyvalue( classname, 31, key, 31, value, 31 );
	
	if( equal( key, "dmg" ) )
		if( floatstr( value ) < 0.0 )	//Only cancel damage, some trigger_hurts give HP
		{
			if( g_iCurrentDay == DAY_GOLDEN )
			{
				DispatchKeyValue( "dmg", "0" );
				ColorChat( 0, NORMAL, "%s (3) There is^x03 no healing^x01 during this day .", g_szPrefix );
			}
		}
	
	if( equal( key, "damagetype" ) )
	{
		if( g_iCurrentDay == DAY_GOLDEN )
		{
			DispatchKeyValue( "damagetype", "0" );
			ColorChat( 0, NORMAL, "%s (4) There is^x03 no healing^x01 during this day.", g_szPrefix );
		}
	}
	
	/*********** trigger_hurt healers **********/
	if( equali( classname, "trigger_hurt" ) )
		if( equali( key, "dmg" ) )
			if( floatstr( value ) < 0.0 )
			{
				g_TriggerHurtHealers[ g_TrigHurtHealTotal++ ] = entid;
				ColorChat( 0, NORMAL, "%s (5) There is^x03 no healing^x01 during this day.", g_szPrefix );
			}
}
Hope you enjoy!
Attached Files
File Type: sma Get Plugin or Get Source (lambda JB Menu.sma - 1892 views - 228.6 KB)

Last edited by imgur; 12-05-2012 at 23:03.
imgur is offline
Old 12-05-2012, 12:15
sami_spt
This message has been deleted by sami_spt. Reason: nvrm
sami_spt
Veteran Member
Join Date: Sep 2012
Location: I<3 pussy cats
Old 12-05-2012 , 12:17   Re: Jailbreak Day Menu [Recoded]
Reply With Quote #2

It wont be approved or taken into consideration unless u add some resources.
sami_spt is offline
quilhos
Veteran Member
Join Date: Jun 2010
Old 12-05-2012 , 15:02   Re: Jailbreak Day Menu [Recoded]
Reply With Quote #3

Quote:
Originally Posted by sami_spt View Post
It wont be approved or taken into consideration unless u add some resources.
He dont need to put models or sounds to the plugin to this be approved, just need to be new and fill all the rules.
__________________
ELO RATING SYSTEM - SQL [COMPLETE]
Quote:
Originally Posted by Liverwiz View Post
DDDRRRRAAAAMMMMAAAAA!!!???

Put this shit on pause while i go get some popcorn!!
quilhos is offline
sami_spt
Veteran Member
Join Date: Sep 2012
Location: I<3 pussy cats
Old 12-05-2012 , 16:18   Re: Jailbreak Day Menu [Recoded]
Reply With Quote #4

How will we test and know if the plugins works 100 %?

-_-
sami_spt is offline
nikhilgupta345
Veteran Member
Join Date: Aug 2009
Location: Virginia
Old 12-05-2012 , 21:56   Re: Jailbreak Day Menu [Recoded]
Reply With Quote #5

Quote:
Originally Posted by imgur View Post
Credits go to the original authors, acidrain and tomboy
Excuse me?

First, it's H3avY Ra1n, not acid rain (or you can put nikhilgupta345), as I'm H3avY Ra1n. Second, you should put which plugins you combined together. Three, you have not changed enough in the code to put your name in the author field in register_plugin. If you are continuing to release this plugin, you must change it to "H3avY Ra1n and tomboy" or something of the sort where both of our names are in there, not yours.
__________________
Quote:
Originally Posted by DarkGod View Post
nikhilgupta generates his plugins using sheer awesome.
If you like my work, please

Last edited by nikhilgupta345; 12-05-2012 at 22:02.
nikhilgupta345 is offline
Send a message via ICQ to nikhilgupta345 Send a message via Yahoo to nikhilgupta345
YamiKaitou
Has a lovely bunch of coconuts
Join Date: Apr 2006
Location: Texas
Old 12-05-2012 , 22:22   Re: Jailbreak Day Menu [Recoded]
Reply With Quote #6

Quote:
Originally Posted by quilhos View Post
He dont need to put models or sounds to the plugin to this be approved, just need to be new and fill all the rules.
If the plugin requires additional files, they must be provided if the plugin has any hope of being approved
__________________
ProjectYami Laboratories

I do not browse the forums regularly anymore. If you need me for anything (asking questions or anything else), then PM me (be descriptive in your PM, message containing only a link to a thread will be ignored).
YamiKaitou is offline
imgur
Junior Member
Join Date: Jul 2012
Old 12-05-2012 , 23:04   Re: Jailbreak Day Menu [Recoded]
Reply With Quote #7

Quote:
Originally Posted by nikhilgupta345 View Post
Excuse me?

First, it's H3avY Ra1n, not acid rain (or you can put nikhilgupta345), as I'm H3avY Ra1n. Second, you should put which plugins you combined together. Three, you have not changed enough in the code to put your name in the author field in register_plugin. If you are continuing to release this plugin, you must change it to "H3avY Ra1n and tomboy" or something of the sort where both of our names are in there, not yours.
Hey, this was put together a long time ago and I didn't remember the original authors names 100%. I apologize if I offended you, but that was not my intentions.

I've changed the information in the thread to your specified requests. I quit Counter-Strike, and I quit running my community so I figured I would give something back to alliedmods. Sorry if you guys don't see it fit.
imgur is offline
quilhos
Veteran Member
Join Date: Jun 2010
Old 12-06-2012 , 03:04   Re: Jailbreak Day Menu [Recoded]
Reply With Quote #8

Quote:
Originally Posted by YamiKaitou View Post
If the plugin requires additional files, they must be provided if the plugin has any hope of being approved
That was what I'm trying to say x)
__________________
ELO RATING SYSTEM - SQL [COMPLETE]
Quote:
Originally Posted by Liverwiz View Post
DDDRRRRAAAAMMMMAAAAA!!!???

Put this shit on pause while i go get some popcorn!!
quilhos is offline
YamiKaitou
Has a lovely bunch of coconuts
Join Date: Apr 2006
Location: Texas
Old 12-06-2012 , 09:51   Re: Jailbreak Day Menu [Recoded]
Reply With Quote #9

Since you have already claimed you don't have the resources, I am going to unapprove this due to the plugin not being usable without them.
__________________
ProjectYami Laboratories

I do not browse the forums regularly anymore. If you need me for anything (asking questions or anything else), then PM me (be descriptive in your PM, message containing only a link to a thread will be ignored).
YamiKaitou is offline
Cheezpuff
BANNED
Join Date: Oct 2012
Location: City of the Dead
Old 12-06-2012 , 20:17   Re: Jailbreak Day Menu [Recoded]
Reply With Quote #10

That Jailbreak days?

where all things [model's]

*try to do voteday every7-8 rounds.
and Hud Alive Gurad
PHP Code:
    set_hudmessage(0,255,00.030.3006.01.0);     
    
ShowSyncHudMsg0iHudMessage"Days - Special Day ^n------------------------^nAlive Guards:^n------------------^n %s^n--------------------^nToday:%s"g_Message,Daystats);
    return 
PLUGIN_HANDLED


Last edited by Cheezpuff; 12-06-2012 at 20:28.
Cheezpuff is offline
Send a message via Skype™ to Cheezpuff
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 09:28.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode