Problema GAG-Manager plugin

Discutii legate de instalarea, configurarea si modificarea unui server de Counter-Strike.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
Corax
Membru, skill +1
Membru, skill +1
Posts: 262
Joined: 17 Feb 2015, 15:42
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: coraxcfg96
Fond eXtream: 0
Has thanked: 3 times
Contact:

23 Feb 2015, 17:02

Deci am o problema cu acest plugin, deoarece cand ii dau eu sau se da automat gag unui jucator, tot poate sa vorbeasca jucatorul respectiv, indiferent daca are gag primit, va rog sa-mi fixati problema in acest script, daca puteti.
| Afiseaza codul
#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();
            }
        }
    }  
}
Kekshost
User avatar
Nubo
Fost moderator
Fost moderator
Posts: 2734
Joined: 11 Jul 2012, 18:45
Detinator Steam: Da
CS Status: [əˈnɒn.ɪ.məs]
Reputatie: Fost scripter eXtreamCS
Fost eXtream Mod
Has thanked: 8 times
Been thanked: 27 times

23 Feb 2015, 17:05

L-ai pus primul (dupa protectie) in plugins.ini ?
Cand nu merge acest forum sunt online aici:
  • * Skype: nubo_cs
    * Y!M ID: nubo_cs
User avatar
Corax
Membru, skill +1
Membru, skill +1
Posts: 262
Joined: 17 Feb 2015, 15:42
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: coraxcfg96
Fond eXtream: 0
Has thanked: 3 times
Contact:

23 Feb 2015, 17:19

Nu, nu l-am pus primul, dar dupa care protectie trebuie? :D am ceva cu Protection-Guard.amxx.
Last edited by Corax on 23 Feb 2015, 17:23, edited 1 time in total.
User avatar
Nubo
Fost moderator
Fost moderator
Posts: 2734
Joined: 11 Jul 2012, 18:45
Detinator Steam: Da
CS Status: [əˈnɒn.ɪ.məs]
Reputatie: Fost scripter eXtreamCS
Fost eXtream Mod
Has thanked: 8 times
Been thanked: 27 times

23 Feb 2015, 17:23

In caz ca ai protectie, krond-functions, rom-protect si etc., el (pluginul de protectie) trebuie sa fie primul in lista.
Cand nu merge acest forum sunt online aici:
  • * Skype: nubo_cs
    * Y!M ID: nubo_cs
User avatar
Corax
Membru, skill +1
Membru, skill +1
Posts: 262
Joined: 17 Feb 2015, 15:42
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: coraxcfg96
Fond eXtream: 0
Has thanked: 3 times
Contact:

23 Feb 2015, 17:26

Gata l-am facut asa cum mi-ai spus, sunt curios, daca va merge acum :)
Post Reply

Return to “Probleme la servere dedicate de Counter-Strike”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 3 guests