*~|CS.LIFS.RU :: Games Portal|~*

Counter-Strike 1.6

Наши сервера

IP адрес сервера:s1.lifs.ru:27015     IP адрес сервера:s2.lifs.ru:27016     IP адрес сервера:s3.lifs.ru:27017

     Голосуй на cs-monitor.su              Голосуй на cs-monitor.su              Голосуй на cs-monitor.su


Основы скриптинга в Team Fortress 2.



Так называемый скриптинг, также его называют биндингом (от англ. bind - связывать), имеет богатую предысторию. Те кто играл в другие игры от Valve (и не только), скорее всего, уже встречались с этим и возможно даже применяли, сами того не осозновая. В данном материале мы постараемся пополнить, обобщить и структурировать имеющиеся знания относительно скриптинга в игре Team Fortress 2.

Что за зверьки такие, скрипты?
Скрипты в TF2 имеют множество синонимов, включая и бинды (binds, keybinds, bindings). Скрипт, сам по себе, позволяет легко привязать к определенной клавише указанный набор команд в консоле.

Где располагаются скрипты?
Скрипты сохраняются игрой в файле, расположенному по адресу:

_папка_где_расположился_steam_\SteamApps\_имя_пользователя_\team fortress 2\tf\cfg\config.cfg

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

_папка_где_расположился_steam_\SteamApps\_имя_пользователя_\team fortress 2\tf\cfg\autoexec.cfg

Изначально данный файл отсутствует, но ты можешь его создать в любом текстовом редакторе. Также как и файл config.cfg, autoexec.cfg автоматически будет прочтен игрой во время ее загрузки. При создании и сохранении такого autoexec.cfg обрати внимание на расширение получившегося файла, текстовые редакторы по умолчанию добавляют к вновь создаваемому расширение .txt. В итоге выходит что-то вроде autoexec.cfg.txt, с таким расширением файл не будет обрабатываться игрой, даже если в консоли его запустить вручную! Чтобы избежать подобной ситуации рекомендую включить отображение расширений файлов (см. иллюстрированную инструкцию для различных версий Windows).

Легко ли написать скрипт?
Простейший скрипт имеет следующую форму: bind "_клавиша_" "_команда_". Например, если ты хочешь, чтобы при нажатии на 1 в руках твоего героя оказывалось основное оружие, скрипт будет выглядеть так:
bind "1" "slot1"
(команда slot1 заставляет сделать текущим основное оружие)
Каждый скрипт (бинд) должен быть располагаться на отдельной строке. В качестве примера всегда можно посмотреть на config.cfg, полезные команды можно посмотреть в материале Консольные команды Team Fortress 2 на нашем сайте.

Как писать сложные скрипты?
Сложный скрипт очень похож на простой, разница лишь в количестве исполняемых команд при нажатии на клавишу. Каждая команда разделяется знаком 'точка с запятой' (;). Как примет, небольшой полезный скрипт для играющих в роли инженеров:
bind "q" "build 0; wait 50; +attack; wait; -attack; slot1"
Вышеприведенный скрипт 'привязывает' к кнопке 'q' цепочку команд. После нажатия на эту клавишу, будут выполнены следующие команды по порядку:

  • build 0 переводит игру в режим постройки подзарядки;
  • wait 50 ожидает 50 кадров перед тем, как приступить к следующей команде;
  • +attack начинает основного удара (по умолчанию левая кнопка мыши);
  • wait ожидает пока не будет исполнена следующая команда;
  • -attack закончивает основной удар;
  • slot1 активирует основное оружие (для Инженера это дробовик).
Что означают '+' и '-' в скриптах?
Плюс и минус - это два различных состояния, которые могут принимать команды. Плюс заставляет исполняться команду (и продолжать исполняться), если клавиша нажата. Если имеется минус, команда выполниться, если клавиша отпустилась. Например:
bind "c" "+duck"
Данный скрипт означает, что игрок припадет к земле и будет находиться в таком положении пока нажата кнопка 'c'. После отжатия кнопки, игрок поднимется. Необходимо запомнить, несмотря на то что в скриптах ты не встретишь команды -duck, игрок в любом случае займет изначальную позицию после того, как отпустят кнопку.

Что за алиасы (aliases) и как их писать?
Алиасы подобны скриптам за исключением того, что скриптом можно присвоить кнопке набор команд, а алиас позволяет назначить имя набору команд. Это имя позже может использоваться как замена нескольким командам. Слегка модернизируем вышеприведенный пример для Инженера:
alias "buildDispenser" "build 0; wait 50; +attack; wait; -attack; slot1"
bind "q" "buildDispenser"
В данном примере мы сделали алиас под названием buildDispenser на несколько команд, показав возможности скриптинга TF2 (название алиасы ты вполне мог и сам придумать). Когда дальше происходит обращение к алиасу, автоматически исполняются назначенные ему команды. Далее мы привязали кнопку q к алиасу. Теперь при нажатии на кнопку q будут выполнены команды алиаса buildDispenser.
Почему алиасы предпочтительнее обычной привязки? Мы обсудим это подробнее позже, но для начала, можешь представить себе ситуацию, когда тебе потребуется привязать один набор команд к нескольким клавишам. Вместо того, чтобы каждый раз привязавать команды к разным клавишам, ты можешь сделать алиас на несколько команд и затем уже привязать клавиши к этому алиасу. Если вдруг потребуется изменить набор команд, понадобится всего лишь внести правку в одном месте.

Как влияют "плюсы" и "минусы" на алиасы?
Они имеют схожее влияние и для алиасов. В плюсовом состоянии происходит выполнение (и продолжение выполнения) пока нажимается (нажата) клавиша, в минусовом - выполняется в момент отжатия кнопки. Опять же, в качестве примера модернизируем скрипт для Инженера:
alias "+upgradeBuilding" "slot3; +attack"
alias "-upgradeBuilding" "-attack; wait; slot1"
bind "mouse3" "+upgradeBuilding"

  • +upgradeBuilding переключается на разводной ключ и машет им
  • -upgradeBuilding прекращает махать ключом, чуток ждет, переключается на дробовик
  • делается привязки средней кнопки мыши к плюсовому состоянию upgradeBuilding, пока кнопка нажата Инженер махает ключом, как только кнопка отпущена - выполняет минусовой скрипт.
Запомни, даже если минусовой скрипт не привязан к чему либо, в любом случае скрипт будет выполнен при отжатии кнопки. Этот процесс автоматический для минусовых/плюсовых алиасов.

Как создают циклические (составные) алиасы?
Составные алиасы - это алиасы, которые включают в себя другие алиасы и даже, при желании, способны создавать новые. Данный процесс тяжело объяснять, вернемся к примерам:
alias "duckToggle" "duck1"
alias "duck1" "+duck; alias duckToggle duck2"
alias "duck2" "-duck; alias duckToggle duck1"

  • создаем алиас под названием duckToggle и привязываем его к другому под названием duck1
  • описываем алиас duck1, который начинает исполнять команду duck, затем он переназначает алиас duckToggle алиасу duck2
  • описываем алиас duck2, который прекращает выполнение команды duck и переназначает алиас duckToggle обратно алиасу duck1
bind "c" "duckToggle"
По итогам: при нажатии на кнопку c игрок приседает и находится в таком положении пока ты не нажмешь повторно эту же кнопку.

Перевод материала с очень полезного ресурса TF2wiki.net. Продолжение следует.