View Single Post
G0dFulL.
Member
Join Date: Jun 2020
Location: Romania
Old 08-14-2020 , 09:17   Re: [CSGO][REQ] Plugin for any server that there is
Reply With Quote #4

Quote:
Originally Posted by Cruze View Post
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_bSourceCommsg_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[] namebool dbc)
{
    
int client GetClientOfUserId(event.GetInt("userid"));

    if(
client && client <= MaxClients)
    {
        if(
GetTeamClientCount(CS_TEAM_T) == && 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<= MaxClientsi++)
            {
                if(!
IsClientInGame(i))
                {
                    continue;
                }
                
SetClientListeningFlags(iVOICE_MUTED);
            }
            
g_Muted true;
        }
        else if(
GetTeamClientCount(CS_TEAM_CT) == && 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<= MaxClientsi++)
            {
                if(!
IsClientInGame(i))
                {
                    continue;
                }
                
SetClientListeningFlags(iVOICE_MUTED);
            }
            
g_Muted true;
        }
    }
    return 
Plugin_Continue;
}

public 
Action Event_OnRoundStart(Event event, const char[] namebool dbc)
{
    
g_Muted false;
}

public 
Action Event_OnRoundEnd(Event event, const char[] namebool dbc)
{
    for(
int i 1<= MaxClientsi++)
    {
        if(!
IsClientInGame(i))
        {
            continue;
        }
        if(
GetClientListeningFlags(i) == VOICE_MUTED)
        {
            if(
g_bSourceComms)
            {
                if(
SourceComms_GetClientMuteType(i) == bNot)
                {
                    
SetClientListeningFlags(iVOICE_NORMAL);
                }
                return 
Plugin_Continue;
            }
            if(
g_bBaseComms)
            {
                if(!
BaseComm_IsClientMuted(i))
                {
                    
SetClientListeningFlags(iVOICE_NORMAL);
                }
                return 
Plugin_Continue;
            }
            
SetClientListeningFlags(iVOICE_NORMAL);
        }
    }
    
g_Muted false;
    return 
Plugin_Continue;

Untested. It was requested by someone in discord
Im back. I tried it and restarted my server. Everyone can still talk. No errors in logs or from sm plugins list i dont know why
__________________
My Discord: G0dFulL#4405 | My Community
G0dFulL. is offline