PHP Code:
#include <sourcemod>
#include <sdktools>
#include <cstrike>
#undef REQUIRE_PLUGIN
#include <sourcecomms>
#include <basecomm>
#define REQUIRE_PLUGIN
#pragma semicolon 1
#pragma newdecls required
bool g_Muted;
bool g_bSourceComms, g_bBaseComms;
public Plugin myinfo =
{
name = "Mute All Players On Clutch Scene",
author = "Cruze",
description = "Mute All Player When There Is 1 V/S X Situation.",
version = "1.1",
url = "http://steamcommunity.com/profiles/76561198132924835"
};
public void OnPluginStart()
{
HookEvent("player_death", Event_OnPlayerDeath);
HookEvent("round_start", Event_OnRoundStart);
HookEvent("round_end", Event_OnRoundEnd);
}
public void OnAllPluginsLoaded()
{
g_bSourceComms = LibraryExists("sourcecomms++");
g_bBaseComms = LibraryExists("basecomm");
}
public void OnLibraryAdded(const char[] name)
{
if(StrEqual(name, "sourcecomms++"))
{
g_bSourceComms = true;
}
else if(StrEqual(name, "basecomm"))
{
g_bBaseComms = true;
}
}
public void OnLibraryRemoved(const char[] name)
{
if(StrEqual(name, "sourcecomms++"))
{
g_bSourceComms = false;
}
else if(StrEqual(name, "basecomm"))
{
g_bBaseComms = false;
}
}
public void OnMapStart()
{
g_Muted = false;
}
public Action Event_OnPlayerDeath(Event event, const char[] name, bool dbc)
{
int client = GetClientOfUserId(event.GetInt("userid"));
if(client && client <= MaxClients)
{
if(GetTeamClientCount(CS_TEAM_T) == 1 && GetTeamClientCount(CS_TEAM_CT) > 0)
{
PrintToChatAll("It's %ix%i", GetTeamClientCount(CS_TEAM_T), GetTeamClientCount(CS_TEAM_CT));
if(g_Muted)
{
return Plugin_Continue;
}
for(int i = 1; i <= MaxClients; i++)
{
if(!IsClientInGame(i))
{
continue;
}
SetClientListeningFlags(i, VOICE_MUTED);
}
g_Muted = true;
}
else if(GetTeamClientCount(CS_TEAM_CT) == 1 && GetTeamClientCount(CS_TEAM_T) > 0)
{
PrintToChatAll("It's %ix%i", GetTeamClientCount(CS_TEAM_CT), GetTeamClientCount(CS_TEAM_T));
if(g_Muted)
{
return Plugin_Continue;
}
for(int i = 1; i <= MaxClients; i++)
{
if(!IsClientInGame(i))
{
continue;
}
SetClientListeningFlags(i, VOICE_MUTED);
}
g_Muted = true;
}
}
return Plugin_Continue;
}
public Action Event_OnRoundStart(Event event, const char[] name, bool dbc)
{
g_Muted = false;
}
public Action Event_OnRoundEnd(Event event, const char[] name, bool dbc)
{
for(int i = 1; i <= MaxClients; i++)
{
if(!IsClientInGame(i))
{
continue;
}
if(GetClientListeningFlags(i) == VOICE_MUTED)
{
if(g_bSourceComms)
{
if(SourceComms_GetClientMuteType(i) == bNot)
{
SetClientListeningFlags(i, VOICE_NORMAL);
}
return Plugin_Continue;
}
if(g_bBaseComms)
{
if(!BaseComm_IsClientMuted(i))
{
SetClientListeningFlags(i, VOICE_NORMAL);
}
return Plugin_Continue;
}
SetClientListeningFlags(i, VOICE_NORMAL);
}
}
g_Muted = false;
return Plugin_Continue;
}
Untested. It was requested by someone in discord
__________________