[DUV] Ajuda no IP e Ban por Nick
#1

Gente eu msm fiz um sistema de Ban por nick, mas estou com um probleminha: Eu botei pra salvar o nome de quem estб banido em um arquivo. Neste arquivo estб salvo: Nome de quem foi ban, IP do cara, Quem baniu e o motivo. Mas tenho dois problemas: Quando й pra aparecer o Dialog dizendo que a pessoa estб ban, sу aparece um quadrado no IP, ficando:



Outro problema: Qualquer um idiota й banido quando entra, mesmo se seu nick nгo estiver no arquivo ban.txt

Olha o cуdigo:

pawn Код:
forward Bann(playerid);
enum pBann
{
    Banned[MAX_PLAYER_NAME],
    IPBanned[16],
    WhoBanned[MAX_PLAYER_NAME],
    BanMotive[128],
};
new BanInfo[MAX_PLAYERS][pBann];

public OnPlayerConnect(playerid)
{
if(strcmp(BanInfo[playerid][Banned], name, true) == 0)
    {
        new string[512];
        format(string, sizeof(string), "Este Nick estб banido do servidor.\n\nInformaзхes do Ban:\n\n\nConta: %s\nIP Banido: %s\nAdmin que Baniu: %s\nMotivo do Ban: %s\n\nIsto foi um erro? Relate a nуs no Fуrum:\n\nhttp://bgc-samp.co.cc", BanInfo[playerid][Banned], BanInfo[playerid][IPBanned], BanInfo[playerid][WhoBanned], BanInfo[playerid][BanMotive]);
        ShowPlayerDialog(playerid, BanN, DIALOG_STYLE_MSGBOX, "Vocк estб banido do servidor!", string, "---", "---");
        SendClientMessage(playerid, COLOR_LIGHTRED, "Para sair do jogo use /q.");
        Kick(playerid);
    }
    new IP[16];
    GetPlayerIp(playerid, IP, sizeof(IP));
    if(strcmp(BanInfo[playerid][IPBanned], IP, true) == 0)
    {
        new string[512];
        format(string, sizeof(string), "Este IP estб banido do servidor.\n\nInformaзхes do Ban:\n\n\nConta: %s\nIP Banido: %s\nAdmin que Baniu: %s\nMotivo do Ban: %s\n\nIsto foi um erro? Relate a nуs no Fуrum:\n\nhttp://bgc-samp.co.cc", BanInfo[playerid][Banned], BanInfo[playerid][IPBanned], BanInfo[playerid][WhoBanned], BanInfo[playerid][BanMotive]);
        ShowPlayerDialog(playerid, BanI, DIALOG_STYLE_MSGBOX, "Vocк estб banido do servidor!", string, "---", "---");
        SendClientMessage(playerid, COLOR_LIGHTRED, "Para sair do jogo use /q.");
        Kick(playerid);
    }

public Bann(playerid)
{
    new idx;
    new File: file2;
    while (idx < sizeof(HouseInfo))
    {
        new coordsstring[280];
        format(coordsstring, sizeof(coordsstring), "%s,%s,%s,%s\r\n",
        BanInfo[idx][Banned],
        BanInfo[idx][IPBanned],
        BanInfo[idx][WhoBanned],
        BanInfo[idx][BanMotive]);
        if(idx == 0)
        {
            file2 = fopen("ban.txt", io_write);
        }
        else
        {
            file2 = fopen("ban.txt", io_append);
        }
        fwrite(file2, coordsstring);
        idx++;
        fclose(file2);
    }
    return 1;
}

public OnGameModeInit()
{
    new arrCoords[4][64];
    new strFromFile2[256];
    new File: file = fopen("ban.txt", io_read);
    if (file)
    {
        new idx;
        while (idx < sizeof(BanInfo))
        {
            fread(file, strFromFile2);
            split(strFromFile2, arrCoords, ',');
            BanInfo[idx][Banned] = strval(arrCoords[0]);
            BanInfo[idx][IPBanned] = strval(arrCoords[1]);
            BanInfo[idx][WhoBanned] = strval(arrCoords[2]);
            BanInfo[idx][BanMotive] = strval(arrCoords[3]);
            idx++;
        }
        fclose(file);
    }
Ajudem ae!!!
Reply
#2

Up!!!!!!!
Reply
#3

por favor amigo sem Double post. Eu irei testar um sistema. Se ele der certo eu posto ele aqui para vocк ok?
Reply
#4

Cara Colocar Tudo em um File vai dar um Lag Desgraзado,Coloca Separadinho em uma Pasta dai sу usa fexist
Aqui meu Exemplo:

Em Ban:
pawn Код:
new plrIP[16];
GetPlayerIp(playerid, plrIP, sizeof(plrIP));
if(!strcmp(plrIP, "127.0.0.1"))
dini_Create(plrIP);
Em OnPlayerConnect
pawn Код:
new plrIP[16];
GetPlayerIp(playerid, plrIP, sizeof(plrIP));
if(fexist(plrIP))
{
//You Are Banned From This Server
Kick(playerid);
}
Reply
#5

meu infoorg e so em uma file e nгo da lag pq n tem timer
Reply
#6

@Sergio
Caso nгo saiba,salvar tudo em um arquivo da um lag imenso pois ele tem que ler e encontrar o nick do player no meio de tantos outros

@hellangel
Tem Sim,porйm й mais Difнcil...
E:
Quote:

Caso nгo saiba,salvar tudo em um arquivo da um lag imenso pois ele tem que ler e encontrar o nick do player no meio de tantos outros

Reply
#7

Quote:
Originally Posted by DraKoN
Посмотреть сообщение
@Sergio
Caso nгo saiba,salvar tudo em um arquivo da um lag imenso pois ele tem que ler e encontrar o nick do player no meio de tantos outros

@hellangel
Tem Sim,porйm й mais Difнcil...
E:
Entгo terб que ser um arquivo pra cada Ban? Й que eu gostaria de salvar tambem o motivo dos bans e quem baniu. Uso o Dini pra isso tbm?
Reply
#8

Quote:
Originally Posted by DraKoN
Посмотреть сообщение
@Sergio
Caso nгo saiba,salvar tudo em um arquivo da um lag imenso pois ele tem que ler e encontrar o nick do player no meio de tantos outros

@hellangel
Tem Sim,porйm й mais Difнcil...
E:
Fail drakon, o meu nгo olha nicks, e sim variaveis tem variavel na conta e no arqurivo assim ele so vai na linha que tem na conta do jogador e nгo em todas!

um sistema mais inteligente do que os que salvam por pastas Valeu roam_pt pela ajuda que vc me deu!
Reply
#9

Quote:
Originally Posted by sergio_xd
Посмотреть сообщение
Fail drakon, o meu nгo olha nicks, e sim variaveis tem variavel na conta e no arqurivo assim ele so vai na linha que tem na conta do jogador e nгo em todas!

um sistema mais inteligente do que os que salvam por pastas Valeu roam_pt pela ajuda que vc me deu!
Explica o seu ae '-'
Reply
#10

Quote:
Originally Posted by hellangel
Посмотреть сообщение
Explica o seu ae '-'
kkkkkkkkkkk + nem se me pagar velho. O roam_pt me deu a base e eu fiz

melhor: ele nгo deu, ele me deu uma dica e eu usei ela
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)