[Cerere Plugin] Gag

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Post Reply
Shuya
Membru, skill 0
Membru, skill 0
Posts: 76
Joined: 22 Feb 2019, 18:40
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Location: Harlau
Contact:

21 Feb 2023, 17:27

Plugin Cerut: gag
Descriere (adica ce face el mai exact): Doresc un plugin de gag cand dai gag unui jucator jucatorul respectiv cand zice ceva in chat se aude un sunet precum ca are gag si sa alara si in chat You have been gagged. chiar daca iese de pe server ai intra inapoi si ju a expirat gagul sa nu se scoata amx_gag nume minute
Ai cautat pluginul?(daca da, precizeaza cum): da sar nu algaseac acesta care l-am cerut eu
Serverul impune conditii strict HLDS/REHLDS?: -
Necesita mod special?: nu
Versiune AMXX Server: 1.81 1.8.2 1.8.3 multumesc
RoyalServer 2
User avatar
CyBer[N]eTicK
Membru, skill +1
Membru, skill +1
Posts: 190
Joined: 29 May 2020, 05:35
Detinator Steam: Da
CS Status: Strong & Original
Detinator server CS: BB.BLACKGAMES.RO
SteamID: /id/cybernetick_cbk/
Fond eXtream: 0
Location: Albania, tirana
Discord: cybernetick_cbk
Has thanked: 21 times
Been thanked: 18 times
Contact:

21 Feb 2023, 18:41

Nu este chiar ceea ce cauti cu sunetul, dar este un plugin de gag super okei.

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <nvault> 

#define ACCESS    ADMIN_SLAY
#define WORDS   999
#define SWEAR_GAGMINUTES 3
#define SHOW

new const g_FileName[] = "automute-words.ini";

new 
bool:g_Gaged[ 33 ], g_GagTime[ 33 ],
bool:g_SwearGag[ 33 ], bool:g_CmdGag[ 33 ],
bool:g_NameChanged[33];

new g_reason[ 32 ], g_admin[ 32 ], g_name[ 33 ][ 32 ];

new g_WordsFile[ 128 ];
new g_Words[ WORDS ][ 32 ], g_Count, g_Len;
new point
new g_vault

public plugin_init() 
{
    register_plugin("GAG-Manager", "1.0", "ExoTiQ")
    
    register_concmd( "amx_gag", "gag_cmd", ACCESS,"- <nume> <minute> <motiv> [Plugin by ExoTiQ]" );
    register_concmd( "amx_ungag", "ungag_cmd", ACCESS, "- <nume>" );
    register_clcmd( "say", "check" );
    register_clcmd( "say_team", "check" );
    g_vault = nvault_open("ListaDisconnect");
    point = get_cvar_pointer( "amx_show_activity" );
    
}

public plugin_cfg()
{
    static dir[ 999 ];
    get_localinfo( "amxx_configsdir", dir, 998 );
    formatex( g_WordsFile , 127 , "%s/%s" , dir, g_FileName );
    
    if( !file_exists( g_WordsFile ) )
        write_file( g_WordsFile, "[Gag Words]", -1 );
    
    new Len;
    
    while( g_Count < WORDS && read_file( g_WordsFile, g_Count ,g_Words[ g_Count ][ 1 ], 30, Len ) )
    {
        g_Words[ g_Count ][ 0 ] = Len;
        g_Count++;
    }
}

public client_connect(id)
{
    LoadMutedPlayers(id)
}

