Для новичков
April 3, 2020

Что такое бинды, и почему это круто

Сегодня мы поговорим о биндах, а именно о том, почему они крутые, и как их юзать.

Во всех играх на движке Source есть консоль, куда можно прописывать различные команды. Это может быть банальный noclip, sv_cheats 1, а может быть и +attack, +w, +s, +a, +d — они отвечают за стрельбу и ходьбу. Эти команды могут показаться ненужными, однако можно сделать какой-нибудь классный скрипт с их использованием.

Чтобы не вводить эти команды каждый раз в консоли, существуют бинды. Благодаря им можно назначить любую команду в консоли на клавишу. Например, можно забиндить на r команду say, которая отправит в чат какое-нибудь сообщение.

Как и для ввода команд, для назначения биндов нам потребуется консоль. Если вы не включили её, то:

Если вы в игре — Настройки->Вкладка "Клавиатура"(открыта первой по умолчанию)->"Дополнительно..."->"Включить консоль (~)".
Если вы не в игре— Добавляете в параметры запуска игры -console

Открываем её(SHIFT+англ. Ё) и пишем bind "r" "say ваше сообщение".

Как видим, в начале всех биндов мы пишем служебное слово bind, затем в двойных кавычках клавишу, на которую нужно назначить команду, а далее, тоже в двойных кавычках вводим саму команду. Что касается клавиш, я оставлю картинку, на которой написаны названия определенных кнопок, которые понимает консоль, также, зелёным цветом здесь выделены клавиши, на которые лучше всего биндить команды(они никуда не назначены и находятся в области левой руки).

Все названия клавиш(кроме букв) вводим капсом Буквы вводим только на английском языке

Если вам нужны названия ещё каких-то кнопок, найти их можно здесь.

Бинды могут быть двух типов:

Когда действие выполнится один раз(та же команда say).

И когда действие выполнится много раз. Примером служат команды, названные в начале статьи — +attack, +w, +s, +a, +d. Если забиндить любую из них на какую-нибудь клавишу, при её зажатии игра бесконечно будет выполнять какую-то команду.

Пример:

bind "w" "+w"

При зажатии вы будете идти вперед

Если вы хотите отвязать клавишу от бинда, введите unbind "название кнопки"

Объединяем команды

Если мы хотим по нажатию клавиш выполнить сразу несколько команд, сделать это у нас получится двумя способами:

Ввести все команды через точку с запятой:

bind "SHIFT" "+attack;say я какать кто со мной"

Или же использовать "алиасы".

Работают на практике они следующим способом. Вы вводите служебное слово alias, затем в кавычках его название, а далее, тоже в двойных кавычках через точку с запятой список нужных вам команд. Далее, вводите синтаксис команды bind, и там, где нужно ввести команду, прописываете название алиаса.

Пример:

alias "ahaha" "taunt;wait 15; kill"
bind "p" "ahaha"

С введением алиасов вы столкнетесь со следующей проблемой — при перезапуске игры такой бинд больше не будет работать, потому что алиасы не сохраняются в игре навсегда. Поэтому, их нужно как-то подгружать при запуске. Для этого нам потребуются файлы конфигурации игры. Они находятся в следующей папке:

путь до steamapps\steamapps\common\Team Fortress 2\tf\cfg

Нас будет интересовать "autoexec.cfg". В него можно добавлять команды, которые будут выполняться при запуске(каждая строчка считается игрой за команду). Открывать файл можно любой программой для редактирования текста. Файл с добавленным алиасом, который я написал несколько строчек назад будет выглядеть примерно так:

Первые 4 строчки служебные

Если мы хотим сделать бинды, которые будут загружаться при выборе класса(например, чтобы можно было можно было на одну кнопку назначить разные команды), надо в той же папке создать файл, который будет содержать в себе название персонажа и расширение .cfg:

  • scout.cfg - Разведчик
  • soldier.cfg - Солдат
  • pyro.cfg - Поджигатель
  • demoman.cfg - Подрывник
  • heavyweapons.cfg - Пулеметчик
  • engineer.cfg - Инженер
  • medic.cfg - Медик
  • sniper.cfg - Снайпер
  • spy.cfg - Шпион

Вы также можете создать файл с расширением .cfg и любым названием, а потом подгружать его командой exec <название файла>.

Вернемся ко второму типу биндов(с бесконечным выполнением при удерживании) и его применению в алиасах на примере бинда для рокетжампа:

alias +rocketjump "+jump; +duck; wait; +attack"
alias -rocketjump "-jump; -attack; wait; wait; wait; -duck"
bind "MOUSE3" "+rocketjump"

Здесь мы видим, что сначала надо прописать команды со знаком +, а затем наоборот. Если не вводить в консоль вторую строчку, при активации бинда персонаж будет бесконечно выполнять действия из первой.

Примеры

  1. Бинд на рокетжамп. Я уже написал об этом бинде, просто дополню тем, что лучше всего его биндить на кнопку колесика мыши(как раз mouse3, как я и указал в примере), единственное, команда будет конфликтовать с изначальным назначением кнопки — включением щита у медика в MvM. Чтобы это исправить, добавляем команды для рокетжмпа в soldier.cfg, а в medic.cfg добавляем bind "MOUSE3" "+attack3".
  2. Бинд на липучкожамп. По словам автора, позволяет добраться позволяет допрыгнуть от одной базы на другую (на 2форте) используя всего одну липучку:
alias +pipejump "+jump;+duck;wait 3;+attack2"
alias -pipejump "-jump;-duck;wait 3;-attack2"
bind "ваша кнопка(я использую r)" "+pipejump"

3. Бинд на определенную насмешку. Наверное, каждому владельцу "злорадства" хотелось бы врубать его на отдельную кнопку сразу после убийства противника.

Для этого можно использовать команду taunt с номером слота насмешки, если у всех классов она находится в одинаковом порядке, или же taunt_by_name, если вы хотите назначить насмешку по названию.

В последнем случае синтаксис будет такой: taunt_by_name Taunt: назввание насмешки на английском языке.

Как узнать название насмешки на инглише? Находим статью о ней на вики по тф, и видим в адресной строке оригинальное название.

Единственное, если в названии насмешки несколько слов, вводить в консоли нужно не через нижнее подчеркивание, а через пробел. Таким образом, если мы хотим забиндить на t злорадство, нам нужно прописать:

bind "t" "taunt_by_name Taunt: Schadenfreude".

Где можно найти команды/готовые бинды

Команды есть в официальном вики по тф, там же подробнее рассказывается про скрипты в целом: https://wiki.teamfortress.com/wiki/Scripting/ru#.D0.9F.D0.BE.D0.BB.D0.B5.D0.B7.D0.BD.D1.8B.D0.B5_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D1.8B

Готовые бинды есть на gamebanana.com: https://gamebanana.com/scripts/games/297