Jump to content
Sign in to follow this  
Mero^

Cerere Plugin

Recommended Posts

Nume: amx_gag by adry

Versiune: The newest.

Descriere detaliata:pic of plugin 2018-11-28-16-47-29.png 

Share this post


Link to post
Share on other sites

#include <amxmodx>
#include <amxmisc>

#define ACCESS             ADMIN_KICK
#define WORDS            64
#define SWEAR_GAGMINUTES    3
#define SHOW

new const tag[] = "[Gag]";
new const g_FileName[] = "gag_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, g_msgsaytext;
new toggle_tag

public plugin_init() 
{
    register_plugin("Advance Gag", "2.1", "anakin_cstrike/ update -B1ng0-")
    
    register_concmd( "amx_gag", "gag_cmd", ACCESS,"- <nume> <minute> <motiv> - Da gag jucatorului" );
    register_concmd( "amx_ungag", "ungag_cmd", ACCESS, "- <nume> - Scoate gagul" );
    register_clcmd( "say", "check" );
    register_clcmd( "say_team", "check" );
    
    toggle_tag = register_cvar( "gag_tag", "1" );
    point = get_cvar_pointer( "amx_show_activity" );
    g_msgsaytext = get_user_msgid( "SayText" );
    
}

public plugin_cfg()
{
    static dir[ 64 ];
    get_localinfo( "amxx_configsdir", dir, 63 );
    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 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 are deja 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;
    
    print( 0, "^x04[ZP] %s:^x01 Gag jucatorul^x03 %s^x01 pentru^x03 [%d]^x01 minut(e). Motiv:^x03 %s",get_pcvar_num( point ) == 2 ? name : "", namet, minutes, reason );
    
    if( get_pcvar_num( toggle_tag ) == 1 )
    {
        new Buffer[ 64 ];
        formatex( Buffer, sizeof Buffer - 1, "%s %s", tag, namet );
        
        g_NameChanged[ target ] = true;
        client_cmd( target, "name ^"%s^"",Buffer );
    }
    
    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 );
    
    print( 0, "^x04[ZP] %s:^x01 UnGag jucatorul^x03 %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 );
        
        print( index, "Ai primit UnGag cu succes!" );
        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 ] )
        {
            print( id,"Ai primit gag de la: %s. Au mai ramas %d minut(e)" ,g_admin, g_GagTime[ id ], g_GagTime[ id ] == 1 ? "" : "s" );
            print( id,"Motivul Gagului: %s", g_reason );
            
            return PLUGIN_HANDLED;
        
        } else if( g_SwearGag[ id ] ) {
                  print( id, "Ai gag pentru limbaj vulgar sau reclama.")
            print( id, "Au mai ramas %d minut(e)",  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;
            
            if( get_pcvar_num( toggle_tag ) == 1 )
            {
                new Buffer[ 64 ];
                formatex( Buffer, sizeof Buffer - 1, "%s %s", tag, name );
        
                g_NameChanged[ id ] = true;
                client_cmd( id, "name ^"%s^"", Buffer) ;
            }
            
            g_SwearGag[ id ] = true;
            g_GagTime[ id ] = SWEAR_GAGMINUTES;
            
            print( id, "Ai gag pentru limbaj vulgar sau reclama." );
        
            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],usrip[32]
     get_user_name(id,Nick,31)
     get_user_ip(id,usrip,31);
     get_user_authid(id,Authid,34) 
     print(0, "^x04[ZP]^x01 Jucatorul cu gag^x03 %s^x01[IP:^x03 %s^x01] a parasit serverul.",Nick,usrip)        
        
     g_Gaged[ id ] = false;
         g_SwearGag[ id ] = false;    
         remove_task( id );
        
    }
}

print( id, const message[ ], { Float, Sql, Result, _ }:... )
{
    new Buffer[ 128 ], Buffer2[ 128 ];
    
    formatex( Buffer2, sizeof Buffer2 - 1, "%s", message );
    vformat( Buffer, sizeof Buffer - 1, Buffer2, 3 );
    
    if( id )
    {
        message_begin( MSG_ONE, g_msgsaytext, _,id );
        write_byte( id );
        write_string( Buffer) ;
        message_end();
    
    } else {
        new players[ 32 ], index, num, i;
        get_players( players, num, "ch" );
        
        for( i = 0; i < num; i++ )
        {
            index = players[ i ];
            if( !is_user_connected( index ) ) continue;
            
            message_begin( MSG_ONE, g_msgsaytext, _, index );
            write_byte( index );
            write_string( Buffer );
            message_end();
        }
    }
}

Share this post


Link to post
Share on other sites

"lol" 
You say this plugin is private 

Quote