public gag_cmd( id, level, cid )
{
    if( !cmd_access( id, level, cid, 4 ) )
        return PLUGIN_HANDLED;   
    
    new arg[ 32 ], arg2[ 6 ], reason[ 32 ];
    new name[ 32 ], namet[ 32 ];
    new minutes;
    
    read_argv(1, arg, 31)
    
    new player = cmd_target(id, arg, 9)
    
    if (!player) 
        return PLUGIN_HANDLED
    
    read_argv( 1, arg, sizeof arg - 1 );
    read_argv( 2, arg2, sizeof arg2 - 1 );
    read_argv( 3, reason, sizeof reason - 1 );
    
    get_user_name( id, name, 31 );
    
    copy( g_admin, 31, name );
    copy( g_reason, 31, reason );
    remove_quotes( reason );
    
    minutes = str_to_num( arg2 );
    
    new target = cmd_target( id, arg, 10 );
    if( !target)
        return PLUGIN_HANDLED;
    
    if( g_Gaged[ target ] )
    {
        console_print( id, "Jucatorul deja are gag!" );
        return PLUGIN_HANDLED;
    }
    
    get_user_name( target, namet, 31 );
    copy( g_name[ target ], 31, namet );
    
    g_CmdGag[ target ] = true;
    g_Gaged[target] = true;
    g_GagTime[ target ] = minutes;
    
    culoare_scris( 0, "!verde[GAG-Manager] !verde%s: !verde!team%s !team a primit gag pentru !verde %d minute. !teamMotiv: !verde%s",get_pcvar_num( point ) == 2 ? name : "", namet, minutes, reason );
    
    
    set_task( 60.0, "count", target + 123, _, _, "b" );
    
    return PLUGIN_HANDLED;
}

public ungag_cmd( id,level, cid )
{
    if( !cmd_access( id, level, cid, 2 ) )
        return PLUGIN_HANDLED;
    
    new arg[ 32 ], reason[ 32 ], name[ 32 ];
    read_argv( 1, arg, sizeof arg - 1 );
    read_argv( 2, reason, sizeof reason - 1 );
    get_user_name( id, name, sizeof name - 1 );
    remove_quotes( reason );
    
    new target = cmd_target( id, arg, 11 );
    if( !target )
        return PLUGIN_HANDLED;
    new namet[ 32 ];
    get_user_name( target, namet, sizeof namet - 1 );
    
    if( !g_Gaged[ target ] )
    {
        console_print( id, "Jucatorul %s nu are gag.", namet );
        return PLUGIN_HANDLED;
    }
    
    g_Gaged[ target ] = false;
    g_SwearGag[ target ] = false;
    
    if( g_NameChanged[ target ] )
        client_cmd( target, "name ^"%s^"", g_name[ target ] );
    
    g_NameChanged[ target ] = false;
    
    remove_task( target + 123 );
    
    culoare_scris( 0, "!verde[GAG-Manager] !team%s: !team A scos gag jucatorului !verde!team%s",get_pcvar_num( point ) == 2 ? name : "", namet );
    
    return PLUGIN_HANDLED;
}

public count( task )
{
    new index = task - 123;
    if( !is_user_connected( index ) )
        return 0;
    
    g_GagTime[index] -= 1;
    
    if( g_GagTime[ index ] <= 0 )
    {
        remove_task( index + 123 );
        new name[ 32 ]
        get_user_name( index, name, 31 );
        culoare_scris( 0, "!verde[GAG-Manager] !team %s  Nu mai are gag!",name );
        g_Gaged[ index ] = false;
        
        if( g_NameChanged[ index ] )
            client_cmd( index, "name ^"%s^"", g_name[ index ] );
        
        return 0;
    }
    
    return 1;
}

