Игровые сервера:

TF2.Tomsk.ru:27015 Public
 UPDATE
 
TF2.Tomsk.ru:27016
 UPDATE
 


Мини-чат:


Авторизуйтесь для общения в чате

Сейчас на сайте:

  • Гостей (116)


Публикации

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

image 
Так называемый скриптинг, также его называют биндингом (от англ. 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, с таким расширением файл не будет обрабатываться игрой, даже если в консоли его запустить вручную! Чтобы избежать подобной ситуации рекомендую включить отображение расширений файлов.

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

Как писать сложные скрипты?
Сложный скрипт очень похож на простой, разница лишь в количестве исполняемых команд при нажатии на клавишу. Каждая команда разделяется знаком 'точка с запятой' (;). Как пример, небольшой полезный скрипт для играющих в роли инженеров: 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 игрок приседает и находится в таком положении пока ты не нажмешь повторно эту же кнопку.
Теги: Team Fortress 2, скриптинг
Дата: 08.08.2010 00:10 | Обновлено: 08.08.2010 12:59
Gack | все публикации автора →
 

Уже высказались: 11. В форум →

Оставить комментарий




Похожие публикации

  Все права защищены © 2024 tf2.tomsk.ru
runcore.cms