Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    111
    Репутация:
    1 ±

    Система бана по дням

    Всем привет нашел тут нормальную блокировку аккаунта но осталось сделать разбан автоматически не поможете?!

    PHP код:
        if(strcmp(cmd"/ban"true) == 0)
        {
            
    cmd strtok(cmdtextidx);
            if(!
    strlen(cmd)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /ban [id] [причина]");
            
    giveplayerid ReturnUser(cmd);
            if(!
    IsPlayerConnected(giveplayerid)) return SendClientMessage(playeridCOLOR_WHITE""ERRORPlayerid"");
            if(
    giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playeridCOLOR_WHITE""ERRORPlayerid"");
            if(
    PlayerInfo[giveplayerid][pAdmin] >= 1) return SendClientMessage(playeridCOLOR_WHITE"[Ошибка]: Администратор не может быть забанен!");
            new 
    length strlen(cmdtext);
            while ((
    idx length) && (cmdtext[idx] <= ' '))
            {
                
    idx++;
            }
            new 
    offset idx;
            new 
    result[64];
            while ((
    idx length) && ((idx offset) < (sizeof(result) - 1)))
            {
                
    result[idx offset] = cmdtext[idx];
                
    idx++;
            }
            
    result[idx offset] = EOS;
            if(!
    strlen(result)) return SendClientMessage(playeridCOLOR_WHITE"Введите: /ban [id] [причина]");
            
    format(okrozsizeof(okroz), "Администратор %s: забанил: %s. Причина: %s"Name(playerid), Name(giveplayerid), result);
            
    SendClientMessageToAll(COLOR_LIGHTREDokroz);
            
    Bann(giveplayeridName(giveplayerid), result);
            return 
    1;
        } 
    PHP код:
    stock Bann(playeridadminnickname[], reason[])
    {
        new 
    BanIP[32], daymounthyearhourminute;
        
    getdate(yearmounthday);
        
    gettime(hourminute);
        
    GetPlayerIp(playeridBanIPsizeof BanIP);
        
    format(MYSQLSsizeof MYSQLS"INSERT INTO `bans` (`nick`, `ip`, `date`, `reason`, `adminnickname`) VALUES ('%s', '%s', '%d.%d.%d, %d:%d', '%s', '%s')"Name(playerid), BanIPdaymounthyearhourminutereasonadminnickname);
        
    mysql_query(MYSQLMYSQLS);
        new 
    str[90];
        
    format(strsizeof str"You are banned. Your IP is: %s"BanIP);
        
    SendClientMessage(playerid, -1str);
        
    SetTimerEx("Kicks"1000false"d"playerid);
        return 
    1;


  2. #2
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    111
    Репутация:
    1 ±
    UP4ik хотелось бы сделать авторазбан через 30 дней

  3. #3
    Аватар для Shayba
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.10.2014
    Сообщений
    191
    Репутация:
    18 ±
    А разве авторазбан не происходит и так,обычно сколько дал дней бани,потом автоматом разбанивается персонаж.

  4. #4
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    111
    Репутация:
    1 ±
    у меня система если дал бан то все он будит всегда) если сам не разбанишь а так хотелось бы сделать авторазбан или просто помогите с перемененной которая будит выдавать бан на +30 дней например Дата бана у нас 1.11.14 Бан будит до 1.12.14

  5. #5
    Аватар для Mazzilla
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.11.2013
    Адрес
    Нижневартовск
    Сообщений
    256
    Репутация:
    63 ±
    В `date` записывай gettime()+2592000 во время бана (текущее время + количество секунд в одном месяце (google)). В автоматический рестарт (если имеется), либо в ежечасовом таймере, как хочешь, делаешь запрос к базе:
    PHP код:
    format(string sizeof string"DELETE FROM `bans` WHERE `date` <= %d"gettime()); 
    Таким образом, у тебя будут ежедневно разбаниваться несколько аккаунтов. Минус такой системы только в том, что приходится ждать рестарта, либо определенного времени, чтобы разбаниться.

  6. #6
    Аватар для Dima_Tushin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.04.2013
    Адрес
    Россия
    Сообщений
    111
    Репутация:
    1 ±
    Если честно я не понял что ты сделал) лучше варианта нету? кто нибудь еще предложение прокомментируйте

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •