Что делать, если закончились клавиши для биндов

El Daro

Писатель
Staff member
Что делать, если закончились клавиши для биндов

Если вы достаточно долго играете в L4D2, то рано или поздно столкнётесь с тем, что клавиш не хватает. Всё, что есть, забито биндами под команды конкретных серверов, под фразы, внутриигровые действия и так далее. И вот уже кончились клавиши в блоке с PGUP/PGDN, вот уже забит весь нумпад, переназначены в отчаянии стандартные клавиши, которые не используются... А функций-то новых хочется! Если узнал тут себя, то эта статья для тебя. И даже если нет, она всё равно будет полезной.
В этой статье я расскажу о различных способах решения этой проблемы. Некоторые из них нельзя найти в интернете, поэтому тут вы их увидите впервые. Все представленные способы можно комбинировать в любых сочетаниях.

Способ 1
Разделение по серверам

Нет необходимости биндить сразу все действия для всех серверов. Их надо разделить. Допустим, вы играете на серверах BLOOD FACTORY и EXTRA VERSUS. В таком случае создаём отдельные файлы bindsBF.cfg и bindsEV.cfg и прописываем в них разные бинды на одни и те же клавиши для BF и EV. Теперь после захода на сервер можно прописывать в консоль exec bindsBF или exec bindsEV и пользоваться только теми действиями, которые нужны для этого конкретного сервера. Но и это можно автоматизировать. Например, используя alias'ы для захода на сервер:
Код:
alias "bf1" "exec bindsBF.cfg; connect 78.139.77.165:27020"
Аналогично для всех остальных серверов. С таким способом не надо будет вообще задумываться о том, чтобы загружать нужный конфиг при подключении к серверу. И таких конфигов может быть сколько угодно.

Способ 2
Больше действий на одну клавишу

Иногда бывает так, что разные сервера имеют примерно одно и то же действие, которое вызывается по-разному. Например, sm_list на BF и sm_mvp на EV. Или sm_sm на BF и voice_show_mute для EV. Вообще-то, последняя команда не относится конкретно к EV — это внутриигровая функция, которая выводит в консоль список игроков и номера их голосовых каналов. Но на BF используется более удобный плагин, который гораздо предпочтительнее.
Мы можем забиндить все эти действия на одни и те же клавиши:
Код:
bind "#key1" "sm_list; sm_mvp"
bind "#key2" "sm_sm; voice_show_mute"
В случае с mute'ом на BF в консоль тоже будет выведен список игроков и их голосовых каналов, но волновать нас это особо не будет. Кстати, unmute на BF тоже есть — это sm_su.

Способ 3
Управляющая клавиша

Данный способ сперва покажется сложным для понимания, но на самом деле он довольно простой. Мы все пользуемся такими удобными сочетаниями, как, например, Ctrl+C и Ctrl+V. Так вот, Ctrl — Control — это управляющая клавиша. И её можно сымитировать в L4D2 (да и вообще в любой игре на движке Source).

Для начала объясню, чего конкретно мы хотим добиться. Допустим, у нас есть функция mute'а — sm_sm — и она забиндена на, скажем, клавишу kp_minus — крайний справа минус на NumPad'е. И мы хотим, чтобы не занимать лишнюю клавишу, повесить на неё же unmute, который будет вызываться неким сочетанием двух клавиш. В качестве управляющей можно использовать любую клавишу, но я бы рекомендовал для этого правый Ctrl, так как левый по-умолчанию стоит на приседание. На следующем рисунке представлена схема того, как это должно работать:

RCTRL_Scheme.png

А теперь, собственно, поговорим про реализацию. В нашем основном файле биндов (пусть будет binds.cfg) прописываем следующий бинд:
Код:
bind "kp_minus" "KP_MINUSaction"
Почему пользуемся посредником? Потому что потом, если мы захотим поменять клавишу для этого действия, нам будет достаточно изменить всего одну строчку в конфиге, а не три.
Теперь создаём два новых файла: +control.cfg и -control.cfg. Внутри последнего прописываем основное действие для упомянутого alias'а:
Код:
alias "KP_MINUSaction" "sm_sm"
А в +control.cfg прописываем альтернативное действие:
Код:
alias "KP_MINUSaction" "sm_su"
Теперь осталось эти файлы как-то использовать. Возвращаемся в основной файл биндов binds.cfg и прописываем следующие строки:
Код:
bind "RCTRL" "+control"

alias "+control" "exec +control.cfg"    // Правый Ctrl нажат
alias "-control" "exec -control.cfg"    // Правый Ctrl отжат

exec -control.cfg                       // Загружаем алиасы, которые отвечают за действия по-умолчанию
Теперь, если мы просто нажимаем на "-" на NumPad'е, активируется плагин mute'а. А если при этом удерживаем нажатым правый Ctrl, активируется плагин unmute'а. В итоге все три файла будут выглядеть следующим образом:
binds.cfg:
Код:
bind "kp_minus" "KP_MINUSaction"
bind "RCTRL" "+control"

alias "+control" "exec +control.cfg"    // Правый Ctrl нажат
alias "-control" "exec -control.cfg"    // Правый Ctrl отжат

exec -control.cfg                       // Загружаем алиасы, которые отвечают за действия по-умолчанию
-control.cfg:
Код:
alias "KP_MINUSaction" "sm_sm"
+control.cfg:
Код:
alias "KP_MINUSaction" "sm_su"

В autoexec.cfg, естественно, должна быть прописана строка exec binds.cfg.
Для данного способа я прикрепляю архив со всеми тремя файлами из примера. Можно скачать их себе и начать дополнять своими функциями.
 

Вложения

  • cfg.rar
    486 байт · Просмотров: 443
Сверху