Бан баз права выбора времени

Тема в разделе "Counter-Strike: Source", создана пользователем mzeke, 9 мар 2015.

  1. mzeke

    mzeke

    Сообщения:
    54
    Симпатии:
    4
    Здравствуйте. Мою голову посетила довольно таки на мой взгляд интересная идея. Можно ли сделать так, чтобы админ не мог выбрать время, на которое хочет забанить игрока.

    Т е время фиксированное и будет зависеть от причины бана. Сначала выбираем никнэйм играка, далее причину и на этом все - игрок получает бан.

    Например Выбираем причину Спам-10 мин, Чит-навсегда, Оскорбление-1 день, и тд. Чтобы админы не могли дать хаму бан навсегда.

    Можно ли так сделать и сложно ли это в реализации?

    Заранее спасибо.
     
    Fab3r и Гром нравится это.
  2. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.719
    Симпатии:
    459
    Наработки у меня на соурсбанс были.
     
  3. mzeke

    mzeke

    Сообщения:
    54
    Симпатии:
    4
    AlmazON, смысл в том чтобы админы не выбирали бан. Конкретный пример: админы за оскорбление дают бан навсегда. Ты сможешь это реализовать? И сколько это будет стоить?
     
  4. mzeke

    mzeke

    Сообщения:
    54
    Симпатии:
    4
    AlmazON, В адмнке SM выбираем как обычно Управление игроками->забанить игрока->выбираем ник->выбираем причину. И игрок получает бан. Никаких отдельных флагов.

    Просто нужно убрать пункт выбора времени так как время напрямую связано с причиной.

    Если причина=чит тогда время=навсегда;
    Если причина=спам тогда время=1 час;
    Если причина=оскорблени тогда время=1 день;

    Что-то типа этого.

    Просто нужно убрать пункт выбора времени.
     
    Последнее редактирование: 10 мар 2015
  5. mzeke

    mzeke

    Сообщения:
    54
    Симпатии:
    4
    AlmazON, а нельзя
    AlmazON, понятно, мне почему-то показалось это несложно в реализации. Ладно. Спасибо за ответ.
     
  6. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    Вроде как ничего сложного.
     
  7. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.989
    Симпатии:
    2.987
    AlmazON, ну то что админку редактировать это 100%, но не её, а basebans
     
  8. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    А если делать не в basebans ,а в soucebans?
    На мой взгляд СБ пользуются больше чем локальной базой.
     
  9. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.719
    Симпатии:
    459
    Оффтоп
    Ну как-бы по стандартной логике)
    Я просто в исходнике убирал одно меню и оставлял время бана, а причина была равна времени бана. :magic:
     
  10. mzeke

    mzeke

    Сообщения:
    54
    Симпатии:
    4
    Danyas, может быть ты скинешь в паблик, и общими усилиями что-то получится?? Думаю это не будет лишним для админов серверов. Я не претендую на эксклюзивность, но если нет, то я буду готов заплатить за сие работающее творение.
     
  11. Reiko1231

    Reiko1231 AlexTheRegent

    Сообщения:
    237
    Симпатии:
    569
    По моему мнению, лезть в исходники SourceBans нет необходимости. Они предоставили единственный натив, и его достаточно, чтобы сделать необходимое:
    Код:
    /*********************************************************
     * Ban Player from server
     *
     * @param client	The client index of the admin who is banning the client
     * @param target	The client index of the player to ban
     * @param time		The time to ban the player for (in minutes, 0 = permanent)
     * @param reason	The reason to ban the player from the server
     * @noreturn		
     *********************************************************/
    native SBBanPlayer(client, target, time, String:reason[]);
    Первое, что необходимо, это "скрыть" старое меню выбора бана средствами SourceMod - используем override на команду sm_ban, и делаем доступ к команде sm_ban доступным только Z (root) флагу. Это убирает у простых админов не только обычное меню бана в админке, но и запрещает им банить через консольную команду sm_ban, т.к. если не убрать эту команду, то умные админы продолжат банить через консоль на произвольное время с произвольной причиной.
    Второй шаг - пишем плагин, который будет отвечать за новый пункт в админке, который будет как старый, только с опущенным шагом выбора времени бана, и использовать свой конфиг, чтобы знать, какое время бана за выбранную причину. Тестовый плагин прикладываю ниже, с его конфигом. Может не работать полностью, т.к. я не проверял его, а только сделал набросок. Но по идее должно работать. В любом случае, о результате сообщи сюда, или лучше в скайп (указан в профиле), если есть желание довести плагин до конца.

    P.S. плагин написан для SM версии >= 1.7
     

    Вложения:

    • sb_test.7z
      Размер файла:
      7,8 КБ
      Просмотров:
      8
    mzeke и TWRP нравится это.
  12. mzeke

    mzeke

    Сообщения:
    54
    Симпатии:
    4
    Reiko1231, если бы плагин был написан для 1,6,3 было бы еще лучше. Но все равно, проверю на 1,6 и сообщу о результате.

    Добавлено через 7 минут
    Reiko1231, еще я кое-что не очень понял. То есть мы убираем флаг sm_ban у админов и после установки плагина баним игроков с помощью написанного плагина. Т е мы используем не sm_ban,а написанный плагин? И в свою очередь данным способом могут банить только админы с флагом root? Я правильно понял.

    Просто необходимо, чтобы у обычных админов тоже была возможность банить ТОЛЬКО без выбора времени.
     
    Последнее редактирование: 14 мар 2015