PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>
new MuteTeams[CsTeams]
public plugin_init() {
register_forward( FM_Voice_SetClientListening, "MetaSetClientListeningPre", 0 )
}
public MetaSetClientListeningPre( in, spk, bool:CanListen )
{
if( is_user_connected( spk ) && MuteTeams[cs_get_user_team( spk )] )
{
engfunc( EngFunc_SetClientListening, in, spk, false )
forward_return( FMV_CELL, false )
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public lastPlayer(id)
{
new menu = menu_create("You are the last player in your team! ^nMute all players?", "lastPlayer_handler")
new TeamMuted[32]
formatex( TeamMuted, 32, "Mute all is: \y%s", ( MuteTeams[CS_TEAM_T] && MuteTeams[CS_TEAM_CT] ) ? "Enabled" : "Disabled" )
menu_additem( menu, TeamMuted, "0" )
formatex( TeamMuted, 32, "Mute T is: \y%s", MuteTeams[CS_TEAM_T] ? "Enabled" : "Disabled" )
menu_additem( menu, TeamMuted, "1" )
formatex( TeamMuted, 32, "Mute CT is: \y%s", MuteTeams[CS_TEAM_CT] ? "Enabled" : "Disabled" )
menu_additem( menu, TeamMuted, "2" )
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
menu_display( id, menu, 0 )
return PLUGIN_HANDLED;
}
public lastPlayer_handler( id, menu, item )
{
if( item == MENU_EXIT )
{
menu_destroy( menu )
return PLUGIN_HANDLED;
}
new access, callback, data[6]
menu_item_getinfo( menu, item, access, data, 5, _, _, callback )
new choice = str_to_num( data )
switch( choice )
{
case 1, 2:
{
MuteTeams[CsTeams:choice] = !MuteTeams[CsTeams:choice]
}
default:
{
if( !MuteTeams[CS_TEAM_T] || !MuteTeams[CS_TEAM_CT] )
{
MuteTeams[CS_TEAM_T] = 1
MuteTeams[CS_TEAM_CT] = 1
}
else
{
MuteTeams[CS_TEAM_T] = 0
MuteTeams[CS_TEAM_CT] = 0
}
}
}
lastPlayer(id)
return PLUGIN_HANDLED;
}
public client_death(killer, victim, wpnindex, hitplace, TK)
{
new cts[32], ts[32], ctsnum, tsnum
get_players(cts, ctsnum, "ae", "CT")
get_players(ts, tsnum, "ae", "TERRORIST")
if(ctsnum == 1 && tsnum == 1)
{
// Show mute menu to the last player
lastPlayer(killer)
}
}