Команда alias и все о ней

Тема в разделе "Статьи и мануалы", создана пользователем Vit_ amin, 11 дек 2012.

  1. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.049
    Симпатии:
    344
    Всем привет.
    В данной теме я вам расскажу об консольной команде alias.
    Вы думаю уже знаете, что команда alias это некая CMD команда для использования скажем неких алгоритмов в написании больших количеств команд.
    К примеру мы хотим на сервер прописать во время игры следующее
    rcon mp_roundtime 5;rcon sv_password pw;rcon sv_cheats 1;rcon _restart ну и так далее
    Так вот можно это использовать через alias CMD
    Для начала давайте познакомимся с самой командой alias

    • Команда alias разрешена как для серверной части так и для клиентской.(В частности в клиентской части команда имеет более высокое распространение)
    • Результат команды help alias
      Код:
      "alias"
       - Alias a command.
    • Также если написать в консоли просто alias (Вне зависомости от клиентской или серверной то вам покажутся текущие alias алгоритмы, которые уже прописаны).То есть к примеру
      Код:
      ] alias 
      Current alias commands:
      В данном примере просто нету алиасов так как они не прописаны то есть строка 'Current alias commands:' пуста
    Ну некие особенности уже вы поняли итак синтаксис CMD команды alias
    Код:
    alias "имя новой cmd команды" "ваш алгоритм действий"
    Например
    Код:
    alias "cheat_on" "sv_cheats 1"
    В данном примере вместо того, чтобы вводить команду sv_cheats 1, мы просто использовали alias с новым именем cheat_on
    Вот теперь если мы введем просто alias в консоль мы увидем следующее
    Код:
    ]alias
    Current alias commands:
    cheat_on : sv_cheats 1
    В данном случае синтаксис такой :
    Слева (то есть слово cheat_on) находиться имя нашей новой CMD команды потом идет у нас двоеточие и после него уже идет алгоритм данной команды
    Теперь давайте рассмотрим пример более трудный.
    Итак
    Код:
    alias "potect_on" "sv_password 1034;rcon_password 1034;sv_cheats 0;sv_allowdownload 0"
    Обратите внимание если вы хотите использовать несколько команд для создания нового алиаса то используйте точку с запятой, то есть к примеру, когда вы пишите в консоль
    То есть как и пишем обычные консольные команды отделенные точкой с запятой.
    Внимание в данной теме я рассматривая только серверную alias команду, то есть с клиентскою частью она не будет иметь ничего общего.
    То есть, чтобы запустить нам данный alias вводим в консоль rcon protect_on и в одно мгновенье выполняется нужный нам alias и весь его алгоритм.
    Внимание alias команды понимаются даже конфигурационными файлами (server.cfg,valve.rc,skill1.cfg,sourcemod.cfg и так далее).
    Использование команды incrementvar и ее смысл с алисами
    Консольная команда incrementvar и ее синтаксис для начала
    Код:
    incrementvar "имя переменной" "минимальное значение переменной" "максимальное значение переменной" "изменение переменной в единицах"
    например
    Код:
    incrementvar mp_timelimit 0 60 +5
    Итак пояснения :
    1. Имя переменной - mp_timelimit
    2. Минимальное значение переменной - 0
    3. Максимальное значение переменной - 60
    4. Изменение переменной в единицах - +5 (В данном случае переменная будет увеличиваться при каждом ее выполнение на +5 пунктов)
    Внимание : Если к примеру в данном случае максимальное значение переменной было достигнуто (то есть к примеру у вас в server.cfg прописано mp_timelimit 50) вводим в консоль
    Код:
    incrementvar mp_timelimit 0 60 +5
    У нас станет теперь 55
    Вводим еще раз
    Код:
    incrementvar mp_timelimit 0 60 +5
    У нас станет теперь 60 то есть максимальное значение переменной достигнуто.
    Если вы еще раз напишите в консоль
    Код:
    incrementvar mp_timelimit 0 60 +5
    То у вас переменная mp_timelimit станет теперь = 5
    Вы спросите почему ?Потому что на это есть несколько ответов:

    1. Данную команду сделала Valve и только к ним этот вопрос
    2. Так как достигнут у вас максимальный результат, НО вы написали команду еще раз, поэтому она должна выполнять поэтому используется цикл то есть переменная не может брать уже 65, так как максимум переменной у вас указан уже в команде incrementvar => переменная должна выполниться, поэтому используется вот такой вот способ.
    Хочу еще отметить, что при выполнение incrementvar команда делиться на несколько сотых то есть к примеру
    Если вы сделали
    Код:
    incrementvar sv_cheats 0 1 +1
    То в чате должно быть уведомление об изменение переменной
    Вы увидите не вот это:
    Код:
    Server cvar "sv_cheats" changed to 1
    А вот это
    Код:
    Server cvar "sv_cheats" changed to 1.000000
    Это еще 1 особенность команды incrementvar, так как она используется не Integer тип а только Float.
    Внимание: Команду incrementvar можно использовать только с переменными, не с cmd командами а именно с переменными.
    Ну а теперь в чем же связь между incrementvar и alias ?
    Ответ очень просто вы можете использовать incrementvar также вместе с alias командами например вместо того, чтобы писать
    Код:
    incrementvar sv_cheats 0 1 +1
    Можно использовать структуру alias то есть
    Код:
    alias code "incrementvar sv_cheats 0 1 +1"
    И при написании в консоль code будет выполняться так же самая последовательность
    2 маленькие особенности команды incrementvar

    1. Можно использовать не только промежутки возрастания (+1,+2,+3,и так далее), но и промежутки убывания (-1,-2,-3)
    2. Если вы используете положительный интервал промежутков можно не писать +1,+2, а просто 1,2
    Использование команды multvar и ее смысл с алисами
    Консольная команда multvar и ее синтаксис для начала
    Код:
    multvar "имя переменной" "начальное значение переменной"  "максимальное значение переменной" "изменение переменной в единицах"
    например
    Код:
    multvar mp_timelimit 2 60 5
    Итак пояснения :
    1. Имя переменной - mp_timelimit
    2. Минимальное значение переменной - 0
    3. Максимальное значение переменной - 60
    4. Изменение переменной в единицах - 5 (В данном случае переменная будет увеличиваться при каждом ее выполнение в 5 пунктов)
    Внимание : Если к примеру в данном случае максимальное значение переменной было достигнуто (то есть к примеру у вас в server.cfg прописано mp_timelimit 2) вводим в консоль
    Код:
    multvar mp_timelimit 2 60 5
    У нас станет теперь 10
    Вводим еще раз
    Код:
    multvar mp_timelimit 2 60 5
    У нас станет теперь 50 то есть максимальное значение переменной достигнуто.
    Вводим еще раз
    Код:
    multvar mp_timelimit 2 60 5
    У нас станет теперь 60 то есть максимальное значение переменной достигнуто.
    Если вы еще раз напишите в консоль
    Код:
    multvar mp_timelimit 2 60 5
    То у вас переменная mp_timelimit все равно будет иметь число = 60
    Хочу еще отметить, что при выполнение multvar команда делиться на несколько сотых то есть к примеру
    Если вы сделали
    Код:
    multvar mp_timelimit 2 60 5
    То в чате должно быть уведомление об изменение переменной
    Вы увидите не вот это:
    Код:
    Server cvar "mp_timelimit" changed to 10
    А вот это
    Код:
    Server cvar "mp_timelimit" changed to 10.000000
    Это еще 1 особенность команды multvar, так как она используется не Integer тип а только Float.
    Внимание: Команду multvar можно использовать только с переменными, не с cmd командами а именно с переменными.
    Ну а теперь в чем же связь между multvar и alias ?
    Ответ очень просто вы можете использовать multvar также вместе с alias командами например вместо того, чтобы писать
    Код:
    multvar mp_timelimit 2 60 5
    Можно использовать структуру alias то есть
    Код:
    alias code2 "multvar mp_timelimit 2 60 5"
    И при написании в консоль
    code2 будет выполняться так же самая последовательность
    Использование alias, incrementvar и multvar с adminmenu_customs.txt
    Итак как вы уже поняли тут мы рассмотрим случаи использования alias для вашего меню и, когда это полезно, например для начала в valve.rc (Лучше всего записывать alias команды в конфигурационный файл, который загружается только при запуске сервера.) либо autoexec.cfg прописываем

    • Пример с использование incrementvar:
    Код:
    alias +time "incrementvar mp_timelimit 0 60 10"
    alias -time "incrementvar mp_timelimit 0 60 -10"
    Это мы прописали алиасы теперь как же нам это запихнуть в adminmenu_customs.txt ?
    Ответ:
    Код:
    Commands
    {
        ServerCommands
        {
            "TimeLeft время"
            {
                cmd "@1"
                execute server
                1
                {
                    title "Выберите интервал"
                    1 "+time"
                    1. "Увеличить TimeLeft (+10 минут)"
                    2 "-time"
                    2. "Уменишить TimeLeft (-10 минут)"
                }
            }
        }
    }
    Теперь проверяйте в Меню Администратора -> Управление Сервером.
    Это был только пример вы можете использовать свои

    • Пример с использование multvar
    Код:
    alias +2time "multvar mp_timelimit 2 60 5"
    alias -2time "multvar mp_timelimit 0 60 5"
    Это мы прописали алиасы теперь как же нам это запихнуть в adminmenu_customs.txt ?
    Ответ:
    Код:
    Commands
    {
        ServerCommands
        {
            "TimeLeft время(#2)"
            {
                cmd "@1"
                execute server
                1
                {
                    title "Выберите интервал"
                    1 "+2time"
                    1. "Увеличить TimeLeft (*5 минут)"
                    2 "-2time"
                    2. "Вернуть значение TimeLeft"
                }
            }
        }
    }
    Теперь проверяйте в Меню Администратора -> Управление Сервером.
    Это был только пример вы можете использовать свои
    3 нюанса команды alias

    1. В alias командах к сожалению нельзя использовать двойные кавычки, так как alias не может понять каков алгоритм команды и где она завершается
    2. Можно использовать alias в alias'е
    3. Вместимость команды не ограничена вы можете писать alias хоть на 100 команд
    Пояснение к пункту 2:
    Код:
    alias round1 "mp_rountime 5"
    Код:
    alias round2 "round1;sv_cheats 1"
    - В данном случае мы уже используем alias round для alias round2
    Ну вот и все что я хотел написать надеюсь вам моя статья поможет.
    P.S. Статья будет дополняться, так что ждите еще новых примеров если вы хотите.
    P.S. Всем спасибо кто прочтет до конца и кто вообще прочтет :)
    P.S. Статья основана на Source Engine 2006 (То есть CSS v34)
     
    Последнее редактирование: 26 дек 2012
    Серый™, Hejter, SenatoR и 10 другим нравится это.
  2. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.049
    Симпатии:
    344
    Обновлен 1-ый пост.

    1. Добавлено описание новой CMD команды multvar.
    2. Исправлены некоторые недочеты в моей статье.
     
    hellgu нравится это.
  3. PlayerOK

    PlayerOK Это вам , не это....

    Сообщения:
    153
    Симпатии:
    16
    Забиндил себе вот такую команду, для удобства при просмотре демо
    bind "f6" "incrementvar r_drawothermodels 1 2 1"
    Но почему-то , что бы она работала, должна быть открыта консоль.
    Если консоль убрать и просто смотреть демо, ничего при нажатии на клавишу не меняется.
    Как исправить?
     
  4. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.049
    Симпатии:
    344
    Возможно эта проблема уже нового движка когда я писал эту тема CSS была еще по старее так что за это время данную консольную команду помогли изменить