Custom Admin Menu (Делаем админское меню для SourceMod)

Тема в разделе "Статьи и мануалы", создана пользователем Andrey, 10 окт 2009.

  1. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    Делаем админское меню для SourceMod

    [​IMG]

    Введение
    Функция пользовательских меню позволяет администраторам сервера добавлять новые элементы в SourceMod меню администратора. Оно предназначено для использования в качестве дополнения к плагинам команды которых нужно добавить в меню.
    Администраторы могут настроить их меню с помощью конфигурационного файла sourcemod/configs/adminmenu_custom.txt, этот файл создает набор пунктов и категорий в меню администратора при запуске сервера.

    Список параметров
    Все эти параметры могут быть указаны для настройки меню. Большинство из них необязательны и имеют значения по умолчанию, если они не обнаружены. Смотрите 3ий пункт примеры команд и/или пункт файлы примеров для получения информации о том, как должен выглядеть и какую структуру иметь конфигурационный файл.

    • cmd - команда которая будет выполнена (#1,#2 и т.д. для параметров - никаких лимитов для них) Используйте @num чтобы послать параметр не окруженный "кавычками"
    • admin - уровень администратора требующийся для доступа к выполнению команды - смотрите уровни администраторов
    • execute - 'server' или 'player' - выбор выполнить команду на клиенте или как команду сервера - значение по умолчанию 'player'
    • 1 - Информация о параметре 1 (#1) - Вы должны указать большинство из следующих параметров
      • type - значение по умолчанию 'list' если другое не указано
        • 'groupplayer' - Список в виде групп + присоединенные игроки
        • 'group' - Список групп
        • 'player' - Список игроков
        • 'list' - Список из определенных опций
        • 'mapcycle' - автоматическое заполнение списка содержимым вашего mapcycle файла
        • 'onoff' - On или Off меню которое посылает числа 1/0 (хорошо для cvars(консольных переменных имеющих значения вкл./выкл.))
      • path - Требуется только для типа mapcycle. Путь (включая имя файла и его расширение) содержащий список карт (или другой текстовый отформатированный как mapcycle.txt) - по умолчанию имеет значение 'mapcycle.txt'
      • method - 'name', 'steamid', 'userid', 'userid2' (обратите внимание что символ '#' не указывается), 'clientid', 'ip' - необходимы только для меню groupplayer/player - по умолчанию name
      • title - Заголовок меню выбора (опционально)
      • 1-x - Список параметров - нужен только для параметров типа 'list'
      • 1.-x. - Текст описывающий параметр - нужен только для параметров типа 'list' (опционально, можно использовать в качестве текста или не использовать вообще)
      • 1* - x* - Уровень администратора требующийся чтобы видеть эту опцию (также как и остальные типы admin)
    Примеры команд
    PHP:
    "Commands"
    {
        
    "Fun Commands"
        
    {
            
    "Set Player Speed"
            
    {
                
    "cmd"            "sm_speed #1 @2"
                "admin"            "sm_kick"
                "execute"        "player"
                "1"
                
    {
                    
    "type"         "groupplayer"
                    "method"    "name"
                    "title"        "Player/Team to Edit"
     
                
    }
                
    "2"
                
    {
                    
    "type"         "list"
                    "title"        "Speed Multiplier"
                    "1"        "1.0"
                    "1."        "Normal"
                    "2"        "0.8"
                    "2."        "80%"
                    "3"        "0.5"
                    "3."        "Half"
                    "4"        "1.5"
                    "4."        "50% Boost"
                    "5"        "2.0"
                    "5."        "Double"
                    "5*"        "sm_ban" 
                    
    //restrict the double option to admins who have access to the 'sm_ban' override
                
    }
     
            }
        }
    }
    Выше написан пример содержимого конфигурационного файла adminmenu_custom.txt мы создали новую категорию в админском меню называемую 'Fun Commands'.


    • Эта категория содержит опцию под названием : "Set Player Speed". (установить скорость игрока)
    • Выбрав это мы бы вызвали следующее меню под названием: "Player/Team to Edit" содержащее список групп и имена игроков.
    • Далее выбрав что либо в списке мы переходим в следующее меню называющееся "Speed Multiplier".
    • Видим список опций такие как "Normal", "80%" например.
    • Пример команды отправляемой если пользователь выбран "Double" (выполняется команда на игроке FakeClientCommand) - 'sm_speed "@CT" 2.0'
    Примечание: Вы можете использовать \ в качестве символа перехода. Использование \" позволит вам добавить кавычки в вашу строку.

    Админские уровни
    Все типы 'admin' сейчас требуют имя командной строки. Эта команда может быть уже существующей (sm_ban) или полностью воображаемой (onlycrabscanusethis).
    Если команда существует в этой секции (или списке опций) потребуется точно такой же уровень доступа как и команда (включая любые перекрывающие указатели).
    Пример. Вы используете sm_ban в качестве уровня администратора для под меню, поэтому все кто может получить доступ sm_ban также будут иметь доступ к этой опции меню (По умолчанию это администраторы с флагом 'ban' ). Однако если у вас есть перекрывающая sm_ban группа, то эта группа также будет иметь доступ.
    Если команда не существует, вы будете должны добавить её в свои перекрывающие разделы, как если бы это была нормальная команда. Это может быть сделано в файле admin_overrides.cfg (чтобы присвоить флаг к этой команде), и/или в admin_groups.cfg (предоставить доступ к команде определенной группе или удалить её из группы, хотя они имеют флаг к использованию её)
    Если не уровень администратора указан для базовой команду он по умолчанию будет первым аргументом в "cmd" строке. Например, имея
    будет иметь значение по умолчанию admin override строка 'sm_ban'
    Для более подробной информации смотрите Overriding Command Access

    Группы подменю
    Типы 'group' и 'groupplayer' добавляют предварительно настроенные параметры в меню.
    Эти параметры настраиваются с помощью файла sourcemod/configs/adminmenu_grouping.txt
    Они, как правило, используется для обеспечения действий над командами или всеми игроками, например как '@all' , '@t' в вашем меню.

    Категории
    Если вы хотите добавить элементы в уже существующую категорию, вам необходимо указать внутреннее имя этой категории. Названия для трех категорий, предусмотренных по умолчанию в SourceMod:

    • PlayerCommands
    • ServerCommands
    • VotingCommands
    Сортировка

    Категории и пункты добавленые с помощью динамического меню могут быть отсортированы таким же образом, как обычные элементы. Для получения дополнительной информации смотрите Admin Menu Configuration

    Вам необходимо указать имя, которое вы дали команде в файле конфигурации.
    Пример:

    Примеры файлов
    Пример настроек adminmenu_custom.txt:
    adminmenu_custom.txt
    Полные примеры:
    adminmenu_custom.txt
    admin_overrides.cfg
    admin_groups.cfg

    Оригинал
     
    Konstantin, Vit_ amin, KeNt606 и 3 другим нравится это.
  2. Tox1c

    Tox1c

    Сообщения:
    52
    Симпатии:
    2
    скинул себе этот файлик. Там некоторые команды говрит не известные. Надо наверно плагины ставить. Подскажите какие.
     
  3. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    SM Super Commands v.0.6
     
  4. Tox1c

    Tox1c

    Сообщения:
    52
    Симпатии:
    2
    еще вопрос:
    как можно русифицировать новые команды в меню?
     
  5. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    В исходнике плагина неверно :)
     
  6. Tox1c

    Tox1c

    Сообщения:
    52
    Симпатии:
    2
    Именно в самой админке. пробовал в файле adminmenu_custom.txt - новые пункты меню пропадают. Пробовал в файле перевода админки добавлять - не канает.
    Получается пол админки по-русски, а пол по английски.
     
  7. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    А сохранял файл adminmenu_custom.txt в UTF кодировке?
     
  8. Tox1c

    Tox1c

    Сообщения:
    52
    Симпатии:
    2
    Естественно :)
     
  9. krakozyabla

    krakozyabla

    Сообщения:
    9
    Симпатии:
    0
    Не могли бы вы подсказать: вот новые команды в админке хранятся в файле
    ...\cstrike\addons\sourcemod\configs\adminmenu_custom.txt
    А где хранятся изначальные команды? в каком файле?
     
  10. maza511

    maza511

    Сообщения:
    927
    Симпатии:
    456
    Как написать свое собственное голосование? =)
     
  11. _Lexa_

    _Lexa_

    Сообщения:
    847
    Симпатии:
    259
    тоже бы хотлесь знать как написать
    Пример:
    Голосование на ограничения оружия

    sm_vote Ограничить до 2 awp? [да] [нет]

    sm_restrict awp 2
    как все это вкучу собрать?
     
    Последнее редактирование: 21 апр 2010
  12. foxig

    foxig

    Сообщения:
    17
    Симпатии:
    1
    Конечно что бы не говорили но mani admin намного легче чем sourcemod
     
  13. foxig

    foxig

    Сообщения:
    17
    Симпатии:
    1
    А если команды прописать просто в adminmenu_sorting.txt то разве они не будут работать?
     
  14. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    Нет не будут, этот файл отвечает только за сортировку команд в меню...
     
  15. foxig

    foxig

    Сообщения:
    17
    Симпатии:
    1
    Делаю делаю а админка все не получается, то 1 то 2-е, скажите а где находятся уже созданные команды админки???? то есть те которые изначально стоят???
    Если их заменить на свои то все должно отлично работать....
     
  16. maza511

    maza511

    Сообщения:
    927
    Симпатии:
    456
    adminmenu.smx
     
  17. JIaV

    JIaV

    Сообщения:
    50
    Симпатии:
    3
    А можно как-то задавать порядок команд в меню? А то они отображаются не в том порядке, в котором заданы в конфиге
     
  18. maza511

    maza511

    Сообщения:
    927
    Симпатии:
    456
    Они наверное по алфавиту идут.. попробуй перед название прономеровать .
     
  19. rooter

    rooter

    Сообщения:
    1
    Симпатии:
    0
    товарищи, а как сделать, чтобы работал вообще sm_restrict? модуль какой поставить? и еще, в source_mod есть способ перекидывать игроков команды в команду, т.е. из Т в СТ и обратно?
     
  20. Darkman

    Darkman

    Сообщения:
    8
    Симпатии:
    0
    Вопрос: Возможно ли внести изминения в уже существующее меню?
    Просто я посматрел, но там совершенно другой код! Т.е. там вообще не понятно что и куда и такого кода как тут в 1 посте указано нет нигде:(

    Или проще создать своё меню?

    Вопрос: Можно ли сделать например категорию Голосования, но с разделением ещё на 2 пункта: Стандартные карты и Не стандартные карты?

    Т.е. свои карты в каждой из них+возможность вернуться к выбору этих 2 категорий и выбрать уже из 2-ой категории карты и уже потом запустить голосование!

    Наглядно: sm_admin - Голосования - Голосование на карты (тут 2 пункта вместо выбора карт сразу) - 1. Стандартные карты - выбрали - вернулись в меню Голосование на карты - зашли в 2. Не стандартные карты - выбрали - жмём назад - назад - Запускаем голосование

    Т.е. всё также, но ток вместо выбора карты на голосование сразу есть ещё 2 пункта!