SA-MP Forums Archive
[FilterScript] Anti Bot com verificador de nicks - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [FilterScript] Anti Bot com verificador de nicks (/showthread.php?tid=362929)



Anti Bot com verificador de nicks - Victor' - 26.07.2012

Como eu ando vendo que tem muita gente ainda pedindo anti bots fiz um bem simples.

Vocк pode adicionar nicks de bots a lista de nick completo ou nick parcial.

Vocк pode limitar as conexхes por IP tambйm.

pawn Код:
#include a_samp

const MAX_CON_PERM = 5;
const NENHUMA  = 0;
const BAN  = 1;
const KICK = 2;

enum eNick
{
    NickO[24],
    NickT[24],
    punicao,
};

static stock BotNickInteiro[][eNick] =
{
    // nick do bot   nick para trocar   punicao
    { "aux",            "[bot]",        KICK},
    { "con",            "[bot]",        KICK }
};

static stock BotNickParcial[][eNick] =
{
// nick parcial do bot  nick para trocar  punicao
    { "niex",           "[bot]",        KICK },
    { "botz",           "[bot]",        KICK }
};

public OnPlayerConnect(playerid)
{
    new nick[24], ip[30];

    GetPlayerName(playerid, nick, sizeof nick);
    GetPlayerIp(playerid, ip, sizeof ip);

    for(new i = 0; i < sizeof BotNickInteiro; i++)
    {
        if(strcmp(nick, BotNickInteiro[i][NickO], true ) == 0)
        {
            printf("> Bot Detect: %s[%d] - %s", nick, playerid, ip);

            format(nick, sizeof(nick), "%s%d", BotNickInteiro[i][NickT], playerid);
            SetPlayerName(playerid, nick);
           
            if(BotNickInteiro[i][punicao] == KICK) Kick(playerid);
            else if(BotNickInteiro[i][punicao] == BAN) BanEx(playerid, "BOT");
            else if(BotNickInteiro[i][punicao] == NENHUMA) printf("> Nenhuma acao foi feita com o BOT: %s[%d] - %s", nick, playerid, ip);
        }
    }

    for(new i = 0; i < sizeof BotNickParcial; i++)
    {
        if(strfind(nick, BotNickParcial[i][NickO], true ) != -1)
        {
            printf("> Bot Detect: %s[%d] - %s", nick, playerid, ip);

            format(nick, sizeof(nick), "%s%d", BotNickParcial[i][NickT], playerid);
            SetPlayerName(playerid, nick);
           
            if(BotNickParcial[i][punicao] == KICK) Kick(playerid);
            else if(BotNickParcial[i][punicao] == BAN) BanEx(playerid, "BOT");
            else if(BotNickParcial[i][punicao] == NENHUMA) printf("> Nenhuma acao foi feita com o BOT: %s[%d] - %s", nick, playerid, ip);
        }
    }
   
    new ipget[30], ips;
   
    for(new i = 0;  i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            GetPlayerIp(i, ipget, sizeof ipget);
            if(strcmp(ipget, ip, true) == 0)
            {
                ips++;
            }
        }
    }
   
    if(ips > MAX_CON_PERM)
    {
        printf("> Conexao excedida %s[%d] - %s", nick, playerid, ip);
        Kick(playerid);
    }
    return 1;
}



Re: Anti Bot com verificador de nicks - ipsBruno - 26.07.2012

A SA:MP jб tem proteзгo para isto.


Re: Anti Bot com verificador de nicks - paulor - 26.07.2012

Neh ^^


Re: Anti Bot com verificador de nicks - leonardo1434 - 26.07.2012

encima ^^

Me diz uma coisa, como й que o carinha vai modificar o IP em fraзхes de milйsimos de segundo? e a var ips nгo deveria ser uma var global ao invйs de local? pois ela vai ser reiniciada a cada vez que qualquer pessoa se conectar. >_>
pawn Код:
GetPlayerIp(playerid, ip, sizeof ip);// tava no comeзo do onplayerconnect..
    for(new i = 0;  i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            GetPlayerIp(i, ipget, sizeof ipget);
            if(strcmp(ipget, ip, true) == 0)
            {
                ips++;
            }
        }
    }
   
    if(ips > MAX_CON_PERM)
    {
        printf("> Conexao excedida %s[%d] - %s", nick, playerid, ip);
        Kick(playerid);
    }



Re: Anti Bot com verificador de nicks - ipsBruno - 26.07.2012

Leonardo, isto й para checar quantos jogadores com mesmo IP estгo no servidor.


Re: Anti Bot com verificador de nicks - leonardo1434 - 26.07.2012

oh fuck ! nem percebi rsrsrsrs.


Re: Anti Bot com verificador de nicks - Victor' - 26.07.2012

Quote:
Originally Posted by leonardo1434
Посмотреть сообщение
encima ^^

Me diz uma coisa, como й que o carinha vai modificar o IP em fraзхes de milйsimos de segundo? e a var ips nгo deveria ser uma var global ao invйs de local? pois ela vai ser reiniciada a cada vez que qualquer pessoa se conectar. >_>
pawn Код:
GetPlayerIp(playerid, ip, sizeof ip);// tava no comeзo do onplayerconnect..
    for(new i = 0;  i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            GetPlayerIp(i, ipget, sizeof ipget);
            if(strcmp(ipget, ip, true) == 0)
            {
                ips++;
            }
        }
    }
   
    if(ips > MAX_CON_PERM)
    {
        printf("> Conexao excedida %s[%d] - %s", nick, playerid, ip);
        Kick(playerid);
    }
A variбvel ips й para verificar a quantidade de ips conectados em determinado ip, nгo tem necessidade se ser global, pois й "temporaria" e ninguйm vai usar o OnPlayerConnect ao mesmo tempo.

A primeira variбvel de ip й para pegar o ip do jogador conectado e assim restringir o uso da var. ips a apenas quem estб conectando.


Re: Anti Bot com verificador de nicks - leonardo1434 - 26.07.2012

Eu entendi apos o post do drakin й que eu me confundi ao ler o cуdigo.


Re: Anti Bot com verificador de nicks - ipsBruno - 26.07.2012

Vocк poderia usar propertys (meu varSet e varGet) e evitar este loop todo

Exemplo:
pawn Код:
// onplayerconnect
varSet("127.0.0.1", varGet("127.0.0.1") +1)

if(varGet("127.0.0.1") > 5) {
   // existem 5 jogadores com ip 127.0.0.1
}

//onplayerdisconnect
varSet("127.0.0.1", varGet("127.0.0.1") -1)



Re: Anti Bot com verificador de nicks - Roquee - 04.05.2014

Quote:
Originally Posted by paulor
Посмотреть сообщение
Neh ^^
CAra, como assim o SA;MP ja tem bloqueando isso, pod eme ajuda to sendo derrubado direto amigo me ajude