public check( id )
{
    new said[ 192 ];
    read_args( said, sizeof said - 1 );
    
    if( !strlen( said ) )
        return PLUGIN_CONTINUE;
    
    if( g_Gaged[ id ] )
    {
        if( g_CmdGag[ id ] )
        {
            culoare_scris( id,"!team[!verdeGAG-Manager!team] !verde  [ !team Ai luat gag de la !verde%s !verde] ", g_admin);
            culoare_scris( id,"!team[!verdeGAG-Manager!team] !verde  [ !team Timp ramas pentru ungag !verde%d minutes !verde] " , g_GagTime[ id ], g_GagTime[ id ] == 1 ? "" : "s" );
            culoare_scris( id,"!team[!verdeGAG-Manager!team] !verde  [ !team Motiv: !verde%s !verde] ", g_reason );
            
            return PLUGIN_HANDLED;
            
            } else if( g_SwearGag[ id ] ) {
            culoare_scris( id, "!verde[GAG-Manager] !verde  [ !team Ai primit interzicere pentru folosirea chatului! (Reclama,Swear) !verde] ")
            culoare_scris( id,"!verde[GAG-Manager] !verde  [ !team Timp ramas pentru ungag !verde%d !verdeminutes !verde] " , g_GagTime[ id ], g_GagTime[ id ] == 1 ? "" : "s" );
            return PLUGIN_HANDLED;
        }
        } else {
        
        new bool:g_Sweared, i, pos;
        
        for( i = 0; i < g_Count; ++i )
        {
            if( ( pos = containi( said, g_Words[ i ][ 1 ] ) ) != -1 )
            {
                g_Len = g_Words[ i ][ 0 ];
                
                while( g_Len-- )
                    said[ pos++ ] = '*';
                
                g_Sweared = true;
                continue;
            }
        }
        
        if( g_Sweared )
        {
            new cmd[ 32 ], name[ 32 ];
            
            get_user_name( id, name, sizeof name - 1 );
            read_argv( 0, cmd, sizeof cmd - 1 );
            copy( g_name[ id ], 31, name );
            
            engclient_cmd( id, cmd, said );
            g_Gaged[ id ] = true;
            g_CmdGag[ id ] = false;
            
            
            
            g_SwearGag[ id ] = true;
            g_GagTime[ id ] = SWEAR_GAGMINUTES;
            
            culoare_scris( 0,"!team !verde [GAG-Filter] !normal muted !team%s !normal for !verde 3 !normal minutes",name );
            
            
            set_task( 60.0, "count",id+123,_,_,"b");
            
            return PLUGIN_HANDLED;
        }
    }
    
    return PLUGIN_CONTINUE;
}

public client_disconnect(id) 
{ 
    if(g_Gaged[id]) 
    {
        new Nick[32],Authid[35],userip[32]
        get_user_name(id,Nick,31)
        get_user_ip(id,userip,31);
        get_user_authid(id,Authid,34) 
        culoare_scris(0, "!team[!normalGAG-Manager!team] !normal Jucatorul cu gag  !verde%s !team[!normalIP: !verde%s!team] !normalA iesit de pe server.",Nick,userip)        
        SaveMutedPlayers(id);    
        remove_task( id );
	g_Gaged[id] = false;
        
    }
}

public SaveMutedPlayers(id) 
{ 
    
    new name[32], userip[32];
    get_user_name(id,name,31); 
    get_user_ip(id,userip,31);
    new vaultkey[64],vaultdata[256]  
    format(vaultkey,63,"%s[IP: %s]-Muted",name,userip) 
    format(vaultdata,255,"%i#%i#",g_Gaged[id],g_SwearGag[id]) 
    nvault_set(g_vault,vaultkey,vaultdata) 
    return PLUGIN_CONTINUE 
}  

public LoadMutedPlayers(id) 
{ 
    new name[32], userip[32];
    get_user_name(id,name,31); 
    get_user_ip(id,userip,31);
    new vaultkey[64],vaultdata[256] 
    format(vaultkey,63,"%s[IP: %s]-Muted",name,userip) 
    format(vaultdata,255,"%i#%i#",g_Gaged[id],g_SwearGag[id])
    nvault_get(g_vault,vaultkey,vaultdata,255) 
    replace_all(vaultdata, 255, "#", " ") 
    return PLUGIN_CONTINUE 
}  

stock culoare_scris(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)
    
    replace_all(msg, 190, "!verde", "^4")
    replace_all(msg, 190, "!normal", "^1")
    replace_all(msg, 190, "!team", "^3")
    
    if (id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players)
                write_byte(players);
                write_string(msg);
                message_end();
            }
        }
    }  
}
Shuya
Membru, skill 0
Membru, skill 0
Posts: 76
Joined: 22 Feb 2019, 18:40
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Location: Harlau
Contact:

