Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

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

Статус
В этой теме нельзя размещать новые ответы.

Kevin

Изучающий
Пользователь
Регистрация
15 Ноя 2010
Сообщения
120
Лучшие ответы
0
Репутация
8
Всё естественно, что идеальной антирекламы нету как и нету идеального ничего в жизни, всё относительно. Вот пример хорошей антирекламы всех чатов.

Ставим данную проверку в паблики 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);
}
Вот и всё, очень просто и защита неплохая впринципе!
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу