[FilterScript] Anti-Badnicknames
#1

Ola eu vim aki postar um sistema que evita o servidor travar, com certos nomes...

ta ai

pawn Код:
#include <a_samp>

#define _CHANGE_NAME_BEFORE_KICK    true

stock
    bool:   bIllegalPlayer  [ MAX_PLAYERS ] = false,
            szTmpKickName   [ MAX_PLAYER_NAME ];

public OnFilterScriptInit( )
{
    print( "* Nome proibido!" );
    print( "* os seguintes nomes estгo proibidos para entrar no server:" );
    print( "\tcom[1-9], lpt[1-9], clock$, nul, aux, prn, con" );

    #if _CHANGE_NAME_BEFORE_KICK == true
    for ( new i = 0; i < MAX_PLAYER_NAME; i++ )
        szTmpKickName[ i ] = '_';

    szTmpKickName[ MAX_PLAYER_NAME - 1 ] = '\0';

    print( "* O nick esta sendo temporarimente usado para kickar crashers:" );
    printf( "\t%s", szTmpKickName );
    #endif

    return 1;
}

public OnPlayerConnect( playerid )
{
    new
        szPlayerName[ MAX_PLAYER_NAME ];

    bIllegalPlayer[ playerid ] = false;

    GetPlayerName( playerid, szPlayerName, MAX_PLAYER_NAME );

    if ( !strcmp( szPlayerName, "com", true, 3 ) || !strcmp( szPlayerName, "lpt", true, 3 ) )
    {
        if ( szPlayerName[ 3 ] >= '0' && szPlayerName[ 3 ] <= '9' && szPlayerName[ 4 ] == '\0' )
            return aKick( playerid, szPlayerName );
    }

    else if ( !strcmp( szPlayerName, "clock$", true, 6 ) )
        return aKick( playerid, szPlayerName );

    else
    {
        static const
            szForbiddenName[ ][ ] =
            {
                "nul", "aux",
                "prn", "con"
            };

        for ( new i = 0; i < sizeof( szForbiddenName ); i++ )
        {
            if ( !strcmp( szPlayerName, szForbiddenName[ i ], true, 3 ) )
                return aKick( playerid, szPlayerName );
        }

        #if _CHANGE_NAME_BEFORE_KICK == true
        if ( !strcmp( szPlayerName, szTmpKickName, true, MAX_PLAYER_NAME ) )
            return aKick( playerid, szPlayerName );
        #endif

    }

    return 1;
}

public OnPlayerDisconnect( playerid, reason )
{
    if ( bIllegalPlayer[ playerid ] )
    {
        bIllegalPlayer[ playerid ] = false;

        return 0;
    }

    return 1;
}

stock aKick( playerid, pname[ ] )
{
    new
        szIP[ 16 ];

    bIllegalPlayer[ playerid ] = true;

    #if _CHANGE_NAME_BEFORE_KICK
    SetPlayerName( playerid, szTmpKickName );
    #endif

    GetPlayerIp( playerid, szIP, 16 );
    SendClientMessage( playerid, 0xFFFFFFFF, "Protetor: vc foi kickado por tentar travar o servidor" );
    Kick( playerid );
    printf( "[protetor] %s (%d:%s) Tentou travar o Servidor e foi kickado.", pname, playerid, szIP );

    return 0;
}
Reply
#2

Legal, Ajudara Novatos '--'
Reply
#3

cade os crйditos disto ?
Reply
#4

esse sistema tava no meu pc faz 3 anos, eu n lembro de quem eu peguei, certamente de alguem da area gringa do forum
Reply
#5

gostei otimo para rpg mais agora vc podia fazer um q desse so pra de dm pra galera q fica usando nomes de estilo rpg
Reply
#6

Ja vi esse script em um sv de dm ingles '
Reply
#7

Fail em the KKK
Reply
#8

Esse sistema й muito bom porйm falto os crйditos, tenho ele aqui e nгo vejo nada modificado '-'
Reply
#9

Tem gente que se gaba por trabalho de outros kkk'
Reply
#10

Quote:
Originally Posted by .Unnamed
Посмотреть сообщение
Tem gente que se gaba por trabalho de outros kkk'
Melhor:

Tem gente que TENTA se gabar com trabalho dos outros.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)