/* Plugin generated by AMXX-Studio 
 Code Borrowed from EvilAdmin Plugin to Catch events, and force weapons */

#include <amxmodx>
#include <amxmisc>
#include <dodx>
#include <dodfun>
#include <engine>
#include <fun>

#define PLUGIN "DoD Fun Modes"
#define VERSION "1.0"
#define AUTHOR "Hoodie"

//0=none 1=knife 2=pistol 3=bazooka
new arenaMode = 0

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("dod_knifearena", "knife_mode", ADMIN_KICK, "Enables/Disables Knife Only")
	register_concmd("dod_pistolarena", "pistol_mode", ADMIN_KICK, "Enables/Disables Pistol Only")
	register_concmd("dod_bazookaarena", "bazooka_mode", ADMIN_KICK, "Enables/Disables Bazookas Only")
	//register_concmd("dod_voteknifes", "knife_vote", ADMIN_VOTE, "Votes for Knife Only Mode")
	//register_concmd("dod_votepistols", "pistol_vote", ADMIN_VOTE, "Votes for Pistol Only Mode")
	//register_concmd("dod_votebazookas", "bazooka_vote", ADMIN_VOTE, "Votes for Bazooka Only Mode")
	register_event("CurWeapon","check_mode","b","1=1")
	register_event("ResetHUD","check_glow","be")
}

public check_glow(id)
{
	if(arenaMode == 0 && get_user_deaths(id)==0)
	set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 25)
	if(arenaMode != 0 && get_user_deaths(id)==0)
	{
		if(get_user_team(id)==AXIS)
		{
			set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25)
		}
		else 
		if(get_user_team(id) == ALLIES)
		{
			set_user_rendering(id,kRenderFxGlowShell,0,255,0,kRenderNormal,25)
		}
	}
	return PLUGIN_CONTINUE
}	

public knife_mode(id,level,cid)
{
	if(!cmd_access(id,level,cid,0))
		return PLUGIN_HANDLED
	new adminname [32]
	new players [32]
	new numPlayers, i
	get_user_name(id, adminname, 31)
	get_players(players, numPlayers)
	if(arenaMode == 1)
	{
		arenaMode = 0
		client_print(0, print_chat, "ADMIN %s Has Disabled Knife Only Mode", adminname)
		for(i=0;i<numPlayers;i++)
		{
			set_user_rendering(players[i],kRenderFxGlowShell,0,0,0,kRenderNormal,25)
		}
		return PLUGIN_CONTINUE
	}
	else{
	arenaMode = 1
	client_print(0, print_chat, "ADMIN %s Has Enabled Knife Only Mode", adminname)
	for(i=0;i<numPlayers;i++)
	{
		if(is_user_alive(players[i]) == 1)
		{
			if(get_user_team(players[i]) == AXIS)
			{
				set_user_rendering(players[i],kRenderFxGlowShell,255,0,0,kRenderNormal,25)
			}
			else if(get_user_team(players[i]) == ALLIES)
			{
				set_user_rendering(players[i],kRenderFxGlowShell,0,255,0,kRenderNormal,25)
			}
			strip_user_weapons(players[i])
			if(get_user_team(players[i]) == AXIS)
			{
				if(dod_get_map_info(MI_AXIS_PARAS) == 1)
				{
					give_item(players[i],"weapon_gerknife")
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_AXIS_PARAS) == 0)
				{
					give_item(players[i],"weapon_spade")
					return PLUGIN_HANDLED
				}
			}
			else if(get_user_team(players[i]) == ALLIES)
			{
				if(dod_get_map_info(MI_ALLIES_TEAM) == 1){
					give_item(players[i],"weapon_gerknife")
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_ALLIES_TEAM) == 0)
				{
					give_item(players[i],"weapon_amerknife")
					return PLUGIN_HANDLED
				}
			}
		}
	return PLUGIN_HANDLED
	}}
	return PLUGIN_HANDLED
}

public knife_player(id)
{
	if(is_user_alive(id) == 1)
		{
			strip_user_weapons(id)
			if(get_user_team(id) == AXIS)
			{
				if(dod_get_map_info(MI_AXIS_PARAS) == 1)
				{
					give_item(id,"weapon_gerknife")
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_AXIS_PARAS) == 0)
				{
					give_item(id,"weapon_spade")
					return PLUGIN_HANDLED
				}
			}
			else if(get_user_team(id) == ALLIES)
			{
				if(dod_get_map_info(MI_ALLIES_TEAM) == 1){
					give_item(id,"weapon_gerknife")
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_ALLIES_TEAM) == 0)
				{
					give_item(id,"weapon_amerknife")
					return PLUGIN_HANDLED
				}
			}
		}
	return PLUGIN_HANDLED
}

