[Ajuda] Comando /ban
#1

Galera, estou criando um sistema de administraзгo e irei fazer o comando /ban, mas eu gostaria de fazк-lo banindo a conta e tambйm o IP, eu uso mysql como banco de dados, e sei usar as funзхes do plugin, mas nгo sei como posso fazer para quando ele for banido, e tentar entrar com outra conta pelo mesmo ip, que ele seja impossibilitado de entrar. Mas eu nгo quero usar a funзгo nativa do SA:MP (Ban ou BanEx).
Reply
#2

Ban do IP eu acho que o prуprio samp.ban jб faz isso, para banir a conta no caso, nгo sei como vocк faria em MySQL, mas eu faзo assim em INI, no arquivo da conta que bani eu coloco:
Код:
Banido = 1
Daн na OnPlayerConnect eu faзo uma verificaзгo na conta do jogador para saber o valor dessa tag, caso seja 1, nгo deixa se conectar e kika ele do servidor, caso for 0, avanзa a callback e vai mostrando as outras funзхes.
Eu acho que a funзгo nativa do SA-MP vai resultar no mesmo no caso se o IP for IGUAL, pois veja bem, vocк apenas vai estar gastando linhas para fazer um sistema desnecessбrio para fazer uma blacklist de IPs, vai dar no mesmo, de qualquer forma, o samp.ban nгo deixa o IP logar caso teja banido, ao menos se for o mesmo.
Reply
#3

Cara, pra ser mais exato pra vocк, nгo tem como bloquear a entrada de um jogador de um servidor.

"Ah, mas como asssim?"

Vou explicar.

Entenda que, independente de vocк armazenar o IP do jogador, o IP do jogador й estбtico, ao reiniciar o modem, o IP serб trocado e ele poderб entrar normalmente no servidor, com a mesma conta(caso nгo tenha sido banida) normalmente. (Pelo menos, comigo isso acontece sempre)

A funзгo "Ban":

Apenas bane o jogador, sem razгo alguma.
PHP код:
public OnPlayerCommandText(playeridcmdtext[])
{
    if(
strcmp(cmdtext"/banM"true) == 0)
    {
        
// Bane o jogador que estiver usando este comando.
        
Ban(playerid);
        return 
1;
    }

A funзгo "BanEx":

Bane o jogador igual a funзгo acima, mas com uma razгo/motivo.
PHP код:
public OnPlayerCommandText(playeridcmdtext[])
{
    if(!
strcmp(cmdtext"/banMe"true))
    {
        
// Bane o jogador que usou este comando, com a razгo de "requerimento", ou seja, ele pediu para ser banido.
        
BanEx(playerid"Pedido");
        return 
1;
    }

Caso queira, basta checar, todos esses banimentos, sгo armazenados em um arquivo dentro do servidor, o nome do arquivo й: "samp.ban".

A funзгo de banimento do jogador nativamente do SA:MP, й meio vaga, entгo eu prefiro criar a minha prуpria.
(Lembrando, nгo descartando o real uso da funзгo, pois tudo que foi criado, existe um propуsito de ter sido desenvolvida, e alguns a utilizam)

Retornando ao meu ponto de vista do armazenamento do IP do jogador.:

Cara, no meu ponto de vista, eu acredito que nгo tem como bloquear o jogador de entrar no servidor, pois a soluзгo para caso o jogador estar banido do servidor, й apenas ele reiniciar o modem dele, pois o IP que fica armazenado e transferнvel para os demais servidores que o seu protocolo de internet, й um IP estбtico, ele altera.
Apуs o IP do jogador ser alterado, o IP que ele utilizava passa a nгo existir mais, e por fim, o jogador entrarб no servidor normalmente, podendo criar outra conta e jogar normalmente como um usuбrio qualquer do servidor.
Reply
#4

Fui criar o comando aqui usando BanEx, mas quando fui verificar se a conta tinha sido banido mesmo, ela nгo foi, entrei nela tranquilamente, sucessivamente, o IP tambйm nгo foi banido, tem algo haver de eu estar usando a host local?
Reply
#5

Crie um arquivo numerando todos os IPs que vocк baniu e quando o player logar verifique o IP dele com os banidos. Exemplo:

pawn Код:
// No comando
    new ip[16];
    GetPlayerIp(id_do_banido, ip, 16);
    new File:f = fopen(ip, io_write);
    fclose(f);

// Ao conectar

    new ip[16];
    GetPlayerIp(playerid, ip, 16);
    if(fexist(ip)) return Ban(playerid);
Reply
#6

Jб resolvi, criei uma tabela no MySQL lб eu armazeno os IPs, e faзo a checagem atravйs dela.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)