08 Mar 2023, 14:11

Acesta il am si eu dar diresc un plugin mai simplu in senusul exemplu: amx_gag shuya 3 (nume timp, fara motiv) iar jucatorul cand primeste gag sa ii apara in chiat Ai primit gag. cand ii expira sa ii apara in chat Ai primit ungag.
User avatar
kidd0x
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 1054
Joined: 06 Oct 2018, 14:41
Detinator Steam: Da
SteamID: /id/kidd0x/
Reputatie: Utilizator neserios (tepar!)
Fond eXtream: 0
Location: Constangeles
Discord: kidd0x
Has thanked: 172 times
Been thanked: 81 times

08 Mar 2023, 14:37

Cautati frate pe internet, sunt n plugin-uri de gag de genu, va e lene, ar trebui primita o interdictie pe cereri la putorile de genul
User avatar
Doctor whO? <3
Membru, skill +3
Membru, skill +3
Posts: 1196
Joined: 21 Jun 2013, 12:40
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Reputatie: Fost Membru Club eXtreamCS (doua luni)
Has thanked: 109 times
Been thanked: 75 times
Contact:

08 Mar 2023, 15:13

kidd0x wrote:
08 Mar 2023, 14:37
Cautati frate pe internet, sunt n plugin-uri de gag de genu, va e lene, ar trebui primita o interdictie pe cereri la putorile de genul
Putorile nu vor face niciodată acest lucru. Ei prefera să primească mura-n gură decat sa dea un simplu search pe internet. Daca s-ar putea, ar avea și pretenția de a le configura serverul 🤣🤣
User avatar
Laurentiu P.
Fost moderator
Fost moderator
Posts: 2549
Joined: 10 Jul 2013, 21:26
Detinator Steam: Da
Reputatie: Fost super moderator
Fond eXtream: 100
Has thanked: 26 times
Been thanked: 62 times
Contact:

08 Mar 2023, 19:34

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <engine>

// time in minutes
#define DEFAULT_GAG_TIME 10
#define DEFAULT_MUTE_TIME 10

// level to use amx_gag and amx_ungag
#define ADMIN_GAG ADMIN_LEVEL_A

new bool:g_AllowNameChange[33];

// text
new const g_TextGagTag[] = "[GAG]";
new bool:g_TextGagged[33];
new Float:g_TextGagTime[33];
new Float:g_PermTextGagged[100];
new g_TextGaggedAuthid[100][35];
new g_TotalTextGagLeaves;

// mute
new const g_MutedTag[] = "[MUTE]";
new bool:g_Muted[33];
new Float:g_MutedTime[33];
new Float:g_PermMuted[100];
new g_MutedAuthid[100][35];
new g_TotalMutedLeaves;

public plugin_init()
{
	register_plugin("AMX Gag&Mute", "1.0", "Exolent");
	register_concmd("amx_gag", "concmd_Gag", ADMIN_GAG, "<nick, #userid, authid> <time> -- leave time empty for rest of map");
	register_concmd("amx_ungag", "concmd_Ungag", ADMIN_GAG, "<nick, #userid, authid>");
	register_concmd("amx_mute", "concmd_Mute", ADMIN_GAG, "<nick, #userid, authid> <time> -- leave empty for rest of map");
	register_concmd("amx_unmute", "concmd_Unmute", ADMIN_GAG, "<nick, #userid, authid>");
	register_clcmd("say", "clcmd_Say");
	register_clcmd("say_team", "clcmd_Say");
}

