Join the forum, it's quick and easy

Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

Анти-реклама

Перейти вниз

Анти-реклама Empty Анти-реклама

Сообщение  Ulkiorra Сб Авг 11, 2012 12:42 am

1.Ставим данную проверку в паблики OnPlayerCommandText и в OnPlayerText
Код:
new word[256],Index;while(Index < strlen(cmdtext)){word = strtok(cmdtext,Index);if(checkbanan(word)==1 && тут_ваша_проверка_на_админа){banan(playerid,cmdtext);return 0;}}
2. Идём в любое свободное место в моде, и объявляем нашу проверку стоками:
Код:
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);
Вот и все,защита не идеальная, но и не плохая

Ulkiorra

Сообщения : 30
Репутация : 1
Дата регистрации : 2012-08-10

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения