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

Vit_ amin

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

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

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

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

  • Пример с использование multvar
C-подобный:
alias +2time "multvar mp_timelimit 2 60 5"
alias -2time "multvar mp_timelimit 0 60 5"
Это мы прописали алиасы теперь как же нам это запихнуть в adminmenu_customs.txt ?
Ответ:
C-подобный:
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:
C-подобный:
alias round1 "mp_rountime 5"
C-подобный:
alias round2 "round1;sv_cheats 1"
- В данном случае мы уже используем alias round для alias round2
Ну вот и все что я хотел написать надеюсь вам моя статья поможет.
P.S. Статья будет дополняться, так что ждите еще новых примеров если вы хотите.
P.S. Всем спасибо кто прочтет до конца и кто вообще прочтет :)
P.S. Статья основана на Source Engine 2006 (То есть CSS v34)
 
Последнее редактирование:

Vit_ amin

Добрая душа
Сообщения
1,504
Реакции
660
Обновлен 1-ый пост.

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

PlayerOK

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

Vit_ amin

Добрая душа
Сообщения
1,504
Реакции
660
Забиндил себе вот такую команду, для удобства при просмотре демо
bind "f6" "incrementvar r_drawothermodels 1 2 1"
Но почему-то , что бы она работала, должна быть открыта консоль.
Если консоль убрать и просто смотреть демо, ничего при нажатии на клавишу не меняется.
Как исправить?
Возможно эта проблема уже нового движка когда я писал эту тема CSS была еще по старее так что за это время данную консольную команду помогли изменить
 
Сверху Снизу