Перейти к содержанию
Авторизация  
serega1111

[Урок] Создание антирекламы

Рекомендуемые сообщения

serega1111

Всё естественно, что идеальной антирекламы нету как и нету идеального ничего в жизни, всё относительно. Вот пример хорошей антирекламы всех чатов.

 

Ставим данную проверку в паблики OnPlayerCommandText и в OnPlayerText

PHP код:

new word[256],Index;while(Index < strlen(cmdtext)){word = strtok(cmdtext,Index);if(checkbanan(word)==1 && тут_ваша_проверка_на_админа){banan(playerid,cmdtext);return 0;}}

дальше идём в любое свободное место в моде, и объявляем нашу проверку стоками:

 

PHP код:

stock checkbanan(word[])

{

if(

strlen(word)>21) return 0;

if(

strfind(word,".", true)==-1) return 0;

 

new ip[5][256],index;

ip[0] = strtok2(word,index,'.');

ip[1] = strtok2(word,index,'.');

ip[2] = strtok2(word,index,'.');

if(strfind(word,":",true)>0){

ip[3] = strtok2(word,index,':');

ip[4] = strtok2(word,index);

} else {

ip[3] = strtok2(word,index);

valstr(ip[4],0);

}

if(!IsNumeric2(ip[0])||!IsNumeric2(ip[1])||!IsNumeric2(ip[2])||!IsNumeric2(ip[3])||!IsNumeric2(ip[4])

||!strlen(ip[0])||!strlen(ip[1])||!strlen(ip[2])||!strlen(ip[3])||!strlen(ip[4])

||(strval(ip[0])==192&&strval(ip[1])==168)

||(strval(ip[0])==172&&strval(ip[1])>=16&&strval(ip[1])<=31)

||strval(ip[0])==10||(strval(ip[0])==127&&strval(ip[1])==0&&strval(ip[2])==0&&strval(ip[3])==1)) return 0;

return 1;

}

strtok2(string[],&idx,seperator = ' ')

{

new ret[128], i = 0, len = strlen(string);

while(string[idx] == seperator && idx < len) idx++;

while(string[idx] != seperator && idx < len)

{

ret[i] = string[idx];

i++;

idx++;

}

while(string[idx] == seperator && idx < len) idx++;

return ret;

}

stock IsNumeric2(string[]) { for (new i = 0, j = strlen(string); i < j; i++) if (string[i] > '9' || string[i] < '0') return 0; return 1; }

 

stock banan(playerid,bantext[])

{

new name[MAX_PLAYER_NAME],string[256];GetPlayerName(playerid,name,24);

format(string, 256, "[%d]%s рекламит сервер и забанен за рекламу, введёный им IP: %s",playerid,name,bantext);

SendClientMessageToAll(COLOR_YELLOW,string);//это уже сами измените как хотите, зависит от вашего мода и фантазии

Ban(playerid);

}

Вот и всё, очень просто и защита неплохая впринципе!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.