public client_putinserver(id)
{
	g_TextGagged[id] = false;
	g_TextGagTime[id] = 0.0;
	g_Muted[id] = false;
	g_MutedTime[id] = 0.0;
	
	new authid[35], bool:text = false, mute = false;
	if(g_TotalTextGagLeaves > 0)
	{
		get_user_authid(id, authid, 34);
		for(new i=0; i < 100; i++)
		{
			if(equali(authid, g_TextGaggedAuthid))
			{
				g_TextGagged[id] = true;
				
				if(g_PermTextGagged > -1.0)
					set_task(g_PermTextGagged, "task_UngagPlayer", id + 112233);
				
				g_TextGagTime[id] = g_PermTextGagged;
				g_PermTextGagged = 0.0;
				g_TextGaggedAuthid[0] = '^0';
				g_TotalTextGagLeaves--;
				
				text = true;
				break;
			}
		}
	}
	if(g_TotalMutedLeaves > 0)
	{
		if(!strlen(authid))
			get_user_authid(id, authid, 34);
		
		for(new i=0; i < 100; i++)
		{
			if(equali(authid, g_MutedAuthid))
			{
				g_Muted[id] = true;
				
				if(g_PermMuted > -1.0)
					set_task(g_PermMuted, "task_UnmutePlayer", id + 223344);
				
				g_MutedTime[id] = g_PermMuted;
				g_PermMuted[i] = 0.0;
				g_MutedAuthid[i][0] = '^0';
				g_TotalMutedLeaves--;
				
				mute = true;
				break;
			}
		}
	}
	if(text || mute)
	{
		new name[32], ip[64];
		get_user_name(id, name, 31);
		get_user_ip(id, ip, 63, 0);
		if(text && mute)
		{
			client_print(0, print_chat, "[AMXX] A gagged&muted player has returned! %s", name);
			format(name, 31, "%s%s%s", g_TextGagTag, g_MutedTag, name);
		}
		else if(text)
		{
			client_print(0, print_chat, "[AMXX] A gagged player has returned! %s", name);
			format(name, 31, "%s%s", g_TextGagTag, name);
		}
		else if(mute)
		{
			client_print(0, print_chat, "[AMXX] A muted player has returned! %s", name);
			format(name, 31, "%s%s", g_MutedTag, name);
		}
		client_print(0, print_chat, "[AMXX] IP: %s", ip);
		g_AllowNameChange[id] = true;
		set_user_name(id, name);
	}
	if(!mute)
		set_speak(id, SPEAK_NORMAL);
	else
		set_speak(id, SPEAK_MUTED);
}

public client_disconnect(id)
{
	if(!g_TextGagged[id] && !g_Muted[id])
		return;
	
	new authid[35], bool:text = g_TextGagged[id], mute = g_Muted[id];
	get_user_authid(id, authid, 34);
	if(g_TextGagged[id])
	{
		for(new i=0; i < 100; i++)
		{
			if(!strlen(g_TextGaggedAuthid[i]))
			{
				g_TextGagged[id] = false;
				g_PermTextGagged[i] = g_TextGagTime[id];
				formatex(g_TextGaggedAuthid[i], 34, authid);
				g_TotalTextGagLeaves++;
				
				text = true;
				
				if(task_exists(id + 112233))
					remove_task(id + 112233);
				
				break;
			}
		}
	}
	if(g_Muted[id])
	{
		for(new i=0; i < 100; i++)
		{
			if(!strlen(g_MutedAuthid[i]))
			{
				g_Muted[id] = false;
				g_PermMuted[i] = g_MutedTime[id];
				formatex(g_MutedAuthid[i], 34, authid);
				g_TotalMutedLeaves++;
				
				mute = true;
				
				if(task_exists(id + 223344))
					remove_task(id + 223344);
				
				break;
			}
		}
	}
	if(text || mute)
	{
		new name[32], ip[64];
		get_user_name(id, name, 31);
		get_user_ip(id, ip, 63, 0);
		if(text && mute)
		{
			deletei(name, g_TextGagTag);
			deletei(name, g_MutedTag);
			client_print(0, print_chat, "[AMXX] A gagged&muted player has left! %s", name);
		}
		else if(text)
		{
			deletei(name, g_TextGagTag);
			client_print(0, print_chat, "[AMXX] A gagged player has left! %s", name);
		}
		else if(mute)
		{
			deletei(name, g_MutedTag);
			client_print(0, print_chat, "[AMXX] A muted player has left! %s", name);
		}
		client_print(0, print_chat, "[AMXX] IP: %s", ip);
	}
}

