#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <nvault>
new const SaveKey[] = "mute_settings"
new MuteTeams[CsTeams]
new VarSave
public plugin_init()
{
register_plugin( "Csapat némitás", "1.2", "Wrecked" ) // :avast:
VarSave = register_cvar( "tvc_save", "1" )
register_clcmd( "say /vcontrol", "CmdMute" )
register_clcmd( "say_team /vcontrol", "CmdMute" )
register_clcmd( "/vcontrol", "CmdMute" )
register_forward( FM_Voice_SetClientListening, "MetaSetClientListeningPre", 0 )
if( get_pcvar_num( VarSave ) )
{
new t_muteval[2], ct_muteval[2]
new Entry[4]
new vHandle = nvault_open( "tvm_vault" )
nvault_get( vHandle, SaveKey, Entry, 3 )
nvault_close( vHandle ) // since it's only being accessed in the beginning and end of the plugin, we don't need it to be open the entire time
parse( Entry, t_muteval, 1, ct_muteval, 1 )
MuteTeams[CS_TEAM_T] = str_to_num( t_muteval )
MuteTeams[CS_TEAM_CT] = str_to_num( ct_muteval )
}
}
public plugin_end()
{
if( get_pcvar_num( VarSave ) )
{
new vHandle = nvault_open( "tvm_vault" )
new Entry[4]
formatex( Entry, 3, "%i %i", MuteTeams[CS_TEAM_T], MuteTeams[CS_TEAM_CT] )
nvault_set( vHandle, SaveKey, Entry )
nvault_close( vHandle )
}
}
public MetaSetClientListeningPre( in, spk, bool:CanListen )
{
if( is_user_connected( spk ) && MuteTeams[cs_get_user_team( spk )] ) // getting runtime errors, needed the is_user_connected check
{
engfunc( EngFunc_SetClientListening, in, spk, false )
forward_return( FMV_CELL, false )
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public CmdMute( id )
{
if( !( get_user_flags( id ) & ADMIN_BAN ) )
{
return PLUGIN_CONTINUE;
}
new menu = menu_create( "Csapat beszéd státusz", "VoiceHandler" )
new TeamMuted[32]
formatex( TeamMuted, 32, "Összes csapat némitása: \y%s", ( MuteTeams[CS_TEAM_T] && MuteTeams[CS_TEAM_CT] ) ? "Aktiválva[--Nincs beszéd, Bocsesz :D---]" : "Kikapcsolva[--Mondhatjátok..--]" )
menu_additem( menu, TeamMuted, "0" )
formatex( TeamMuted, 32, "Terroristák némitása: \y%s", MuteTeams[CS_TEAM_T] ? "Aktív[--Nincs beszéd, Bocsesz :D---]" : "Kikapcsolva[--Mondhatjátok..--]" )
menu_additem( menu, TeamMuted, "1" )
formatex( TeamMuted, 32, "Counter-Terroristák némitása: \y%s", MuteTeams[CS_TEAM_CT] ? "Aktív [--Nincs beszéd, Bocsesz :D---]" : "Kikapcsolva [--Mondhatjátok..--]" )
menu_additem( menu, TeamMuted, "2" )
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
menu_display( id, menu, 0 )
return PLUGIN_HANDLED;
}
public VoiceHandler( 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
}
}
}
CmdMute( id )
return PLUGIN_HANDLED;
}