View Single Post
alexr153
AlliedModders Donor
Join Date: Jul 2015
Location: In a house
Old 08-16-2017 , 15:04   Re: [CSGO] Info after death
Reply With Quote #4

I haven’t got a chance to test it but here

PHP Code:
#include <sourcemod>
#include <sdktools>

#pragma semicolon 1
#pragma newdecls required

ConVar vc_enable;
ConVar vc_time;

public 
Plugin myinfo = {
    
name        "[Voice controller] Mute dead players time",
    
author      "hAlexr",
    
description "Adds so when player dieswill set a timer to mute him/herself from alive players",
    
version     "1.0.0",
    
url         "www.crypto-gaming.tk"
};

public 
void OnPluginStart()
{
    
vc_enable CreateConVar("vc_enable""1""Enables or disables the plugin"_true0.0true1.0);
    
vc_time CreateConVar("vc_time""10.0""Time until player is muted"_true0.1true20.0);
    
AutoExecConfig(true"plugin.MuteDeadPlayers");
    
    
HookEvent("player_death"playerDeath);
    
HookEvent("round_end"roundEnd);
}

public 
Action playerDeath(Event event, const char[] namebool dontBroadcast)
{
    if(!
GetConVarBool(vc_enable))
    return;
    
    
int client GetClientOfUserId(GetEventInt(event"userid"));
    
    
CreateTimer(GetConVarFloat(vc_time), muteTimerclient);
}

public 
Action muteTimer(Handle timerint client)
{
    if(!
GetConVarBool(vc_enable))
    return;
    
    for(
int i 1i<=MaxClients;i++)
    {
        if(
IsClientConnected(client) && IsClientInGame(client) && != client && !IsPlayerAlive(client))
        {
            
int clientTeam GetClientTeam(client);
            
            if(
IsClientConnected(i) && IsClientInGame(i) && != client && IsPlayerAlive(i))
             {
                 
int iTeam GetClientTeam(i);
                 
                 if(
clientTeam == iTeam)
                 {
                     
SetListenOverride(iclientListen_No);
                 }
             }
        }
    }
}

public 
Action roundEnd(Event event, const char[] namebool dontBroadcast)
{
    for(
int i 1<= MaxClientsi++)
    {
        if(
IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i))
         {
             
int clientTeam GetClientTeam(i);
             
unmuteClients(iclientTeam);
         }
    }
}

public 
void unmuteClients(int clientint clientTeam)
{
    for(
int i 1<= MaxClientsi++)
    {
        if(
IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i))
         {
             
int iTeam GetClientTeam(client);
             if(
iTeam == clientTeam)
             {
                 
SetListenOverride(iclientListen_Yes);
                 
SetListenOverride(clientiListen_Yes);
             }
         }
    }

alexr153 is offline