public client_infochanged(id)
{
	if(!g_TextGagged[id] && !g_Muted[id])
		return;
	
	if(g_AllowNameChange[id])
	{
		g_AllowNameChange[id] = false;
		return;
	}
	
	new newname[32], oldname[32];
	get_user_name(id, oldname, 31);
	get_user_info(id, "name", newname, 31);
	if(!equali(newname, oldname))
	{
		g_AllowNameChange[id] = true;
		set_user_name(id, oldname);
	}
}

public concmd_Gag(id, level, cid)
{
	if(!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED;
	
	new arg[35];
	read_argv(1, arg, 34);
	new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY);
	if(!player)
		return PLUGIN_HANDLED;
	
	if(g_TextGagged[player])
	{
		client_print(id, print_console, "[AMXX] Client is already gagged!");
		return PLUGIN_HANDLED;
	}
	
	new Float:gagtime;
	if(read_argc() > 2)
	{
		read_argv(2, arg, 31);
		gagtime = str_to_float(arg) * 60.0;
		if(gagtime < 60.0)
			gagtime = DEFAULT_GAG_TIME * 60.0;
	}
	else
		gagtime = -1.0;
	
	new gagtype[32];
	if(!(gagtime > -1.0))
		formatex(gagtype, 31, "until next map");
	else
	{
		formatex(gagtype, 31, "for %.2f minutes", gagtime);
		set_task(gagtime, "task_UngagPlayer", id + 112233);
	}
	
	new name_a[32], name_p[32];
	new authid_a[35], authid_p[35];
	get_user_name(id, name_a, 31);
	get_user_name(player, name_p, 31);
	get_user_authid(id, authid_a, 35);
	get_user_authid(id, authid_p, 35);
	show_activity(id, name_a, "gagged %s %s!", name_p, gagtype);
	log_amx("%s <%s> gagged %s <%s> %s", name_a, authid_a, name_p, authid_p, gagtype);
	
	format(name_p, 31, "%s%s", g_TextGagTag, name_p);
	g_AllowNameChange[player] = true;
	set_user_name(player, name_p);
	
	g_TextGagged[player] = true;
	g_TextGagTime[player] = gagtime;
	return PLUGIN_HANDLED;
}

public concmd_Ungag(id, level, cid)
{
	if(!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED;
	
	new arg[35];
	read_argv(1, arg, 31);
	new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY);
	if(!player)
		return PLUGIN_HANDLED;
	
	if(!g_TextGagged[player])
	{
		client_print(id, print_console, "[AMXX] Client was not gagged!");
		return PLUGIN_HANDLED;
	}
	
	new name_a[32], name_p[32];
	new authid_a[35], authid_p[35];
	get_user_name(id, name_a, 31);
	get_user_name(player, name_p, 31);
	get_user_authid(id, authid_a, 35);
	get_user_authid(id, authid_p, 35);
	deletei(name_p, g_TextGagTag);
	show_activity(id, name_a, "ungagged %s!", name_p);
	log_amx("%s <%s> ungagged %s <%s>", name_a, authid_a, name_p, authid_p);
	
	g_AllowNameChange[player] = true;
	set_user_name(player, name_p);
	
	g_TextGagged[player] = false;
	g_TextGagTime[player] = 0.0;
	if(task_exists(player + 112233))
		remove_task(player + 112233);
	
	return PLUGIN_HANDLED;
}