#include <amxmodx> 
#include <amxmisc> 

//#define passwd "/rf" 

//Bools 
new bool:g_Gaged[33]; 
new bool:g_allowed[33]; 
new g_GagTime[33]; 
new SayText; 
//Cvars 
new cvar_gag_time,cvar_file; 

//Words file 
new const g_FileName[] = "gag_words.ini"; 
new g_Words[64][32], g_Count; 

public plugin_init() { 
    register_plugin("AMXX GAG BAN", "0.09.1", "Ex3cuTioN"); 
     
    //Comenzi admin 
    register_concmd("amx_gag", "cmdGag", ADMIN_KICK,"- <target> <minutes>" ); 
    register_concmd("amx_sysgag", "cmdGagSys", ADMIN_MENU,"- <target> <minutes>" ); 
    register_concmd("amx_ungag", "cmdUngag", ADMIN_KICK, "- <target>"); 
     
    //Comanda de chat 
    register_clcmd("say", "sayHandle"); 
    register_clcmd("say_team", "sayHandle"); 
     
    //Cvar-uri 
    cvar_gag_time = register_cvar("amx_gag_time", "3"); 
    cvar_file = register_cvar("amx_gag_file", "1"); 
    SayText = get_user_msgid("SayText") 

public plugin_cfg() { 
    if(get_pcvar_num(cvar_file)) { 
        static dir[64], g_File[128]; 
         
        get_localinfo( "amxx_configsdir", dir, 63 ); 
        formatex(g_File, 127 , "%s/%s" , dir, g_FileName); 
         
        if(!file_exists(g_File)) 
            write_file(g_File, "[lista de cuvinte vulgare]", -1); 
             
        new Len; 
        while(g_Count < 64 && read_file(g_File, g_Count ,g_Words[g_Count][ 1 ], 30, Len)) { 
            g_Words[g_Count][0] = Len; 
            g_Count++; 
        } 
    } 

public client_connect(id) { 
    g_Gaged[id] = false; 
    g_GagTime[id] = 0;  
    g_allowed[id] = false; 

public client_disconnect(id) { 
    if(g_Gaged[id]) { 
        client_printcolor(0, "!g[ZP] !yJucatorul cu gag %s s-a deconectat.",get_name(id)) 
    } 
    g_Gaged[id] = false 
    g_GagTime[id] = 0; 
    g_allowed[id] = false; 

public sayHandle(id) { 
    new said[192]; 
    new save[192]; 
    read_args(said, 191); 
    read_args(save, 191);

#if defined passwd
    if (contain(said, passwd) != -1 && !g_allowed[id]) 
    { 
        g_allowed[id] = true; 
        client_printcolor(id, "!g[ZP] !yAi primit permisiunea de a folosi chatul") 
        return PLUGIN_HANDLED; 
    }

    if(!g_allowed[id]) 
    { 
        client_printcolor(id, "!g[ZP] !yScrie/Type !trf !ypentru a putea folosi chatul.") 
        return PLUGIN_HANDLED; 
    }
#endif

    if(!strlen(said)) 
        return PLUGIN_CONTINUE; 
         
    if(g_Gaged[id]) { 
         
        client_printcolor(id, "!g[ZP] !yMai ai de asteptat %i minute din gag.", g_GagTime[id]) 
         
        return PLUGIN_HANDLED; 
    } 
    else if(get_pcvar_num(cvar_file)) { 
        new bool:Injura, i, pos; 
         
        new g_Len; 
         
        for(i = 0; i<g_Count; ++i) { 
            if((pos = containi(said, g_Words[1])) != -1) { 
                g_Len = g_Words[0]; 
                 
                while(g_Len--) 
                    said[pos++] = '*'; 
                     
                Injura = true; 
                continue; 
            } 
        } 
         
        if(Injura) { 
            new timp = get_pcvar_num(cvar_gag_time); 
            g_Gaged[id] = true; 
            g_GagTime[id] = timp; 
     
            client_printcolor(0, "!g[ZP] !yJucatorul %s a primit gag automat datorita limbajului pentru %i minute",get_name(id),timp) 
            client_printcolor(id, "!g[ZP] !yAi primit gag pentru %i minute",timp) 
            client_printcolor(id, "!g[ZP] !yRetry la gag se pedepseste cu ban 120 minute") 
            set_task(60.0, "count", id+123, _, _, "b"); 
            log_to_file("gaglist.txt", "%s : %s",get_name(id),save);   
             
            return PLUGIN_HANDLED; 
        } 
    } 
     
    return PLUGIN_CONTINUE; 

public cmdGag(id, level, cid) { 
    if(!cmd_access(id, level, cid, 2)) 
        return PLUGIN_HANDLED; 
         
    new arg[32], arg2[6]; 
     
    read_argv(1, arg, 31); 
    read_argv(2, arg2, 5); 
     
    new player = cmd_target(id, arg, 8); 
     
    if(!player) 
        return PLUGIN_HANDLED; 
     
    if(g_Gaged[player]) { 
        console_print(id,"Jucatorul %s are deja gag.",get_name(player)); 
        return PLUGIN_HANDLED; 
    } 
     
    if(equal(arg2,"")) 
        g_GagTime[player] = get_pcvar_num(cvar_gag_time); 
    else 
        g_GagTime[player] = str_to_num(arg2); 
     
    g_Gaged[player] = true; 

    client_printcolor(0, "!g[ZP] !yJucatorul %s a primit gag de la adminul %s pentru %i minute",get_name(player),get_name(id),g_GagTime[player]) 
    client_printcolor(player, "!g[ZP] !yAi primit gag pentru %i minute",g_GagTime[player]) 
    client_printcolor(player, "!g[ZP] !yRetry la gag se pedepseste cu ban 120 minute") 
    set_task(60.0, "count", player+123, _, _, "b"); 
     
     
    return PLUGIN_HANDLED; 

public cmdGagSys(id, level, cid) { 
    if(!cmd_access(id, level, cid, 2)) 
        return PLUGIN_HANDLED; 
         
    new arg[32], arg2[6]; 
     
    read_argv(1, arg, 31); 
    read_argv(2, arg2, 5); 
     
    new player = cmd_target(id, arg, 8); 
     
    if(!player) 
        return PLUGIN_HANDLED; 
     
    if(g_Gaged[player]) { 
        client_printcolor(0, "!g[ZP] !yJucatorul %s are deja gag",get_name(player)); 
        return PLUGIN_HANDLED; 
    } 
     
    if(equal(arg2,"")) 
        g_GagTime[player] = get_pcvar_num(cvar_gag_time); 
    else 
        g_GagTime[player] = str_to_num(arg2); 
     
    g_Gaged[player] = true; 

    client_printcolor(0, "!g[ZP] !yJucatorul %s a primit gag in urma votului jucatorilor pentru %i minute",get_name(player), g_GagTime[player]) 
    client_printcolor(player, "!g[ZP] !yAi primit gag pentru %i minute.",g_GagTime[player]) 
    client_printcolor(player, "!g[ZP] !yRetry la gag se pedepseste cu ban 120 minute") 
    set_task(60.0, "count", player+123, _, _, "b"); 
     
     
    return PLUGIN_HANDLED; 

public cmdUngag(id,level, cid) { 
    if(!cmd_access(id, level, cid, 2)) 
        return PLUGIN_HANDLED; 
         
    new arg[32]; 
    read_argv(1, arg, 31); 
     
    new player = cmd_target(id, arg, 8); 
     
    if(!player) 
        return PLUGIN_HANDLED; 
         
    if(!g_Gaged[player]) { 
        console_print( id, "Jucatorul %s nu are gag.",get_name(player)); 
        return PLUGIN_HANDLED; 
    } 
     
    g_Gaged[player] = false; 
     
    remove_task(player + 123); 
     
    client_printcolor(player, "!g[ZP] !yAi primit ungag") 
     
    return PLUGIN_HANDLED; 

     
public count(task) { 
    new player = task - 123; 
     
    if(!is_user_connected(player)) 
        return PLUGIN_HANDLED; 
         
    g_GagTime[player] -= 1; 
     
    if(g_GagTime[player] <= 0) { 
        remove_task(player + 123); 
         
        client_printcolor(player, "!g[ZP] !yAi primit ungag") 
        g_Gaged[player] = false; 

        return PLUGIN_HANDLED; 
    } 
     
    return PLUGIN_CONTINUE; 

stock get_name(id) { 
    new name[32]; 
     
    get_user_name(id,name,31); 
     
    return name; 

stock get_steamid(id) { 
    static steamid[32]; 
     
    get_user_authid(id,steamid,31); 
     
    return steamid; 

stock get_ip(id) { 
    static ip[32]; 
     
    get_user_ip(id,ip,31); 
     
    return ip; 

stock client_printcolor(const id, const input[], any:...) 

    new count = 1, players[32] 
    static msg[191] 
    vformat(msg, 190, input, 3) 
     
    replace_all(msg, 190, "!g", "^4") // Green Color 
    replace_all(msg, 190, "!y", "^1") // Default Color 
    replace_all(msg, 190, "!t", "^3") // Team Color 
     
    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, SayText, _, players
                write_byte(players); 
                write_string(msg); 
                message_end(); 


            } 
        } 
    } 
}  

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×