Admin Control v2

Тема в разделе "Общего назначения", создана пользователем Dr_Killjoy, 29 мар 2013.

  1. Dr_Killjoy

    Dr_Killjoy Заблокированные

    Admin Control v2

    Представляю вашему вниманию мутатор Admin Control v2. На этот раз я решил не брать за основу схему admin plus, и более серьёзно продумать реализацию мутатора. В итоге он был написан с нуля, что позволило улучшить функционал мутатора и избавило от многих багов.
    Краткое описание мутатора: Всё так же используется система привязки прав админа к айди. Были введены группы прав для админов, что позволит более удобно разделить их по уровню доступа к определённым командам. Улучшена система выбора целей для команд. Появилась возможность следить за онлайном и выданными киками/банами, сменами карт админов. Подробное описание ниже.

    Автор: Dr. Killjoy (Steklo). Спасибо следующим людям, за использование их кода в процессе написания мутатора: Rythmix, Dave Scream (Тело), Flame, Marco.

    1. Вход под администратором.
    Для использования команд нужно логиниться под администратором. Использовать команды могут лишь админы, которым прописана стандартная KF админка, а так же указан их ID, всё это задаётся в .ini файле.

    2. Справочная информация.
    При использовании команды mutate help all, администратор может просмотреть все ДОСТУПНЫЕ ЕМУ команды и краткое описание их работы.

    3. Система выбора цели.
    Целью команд админа могут быть игроки. Можно указывать игровой ник или игровой айди (состоит из 1-2 цифр, его можно посмотреть в меню голосования за кик). Так же как и в ранней версии AdminControl, можно использовать ключевые слова self или all, чтобы выбрать в качестве цели команды себя или всех игроков соотвественно. Так же присутствует команда SetTarget (так же работает сокращение ST), которая задает цель команды. Если последующие команды будут введены без указания цели, целью команды будет игрок, указанный командой SetTarget. Так же, в новой версии, появилось ключевое слово target, с помощью которого можно использовать нашу цель, выбранную с помощью settarget, в тех командах где не удастся пропустить цель.
    А теперь ещё парочка нововведений.
    Можно применять команду к нескольким игрокам, разделив их ники запятыми (без пробелов!). Пример: mutate da gena,vasiya,jora
    Можно применить команду ко всем игрокам, кроме указанных, поставив перед их никами восклицательные знаки (без пробелов). Пример: mutate god on all!self!sema
    В результате изменения способа реализации мутатора, корректно работают all и self для всех команд.

    4. Отслеживание активности админов.

    Мутатор позволяет отслеживать активность назначенных админов. А именно: время, проведённое админом в игре, количество киков и банов, выданных админом. Так же, при каждом кике и бане, а также смене карты, их действия записываются в UserLogs/AdminControlv2.log. В конце каждого месяца, создаётся .log файл с названием "AdminActivityRecord Year Month". В этом логе пишется покрытие админами игрового времени; время, проведённое админами в игре, количество киков и банов. Так же указывается время, кики, баны за прошедший месяц.

    5. Настройка конфига.
    Файл конфига называется AdminControlv2.ini

    Вот порядок заполнения ини:

    Начнём с общих настроек. Они указаны в секции [AdminControlv2.AdminControlMut]

    Дебаг:

    bDebug - ставьте на False. он сделан скорее для тестирования мутатора, если не хотите левых сообщений в игровой чат, отключайте.

    Настройки действия команд (в новых версиях мутатора будет расширено):

    DisarmDuration - длительность действия команды Disarm по умолчанию

    bSupportWebAdmin - если выставлено на true, вы можете применять команды админконтрола пользуясь консолью веб админа.

    bTrackAllKicksBans - отслеживает кики и баны, которые были выданы без использования команды mutate. По умолчанию выключено. При включении требует KFMapVoteV2. Если вы не хотите ставить KFMapVoteV2, не включайте.

    bTrackAdminMapVoting - отслеживает смену карты или гейм тайпа админами. По умолчанию выключено. При включении требует KFMapVoteV2. Если вы не хотите ставить KFMapVoteV2, не включайте.
    Доступные команды:

    WeaponBase - коды оружия, выдаваемого командой CustomLoaded.

    В массиве Commands указаны классы всех команд. Этот массив не следует трогать. Он сделан для возможности создания пакета команд другими разработчиками мутаторов и добавления их в AdminControl.

    Далее рассмотрим настройку прав админов. Для начала описываем группы. Каждая группа начинается с [Имя_группы AdminGroup]

    Внутри группы мы перечисляем все доступные этой группе админов, команды, в массиве Allow.

    Пример:

    Allow=kick
    Allow=session
    Allow=ban

    После описания всех групп, можно приступить к присвоению этих групп, определённым админам. Каждая запись админа начинается с [Имя_Записи AdminSettings]

    AdminID - айди админа, которому присваивается данная группа прав
    AdminGroup - здесь указываете Имя_группы, которую хотите привязать админу
    AdminLogin - название учётной записи администратора. С помощью этого логина админ включает админские права. С помощью этого же логина админ может вводить команды через WebAdmin.

    Описание команд:

    Всегда ставьте слово mutate перед командой. Например: mutate killzeds. Большинство команд могут быть выполнены к другим игрокам по имени, частичному имени, а также по игровому айди (состоит из одной-двух цифр, посмотреть игровой айди можно в меню голосования за кик). Так же можно применять команду ко всем, кроме указанных игроков. Пример: mutate god on all!gena!jora . Можно применять команду к нескольким указанным игрокам. Пример: mutate disarm vasiya,gena,sema . Команда SetTarget (или ST) выбирает цель для следующей команды. после применения SetTarget можно вызывать команду без имен игроков, и она будет применена к цели, заданной командой SetTarget. Если цель команды - all команда применяется ко всем игрокам, если цель - self применяется к вам. Если цель команды - target, команда применяется к игроку выбранному командой settarget.

    Примеры: mutate Loaded Тело, mutate kick Сенатор, mutate god on All, mutate RestoreAmmo self, mutate da 2, mutate ban target.

    Стандартные команды:

    kick playername - удаляет игрока playername из игры с возможностью перезахода на сервер
    session playername - удаляет игрока playername из игры на одну карту
    kickban player period - запретить игроку player доступ на сервер на period дней. сокращение - BAN
    ban absentia id name period - запретить игроку с указанным id находиться на сервере.
    для перманентного бана вводим permanent вместо period
    killzeds - убивает всех мобов на карте. Сокращение - KZ

    Команды из Admin Control v1:

    settarget playername - игрок playername становится целью команд. Сокращение - ST
    disarm player dur - Из игрока Player выпадает на пол все оружие, а то которое нельзя выкинуть, пропадает. В течении dur секунд он не может подбирать ничего тяжелее 1 блока веса. Если параметр dur не указан, ограничение на вес будет действовать DisarmDuration секунд. По завершении действия команды, базовый инвентарь возвращается игроку. Сокращение - DA
    confiscate player player2 mon - отнимает mon денег у игрока player и раздает их игроку player2. Сокращение - CONF
    abortwave - завершает текущую волну. Действует только во время волны. Сокращение - ABORT
    setnextwave num - номер следующей волны будет num. Действует только во время перерыва. Сокращение - NEXTW
    anchor player1 player2 - телепортирует игрока player1 к player2
    settradertime sec - до конца закупки остается sec секунд. Сокращение - STT
    configurablesummon classname <player> <hp> <headhp> <speed> <meleedamage> <screamdamage> <bleedoutdur> - Вызывает монстра classname, на позицию игрока player, с хп равным hp, хп головы равным headhp, скоростью бега равной speed, ближним уроном meleedamage, уроном от крика screamdamage, который при отрывании головы не умирает в течении bleedoutdur. Сокращение - CS
    restoreammo player - игрок player получает полный боезапас ко всему оружию. Сокращение - RESA
    collision player off - игрок player проходит сквозь игроков и мобов. Сокращение - COL
    collision player on - игрок player не проходит сквозь игроков и мобов.
    removeammo player - отнимает все патроны у игрока player. Сокращение - REMA

    Команды, присутствовавшие еще в AdminPLus_v3:

    God On / God off - Неуязвимость
    Invis On / Invis Off - Невидимость
    Loaded - Дать все оружие
    Ghost - Режим хождения сквозь стены
    Fly - режим полета
    Spider - Режим паука (хождение по стенам)
    Walk - Вернуться в режим ходьбы
    Fatality - убивает игрока
    Slap - Шлепнуть игрока
    ChangeName player new_name - Изменить имя игрока player на new_name
    HeadSize target_name size - Изменить размер головы игрока (1=по умолчанию)
    PlayerSize target_name size - Изменить размер игрока (1=по умолчанию)
    GiveItem weaponclass - Дать оружие или full adrenaline игроку
    Summon class target_name - Вызвать монстра рядом с target_name
    ChangeScore target_nick new_score_value - установить свое количество денег у игрока
    Respawn target savior - Восстановить игрока target рядом с игроком savior
    SetGravity gravity - Изменение гравитации (-950=по умолчанию)
    Teleport - телепорт на поверхность, на которую смотрите
    PrivMessage - Позволяет отправлять сообщение отдельным игрокам. Сокращение - PM

    Команды, добавленные в AdminControl v2.

    silentmode on/off - выключить/включить оповещение игроков о выполнении командю сокращение - SM
    restoredoors - восстанавливает все двери на карте. сокращение - RD
    addscore player score - дать score денег игроку player
    punish player - подбросить игрока player вверх.
    regen hp/armor player val - Восстановить val хп или брони игроку player.
    mute voice/text/speech/all player - выключить голосовой чат/текстовый чат/голосовые команды/все виды коммуникаций игроку.
    mute offtext player - включить текстовый чат игроку. Примечание: пока что работает только заглушка текста.
    unweld - разваривает все двери на карте
    banlist all/permanent/periodic - список текущих банов со сроком разбана. permanent - только перманенты, periodic - только временные
    unban id - разбанить игрока по id
    startmatch player - Принуждает игрока player включить готовность к старту игры.
    restoremap - переключает сервер на предыдущую карту
    banstat - статистика банов
    setperk player perk - принудительно сменить игроку player перк на perk
    setperklevel player level - выставить игроку player уровень перка level
    customloaded player - Дать список оружия игроку player
    Код мутатора для запуска в .bat файле или MutLoader:


    AdminControlv2.AdminControlMut
    Версия 2.10
    Версия 2.10 Зеркало

    Версия 2.20 (актуальная)

    Содержание .ini примера:

    [AdminControlv2.AdminControlMut]
    DisarmDuration=15
    bDebug=False
    bSupportWebAdmin=true
    bTrackAllKicksBans=false
    bTrackAdminMapVoting=false
    WeaponBase="KFMod.Scythe"
    WeaponBase="KFMod.Crossbuzzsaw"
    WeaponBase="KFMod.Crossbow"
    WeaponBase="KFMod.MK23Pistol"
    WeaponBase="KFMod.SCARMK17AssaultRifle"
    WeaponBase="KFMod.AK47AssaultRifle"
    WeaponBase="KFMod.AA12AutoShotgun"
    WeaponBase="KFMod.Boomstick"
    WeaponBase="KFMod.Flamethrower"
    WeaponBase="KFMod.FlareRevolver"
    WeaponBase="KFMod.LAW"
    WeaponBase="KFMod.MP5MMedicGun"
    Commands=Class'AdminControlv2.ActSetTarget'
    Commands=Class'AdminControlv2.ActSilentMode'
    Commands=Class'AdminControlv2.ActKick'
    Commands=Class'AdminControlv2.ActSession'
    Commands=Class'AdminControlv2.ActBan'
    Commands=Class'AdminControlv2.ActDisarm'
    Commands=Class'AdminControlv2.ActKillzeds'
    Commands=Class'AdminControlv2.ActConfiscate'
    Commands=Class'AdminControlv2.ActAbortWave'
    Commands=Class'AdminControlv2.ActSetNextWave'
    Commands=Class'AdminControlv2.ActAnchor'
    Commands=Class'AdminControlv2.ActSTT'
    Commands=Class'AdminControlv2.ActConfigurableSummon'
    Commands=Class'AdminControlv2.ActRestoreAmmo'
    Commands=Class'AdminControlv2.ActCollision'
    Commands=Class'AdminControlv2.ActRemoveAmmo'
    Commands=Class'AdminControlv2.ActSlap'
    Commands=Class'AdminControlv2.ActChangeName'
    Commands=Class'AdminControlv2.ActPrivMessage'
    Commands=Class'AdminControlv2.ActRespawn'
    Commands=Class'AdminControlv2.ActHeadSize'
    Commands=Class'AdminControlv2.ActPlayerSize'
    Commands=Class'AdminControlv2.ActGod'
    Commands=Class'AdminControlv2.ActChangeScore'
    Commands=Class'AdminControlv2.ActSlomo'
    Commands=Class'AdminControlv2.ActSetGravity'
    Commands=Class'AdminControlv2.ActInvis'
    Commands=Class'AdminControlv2.ActGhost'
    Commands=Class'AdminControlv2.ActFly'
    Commands=Class'AdminControlv2.ActSpider'
    Commands=Class'AdminControlv2.ActWalk'
    Commands=Class'AdminControlv2.ActSummon'
    Commands=Class'AdminControlv2.ActTeleport'
    Commands=Class'AdminControlv2.ActGiveItem'
    Commands=Class'AdminControlv2.ActLoaded'
    Commands=Class'AdminControlv2.ActRestoreDoors'
    Commands=Class'AdminControlv2.ActFatality'
    Commands=Class'AdminControlv2.ActAddScore'
    Commands=Class'AdminControlv2.ActPunish'
    Commands=Class'AdminControlv2.ActRegen'
    Commands=Class'AdminControlv2.ActMute'
    Commands=Class'AdminControlv2.ActUnweld'
    Commands=Class'AdminControlv2.ActBanlist'
    Commands=Class'AdminControlv2.ActUnBan'
    Commands=Class'AdminControlv2.ActStartMatch'
    Commands=Class'AdminControlv2.ActRestoreMap'
    Commands=Class'AdminControlv2.ActBanStat'
    Commands=Class'AdminControlv2.ActSetPerk'
    Commands=Class'AdminControlv2.ActSetPerkLevel'
    Commands=Class'AdminControlv2.ActCustomLoaded'

    [Moderator AdminGroup]
    Allow=settarget
    Allow=kick
    Allow=session
    Allow=ban
    Allow=mute
    Allow=disarm
    Allow=removeammo
    Allow=PrivMessage
    Allow=Walk
    Allow=banlist
    Allow=banstat
    Allow=restoremap
    Allow=startmatch
    Allow=confiscate

    [MainAdmin AdminGroup]
    Allow=settarget
    Allow=silentmode
    Allow=kick
    Allow=session
    Allow=ban
    Allow=disarm
    Allow=killzeds
    Allow=confiscate
    Allow=abortwave
    Allow=setnextwave
    Allow=anchor
    Allow=SetTraderTime
    Allow=configurablesummon
    Allow=restoreammo
    Allow=collision
    Allow=removeammo
    Allow=slap
    Allow=changename
    Allow=PrivMessage
    Allow=Respawn
    Allow=HeadSize
    Allow=PlayerSize
    Allow=God
    Allow=ChangeScore
    Allow=Slomo
    Allow=SetGravity
    Allow=Invis
    Allow=Ghost
    Allow=Fly
    Allow=Spider
    Allow=Walk
    Allow=Summon
    Allow=removeammo
    Allow=Teleport
    Allow=GiveItem
    Allow=Loaded
    Allow=restoredoors
    Allow=fatality
    Allow=mute
    Allow=addscore
    Allow=punish
    Allow=regen
    Allow=unweld
    Allow=banlist
    Allow=restoremap
    Allow=unban
    Allow=startmatch
    Allow=banstat
    Allow=setperk
    Allow=setperklevel
    Allow=customloaded

    [Gena AdminSettings]
    AdminGroup=Moderator
    AdminID=9843465646546
    AdminLogin=Genadiy

    [Sema AdminSettings]
    AdminGroup=Moderator
    AdminID=554096685069
    AdminLogin=Semen

    [Jora AdminSettings]
    AdminGroup=MainAdmin
    AdminID=348558454858
    AdminLogin=Georgiy
    Все пожелания, предложения, и сообщения о найденных багах - приветствуются. Планируется добавление большего количества новых команд в мутатор.
     
    WipeMaster, VENOM:), Stein и 20 другим нравится это.
  2. BAHO

    BAHO Fresh Meat

    [​IMG]
    Хорошая работа
     
    LLIePLLIeHb нравится это.
  3. prototype22

    prototype22 Солдат

    это просто неописюемо круто, пол жизни ждал завершения работы :thumbsup:
    наиогромнейшее спасибо! и конечно же :plus:
     
    Папка01 нравится это.
  4. hegyeri

    hegyeri Соучастник

    Good mutator, thx.

    Remark:
    Need to be reason
    e.g.: kick User Not a team player

    Commands:
    kick playername reason
    session playername reason
    ban playername reason

    Could be solved in the next release?!
     
  5. Dr_Killjoy

    Dr_Killjoy Заблокированные

    I don't exactly know if it's possible. I tried to find how to change text that is appearing when you are banned but no success for now.
     
  6. hegyeri

    hegyeri Соучастник

  7. hegyeri

    hegyeri Соучастник

    Could be solved in the next release the reason??!!
     
  8. Dr_Killjoy

    Dr_Killjoy Заблокированные

    Not like way in xban. In xban you specify only number of reason, it's senseless. Need to type your own reason like a string, but I still dont know how to do it.
     
  9. hegyeri

    hegyeri Соучастник

  10. Dr_Killjoy

    Dr_Killjoy Заблокированные

    На данный момент тестируется следущая версия мутатора с 5 новыми командами и фиксом пары багов.
     
    ЛОХМАТЫЙ и denfil777 нравится это.
  11. BAHO

    BAHO Fresh Meat

    Очень стало любопытно что за команды :smile:
    Команду sox надо которая дает кляп на указанное время :thumbsup:
    mutate sox Dr_Killjoy 600 (600 секунд типа)
    :teehee:
     
  12. Dr_Killjoy

    Dr_Killjoy Заблокированные

    Ну одна из команд это мут чата, на выбор, голосовой или текстовый, пока что в результате теста выяснилось что заглушается только текстовый.
     
  13. prototype22

    prototype22 Солдат

    Добрались руки до данного мутатора и тут же возникли проблемы...
    Никак не могу понять какой ID вписывать, в админке (стандарной) показывает один ID, в статистике SP другой, в логах третии и не один не подходит :)
    Подскажите пожалуйста :)
     
  14. BAHO

    BAHO Fresh Meat

    Ты о игровом айди? В менюхе голосования за кик смотри. 2 4 6 8 10 12 и т.д.
     
  15. prototype22

    prototype22 Солдат

    AdminID - вот этот ID интересует
     
  16. BAHO

    BAHO Fresh Meat

    Аа это ж стим айди. Мой например 7656119799370917
    Тот что в админке должен работать.
     
  17. ArTuRuK

    ArTuRuK Соучастник

    ID вписывай из \System\ServerPerksStat.ini
     
  18. BAHO

    BAHO Fresh Meat

    По идее id должен быть везде один.
    ServerPerksStat Веб-админ какая разница. id то задается эмулятором а не мутаторами и меняться не должен
     
  19. Dr_Killjoy

    Dr_Killjoy Заблокированные

    Добавлена функция бана на срок. Теперь в команде бан, указывается время бана, которое измеряется в днях, так же можно выдавать перманенты. В связи с этим введена ещё одна команда - banlist, показывает список банов - айди, ник игрока, дата разбана/перманент. Могу зарелизить текущую версию, или если хотите ждите ещё когда мут на войс доделаю.
     
    ЛОХМАТЫЙ, prototype22 и Flame нравится это.
  20. BAHO

    BAHO Fresh Meat

    Лучше подождать :)