public concmd_Mute(id, level, cid)
{
	if(!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED;
	
	new arg[35];
	read_argv(1, arg, 34);
	new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY);
	if(!player)
		return PLUGIN_HANDLED;
	
	if(g_Muted[player])
	{
		client_print(id, print_console, "[AMXX] Client is already muted!");
		return PLUGIN_HANDLED;
	}
	
	new Float:mutetime;
	if(read_argc() > 2)
	{
		read_argv(2, arg, 31);
		mutetime = str_to_float(arg) * 60.0;
		if(mutetime < 60.0)
			mutetime = DEFAULT_MUTE_TIME * 60.0;
	}
	else
		mutetime = -1.0;
	
	new mutetype[32];
	if(!(mutetime > -1.0))
		formatex(mutetype, 31, "until next map");
	else
	{
		formatex(mutetype, 31, "for %.2f minutes", mutetime);
		set_task(mutetime, "task_UnmutePlayer", id + 223344);
	}
	
	new name_a[32], name_p[32];
	new authid_a[35], authid_p[35];
	get_user_name(id, name_a, 31);
	get_user_name(player, name_p, 31);
	get_user_authid(id, authid_a, 35);
	get_user_authid(id, authid_p, 35);
	show_activity(id, name_a, "muted %s %s!", name_p, mutetype);
	log_amx("%s <%s> muted %s <%s> %s", name_a, authid_a, name_p, authid_p, mutetype);
	
	format(name_p, 31, "%s%s", g_MutedTag, name_p);
	g_AllowNameChange[player] = true;
	set_user_name(player, name_p);
	
	g_Muted[player] = true;
	g_MutedTime[player] = mutetime;
	set_speak(player, SPEAK_MUTED);
	return PLUGIN_HANDLED;
}

public concmd_Unmute(id, level, cid)
{
	if(!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED;
	
	new arg[35];
	read_argv(1, arg, 31);
	new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY);
	if(!player)
		return PLUGIN_HANDLED;
	
	if(!g_Muted[player])
	{
		client_print(id, print_console, "[AMXX] Client was not muted!");
		return PLUGIN_HANDLED;
	}
	
	new name_a[32], name_p[32];
	new authid_a[35], authid_p[35];
	get_user_name(id, name_a, 31);
	get_user_name(player, name_p, 31);
	get_user_authid(id, authid_a, 35);
	get_user_authid(id, authid_p, 35);
	deletei(name_p, g_MutedTag);
	show_activity(id, name_a, "unmuted %s!", name_p);
	log_amx("%s <%s> unmuted %s <%s>", name_a, authid_a, name_p, authid_p);
	
	g_AllowNameChange[player] = true;
	set_user_name(player, name_p);
	
	g_Muted[player] = false;
	g_MutedTime[player] = 0.0;
	if(task_exists(player + 223344))
		remove_task(player + 223344);
	
	return PLUGIN_HANDLED;
}

public clcmd_Say(id)
{
	return g_TextGagged[id] ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
}

public task_UngagPlayer(id)
{
	id -= 112233;
	
	new name[32];
	get_user_name(id, name, 31);
	client_print(0, print_chat, "[AMXX] %s is now ungagged!", name);
	
	g_TextGagged[id] = false;
	g_TextGagTime[id] = 0.0;
}

public task_UnmutePlayer(id)
{
	id -= 223344;
	
	new name[32];
	get_user_name(id, name, 31);
	client_print(0, print_chat, "[AMXX] %s is now unmuted!", name);
	
	g_Muted[id] = false;
	g_MutedTime[id] = 0.0;
}

set_user_name(id, const name[])
{
	set_user_info(id, "name", name);
	client_cmd(id, "name ^"%s^"", name);
}

deletei(text[], const what[])
{
	new pos = containi(text, what);
	new len, i;
	while(pos >= 0)
	{
		len = strlen(what);
		i = 0;
		while(text[pos+len+i] != 0)
		{
			text[pos+i] = text[pos+len+i];
			i++;
		}
		text[pos+i] = '^0';
		pos = containi(text, what);
	}
}
amxmodx/amx-gag-t82052.html
no...
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 41 guests