[Pedido] Anti divulga
#1

Todos os modos que eu tento fazer fica meio bosta, detectando gente q sу manda . outra coisa, tentei usar ouros scripts de base, a maioria nгo sгo lб essas coisas tbm, alguйm pode me passar uma funзгo que cheque se o jogador ta divulgando? Vcs devem usar e ter um bom, tem um infeliz que sу entra pra divulgar no meu servidor que sу fica 10 players on
Reply
#2

PHP код:
new PlayerDivulgacoesIP[MAX_PLAYERS];
new 
UltimaDivulgacaoStamp[MAX_PLAYERS];
new 
DIVULGACOES;
public 
OnPlayerText(playerid,text[])
{
//ANTI-IP
new ver_string[128];
if(
TimeStamp()-UltimaDivulgacaoStamp[playerid]>60){PlayerDivulgacoesIP[playerid] = 0;}
strmid(ver_stringtext0strlen(text));
if(
FindIpPattern(playerid,ver_string)){
PlayerDivulgacoesIP[playerid]++;
if(
PlayerDivulgacoesIP[playerid] > 1){
CallRemoteFunction("KickPlayerEx","is",playerid,"Tentou divulgar IP");
DIVULGACOES++;}else{
SendClientMessage(playeridCOLOR_YELLOW"========================== [AVISO] ==========================");
SendClientMessage(playeridCOLOR_YELLOW"O servidor detectou uma divulgaзгo de IP em sua mensagem");
SendClientMessage(playeridCOLOR_YELLOW"Se continuar a digitar esta mensagem, poderб ser kickado.");
SendClientMessage(playeridCOLOR_YELLOW"===========================================================");
UltimaDivulgacaoStamp[playerid] = TimeStamp();
return 
0;}return 0;}
public 
OnPlayerCommandText(playeridcmdtext[])
{
//ANTI-IP
new ver_string[128];
if(
TimeStamp()-UltimaDivulgacaoStamp[playerid]>60){PlayerDivulgacoesIP[playerid] = 0;}
strmid(ver_stringgMessage0strlen(gMessage));
if(
FindIpPattern(playerid,ver_string)){
PlayerDivulgacoesIP[playerid]++;
if(
PlayerDivulgacoesIP[playerid] > 1){
CallRemoteFunction("KickPlayerEx","is",playerid,"Tentou divulgar IP");
DIVULGACOES++;}else{
SendClientMessage(playeridCOLOR_YELLOW"========================== [AVISO] ==========================");
SendClientMessage(playeridCOLOR_YELLOW"O servidor detectou uma divulgaзгo de IP em sua mensagem");
SendClientMessage(playeridCOLOR_YELLOW"Se continuar a digitar esta mensagem, poderб ser kickado.");
SendClientMessage(playeridCOLOR_YELLOW"===========================================================");
UltimaDivulgacaoStamp[playerid] = TimeStamp();
return 
1;}return 1;}
public 
OnPlayerConnect(playerid)
{
if(
FindIpPattern(playerid,PlayerName)){aKick(playerid,PlayerName);}
PlayerDivulgacoesIP[playerid] = 0;
return 
1;
}
forward FindIpPattern(playerid,const string[]);
public 
FindIpPattern(playerid,const string[])
{
    new 
stringNumeric=false;
    new 
stringBegin;
    new 
ipDigits=0;
    for(new 
i=0i<strlen(string); i++)
    {
        if(
string[i]<='9' && string[i]>='0')
        {
            if(!
stringNumeric// first digit
            
{
                
stringNumeric=true;
                
stringBegin=i;
                 if(
i==strlen(string)-1// string ends with one digit number
                 
{
                    
ipDigits++;
                    if(
ipDigits>3// 4 digits
                        
return 1;
                 }
            }
            else
             {
                 if(
i==strlen(string)-1// string ends with the last digit
                 
{
                       new 
stringn[256];
                       new 
number;
                    for(new 
j=stringBeginj<i+1j++)
                        
stringn[j-stringBegin]=string[j];
                    
stringn[i-stringBegin+1]=0;
                    
number=strval(stringn);
                    if(
number>=&& number<256// our case
                    
{
                        
ipDigits++;
                        if(
ipDigits>3// 4 digits
                            
return 1;
                    }
                 }
             }
        }
        else
        {
            if(
stringNumeric// last digit+1
            
{
                
stringNumeric=false;
                   new 
stringn[256];
                   new 
number;
                for(new 
j=stringBeginj<ij++)
                    
stringn[j-stringBegin]=string[j];
                
stringn[i-stringBegin]=0;
                
number=strval(stringn);
                if(
number>=&& number<256// our case
                
{
                    
ipDigits++;
                    if(
ipDigits>3// 4 digits
                        
return 1;
                }
                else 
// not in ip-group range
                    
ipDigits=0// reset ip digit counter;
            
}
        }
    }
    return 
0;

Editei estava faltando muita coisa rs, desculpe.
Reply
#3

Quote:
Originally Posted by RoberteDl
Посмотреть сообщение
PHP код:
new PlayerDivulgacoesIP[MAX_PLAYERS];
new 
UltimaDivulgacaoStamp[MAX_PLAYERS];
new 
DIVULGACOES;
public 
OnPlayerText(playerid,text[])
{
//ANTI-IP
new ver_string[128];
if(
TimeStamp()-UltimaDivulgacaoStamp[playerid]>60){PlayerDivulgacoesIP[playerid] = 0;}
strmid(ver_stringtext0strlen(text));
if(
FindIpPattern(playerid,ver_string)){
PlayerDivulgacoesIP[playerid]++;
if(
PlayerDivulgacoesIP[playerid] > 1){
CallRemoteFunction("KickPlayerEx","is",playerid,"Tentou divulgar IP");
DIVULGACOES++;}else{
SendClientMessage(playeridCOLOR_YELLOW"========================== [AVISO] ==========================");
SendClientMessage(playeridCOLOR_YELLOW"O servidor detectou uma divulgaзгo de IP em sua mensagem");
SendClientMessage(playeridCOLOR_YELLOW"Se continuar a digitar esta mensagem, poderб ser kickado.");
SendClientMessage(playeridCOLOR_YELLOW"===========================================================");
UltimaDivulgacaoStamp[playerid] = TimeStamp();
return 
0;}return 0;}
public 
OnPlayerCommandText(playeridcmdtext[])
{
//ANTI-IP
new ver_string[128];
if(
TimeStamp()-UltimaDivulgacaoStamp[playerid]>60){PlayerDivulgacoesIP[playerid] = 0;}
strmid(ver_stringgMessage0strlen(gMessage));
if(
FindIpPattern(playerid,ver_string)){
PlayerDivulgacoesIP[playerid]++;
if(
PlayerDivulgacoesIP[playerid] > 1){
CallRemoteFunction("KickPlayerEx","is",playerid,"Tentou divulgar IP");
DIVULGACOES++;}else{
SendClientMessage(playeridCOLOR_YELLOW"========================== [AVISO] ==========================");
SendClientMessage(playeridCOLOR_YELLOW"O servidor detectou uma divulgaзгo de IP em sua mensagem");
SendClientMessage(playeridCOLOR_YELLOW"Se continuar a digitar esta mensagem, poderб ser kickado.");
SendClientMessage(playeridCOLOR_YELLOW"===========================================================");
UltimaDivulgacaoStamp[playerid] = TimeStamp();
return 
1;}return 1;}
public 
OnPlayerConnect(playerid)
{
if(
FindIpPattern(playerid,PlayerName)){aKick(playerid,PlayerName);}
PlayerDivulgacoesIP[playerid] = 0;
return 
1;
}
forward FindIpPattern(playerid,const string[]);
public 
FindIpPattern(playerid,const string[])
{
    new 
stringNumeric=false;
    new 
stringBegin;
    new 
ipDigits=0;
    for(new 
i=0i<strlen(string); i++)
    {
        if(
string[i]<='9' && string[i]>='0')
        {
            if(!
stringNumeric// first digit
            
{
                
stringNumeric=true;
                
stringBegin=i;
                 if(
i==strlen(string)-1// string ends with one digit number
                 
{
                    
ipDigits++;
                    if(
ipDigits>3// 4 digits
                        
return 1;
                 }
            }
            else
             {
                 if(
i==strlen(string)-1// string ends with the last digit
                 
{
                       new 
stringn[256];
                       new 
number;
                    for(new 
j=stringBeginj<i+1j++)
                        
stringn[j-stringBegin]=string[j];
                    
stringn[i-stringBegin+1]=0;
                    
number=strval(stringn);
                    if(
number>=&& number<256// our case
                    
{
                        
ipDigits++;
                        if(
ipDigits>3// 4 digits
                            
return 1;
                    }
                 }
             }
        }
        else
        {
            if(
stringNumeric// last digit+1
            
{
                
stringNumeric=false;
                   new 
stringn[256];
                   new 
number;
                for(new 
j=stringBeginj<ij++)
                    
stringn[j-stringBegin]=string[j];
                
stringn[i-stringBegin]=0;
                
number=strval(stringn);
                if(
number>=&& number<256// our case
                
{
                    
ipDigits++;
                    if(
ipDigits>3// 4 digits
                        
return 1;
                }
                else 
// not in ip-group range
                    
ipDigits=0// reset ip digit counter;
            
}
        }
    }
    return 
0;

Editei estava faltando muita coisa rs, desculpe.
Muito obrigado pela base! Reputado!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)