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_string, text, 0, strlen(text));
if(FindIpPattern(playerid,ver_string)){
PlayerDivulgacoesIP[playerid]++;
if(PlayerDivulgacoesIP[playerid] > 1){
CallRemoteFunction("KickPlayerEx","is",playerid,"Tentou divulgar IP");
DIVULGACOES++;}else{
SendClientMessage(playerid, COLOR_YELLOW, "========================== [AVISO] ==========================");
SendClientMessage(playerid, COLOR_YELLOW, "O servidor detectou uma divulgaзгo de IP em sua mensagem");
SendClientMessage(playerid, COLOR_YELLOW, "Se continuar a digitar esta mensagem, poderб ser kickado.");
SendClientMessage(playerid, COLOR_YELLOW, "===========================================================");
UltimaDivulgacaoStamp[playerid] = TimeStamp();
return 0;}return 0;}
public OnPlayerCommandText(playerid, cmdtext[])
{
//ANTI-IP
new ver_string[128];
if(TimeStamp()-UltimaDivulgacaoStamp[playerid]>60){PlayerDivulgacoesIP[playerid] = 0;}
strmid(ver_string, gMessage, 0, strlen(gMessage));
if(FindIpPattern(playerid,ver_string)){
PlayerDivulgacoesIP[playerid]++;
if(PlayerDivulgacoesIP[playerid] > 1){
CallRemoteFunction("KickPlayerEx","is",playerid,"Tentou divulgar IP");
DIVULGACOES++;}else{
SendClientMessage(playerid, COLOR_YELLOW, "========================== [AVISO] ==========================");
SendClientMessage(playerid, COLOR_YELLOW, "O servidor detectou uma divulgaзгo de IP em sua mensagem");
SendClientMessage(playerid, COLOR_YELLOW, "Se continuar a digitar esta mensagem, poderб ser kickado.");
SendClientMessage(playerid, COLOR_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=0; i<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=stringBegin; j<i+1; j++)
stringn[j-stringBegin]=string[j];
stringn[i-stringBegin+1]=0;
number=strval(stringn);
if(number>=0 && 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=stringBegin; j<i; j++)
stringn[j-stringBegin]=string[j];
stringn[i-stringBegin]=0;
number=strval(stringn);
if(number>=0 && 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.