Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±

    /timeban (dc_cmd / zcmd) + sscanf

    Команда блокирует IP-адрес игрока на время указанное в параметрах.

    Примечание:
    • Если сервер завершит свою работу, все забаненные IP-адреса очистятся.


    Параметры:
    • targetid - ID игрока
    • type - тип времени блокировки [0 - секунды, 1 - минуты, 2 - часы, 3 - дни]
    • time - время бана
    • reason - причина бана


    Всего типов бана: 4 (можно было добавить и больше но pawn не позволяет использовать огромные числа).

    PHP код:
    CMD:timeban(playeridparams[])
    {
        new
            
    targetid,
            
    b_type,
            
    b_time,
            
    b_reason[30]
        ;
        if(
    sscanf(params"udds[30]"targetidb_typeb_timeb_reason))
            return 
    SendClientMessage(playerid, -1"Используйте: /timeban [targetid] [type (0 - seconds | 1 - minutes | 2 - hours | 3 - days] [time] [reason]");
        if(
    IsPlayerConnected(targetid) == 0)
            return 
    SendClientMessage(playerid, -1"Такого игрока нет на сервере.");
        if(!(
    <= b_type <= 3))
            return 
    SendClientMessage(playerid, -1"Тип времени бана от 0 и до 3.");

        static const
            
    fmt_str[] = "Игрок %s (%d) был забанен администрацией на кол-во %s: %d, по причине: %s",
            
    b_type_names[][] = {"секунд""минут""часов""дней"},
            
    b_type_times[] = {160360086400}
        ;
        new
            
    str[sizeof(fmt_str) - MAX_PLAYER_NAME 12 30],
            
    t_id_Ip[16]
        ;
        
    GetPlayerIp(targetidt_id_Ip16);
        
    GetPlayerName(targetidstrMAX_PLAYER_NAME);
        
        
    format(strsizeof(str), fmt_strstrtargetidb_type_names[b_type], b_timeb_reason);
        
    SendClientMessageToAll(-1str);
        
        
    b_time *= b_type_times[b_type] * 1000;
        
        
    Kick(targetid);

        return 
    BlockIpAddress(t_id_Ipb_time);


    Автор: Londlem

    Специально для: Pro-Pawn.Ru


    Копирование данной статьи без разрешения автора запрещено!

  2. 3 пользователя(ей) сказали cпасибо:
    codeo (08.05.2014) Exclusive (01.05.2014) Flime (24.06.2014)
  3. #2
    Аватар для Exclusive
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.09.2013
    Адрес
    Семей
    Сообщений
    110
    Репутация:
    16 ±
    Божественно.
    Код:
    skype: the7sk

  4. #3
    Аватар для ߣΘnÐγ*
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.04.2013
    Сообщений
    79
    Репутация:
    44 ±
    Не плохо, можно сделать бан на часы :D Интересно :)

  5. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    А разве после первого же перезапуска сервера не слетят все баны?) Информация из BlockIpAddress хранится в памяти сервера же. И если хотите использовать данную функцию, придётся сохранять IP с временем в БД/файлах и в OngameModeInit подгружать
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А разве после первого же перезапуска сервера не слетят все баны?) Информация из BlockIpAddress хранится в памяти сервера же. И если хотите использовать данную функцию, придётся сохранять IP с временем в БД/файлах и в OngameModeInit подгружать
    Цитата Сообщение от Londlem Посмотреть сообщение
    Примечание:
    • Если сервер завершит свою работу, все забаненные IP-адреса очистятся.
    Не?

  7. Пользователь сказал cпасибо:
    DeimoS (05.05.2014)
  8. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Не?
    Слепой :с Но , думаю, мой пост всё равно кому-нибудь, да пригодиться. Систему написать довольно просто. Только вот вставлять всё лучше в main, а не в OnGameModeInit
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. #7
    Аватар для Gressie
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.05.2013
    Сообщений
    258
    Репутация:
    6 ±
    А где проверка? На то что IP забанен?

  10. #8
    Аватар для vitalik6243
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.03.2014
    Сообщений
    1
    Репутация:
    0 ±
    Вполне интересно.
    Но согласен с постами выше что слетит бан если сервер рестартанется. С такими темпами бан лучше делать максимум на 20 часов.

  11. #9
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Maks5 Посмотреть сообщение
    А где проверка? На то что IP забанен?
    IP-адрес ID`а игрока, которого указали в параметрах блокируется на определённое время, то есть, если время блокировки не вышло, то следовательно IP не разблокируется и игрок не сможет зайти на сервер и получит сообщение: You are banned from this server.

  12. #10
    Аватар для SkyLaGer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.11.2013
    Сообщений
    7
    Репутация:
    0 ±
    Примечание:
    Если сервер завершит свою работу, все забаненные IP-адреса очистятся.
    Если будет
    Код HTML:
    SendRconCommand("gmx");
    то все равно слетят?

    P.S. Посты выше читал.. все равно не понял толком...

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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