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

Реклама


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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    767 ±

    /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
    Сообщений
    80
    Репутация:
    44 ±
    Не плохо, можно сделать бан на часы :D Интересно :)

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

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

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

    Steve Pavlina

  6. #5
    Аватар для Londlem
    Модератор

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

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

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

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

    Steve Pavlina

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

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

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

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

  11. #9
    Аватар для Londlem
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    767 ±
    Цитата Сообщение от 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 12 ПоследняяПоследняя

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

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

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

Ваши права

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