public pistol_mode(id,level,cid)
{
	if(!cmd_access(id,level,cid,0)){
		return PLUGIN_HANDLED
	}
	new adminname [32]
	new players [32]
	new numPlayers, i
	get_players(players, numPlayers)
	get_user_name(id, adminname, 31)
	if(arenaMode == 2)
	{
		arenaMode = 0
		client_print(0, print_chat, "ADMIN %s Has Disabled Pistols Only Mode.", adminname)
		for(i=0;i<numPlayers;i++)
		{
			set_user_rendering(players[i],kRenderFxGlowShell,0,0,0,kRenderNormal,25)
		}
		return PLUGIN_HANDLED
	}
	else{
	arenaMode = 2
	client_print(0, print_chat, "ADMIN %s Has Enabled Pistols Only Mode.", adminname)
	for(i=0;i<numPlayers;i++)
	{
		if(is_user_alive(players[i]) == 1)
		{
			if(get_user_team(players[i]) == AXIS)
			{
				set_user_rendering(players[i],kRenderFxGlowShell,255,0,0,kRenderNormal,25)
			}
			else if(get_user_team(players[i]) == ALLIES)
			{
				set_user_rendering(players[i],kRenderFxGlowShell,0,255,0,kRenderNormal,25)
			}
			strip_user_weapons(players[i])
			if(get_user_team(players[i]) == AXIS)
			{
				if(dod_get_map_info(MI_AXIS_PARAS) == 1)
				{
					give_item(players[i],"weapon_luger")
					dod_set_user_ammo(players[i], 4, 999)
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_AXIS_PARAS) == 0)
				{
					give_item(players[i],"weapon_luger")
					dod_set_user_ammo(players[i], 4, 999)
					return PLUGIN_HANDLED
				}
			}
			else if(get_user_team(players[i]) == ALLIES)
			{
				if(dod_get_map_info(MI_ALLIES_TEAM) == 1){
					give_item(players[i],"weapon_colt")
					dod_set_user_ammo(players[i], 3, 999)
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_ALLIES_TEAM) == 0)
				{
					give_item(players[i],"weapon_colt")
					dod_set_user_ammo(players[i], 3, 999)
					return PLUGIN_HANDLED
				}
			}
		}
	return PLUGIN_HANDLED
	}}
	return PLUGIN_HANDLED
}

public pistol_player(id)
{
	if(is_user_alive(id) == 1)
		{
			strip_user_weapons(id)
			if(get_user_team(id) == AXIS)
			{
				if(dod_get_map_info(MI_AXIS_PARAS) == 1)
				{
					give_item(id,"weapon_luger")
					dod_set_user_ammo(id, 4, 999)
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_AXIS_PARAS) == 0)
				{
					give_item(id,"weapon_luger")
					dod_set_user_ammo(id, 4, 999)
					return PLUGIN_HANDLED
				}
			}
			else if(get_user_team(id) == ALLIES)
			{
				if(dod_get_map_info(MI_ALLIES_TEAM) == 1){
					give_item(id,"weapon_colt")
					dod_set_user_ammo(id, 3, 999)
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_ALLIES_TEAM) == 0)
				{
					give_item(id,"weapon_colt")
					dod_set_user_ammo(id, 3, 999)
					return PLUGIN_HANDLED
				}
			}
		}
	return PLUGIN_HANDLED
}

public bazooka_mode(id,level,cid)
{
	if(!cmd_access(id,level,cid,0)){
		return PLUGIN_HANDLED
	}
	new adminname [32]
	new players [32]
	new numPlayers, i
	get_players(players, numPlayers)
	get_user_name(id, adminname, 31)
	if(arenaMode == 3)
	{
		arenaMode = 0
		client_print(0, print_chat, "ADMIN %s Has Disabled Bazookas/Knives Only Mode.", adminname)
		for(i=0;i<numPlayers;i++)
		{
			set_user_rendering(players[i],kRenderFxGlowShell,0,0,0,kRenderNormal,25)
		}
		return PLUGIN_HANDLED
	}
	else{
	arenaMode = 3
	client_print(0, print_chat, "ADMIN %s Has Enabled Bazookas/Knives Only Mode.", adminname)
	for(i=0;i<numPlayers;i++)
	{
		if(is_user_alive(players[i]) == 1)
		{
			if(get_user_team(players[i]) == AXIS)
			{
				set_user_rendering(players[i],kRenderFxGlowShell,255,0,0,kRenderNormal,25)
			}
			else if(get_user_team(players[i]) == ALLIES)
			{
				set_user_rendering(players[i],kRenderFxGlowShell,0,255,0,kRenderNormal,25)
			}
			strip_user_weapons(players[i])
			if(get_user_team(players[i]) == AXIS)
			{
				if(dod_get_map_info(MI_AXIS_PARAS) == 1)
				{
					give_item(players[i],"weapon_pschreck")
					give_item(players[i],"weapon_gerknife")
					dod_set_user_ammo(players[i], 30, 999)
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_AXIS_PARAS) == 0)
				{
					give_item(players[i],"weapon_pschreck")
					give_item(players[i],"weapon_spade")
					dod_set_user_ammo(players[i], 30, 999)
					return PLUGIN_HANDLED
				}
			}
			else if(get_user_team(players[i]) == ALLIES)
			{
				if(dod_get_map_info(MI_ALLIES_TEAM) == 1){
					give_item(players[i],"weapon_bazooka")
					give_item(players[i],"weapon_gerknife")
					dod_set_user_ammo(players[i], 29, 999)
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_ALLIES_TEAM) == 0)
				{
					give_item(players[i],"weapon_bazooka")
					give_item(players[i],"weapon_amerknife")
					dod_set_user_ammo(players[i], 29, 999)
					return PLUGIN_HANDLED
				}
			}
		}
	return PLUGIN_HANDLED
	}}
	return PLUGIN_HANDLED
}

public bazooka_player(id)
{
	if(is_user_alive(id) == 1)
		{
			strip_user_weapons(id)
			if(get_user_team(id) == AXIS)
			{
				if(dod_get_map_info(MI_AXIS_PARAS) == 1)
				{
					give_item(id,"weapon_pschreck")
					give_item(id,"weapon_gerknife")
					dod_set_user_ammo(id, 30, 999)
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_AXIS_PARAS) == 0)
				{
					give_item(id,"weapon_pschreck")
					give_item(id,"weapon_spade")
					dod_set_user_ammo(id, 30, 999)
					return PLUGIN_HANDLED
				}
			}
			else if(get_user_team(id) == ALLIES)
			{
				if(dod_get_map_info(MI_ALLIES_TEAM) == 1){
					give_item(id,"weapon_bazooka")
					give_item(id,"weapon_gerknife")
					dod_set_user_ammo(id, 29, 999)
					return PLUGIN_HANDLED
				}
				else if(dod_get_map_info(MI_ALLIES_TEAM) == 0)
				{
					give_item(id,"weapon_bazooka")
					give_item(id,"weapon_amerknife")
					dod_set_user_ammo(id, 29, 999)
					return PLUGIN_HANDLED
				}
			}
		}
	return PLUGIN_HANDLED
}

public check_mode(id)
{
	if(arenaMode == 0)		
		return PLUGIN_HANDLED
	if(arenaMode == 1)
	{
		new ammo, clip, currweap = dod_get_user_weapon(id,clip,ammo)
		if(currweap != DODW_AMERKNIFE && currweap != DODW_BRITKNIFE && currweap != DODW_SPADE && currweap != DODW_GERKNIFE)
		{
			set_task(0.1,"knife_player",id)
			return PLUGIN_CONTINUE
		}
		return PLUGIN_CONTINUE
	}
	if(arenaMode == 2)
	{
		new ammo, clip, currweap = dod_get_user_weapon(id,clip,ammo)
		if(currweap != DODW_COLT && currweap != DODW_LUGER)
		{
			set_task(0.1,"pistol_player",id)
			return PLUGIN_CONTINUE
		}
		return PLUGIN_CONTINUE
	}
	if(arenaMode == 3)
	{
		new ammo, clip, currweap = dod_get_user_weapon(id,clip,ammo)
		if(currweap != DODW_BAZOOKA && currweap != DODW_PANZERSCHRECK && currweap != DODW_AMERKNIFE && currweap != DODW_GERKNIFE && currweap != DODW_SPADE)
		{
			set_task(0.1,"bazooka_player",id)
			return PLUGIN_CONTINUE
		}
	}
	return PLUGIN_CONTINUE
}
