[Ajuda] Ant-Divulgue
#1

Olб pessoal, eu estou ultilizando este FS ant-divulguer, mais ele tem uma falha que o player pode digitar o ip sem o espaзo e nгo й kickado.
ex:
12 34 567 890 1254

Alguйm pde me ajudar a colocar para mesmo com espaзo ele ser kickado??

pawn Код:
/*
    ==================================================
    |FS By Christian_David                           |
    |Email: davidchristia@gmail.com                  |
    |                                                |
    |Defina o IP do Teamspeak e do Servidor Abaixo   |
    |Para nao haver conflitos ;)                     |
    |                                                |
    |caso deseje editar e postar em algum blog       |
    |por favor nгo retirar os creditos originais!    |
    ==================================================
*/

#define TS "127.0.0.1:7878"
#define SV "127.0.0.1:7777"

#include <a_samp>
forward AntiDivulguer(texto[]);
forward IPDivulguerLog(playerid,string[]);
public OnPlayerText(playerid,text[])
{
    new str[256];
    if(AntiDivulguer(text))
    {
        SendClientMessageToAll(0xcc2d2dFF,"===============================");
        format(str,sizeof(str),"%s Tentou Divulgar 1 IP e foi Kickado!",pNome(playerid));
        SendClientMessageToAll(0x2d78ccFF,str);
        SendClientMessageToAll(0x2d78ccFF,"Temos ums Sistema Ant-Divulgaзгo");
        SendClientMessageToAll(0x2d78ccFF,"Vocк acaba de ser kickado, nгo fassa mais isso!");
        SendClientMessageToAll(0x2d78ccFF,"Volte para o serv!");
        SendClientMessageToAll(0xcc2d2dFF,"===============================");
        IPDivulguerLog(playerid,text);
        Kick(playerid);
        return 1;
    }
    return 1;
}
public AntiDivulguer(texto[])
{
    new IPTent[4][128],IPTentPort[1][128],ipcompleto[256];
    split(texto,IPTent,'.');
    split(texto,IPTentPort,':');
    format(ipcompleto,sizeof(ipcompleto),"%d.%d.%d.%d:%d",strval(IPTent[0]),strval(IPTent[1]),strval(IPTent[2]),strval(IPTent[3]),strval(IPTentPort[0]));
    if(strval(IPTent[1])>0&&strval(IPTent[2])>0&&strval(IPTent[3])>0&&strcmp(SV,texto,true)==-1&&strcmp(TS,texto,true)==-1)
    {
        return 1;
    }
    return 0;
}
stock split(const strsrc[], strdest[][], delimiter)
{
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
        if(strsrc[i]==delimiter || i==strlen(strsrc)){
            len = strmid(strdest[aNum], strsrc, li, i, 128);
            strdest[aNum][len] = 0;
            li = i+1;
            aNum++;
        }
        i++;
    }
    return 1;
}
stock pNome(playerid)
{
    new nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid,nome,sizeof(nome));
    return nome;
}
public IPDivulguerLog(playerid,string[])
{
    new entry[128],dia,mes,ano,hora,minuto,segundo;
    gettime(hora,minuto,segundo);
    getdate(ano,mes,dia);
    format(entry, sizeof(entry), "[%s][%d/%d/%d|%d:%d:%d]: %s\n",pNome(playerid),dia,mes,ano,hora,minuto,segundo,string);
    new File:hFile;
    hFile = fopen("ServidoresNbs.log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
}
Reply
#2

Existem muitas coisas a se considerar.
Se os players do seu servidor vгo para outro sу porque um retard digitou o IP no chat, o seu servidor nem merece tal player.
Reply
#3

pawn Код:
/*
    ==================================================
    |FS By Christian_David                           |
    |Email: davidchristia@gmail.com                  |
    |                                                |
    |Defina o IP do Teamspeak e do Servidor Abaixo   |
    |Para nao haver conflitos ;)                     |
    |                                                |
    |caso deseje editar e postar em algum blog       |
    |por favor nгo retirar os creditos originais!    |
    ==================================================
*/

#define TS "127.0.0.1:7878"
#define SV "127.0.0.1:7777"

#include <a_samp>
forward AntiDivulguer(texto[]);
forward IPDivulguerLog(playerid,string[]);
public OnPlayerText(playerid,text[])
{
    new str[256];
    if(AntiDivulguer(text))
    {
        SendClientMessageToAll(0xcc2d2dFF,"===============================");
        format(str,sizeof(str),"%s Tentou Divulgar 1 IP e foi Kickado!",pNome(playerid));
        SendClientMessageToAll(0x2d78ccFF,str);
        SendClientMessageToAll(0x2d78ccFF,"Temos ums Sistema Ant-Divulgaзгo");
        SendClientMessageToAll(0x2d78ccFF,"Vocк acaba de ser kickado, nгo fassa mais isso!");
        SendClientMessageToAll(0x2d78ccFF,"Volte para o serv!");
        SendClientMessageToAll(0xcc2d2dFF,"===============================");
        IPDivulguerLog(playerid,text);
        Kick(playerid);
        return 1;
    }
    return 1;
}
public AntiDivulguer(texto[])
{
    new IPTent[4][128],IPTentPort[1][128],ipcompleto[256];
    split(texto,IPTent,'.');
    split(texto,IPTent1,' ');
    split(texto,IPTentPort,':');
    format(ipcompleto,sizeof(ipcompleto),"%d.%d.%d.%d:%d",strval(IPTent[0]),strval(IPTent[1]),strval(IPTent[2]),strval(IPTent[3]),strval(IPTentPort[0]),strval(IPTent1[0]));
    if(strval(IPTent[1])>0&&strval(IPTent[2])>0&&strval(IPTent[3])>0&&strcmp(SV,texto,true)==-1&&strcmp(TS,texto,true)==-1)
    {
        return 1;
    }
    return 0;
}
stock split(const strsrc[], strdest[][], delimiter)
{
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
        if(strsrc[i]==delimiter || i==strlen(strsrc)){
            len = strmid(strdest[aNum], strsrc, li, i, 128);
            strdest[aNum][len] = 0;
            li = i+1;
            aNum++;
        }
        i++;
    }
    return 1;
}
stock pNome(playerid)
{
    new nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid,nome,sizeof(nome));
    return nome;
}
public IPDivulguerLog(playerid,string[])
{
    new entry[128],dia,mes,ano,hora,minuto,segundo;
    gettime(hora,minuto,segundo);
    getdate(ano,mes,dia);
    format(entry, sizeof(entry), "[%s][%d/%d/%d|%d:%d:%d]: %s\n",pNome(playerid),dia,mes,ano,hora,minuto,segundo,string);
    new File:hFile;
    hFile = fopen("ServidoresNbs.log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
}
Reply
#4

Victor, se eu quizesse adaptar ele para colocar tambйm ao player executar um comando?
Ex o player digita /anuncio2 e coloca o ip do servidor dele.

pawn Код:
if(strcmp(cmd, "/anuncio2", true) == 0 || strcmp(cmd, "/an2", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(gPlayerLogged[playerid] == 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Vocк Nгo Estб Logado !");
                return 1;
            }
            GetPlayerName(playerid, sendername, sizeof(sendername));
            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
                idx++;
            }
            new offset = idx;
            new result[64];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
                result[idx - offset] = cmdtext[idx];
                idx++;
            }
            result[idx - offset] = EOS;
            if(!strlen(result))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USO: (/an)uncio [TeXtO]");
                return 1;
            }
            if(PlayerInfo[playerid][pLevel] < 3)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "Vocк precisa ser nнvel 3 ou mais para anunciar");
                return 1;
            }
            if((!adds) && (PlayerInfo[playerid][pAdmin] < 1))
            {
                format(string, sizeof(string), "   Por Favor, Tente Apуs %d Segundo Para o Proximo Anъncio !",  (addtimer/1000));
                SendClientMessage(playerid, COLOR_GRAD2, string);
                return 1;

            }
            new payout = idx * 2;
            if(GetPlayerGP(playerid) < payout)
            {
                format(string, sizeof(string), "Vocк Usou %d characteres e custou $%d, Vocк nгo tem Esse Dinheiro.", offset, payout);
                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                return 1;
            }
            GivePlayerGP(playerid, - payout);
            SBizzInfo[7][sbTill] += payout;
            ExtortionSBiz(7, payout);
            format(string, sizeof(string), "Anъncio: %s, Contato: %s Tel: %d",  result, sendername,PlayerInfo[playerid][pPnumber]);
            OOCNews(TEAM_GROVE_COLOR,string);
            format(string, sizeof(string), "~r~Pagou $%d~n~~w~Mensagem Contem: %d Characteres", payout, idx);
            GameTextForPlayer(playerid, string, 5000, 5);
            SetTimer("AddsOn", addtimer, 0);adds = 0;
        }
        return 1;
    }
@edit
deu um erro porque faltou colocar no new
IPTent1

eu deixei assim ta correto?:
pawn Код:
public AntiDivulguer(texto[])
{
    new IPTent[4][128],IPTent1[5][128],IPTentPort[1][128],ipcompleto[256];
    split(texto,IPTent,'.');
    split(texto,IPTent1,' ');
    split(texto,IPTentPort,':');
    format(ipcompleto,sizeof(ipcompleto),"%d.%d.%d.%d:%d",strval(IPTent[0]),strval(IPTent[1]),strval(IPTent[2]),strval(IPTent[3]),strval(IPTentPort[0]),strval(IPTent1[0]));
    if(strval(IPTent[1])>0&&strval(IPTent[2])>0&&strval(IPTent[3])>0&&strcmp(SV,texto,true)==-1&&strcmp(TS,texto,true)==-1)
    {
        return 1;
    }
    return 0;
}
Reply
#5

Teste ai amigo ja estou resolvendo o anuncio
Reply
#6

Alguйm sabe como colocar esse sistema no comando?
Reply
#7

ichigo use esse fs assim ninguem vai mandar mais /an indevido :P

http://forum.sa-mp.com/showthread.ph...istema+anuncio

Ajudei REp +
Reply
#8

o meu ja й em dialog, esse /anuncio sу foi um exemplo, na verdade й para outros comandos como /gov /ang /cv /b e assim vai
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)