AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Log Errors Gag Manager (https://forums.alliedmods.net/showthread.php?t=324600)

BigFoot CS 1.6 05-20-2020 16:52

Log Errors Gag Manager
 
Help me with this, please! :cry:

Log Errors
Code:

L 05/20/2020 - 17:02:30: [AMXX] Displaying debug trace (plugin "gag_manager.amxx", version "unknown")
L 05/20/2020 - 17:02:30: [AMXX] Run time error 10: native error (native "nvault_get")
L 05/20/2020 - 17:02:30: [AMXX]    [0] phpPNO0dX.sma::LoadMutedPlayers (line 283)
L 05/20/2020 - 17:02:30: [AMXX]    [1] phpPNO0dX.sma::client_connect (line 57)
L 05/20/2020 - 17:02:30: [nVault] Invalid vault id: 0

SMA Gag Manager
Code:

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

#define ACCESS    ADMIN_KICK
#define WORDS  999
#define SWEAR_GAGMINUTES 5
#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.8.2", "Counter-Strike 1.6")
   
    register_concmd( "amx_gag", "gag_cmd", ACCESS,"<name> <minutes> <reason>" );
    register_concmd( "amx_ungag", "ungag_cmd", ACCESS, "<name>" );
    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, "[GAG System] This player already has a 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, "!team[!verdeGAG System!team]!normal Player!team %s %s!normal received gag %d minute(s) for the following reason:!team %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, "[GAG System] Player '%s' has no 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, "!team[!verdeGAG System!team]!normal Admin!team %s!normal canceled the gag of the player!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, "!team[!verdeGAG System!team]!normal Player!team %s!normal has expired his 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 System!team]!normal You got gag from the admin!team %s", g_admin);
            culoare_scris( id,"!team[!verdeGAG System!team]!normal Time:!team %d minute(s)" , g_GagTime[ id ], g_GagTime[ id ] == 1 ? "" : "s" );
            culoare_scris( id,"!team[!verdeGAG System!team]!normal Reason:!team %s", g_reason );
           
            return PLUGIN_HANDLED;
           
            } else if( g_SwearGag[ id ] ) {
            culoare_scris( id, "!team[!verdeGAG System!team]!normal You cannot use chat because you have used inappropriate language!")
            culoare_scris( id, "!team[!verdeGAG System!team]!normal Time:!team %d minute(s)" , 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[!verdeGAG System!team]!normal Player!team %s!normal received gag 5 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[!verdeGAG System!team]!normal Player!team %s !verde[!normalIP:!team %s!verde]!normal with gag left the 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[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    } 
}


TERMINATORU 05-20-2020 16:58

Re: Log Errors Gag Manager
 
Try this:

Code:

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

#define ACCESS    ADMIN_KICK
#define WORDS  999
#define SWEAR_GAGMINUTES 5
#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.8.2", "Counter-Strike 1.6")
   
    register_concmd( "amx_gag", "gag_cmd", ACCESS,"<name> <minutes> <reason>" );
    register_concmd( "amx_ungag", "ungag_cmd", ACCESS, "<name>" );
    register_clcmd( "say", "check" );
    register_clcmd( "say_team", "check" );
    g_vault = nvault_open("ListaDisconnect");
    if ( g_vault == INVALID_HANDLE )
    set_fail_state( "Error opening nVault" );
    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, "[GAG System] This player already has a 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, "!team[!verdeGAG System!team]!normal Player!team %s %s!normal received gag %d minute(s) for the following reason:!team %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, "[GAG System] Player '%s' has no 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, "!team[!verdeGAG System!team]!normal Admin!team %s!normal canceled the gag of the player!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, "!team[!verdeGAG System!team]!normal Player!team %s!normal has expired his 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 System!team]!normal You got gag from the admin!team %s", g_admin);
            culoare_scris( id,"!team[!verdeGAG System!team]!normal Time:!team %d minute(s)" , g_GagTime[ id ], g_GagTime[ id ] == 1 ? "" : "s" );
            culoare_scris( id,"!team[!verdeGAG System!team]!normal Reason:!team %s", g_reason );
           
            return PLUGIN_HANDLED;
           
            } else if( g_SwearGag[ id ] ) {
            culoare_scris( id, "!team[!verdeGAG System!team]!normal You cannot use chat because you have used inappropriate language!")
            culoare_scris( id, "!team[!verdeGAG System!team]!normal Time:!team %d minute(s)" , 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[!verdeGAG System!team]!normal Player!team %s!normal received gag 5 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[!verdeGAG System!team]!normal Player!team %s !verde[!normalIP:!team %s!verde]!normal with gag left the 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,charsmax(vaultdata))
    replace_all(vaultdata, charsmax(vaultdata), "#", " ")
    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[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    } 
}

public plugin_end()
{   
nvault_close(g_vault)
}


Shadows Adi 05-20-2020 17:02

Re: Log Errors Gag Manager
 
You should check if there is no nVault:
PHP Code:

g_vault nvault_open("ListaDisconnect");
    
    if(
g_vault == INVALID_HANDLE)
    {
        
set_fail_state("Error getting nVault ListaDisconnect")
    } 



All times are GMT -4. The time now is 16:53.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.