Difference between revisions of "Scripting/ru"

From Team Fortress Wiki
Jump to: navigation, search
m
m (mc)
 
(37 intermediate revisions by 21 users not shown)
Line 1: Line 1:
 
{{DISPLAYTITLE:Написание скриптов}}
 
{{DISPLAYTITLE:Написание скриптов}}
 +
'''Скриптинг''' — это использование файлов конфигурации (.cfg) для создания различных биндов/байндов (англ. bind) и alias, которые связывают вашу клавиатуру, мышь или джойстик с [[Console/ru|консольными командами]]. Скрипты изначально существуют в Team Fortress, поэтому блокировка от VAC ([[Valve Anti-Cheat/ru|Valve Anti-Cheat]]) невозможна. Использование скриптов варьируется от простейших биндов, таких, как «bind «w» «+forward»» - бинд позволяющий нам двигаться вперед в игре, до скриптов позволяющие строить постройки [[Engineer/ru|инженера]] без КПК при этом используя на клавиатуре всего несколько клавиш! Конечно, любое действие воспроизведенное скриптом можно повторить и без него, но в быстро изменяющейся ситуации, когда каждая секунда на счету, скрипты вам несомненно помогут.
  
'''Скриптинг''' - это использование файлов конфигурации для создания новы кейбайндов (кейбиндов, байндов, биндов) (keybind -англ.) и алиасов (aliases -англ.)- наборов [[Console/ru|консольных команд]].
+
''Примечание:'' если bind не работает, то могут помочь кавычки. Пример: {{code|bind "r" "voicemenu 2 6"}}.
  
*Кейбайнды привязывают кнопку к консольной команде. Например выбрать [[Weapon/ru|оружие]] из 3 слота или сказать в чате заранее заготовленную фразу.
+
==Стандартные Файлы для Скриптов==
 +
''Team Fortress'' автоматически считывает информацию с игровых файлов и выполняет любые скрипты внутри них. Список файлов:
  
*Алиасы делают новые команды выполняя серию команд. Алиасом можно сделать прыжок приседание как одна прыг-присев команда, которую потом можно привязать к кнопке.
+
*config.cfg - стандартный файл с вашими изменениями внутри игры, к примеру, настройка графики, управления, звука и тому подобное. Не зная, какая и за что команда отвечает не стоит изменять там что-либо.
 +
**config_default.cfg - стандартный файл, с базовыми настройками игры, таких как при первой установке.
 +
*autoexec.cfg - стандартный файл, при каждом включении игры подгружает вписанные в него скрипты, по-стандарту пустой.
 +
*(имя-класса).cfg - файлы для создания скриптов под определенный класс, к примеру, «Pyro.cfg» включится при выборе класса [[Pyro/ru|Поджигателя]] в игре.
  
Понятие «'''скрипт'''», использованное на этой странице, не стоит путать с .scr файлами, которые изменяют настройки сервера.
+
==Местонахождение Файлов==
 +
В Windows, файлы хранятся в: «<Steam Folder>/SteamApps/common/Team Fortress 2/tf/cfg».<br/>
 +
В Mac, файлы хранятся по адресу: «~/Library/Application Support/Steam/SteamApps/common/Team Fortress 2/tf/cfg».<br/>
 +
После обновления SteamPipe, файлы также могут хранится в «.../SteamApps/common/Team Fortress 2/tf/custom/yourfoldernamehere/cfg».<br/>
  
== Кратко о скриптах ==
+
==Команды==
===Бинды — это читы?===
+
Ниже приведены команды не используемые нигде кроме скриптов, а также не влияющие напрямую на игровой процесс.
Согласно широко распространённому мнению, нет. Эту проблему стоит рассматривать так: бинды позволяют игроку совершать простейшие игровые действия чуточку быстрее. К тому же все без исключения имеют к ним равный доступ, так что фактически бинды не дают использующему никакого превосходства. Кроме того, сами разработчики осознано допустили существование подобной возможности, как составной части игры (в отличие от читерства, которое наносит ущерб), так что использование биндов — вполне честный шаг.
 
  
===Где лежат бинды?===
+
===Bind===
Team Fortress 2 автоматически считывает игровые файлы и выполняет все бинды и алиасы внутри. Вот список файлов:
+
Самая простая команда. Выполняет определенное действие при нажатии на определенную кнопку.
  
*config.cfg - Это основной конфигурационный файл, который игра изменяет когда вы используете внутриигровое меню чтобы привязать кнопки или изменить графические настройки. Лучше его не трогать.
+
bind [КЛАВИША] [ДЕЙСТВИЕ]<br/>
 +
Рекомендуется писать название клавиши и действие в кавычках.<br/>
 +
bind [КЛАВИША] "[ДЕЙСТВИЕ; ДЕЙСТВИЕ 1; ДЕЙСТВИЕ 2]"<br/>
 +
Бинд, содержащий количество действий больше одного, должен быть выделен кавычками, а сами действия, кроме последнего, должны оканчиваться точкой с запятой - «;»<br/>
  
*autoexec.cfg - Это основной конфигурационный файл для самодельных биндов и алиасов. Вы можете положить свои бинды и алиасы прямо туда, но часто бывает намного проще создать отдельные конфигурационные файлы для отдельных скриптов.
+
Бинды бывают двух видов:
  
*<класс>.cfg - У каждого класса есть свой .cfg (конфигурационный) файл который выполняется каждый раз когда вы выбираете тот или иной класс. Вы можете положить свои бинды и алиасы прямо в этот файл, но часто бывает намного проще создать отдельные конфигурационные файлы для отдельных скриптов.
+
bind "e" "+helpme"<br/>
 +
При нажатии {{key|E}} игрок позовет медика.<br/>
  
'''Внимание!''' Когда вы создадите текстовый файл с биндами в любом удобном для вас редакторе, не забудьте убедиться, что он имеет расширение ".cfg", т.к. некоторые текстовые редакторы (например, Блокнот) автоматически присваивают файлам, созданным в них, расширение ".txt", что в итоге даст имя "autoexec.cfg.txt". Файл же с таким именем программа исполнять не будет.
+
bind "w" "+forward"<br/>
 +
При зажимании {{key|W}} игрок пойдет вперед.<br/>
  
===Использование скриптов===
+
===Toggle===
Занесение скрипта в "<класс>.cfg" автоматически применит этот скрипт ко всем остальным классам. Например, если вы привяжете ПКМ (Mouse2) на перезарядку в файле Инженера — "engineer.cfg", но позже решите привязать к этой кнопке другое действие для других классов, вам придется переназначить ПКМ (Мouse2) на другое действие во всех остальных файлах типа ''<класс>.cfg''.
+
Эта команда позволяет переключать действия содержащие несколько значений.
  
===Правила привязки клавиш===
+
toggle «[ДЕЙСТВИЕ 0 1]»
Для любых отдельных биндов или их связок (групп биндов) на движке Source существуют строгие правила написания: КОМАНДА <аргумент1> <аргумент2>
 
  
Можно НЕ использовать кавычки в биндах и связках с единственным аргументом, например "bind 1 slot1".
+
====BindToggle====
Но если вы хотите создать бинд, аргументы которого включают несколько команд или параметров, вам следует заключить каждый аргумент в кавычки, отделив их  индивидуальные компоненты точкой с запятой. Так, бинд ''alias melee1 "slot3; +attack"'' создаст команду «melee1», автоматически активирующую оружие ближнего боя с последующей атакой.
+
Команда идентична Toggle, отличается тем, что переключение действия можно привязать к кнопке.
  
Пример:
+
BindToggle «[КЛАВИША]» «[ДЕЙСТВИЕ 0 1]»
<pre>
+
 
COMMAND  <argument1>    <argument2>
+
===IncrementVar===
alias    qBetween1and2  "slot2; wait 10; slot1"
+
Это позволяет переменным быть уменьшенным или увеличенным настолько, насколько было установлено ограничение.
bind    1              qBetween1and2
 
</pre>
 
Примечание: здесь для наглядности аргументы отделены друг от друга пробелами, но при написании скриптов более одного пробела за раз использовать НЕЛЬЗЯ.
 
  
===Как написать простейшую привязку?===
+
bind [КЛАВИША 1] [ПЕРЕМЕННАЯ 75 90 1] <br/>
Самый простой бинд имеет форму ''bind <клавиша> <команда>''. Например, если вы хотите активировать первичное оружие нажатием  клавиши «1», вы должны прописать бинд, выглядящий так:
+
bind [КЛАВИША 2] [ПЕРЕМЕННАЯ  75 90 -1]<br/>
<pre>bind 1 slot1</pre>
+
При нажатии на первую клавишу, переменная увеличится на 1 единицу, в итоге мы получим переменную со значением 76.<br/>
:(где ''slot1'' — это команда, активирующая ваше основное оружие)
+
При нажатии на вторую клавишу, переменная уменьшится на 1 единицу, в итоге мы получим число со значением 74.<br/>
Каждый новый бинд в файле ''autoexec.cfg'' нужно писать с новой строки. Чтобы получить представление о том, как всё это должно выглядеть в итоге, загляните в ваш ''config.cfg'', открыв его любым текстовым редактором. Чтобы ознакомиться с используемыми при биндинге командами, изучите раздел «Консольные команды» на этой странице.
 
  
===Как написать сложную привязку (алиас)?===
+
===Alias===
Сложные бинды имеет форму схожую с простыми биндами, однако они исполняют ряд команд, в то время как вы нажимаете всё ту же единственную клавишу. Каждая команда должна быть обязательно отделена точкой с запятой (''';'''). Рассмотрим сложный бинд для инженера:
+
Эта команда позволяет нам объединить несколько действий в одну команду. Полезно использовать для сокращения биндов, которые состоят из большого количества действий. Может содержать любые команды и переменные.
<pre>bind "q" "build 0; wait 50; +attack; wait; -attack; slot1"</pre>
+
Примечание: Можно присвоить любое имя на английском и не содержащее пробелов.
:Этот бинд привязывает серию команд к клавише «q». Когда игрок нажимает «q», последовательно выполняется серия команд:
 
:*'''build 0''' активирует опцию строительства Раздатчика
 
:*'''wait 50''' задает время ожидания (равное 50 фреймам) до начала выполнения следующей команды
 
:*'''+attack''' активирует и продолжает первичную атаку (о значении символов ''плюс'' и ''минус'' будет сказано ниже)
 
:*'''wait''' задает единичное время ожидания до начала выполнения следующей команды
 
:*'''-attack''' прекращает первичную атаку
 
:*'''slot1''' активирует первичное оружие (в случае с Инженером — это Дробовик)
 
  
===Как работают команды с символами плюс (+) и минус (-)?===
+
alias Medic! «voicecommand 0 0»
Команды с символами плюс и минус — это длящиеся команды. Символ плюс задаёт начало и продолжение исполнения команды пока нажата клавиша. Минус прекращает исполнение, когда игрок отпускает клавишу. Например:
+
bind «e» Medic!
<pre>bind "c" "+duck"</pre>
 
:Этот бинд заставляет игрока присесть и оставаться в этом положении в то время, когда зажата клавиша «c».  После того как она будет отпущена, игрок вновь встанет.
 
Важно отметить при этом, что в использовании команды типа '''-duck''' нет смысла, так как эта команда исполняется по умолчанию, без нажатия какой-либо клавиши.
 
  
===Что такое связки биндов и как их писать?===
+
Работает как обычный бинд, при нажатии на {{key|E}} игрок позовет медика.
Связки биндов почти во всём сходны с обычными биндами за исключением того, что привязка команды (серии команд) осуществляется ни к клавише, а к определённому «имени». Такое «имя» впоследствии может быть использовано при написании других биндов. Рассмотрим такой пример связки биндов для Инженера:
 
<pre>
 
alias "buildDispenser" "build 0; wait 50; +attack; wait; -attack; slot1"
 
bind "q" "buildDispenser"
 
</pre>
 
:Эта связка в сочетании с уже использованным нами ранее примером может продемонстрировать всю функциональность биндинга в ТФ2.  Итак, мы создали связку именуемую «'''buildDispenser'''» (название связки при этом может быть любым, например, «Vanya» или «Vrotmnenogi» и т.д.).  Теперь, когда бы мы ни использовали имя этой связки, игра выполнит все команды привязанные к нему. После мы привязали это «имя» к клавише «q». Следовательно, после нажатия «q» отныне будет исполняться эта связка.
 
Почему связки более удобны, нежели отдельные бинды? Подробнее на этом мы остановимся позже, однако пока представьте, что вам нужно привязать одну и ту же серию команд к разным клавишам. Теперь вместо того, чтобы печатать серии этих команды каждый раз заново, вы просто прописываете имя созданной вами связки. Кроме того, после, если вы вдруг захотите что-нибудь изменить в вашей серии, вам будет нужно переписать всего лишь одну эту связку.
 
  
===Как работают связки с символами плюс (+) и минус (-)?===
+
===Exec===
Точно так же, как плюс-минус команды, плюс-минус связки — это длящиеся связки. Плюс начинает и продолжает действие, пока зажата клавиша. А минус прекращает его, когда клавиша отпущена. Рассмотрим ещё один пример с Инженером:
+
Консольная команда позволяющая подгружать любой файл в игру находящийся в папке «config».
<pre>
 
alias "+upgradeBuilding" "slot3; +attack"
 
alias "-upgradeBuilding" "-attack; wait; slot1"
 
bind "mouse3" "+upgradeBuilding"
 
</pre>
 
:*'''+upgradeBuilding''' активирует выбор Гаечного ключа и удары им
 
:*'''-upgradeBuilding''' прекращает удары, выдерживает паузу и изменяет текущее оружие на дробовик
 
:* Привязываем эту плюс-связку ('''+upgradeBuilding''') к средней кнопке мышки.  Теперь, когда эта кнопка зажата, мы размахиваем Ключом.  После того, как мы отпускаем кнопку, автоматически исполняется минус-связка.
 
Отметим также, что даже если вы не собираетесь привязывать минус-связку к какой-либо клавише, она будет автоматически исполняться, точно так же, как она выполнялась по дефолту, пока клавиша, активирующая плюс-связку не была нажата. Это неотъемлемая функция всех плюс-минус связок.
 
  
===Как писать циклические и сложные связки?===
+
exec autoexec.cfg<br/>
Циклические или сложные связки — это связки, которые ссылаются на другие уже существующие связки или создают их. Достаточно сложно объяснить всё это на словах, поэтому обратимся к примеру:
+
Скрипт подгружает в игру ваш «autoexec.cfg»<br/>
<pre>
 
alias "duckToggle" "duck1"
 
alias "duck1" "+duck; alias duckToggle duck2"
 
alias "duck2" "-duck; alias duckToggle duck1"
 
</pre>
 
:*Во-первых, мы создали связку, именуемую '''duckToggle''', и привязали к ней другую связку с именем '''duck1'''.
 
:*Во-вторых, мы создали эту связку '''duck1''', теперь она активирует и продолжает действие команды ''присесть'' ('''duck''').  Затем мы привязали связку '''duckToggle''' к новой третьей связке '''duck2'''.
 
:*В-третьих, мы создали эту связку '''duck2''', которая прекращает действие команды ''присесть'' ('''duck'''), т.е. игрок вновь встаёт после её исполнения. В итоге мы соединили связки '''duckToggle''' и '''duck1''' в одной.
 
Теперь, после первого использования связки '''duckToggle''', будет произведено обращение к связке '''duck1'''. Но после следующего использования этой связки (т.е. '''duckToggle'''), будет активирована связка '''duck2'''. В конце нам остаётся только привязать связку '''duckToggle''' к конкретной клавише, например, к «c»:
 
<pre>bind "c" "duckToggle"</pre>
 
После этого при нажатии клавиши «c» игрок будет ползти (перемещаться в приседе), а когда мы снова нажмём «c», он встанет в полный рост.
 
  
===Комбинации клавиш===
+
===Echo===
Выше мы везде использовали слово «клавиша» только потому, что нет более подходящего слова. На самом же деле, к одной единственной клавише в игре могут быть привязаны другие клавиши, к которым в свою очередь будут привязаны команды или группы команд. Например:
+
Эта команда напишет любой текст у вас в консоли. Очень полезно для отладки вашего скрипта.
<pre>
 
// Quick Class Joiner Script. It has been tested and works.
 
//Press shift and a key from 1-9 to change class.
 
//
 
alias +joinclass "bind 1 scout; bind 2 soldier; bind 3 pyro; bind 4 demoman; bind 5 heavy; bind 6 engineer; bind 7 medic; bind 8 sniper; bind 9 spy"
 
alias "-joinclass" "bind 1 slot1; bind 2 slot2; bind 3 slot3; bind 4 slot4; bind 5 slot5; bind 6 slot6; bind 7 slot7; bind 8 slot8; bind 9 slot9"
 
//
 
alias scout "join_class scout"
 
alias soldier "join_class soldier"
 
alias pyro "join_class pyro"
 
alias demoman "join_class demoman"
 
alias heavy "join_class heavyweapons"
 
alias engineer "join_class engineer"
 
alias medic "join_class medic"
 
alias sniper "join_class sniper"
 
alias spy "join_class spy"
 
//
 
bind "shift" "+joinclass"
 
</pre>
 
Написано CupOfTea
 
  
Примечание по переводу первых двух строк:
+
echo " Scripting is very useful. "<br/>
<pre>
+
Это выведет в консоль: Scripting is very useful. <br/>
//Скрипт быстрой смены игрового класса. Протестирован и работает.
+
Примечание: echo неправильно интерпретирует кавычки, их использование приводит к неработоспособности команды. <br/>
//Нажмите «шифт» («shift») и клавишу от 1 до 9, чтобы выбрать соответствующий класс.
 
</pre>
 
  
Все это можно поставить на макросы, которые будут выполнены при нажатии соответствующей кнопки на вашей клавиатуре, либо мышке.
+
===Wait===
 +
Команда сообщает игре заданное время ожидания до следующего действия.<br/>
 +
Примечание: 1 секунда приравнивается к количеству тикрейта сервера.<br/>
 +
'''Внимание: Wait отключен на некоторых серверах, что приводит к неработоспособности скрипта, а иногда способствует «падению» игры.'''
  
==Ещё немного о создании скриптов==
+
"echo Why did the chicken cross the road?; wait 66; echo To get to the other side!"<br/>
===Почему не стоит использовать уже связанную клавишу внутри связки, которую она активирует?===
+
Скрипт сначала напишет в консоль первую фразу, а через секунду, если тикрейт сервера 66, последнюю.<br/>
Для этого существует несколько причин.
 
# В последствие очень сложно обнаружить и правильно изменить такой бинд.
 
# Если вы используете сложный или циклический бинд и вдруг решили изменить привязанную клавишу, то, пропустив её при исправлении всего один раз, вы полностью испортите всю связку.
 
# Также это привязывает бинд к одной единственной клавише «навсегда», затрудняя его повторную привязку к другим клавишам.
 
Давайте на примере уже упомянутой связки '''duckToggle''' рассмотрим подобную ситуацию:
 
<pre>
 
//This is an example of how NOT to write an alias!
 
alias "duck1" "+duck; bind c duck2"
 
alias "duck2" "-duck; bind c duck1"
 
bind "c" "duck1"
 
</pre>
 
Примечание по переводу первой строки:
 
<pre>
 
//Это пример как НЕ надо писать бинды!
 
</pre>
 
Как вы видите, когда бинд, написан таким образом, клавиша «c» используется целых три раза. Поэтому, когда игрок захочет внести изменения в такую связку, ему придётся отыскать и изменить все три этих значения. И одна единственная ошибка приведёт к полной неработоспособности всего бинда в целом. Теперь перепишем этот бинд правильно с использование связки '''duckToggle''':
 
<pre>
 
//This is a much better approach
 
alias "duckToggle" "duck1"
 
alias "duck1" "+duck; alias duckToggle duck2"
 
alias "duck2" "-duck; alias duckToggle duck1"
 
  
bind "c" "duckToggle"
+
== Файлы .cfg, относящиеся к конкретному классу ==
</pre>
+
При переключении на определенный класс игра запускает соответствующий CFG-файл (если он существует), названный, в соответствии с названием класса.
Примечание по первой строке:
 
<pre>
 
//Так гораздо лучше.
 
</pre>
 
Почему это удобней? Во-первых, для того чтобы переписать клавишу такой связки нужно изменить всего одно значение, а это уже проще. Но, кроме того, теперь мы можем легко привязать это бинд к любому числу клавиш!
 
<pre>
 
bind "c" "duckToggle"
 
bind "v" "duckToggle"
 
bind "b" "duckToggle"
 
bind "MOUSE3" "duckToggle"
 
//And so on, and on, and on
 
</pre>
 
Примечание по последней строке:
 
 
<pre>
 
<pre>
//и т.д., и т.д., и т.д.
+
scout.cfg (разведчик)
 +
soldier.cfg (солдат)
 +
pyro.cfg (поджигатель)
 +
demoman.cfg (подрывник)
 +
heavyweapons.cfg (пулемётчик)
 +
engineer.cfg (инженер)
 +
medic.cfg (медик)
 +
sniper.cfg (снайпер)
 +
spy.cfg (шпион)
 
</pre>
 
</pre>
Если мы будем биндить наши клавиши внутри связок, нам придётся каждый раз полностью переписывать бинд, при его привязке к новой клавише. В тоже время, когда клавиша вынесена за пределы бинда, его можно привязывать к какому угодно числу кдавиш.
 
  
Когда вы прописываете скрипты для широкого круга пользователей (не только для себя), старайтесь держать это правило в голове. Такие скрипты не только удобнее в обращении для других, но и гораздо проще пишутся и изменяются.
+
Это позволяет игроку использовать разные комбинации клавиш и игровые настройки для каждого класса.
  
===Как отобразить текст на экране===
+
=== .vpk и .cfg файлы ===
Далее объясним как отображать текст на экране.
+
[[vdc:VPK|.vpk]] files take priority over config files located within the {{code|cfg}} folder. Mods using {{code|.vpk}} files may run the risk of negatively interfering with any custom configuration changes, however, some mods provide methods to override the configs from within the .vpk files natively.
 +
Файлы [[vdc:VPK|.vpk]] имеют приоритет над файлами конфигурации (.cfg), расположенными в папке {{code|cfg}}. Моды, использующие файлы {{code|.vpk}}, могут создавать риск ошибок на любые пользовательские изменения конфигурации, однако некоторые моды предоставляют методы для переопределения конфигураций из файлов .vpk в файлы .cfg изначально.
  
Вам понадобится файл ''con_filter_text_clear.cfg'', содержащий:
+
== Параметры запуска ==
  con_filter_text ""
+
Параметры запуска могут быть использованы для изменения режима работы TF2, как с точки зрения производительности, так и функциональности. Смю полный список параметров запуска в разделе {{vdc|Command Line Options|Параметры командной строки}}.
  
А также файл с именем ''con_filter_text_script.cfg'', содержащий:
+
=== Настройки параметров запуска ===
  con_filter_text "|}"
+
[[File:Setting Launch Options.png|thumb|none|Наглядное руководство по настройке параметров запуска.]]
 +
# Right-click on the game title under the '''Library''' in Steam and select '''Properties'''.
 +
# Щёлкните правой кнопкой мыши на названии игры в разделе '''Библиотека''' в Steam и выберите '''Свойства...'''
 +
# В вкладке '''Общие''' найдите строку '''Параметры запуска'''.
 +
# Введите параметры запуска, которые вы хотите применить (обязательно разделяйте каждый параметр пробелом).
 +
# Закройте окно '''Свойства''' и запустите игру.
  
Теперь внесём изменения  в ваш ''autoexec.cfg''
+
===Режим отображения===
// aliases to execute the 2 scripts we made (''перевод'': связки для выполнения созданных нами скриптов)
+
Обратите внимание, что это может привести к неправильной настройке режима отображения, который может конфликтовать с другими параметрами, и также привести к снижению производительности. По возможности, вам следует использовать игровые настройки, заместо данного параметра
alias "cft_clear" "exec con_filter_text_clear.cfg"
+
====Разрешение====
alias "cft_script" "exec con_filter_text_script.cfg"
+
Параметр запуска: '''-w # -h #'''
// aliases to toggle console filtering (''перевод'': связка для переключения фильтра консоли)
+
:''Описание:'' Запускает игру в заданной высоте и ширине (w - ширина, h - высота).
alias "cf1" "con_filter_enable 1"
+
====Refresh Rate====
alias "cf0" "con_filter_enable 0"
+
Параметр запуска: '''-freq #'''
// to echo a newline (''перевод'': для отображения новой строки)
+
:''Описание:'' Forces the game refresh rate in Hz.
alias "cfnl" "cf0;echo;cf1"
+
====В окне====
+
Параметр запуска: '''-windowed'''
// if you turn this off all text disapears!  it is left always on (''перевод'': если вы отключите эту опцию, весь текст исчезнет с экрана! Так что держите её всегда включённой)
+
:''Описание:'' Запускает игру в режиме отображения «В окне».
developer 1
+
====В окне (без рамки)====
// start with filtering enabled so we don't see all the console garbage on our screen (''перевод'': запуск производится с автоматически включённым фильтром, так что мы не увидим весь консольный мусор, и он не будет нам мешать)
+
Параметр запуска: '''-noborder'''
cf1
+
:''Описание:'' Запускает игру в режиме «в окне», но без границ окна.
+
====На весь экран====
// you can play with the following settings (''перевод'': эти настройки вы можете изменять ''под себя'')
+
Параметр запуска: '''-fullscreen'''
con_notifytime 8 // How long to display recent console text to the upper part of the game window (''перевод'': время отображения консольной информации (текста) в верхней части игрового окна)
+
:''Описание:'' Запускает игру в режиме «На весь экран».
con_nprint_bgalpha 50 // Con_NPrint background alpha. (''перевод'': Con_Nprint цвет шрифта)
 
con_nprint_bgborder 5 // Con_NPrint border size. (''перевод'': Con_Nprint размеры границ)
 
contimes 8 // Number of console lines to overlay for debugging. (''перевод'': число консольных строк, отображаемых одновременно)
 
 
// our simple screen print test... which you can expand to do menus or whatever (''перевод'': проверка нашего незатейливого скрипта... принцип написания которого вы можете использовать при создании, например, игрового меню)
 
echo "|} Isn't ofb's screen printing cool?" (''перевод'': echo "|} Ну разве писать ОФБ не круто?")
 
cfnl
 
  
Ну, вот и всё! Помните: чтобы очистить консоль после того, как команда введена, нужно использовать команду ''clear'', так чтобы текстовый мусор не засорял ваш экран. И, пожалуйста, не спамьте сообщения типа «my script loaded v1.2.3 by alphaguy» («скрипты v1.2.3 от альфа-самца»), реклама нам не нужна, а ТФ2 и без этого достаточно хорош.
+
===Периферийная поддержка===
 +
====Отключить поддержку джойстика====
 +
Параметр запуска: '''-nojoy'''
 +
:''Описание:'' Предотвращает загрузку джойстиков, что увеличивает время запуска и расход памяти. Не используйте это, если вы собираетесь использовать джойстик в игре.
 +
====Отключить поддержку Steam Controller====
 +
Параметр запуска: '''-nosteamcontroller'''
 +
:''Описание:'' Предотвращает загрузку Steam Сontroller, что увеличивает время запуска и объем используемой памяти. Не используйте это, если вы собираетесь использовать Steam controller в игре.
  
'''Внимание: активация фильтра консоли означает, что вы не будете видеть никакой консольный текст, за исключением того, что занесён в ваши скрипты! Чтобы вернуть весь консольный текст пропишите команду ''ctf_clear''.'''
+
===Программное обеспечение===
 +
====Отключить SourceTV====
 +
Параметр запуска: '''-nohltv'''
 +
:''Описание:'' Отключает поддержку [[SourceTV/ru|SourceTV]], что улучшает использование памяти. Не используйте это, если вы используете SourceTV.
  
==Консольные команды==
+
===Сетевые параметры===
'''Замечание по написанию:''' если какой-то символ, заключён в квадратные скобки ([ или ]), то он является необязательным; если же символ, помещён в треугольные скобки (< или >), то он является неотъемлемой частью команды и необходим для её функционирования.  
+
====Включить поддельный IP-адрес====
 +
Параметр запуска: '''-enablefakeip'''
 +
:''Описание:'' Uses a [[w:Reserved IP addresses|Зарезервированные IP-адреса]] вместо вашего собственного и анонимный идентификатор сервера при использовании локального сервера. Если параметр {{code|sv_lan}} установлен на значении {{code|0}} - это позволит другим игрокам подключаться к вашему локальному серверу.
  
=== Связки (ALIAS) ===
+
===Параметры игрового движка===
*Классовое ограничение
+
====Отключить вступительную заставку====
*:Отсутствует
+
Launch Option: '''-novid'''
*Описание
+
:''Описание:'' Удаляет вступительную заставку Valve, показанное при запуске игры, что сокращает время загрузки.
*:Связка — это замена длинной последовательности команд одним простым действием. Например, команда ''wait''. Если вы привяжете её, то в будущем сможете легко использовать свой бинд вместо того, чтобы каждый раз по новой прописывать всю команду. Так гораздо удобней. К тому же это упрощает написание информационных (для общения) скриптов и им подобных.
 
*Написание
 
*:alias "<name_of_alias>" "<command; list>" (''перевод'': связка "<имя_связки>" "<команда; список>")
 
*Аргументы
 
**Отсутствуют
 
  
===Строить (BUILD)===
+
====Изменения лимита частиц====
* Классовое ограничение
+
Параметр запуска: '''-particles #'''
*:Инженер
+
:''Описание:'' Ограничивает количество частиц на экране. Установите для параметра # значение от '1' и не более 512.
*Описание
 
*: Если у Инженера, использующего эту команду, достаточно металла, то он автоматически перейдёт в режим строительства выбранного сооружения.
 
*Написание
 
*:build <gadget_number> <mode>(''перевод'': строить <номер_слота> <вид>)
 
*Аргументы
 
**<gadget_number> <mode>(''перевод'': <номер_слота>  <вид>)
 
**:0: Dispenser (Engineer) (''перевод'': Раздатчик (Инженер))
 
**:1 0: Teleporter entrance (Engineer) (''перевод'': Вход телепорта (Инженер))
 
**:1 1: Teleporter exit (Engineer) (''перевод'': Выход телепорта (Инженер))
 
**:2: Sentry Gun (Engineer) (''перевод'': Турель (Инженер))
 
''ВАЖНО: в настоящее время вы не можете строить предметы (постройки) подряд, находясь непрерывно в режиме строительства. Чтобы построить следующее сооружение, необходимо выйти из режима строительства, переключившись на какое-либо оружие, а затем вновь войти в этот режим (что это: ошибка или функция игры?)''
 
''ВАЖНО: ошибка исправлена, теперь можно строить непрерывно.''
 
  
===Разрушить (DESTROY)===
+
====Предварительный рендеринг шрифтов в кэше====
* Классовое ограничение
+
Параметр запуска: '''-precachefontchars'''
*:Инженер
+
:''Описание:'' Предварительно кэширует рендеринг шрифта для распространённых символов, сокращая время рендеринга.
*Описание
 
*:Позволяет разрушать Инженеру уже построенные им сооружения.
 
*Написание
 
*:destroy <gadget_number> <mode>(''перевод'': разрушить <номер_слота> <вид>)
 
*Аргументы
 
**<gadget_number> <mode> (''перевод'': <номер_слота> <вид>)
 
**:0: Dispenser (Engineer) (''перевод'': Раздатчик (Инженер))
 
**:1 0: Teleport Entrance (Engineer) (''перевод'': Вход телепорта (Инженер))
 
**:1 1: Teleport Exit (Engineer) (''перевод'': Выход телепорта (Инженер))
 
**:2: Sentry Gun (Engineer) (''перевод'': Турель (Инженер))
 
  
===Маскировка (DISGUISE)===
+
====Отключить потоковую передачу текстур====
* Классовое ограничение
+
Параметр запуска: '''-no_texture_stream'''
*:Шпион
+
:''Описание:'' Отключает использование текстур более низкого качества при загрузке версий более высокого качества. Это позволяет мгновенно загружать версии более высокого качества. Отключение потоковой передачи текстур приводит к повышению производительности в системах, работающих на графических процессорах с низким объёмом видеопамяти.
*Описание
 
*:Позволяет вам с лёгкостью маскироваться, в отличие от тех, кто до сих пор использует сочетания клавиш. Первая цифра — номер класса, под который вы маскируетесь, вторая — цвет команды.
 
*Написание
 
*:disguise <class_number> <team_number> (''перевод'': маскировка <номер_класса> <цвет_команды>)
 
*Аргументы
 
**<class_number> (''перевод'': <номер_класса>)
 
**:1: Scout (''перевод'': Разведчик)
 
**:2: Sniper (''перевод'': Снайпер)
 
**:3: Soldier (''перевод'': Солдат)
 
**:4: Demoman (''перевод'': Подрывник)
 
**:5: Medic (''перевод'': Медик)
 
**:6: Heavy Weapons Guy (''перевод'': Пулемётчик)
 
**:7: Pyro (''перевод'': Поджигатель)
 
**:8: Spy (''перевод'': Шпион)
 
**:9: Engineer (''перевод'': Инженер)
 
**<team_number> (''перевод'': <цвет_команды>)
 
**:1: BLU (''перевод'': Синие)
 
**:2: Red (''перевод'': Красные)
 
**:-1: The Enemy Team (''перевод'': вражеская команда)
 
**:-2: My Team (''перевод'': моя команда)
 
  
=== Последняя маскировка (LASTDISGUISE)===
+
===Выбор версии DirectX (только на Windows ОС)===
* Классовое ограничение
+
Параметр запуска: '''-dxlevel #'''
*:Шпион
+
:''Описание:'' Выбирает версию DirectX, используемую в игре; принимает множество значений в диапазоне от 80 до 100. Ручная настройка уровней DirectX является экспериментальной и обычно изменяется для поддержки более старого оборудования.  
*Описание
+
::'-dxlevel 100' использует DirectX 9. Аппаратное обеспечение автоматически определяется для выбора графических возможностей системы.
*: Как понятно из названия, эта команда применяет последнюю использованную вами маскировку. Кроме того, она запоминает вашу последнюю предсмертную маскировку. По умолчанию эта команда привязана к клавише «b». Если присоединить к этой команде случайный параметр, то маскировка будет выбираться произвольно, за исключением Шпиона и Разведчика.
+
::'-dxlevel 81' самая стабильная версия DirectX для графических процессоров, выпущенных до 2004 года. DirectX 8 имеет ограниченный набор функций, таких как отсутствие [[War Paint/ru|Боевых окрасок на оружии]] и прозрачности на моделях (таких как [[Voodoo-Cursed Soul/ru|Проклятая душа вуду]]). Значения ниже 81 приведут к еще большему количеству графических  ошибок. Этого следует избегать, за исключением случаев, когда это необходимо по совместимости с оборудованием.
*Написание
+
:Примечание: После однократного запуска игры с помощью команды -dxlevel игру следует закрыть, а затем полностью удалить параметр запуска, прежде чем запускать игру снова.
*:lastdisguise [random] (''перевод'': последняя маскировка [случайно])
 
*Аргументы
 
**[random] (''перевод'': [случайно])
 
**:Chooses a random disguise that's neither Spy nor Scout (''перевод'': замаскироваться произвольно за исключением Шпиона и Разведчика)
 
  
===Последний слот (LASTINV)===
+
===Vulkan (только на Windows ОС)===
*Классовое ограничение
+
Параметр запуска: '''-vulkan'''
*:Отсутствует
+
:''Описание:'' Включает [[w:Vulkan/Vulkan]] вместо DirectX. В системах Linux Vulkan включен по умолчанию.
*Описание
 
*:Это очень простая команда. Всё, что она делает — это активирует слот последнего использованного вами оружия (По умолчанию «q»)
 
*Написание
 
*:lastinv (''перевод'': последний слот)
 
*Аргументы
 
**Отсутствуют
 
  
===Выбор в меню (MENUSELECT)===
+
===Запуск скрипта при запуске игры===
*Классовое ограничение
+
Параметр запуска: '''+exec script.cfg'''
*:Отсутствует
+
:''Описание:'' Запускает указанный скрипт при запуске игры.
*Описание
+
{{Note|Примечание: скрипт, названный {{code|autoexec.cfg}} автоматически запускается при запуске игры.}}
*:Эта команда работает только в голосовых меню, но не работает в визуальных, таких как выбор класса или строительство.
 
*Написание
 
*:menuselect <item_number> (''перевод'': выбор в меню <номер_слота>)
 
* Аргументы
 
**<item_number> (''перевод'': <номер_слота>)
 
**:Any valid menu choice. (''перевод'': любой из доступных выборов)
 
*Заметьте: используйте команду '''cancelselect''', чтобы покинуть меню.
 
  
===Игра (PLAY)===
+
==Список имен клавиш==
*Классовое ограничение
+
Наведите курсор на клавишу, чтобы увидеть имя.
*:Отсутствует
+
<code>
*Описание
+
{|
*:Проигрывает выбранный .wav или .mp3 файл. Чтобы отыскать нужный .wav или .mp3 файл, вам следует использовать один из обозревателей GCF файлов, например, [http://developer.valvesoftware.com/wiki/GCFScape GCFScape]. Благодаря нему вы сможете определить путь к необходимому файлу и сослаться на него через команду консоли или скрипт.
+
! width="45%" <!-- Main keyboard -->|
:Кроме того, вы можете добавить свои собственные .wav и .mp3 файлы в директорию '''C:\Program Files\Steam\steamapps\%USERNAME%\team fortress 2\tf\sound\'''.
+
! width="4%" <!-- Spacing -->|
*Написание
+
! width="20%" <!-- Special keys -->|
*:play <path><sound_file_name.wav> (''перевод'': <путь_к_файлу><имя_файла.wav>)
+
! width="1%" <!-- Spacing -->|
*:play <path><sound_file_name.mp3> (''перевод'': <путь_к_файлу><имя_файла.mp3>)
+
! width="25%" <!-- Keypad 1 -->|
*Пример
+
! width="5%" <!-- Keypad 2 -->|
*:play vo/demoman_specialcompleted11.wav
+
|-
*:play ui/gamestartup1.mp3
+
|
 +
{{tooltip|{{key|ESC}}|ESCAPE}}
 +
{{tooltip|{{key|F1}}|F1}}
 +
{{tooltip|{{key|F2}}|F2}}
 +
{{tooltip|{{key|F3}}|F3}}
 +
{{tooltip|{{key|F4}}|F4}}
 +
{{tooltip|{{key|F5}}|F5}}
 +
{{tooltip|{{key|F6}}|F6}}
 +
{{tooltip|{{key|F7}}|F7}}
 +
{{tooltip|{{key|F8}}|F8}}
 +
{{tooltip|{{key|F9}}|F9}}
 +
{{tooltip|{{key|F10}}|F10}}
 +
{{tooltip|{{key|F11}}|F11}}
 +
{{tooltip|{{key|F12}}|F12}}
  
*Аргументы
+
{{tooltip|{{key|`}}|`}}
**Отсутствуют
+
{{tooltip|{{key|1}}|1}}
 +
{{tooltip|{{key|2}}|2}}
 +
{{tooltip|{{key|3}}|3}}
 +
{{tooltip|{{key|4}}|4}}
 +
{{tooltip|{{key|5}}|5}}
 +
{{tooltip|{{key|6}}|6}}
 +
{{tooltip|{{key|7}}|7}}
 +
{{tooltip|{{key|8}}|8}}
 +
{{tooltip|{{key|9}}|9}}
 +
{{tooltip|{{key|0}}|0}}
 +
{{tooltip|{{key|-}}|-}}
 +
{{tooltip|{{key|{{=}}}}|{{=}}}}
 +
{{tooltip|{{key|Delete}}|BACKSPACE}}
  
=== Слот <X> (SLOT<X>)===
+
{{tooltip|{{key|TAB}}|TAB}}
*Классовое ограничение
+
{{tooltip|{{key|Q}}|Q}}
*:Отсутствует
+
{{tooltip|{{key|W}}|W}}
*Описание
+
{{tooltip|{{key|E}}|E}}
*:Эта команда чуть более сложная, чем рассмотренные нами ранее. В её основе лежит выбор активного оружия, комбинированный с стандартными голосовыми командами из «z», «x» и «c» меню. Так, например, если вы привязали к клавише «f» слот1 (slot1) и использование голосового меню 1 (voice_menu_1 («z»)), то после нажатия «f» вы автоматически позовёте Медика. В тоже время выбор оружия может осуществляться двумя путями. Первый, если у вас в меню включена быстрая смена оружия, эта команда немедленно активирует выбранный слот. Если же нет, то команда только высветит слоты выбора оружия, оставив окончательное решение за вами. Однако в последнем случае вы можете дополнить скрипт параметрами: "slot1; wait 50; +attack; wait; -attack", и это произойдёт автоматически.
+
{{tooltip|{{key|R}}|R}}
*Написание
+
{{tooltip|{{key|T}}|T}}
*:slot<slot_number> (''перевод'': слот<номер_слота>)
+
{{tooltip|{{key|Y}}|Y}}
*Аргументы
+
{{tooltip|{{key|U}}|U}}
**<slot_number> (''перевод'': <номер_слота>)
+
{{tooltip|{{key|I}}|I}}
**:Необходимо ввести номер слота от 0 до 10, при этом слот10 (slot10) — это команда выхода из меню.
+
{{tooltip|{{key|O}}|O}}
 +
{{tooltip|{{key|P}}|P}}
 +
{{tooltip|{{key|[}}|[}}
 +
{{tooltip|{{key|]}}|]}}
 +
{{tooltip|{{key|\}}|\}}
  
===Использовать (USE)===
+
{{tooltip|{{key|⇪ Caps}}|CAPSLOCK}}
*Классовое ограничение
+
{{tooltip|{{key|A}}|A}}
*:Отсутствует
+
{{tooltip|{{key|S}}|S}}
*Описание
+
{{tooltip|{{key|D}}|D}}
*:Команда «использовать» («use») применяется для активации конкретного оружия, при этом тип этого оружия не имеет значения.
+
{{tooltip|{{key|F}}|F}}
*Написание
+
{{tooltip|{{key|G}}|G}}
*:use <weapon_name> (''перевод'': use <название_оружия>)
+
{{tooltip|{{key|H}}|H}}
*Аргументы
+
{{tooltip|{{key|J}}|J}}
**<weapon_name> (''перевод'': <название_оружия>)
+
{{tooltip|{{key|K}}|K}}
  '''Разведчик'''
+
{{tooltip|{{key|L}}|L}}
    tf_weapon_scattergun
+
{{tooltip|{{key|;}}|SEMICOLON}}
    tf_weapon_handgun_scout_primary
+
{{tooltip|{{key|'}}|'}}
    tf_weapon_pistol_scout
+
{{tooltip|{{key|&nbsp; ↵ &nbsp; }}|ENTER}}
    tf_weapon_lunchbox_drink
 
    tf_weapon_jar_milk
 
    tf_weapon_bat
 
    tf_weapon_bat_wood
 
    tf_weapon_bat_fish
 
  '''Солдат'''
 
    tf_weapon_rocketlauncher
 
    tf_weapon_rocketlauncher_directhit
 
    tf_weapon_shotgun_soldier
 
    tf_weapon_buff_item
 
    tf_weapon_shovel
 
    tf_weapon_sword
 
  '''Поджигатель'''
 
    tf_weapon_flamethrower
 
    tf_weapon_shotgun_pyro
 
    tf_weapon_flaregun
 
    tf_weapon_fireaxe
 
  '''Подрывник'''
 
    tf_weapon_grenadelauncher
 
    tf_weapon_grenade_demoman
 
    tf_weapon_pipebomblauncher
 
    tf_weapon_pumpkin_bomb
 
    tf_weapon_bottle
 
    tf_weapon_base
 
    tf_weapon_sword
 
    tf_weapon_stickbomb
 
  '''Пулеметчик'''
 
    tf_weapon_minigun
 
    tf_weapon_shotgun_hwg
 
    tf_weapon_lunchbox
 
    tf_weapon_fists
 
  '''Инженер'''
 
    tf_weapon_shotgun_primary
 
    tf_weapon_sentry_revenge
 
    tf_weapon_pistol
 
    tf_weapon_laser_pointer
 
    tf_weapon_wrench
 
    tf_weapon_robot_arm
 
    tf_weapon_pda_engineer_destroy
 
    tf_weapon_pda_engineer_build
 
  '''Медик'''
 
    tf_weapon_syringegun_medic
 
    tf_weapon_crossbow
 
    tf_weapon_medigun
 
    tf_weapon_bonesaw
 
  '''Снайпер'''
 
    tf_weapon_sniperrifle
 
    tf_weapon_compound_bow
 
    tf_weapon_smg
 
    tf_weapon_jar
 
    tf_weapon_club
 
  '''Шпион'''
 
    tf_weapon_revolver
 
    tf_weapon_knife
 
    tf_weapon_pda_spy
 
**:''Ознакомьтесь с разделом [[Scripting/ru#Строить (BUILD)|Строить (BUILD)]], чтобы узнать, как сделать привязку Жучка''.
 
  
===Голосовое меню (VOICEMENU)===
+
{{tooltip|{{key|Shift}}|SHIFT}}
*Классовое ограничение
+
{{tooltip|{{key|Z}}|Z}}
*:Отсутствует
+
{{tooltip|{{key|X}}|X}}
*Описание
+
{{tooltip|{{key|C}}|C}}
*:Эта команда основана на использовании разделов голосового меню, активируемых нажатием клавиш «z», «x» и «c». В принципе никто не мешает вам забиндить каждую голосовую команду на отдельную клавишу, так как это сделано с клавишей «e», при нажатии которой игрок зовёт Медика.
+
{{tooltip|{{key|V}}|V}}
*Написание
+
{{tooltip|{{key|B}}|B}}
*:voicemenu <menu_number> <phrase_number> (''перевод'': голосовое_меню <номер_меню> <номер_фразы>)
+
{{tooltip|{{key|N}}|N}}
*Аргументы
+
{{tooltip|{{key|M}}|M}}
**<menu_number> (''перевод'': <номер_меню>)
+
{{tooltip|{{key|,}}|,}}
***0 <phrase_number> (''перевод'': <номер_фразы>)
+
{{tooltip|{{key|.}}|.}}
***:0: Медик (Medic)
+
{{tooltip|{{key|/}}|/}}
***:1: Спасибо (Thanks)
+
{{tooltip|{{key|Shift}}|RSHIFT}}
***:2: Двигаемся (Go)
 
***:3: Вперёд (Move Up)
 
***:4: Налево (Flank Left)
 
***:5: Направо (Flank Right)
 
***:6: Да (Yes)
 
***:7: Нет (No)
 
***1 <phrase_number> (''перевод'': <номер_фразы>)
 
***:0: Нас атакуют (Incoming)
 
***:1: Шпион (Cloaked Spy)
 
***:2: Впереди пушка (Sentry Ahead)
 
***:3: Постройте здесь телепорт (Teleporter Here)
 
***:4: Постройте здесь раздатчик (Dispenser Here)
 
***:5: Постройте здесь пушку (Sentry Here)
 
***:6: Давай Убер (Activate ÜberCharge)
 
***:7: Только для медика: Убер готов ((Medic Only) ÜberCharge Ready)
 
***2 <phrase_number> (''перевод'': <номер_фразы>)
 
***:0: На помощь (Help)
 
***:1: Боевой клич (Battlecry)
 
***:2: Приветствие (Cheers)
 
***:3: Насмешка (Jeers)
 
***:4: Одобрение (Positive)
 
***:5: Отрицание (Negative)
 
***:6: Хороший выстрел (Nice Shot)
 
***:7: Отличная работа (Good Job)
 
  
===Ждать (WAIT)===
+
{{tooltip|{{key|Ctrl}}|CTRL}}
*Классовое ограничение
+
{{tooltip|{{key|⊞}}|LWIN}}
*:Отсутствует
+
{{tooltip|{{key|Alt}}|ALT}}
*Описание
+
{{tooltip|{{key| &nbsp; &nbsp; &nbsp; Spacebar &nbsp; &nbsp; &nbsp; }}|SPACE}}
*:Это очень полезная команда, когда вы используете сложные бинды. Её сущность заключается в том, что она задерживает исполнение следующей команды в списке/цикле на время Х, количество которого измеряется во фреймах/кадрах. Если после имени команды (''wait''), вы не укажите числовой параметр, то по умолчанию он будет равен 1. Из моего опыта следует, что значение равное 100 фреймам примерно эквивалентно одной секунде, однако у меня не было времени точно установить, как на это влияет параметр задержки сервер-клиент, и в этом вам предстоит разобраться самостоятельно. Приведу пример с Инженером, совершенствующим свою Пушку :<br><br>"use tf_weapon_wrench; wait; +duck; wait; +attack; wait 500; -attack; wait; -duck; lastinv" (''перевод'': использовать тф_оружие_гаечный_ключ; ждать; +присесть; ждать; +атаковать; ждать 500; -атаковать; ждать; - присесть; последний_слот<br><br>
+
{{tooltip|{{key|⊞}}|RWIN}}
Результат: Инженер берёт в руки Ключ, приседает, бьёт Ключом примерно 5 секунд, прекращает бить, встаёт и выбирает последнее использованное до этого оружие в качестве текущего. Если бы мы не вставили между действия команду ''wait'', то вероятность того, что наш бинд попросту не стал бы работать, была бы очень велика. <br><br>Заметьте, что в отличии от предыдущих примеров, здесь команда ''wait'', не прерывала исполнение бинда, а выступала в роли таймера.
+
{{tooltip|{{key|Menu}}|Cannot be bound}}
*Написание
+
{{tooltip|{{key|Ctrl}}|RCTRL}}
*:wait [wait_time] (''перевод'': ждать [ждать_время])
 
*Аргументы
 
**[wait_time] (''перевод'': [ждать_время])
 
**:Значения между 1 и <бесконечностью>.  По умолчанию 1.
 
*'''Важное замечание'''
 
:Всё вышеизложенное актуально и будет работать только на серверах с параметром ''sv_allow_wait_command'' со значением 1, однако в настоящее время многие серверы используют параметр 0, и на них данный скрипт выполняться не будет. Более того, некоторые устаревшие скрипты, как то [[Scout scripts#Autopistol|Autopistol Script]], могут привести к нестабильной работе клиента и его падению.
 
  
===Другие команды движков GoldSource и Source===
+
|<!-- Spacing -->
 +
|
 +
{{tooltip|{{key|PrtScn}}|Cannot be bound}}
 +
{{tooltip|{{key|ScrLk}}|SCROLLOCK}}
 +
{{tooltip|{{key|Pause}}|NUMLOCK}}
  
Выбор класса: '''changeclass'''
+
{{tooltip|{{key|Insert}}|INS}}
 +
{{tooltip|{{key|Home}}|HOME}}
 +
{{tooltip|{{key|PgUp}}|PGUP}}
  
Переключение консоли:  '''toggleconsole'''
+
{{tooltip|{{key|Delete}}|DEL}}
 +
{{tooltip|{{key|End}}|END}}
 +
{{tooltip|{{key|PgDn}}|PGDN}}
  
Присесть:  '''+duck'''
 
  
Выбросить предмет:  '''dropitem'''
+
&nbsp; &nbsp; &nbsp; &nbsp; {{tooltip|{{key|&uarr;}}|UPARROW}}
  
Повторить сообщение:  '''echo'''
+
&nbsp; &nbsp; {{tooltip|{{key|&larr;}}|LEFTARROW}}
 +
{{tooltip|{{key|&darr;}}|DOWNARROW}}
 +
{{tooltip|{{key|&rarr;}}|RIGHTARROW}}
 +
|<!-- Spacing -->
 +
|
  
Атаковать: '''+attack'''
+
{{Scripting Numpad}}
 +
|}
  
Показать частоту кадров: '''cl_showfps 1'''
+
{|
 +
! align="left"| Кнопка мыши
 +
! имя клавиши
 +
|-
 +
| Колесико вверх
 +
| MWHEELUP
 +
|-
 +
| Колесико вниз
 +
| MWHEELDOWN
 +
|-
 +
| ЛКМ
 +
| MOUSE1
 +
|-
 +
| ПКМ
 +
| MOUSE2
 +
|-
 +
| Колесико
 +
| MOUSE3
 +
|-
 +
| Вперед
 +
| MOUSE4
 +
|-
 +
| Назад
 +
| MOUSE5
 +
|}
  
Сменить ведущую руку на левую:  '''setinfo lefthand 1'''
+
</code>
  
Сменить ведущую руку на правую: '''setinfo lefthand 0'''
+
==Полезные команды==
 +
{{Main|vdc:List_of_TF2_console_commands_and_variables|l1=Список команд и переменных TF2(англ.)}}
  
Прыгнуть: '''+jump'''
+
===Маскировка===
 +
Команда <code>disguise</code> имеет два значения, первая отвечает за класс, вторая за команду.
 +
:'''Класс'''
 +
:1. Разведчик
 +
:2. Снайпер
 +
:3. Солдат
 +
:4. Подрывник
 +
:5. Медик
 +
:6. Пулеметчик
 +
:7. Поджигатель
 +
:8. Шпион
 +
:9. Инженер
  
Последнее оружие: '''lastinv'''
+
:'''Команда'''
 +
:1. СИН
 +
:2. КРС
 +
:-1. Противположная команда
 +
:-2. Своя команда.
  
Использовать спрей: '''impulse 201'''
+
При <code>disguise 5 1</code> вы замаскируетесь под синего медика, а так <code>disguise 7 -2</code> под дружественного поджигателя.<br/>
 +
Примечание: Маскировка под дружественного шпиона отключает маскировку.<br/>
  
Смотреть вниз:  '''+lookdown'''
+
===Постройки===
 +
Команда <code>build</code> имеет два значения, первая отвечает за саму постройку, вторая за её тип.
 +
<br /><code>build 0 0</code> построит [[Dispenser/ru|Раздатчик]] <small>(Только инженер)</small>
 +
<br /><code>build 1 0</code> построит [[teleporter entrance/ru|Телепорт]] <small>(Только инженер)</small>
 +
<br /><code>build 1 1</code> построит Выход телепорта <small>(Только инженер)</small>
 +
<br /><code>build 2 0</code> построит [[Sentry Gun/ru|Турель]] <small>(Только инженер)</small>
 +
<br /><code>build 3 0</code> построит [[Sapper/ru|Жучок]] <small>(Только шпион)</small>
  
Смотреть вверх: '''+lookup'''
+
Аналогичным образом, команда <code>destroy</code> будет разрушать постройки.
 +
<br /><code>destroy 0 0</code> разрушит [[Dispenser/ru|Раздатчик]] <small>(Только инженер)</small>
 +
<br /><code>destroy 1 0</code> разрушит [[teleporter entrance/ru|Телепорт]] <small>(Только инженер)</small>
 +
<br /><code>destroy 1 1</code> разрушит Выход телепорта <small>(Только инженер)</small>
 +
<br /><code>destroy 2 0</code> разрушит [[Sentry Gun/ru|Турель]] <small>(Только инженер)</small>
 +
<br />Примечание: Жучки не разрушаются.
  
Информация о карте: '''showbriefing'''
+
===Голосовое меню===
 +
Команда <code>voicemenu</code> имеет два значения, первое отвечает за номер меню, второе за номер команды.
 +
*0 (<code>Голосовое меню 1</code>)
 +
*:0: {{botignore|МЕДИК!}}
 +
*:1: Спасибо!
 +
*:2: Вперед! Вперед!
 +
*:3: Продвигаемся!
 +
*:4: Налево
 +
*:5: Направо
 +
*:6: Да
 +
*:7: Нет
 +
*1 (<code>Голосовое меню 2</code>)
 +
*:0: Нас атакуют!
 +
*:1: Шпион!
 +
*:2: Впереди турель!
 +
*:3: Постройте телепорт
 +
*:4: Постройте раздатчик
 +
*:5: Постройте турель
 +
*:6: Давай убер!
 +
*:7: {{botignore|МЕДИК: Убер-заряд накоплен}}
 +
*2 (<code>Голосовое меню 3</code>)
 +
*:0: На помощь!
 +
*:1: Боевой клич
 +
*:2: Молодцы
 +
*:3: Глупцы
 +
*:4: Одобрение
 +
*:5: Негативная реакция
 +
*:6: Отличный выстрел
 +
*:7: Хорошая работа
  
Список карт: '''listmaps'''
+
Примечание: Порядковый номер указан на единицу меньше, чем в игре.
  
Двигаться назад:  '''+back'''
+
=== Телепортация Озарением ===
 +
The <code>eureka_teleport</code> Инженер, может телепортироваться при помощи [[Eureka Effect/ru|Озарения]] с зажатой клавишей на зону возрождения или к своему выходу из телепорта.
 +
*<code>eureka_teleport 0</code> телепортирует к зоне возрождения
 +
*<code>eureka_teleport 1</code> телепортирует игрока к [[teleporter exit/ru|выходу из телепорта]].
  
Двигаться вперёд:  '''+forward'''
+
===Разное===
 +
*<code>clear</code> очищает полностью консоль от текста.
 +
*<code>fov_desired (75-90)</code> устанавливает ваше [[Field of View/ru|поле зрения]].
 +
*<code>viewmodel_fov </code> устанавливает поле обзора для вашего оружия. По-стандарту используется значение 55.
 +
*<code>r_drawviewmodel (0/1)</code> показывает (1) или скрывает (0) ваше оружие на экране.
 +
*<code>lastdisguise</code> маскирует вас под последнюю использованную маскировку. <small>(Только шпион)</small>
 +
*<code>load_itempreset [0, 1, 2, 3]</code> загружает наборы снаряжения [А, Б, В, Г].
 +
*<code>say "message"</code> отправит сообщение в общий чат.
 +
*<code>say_team "message"</code> отправит сообщение в командный чат.
 +
*<code>+taunt</code> активирует насмешку.
 +
*<code>+use_action_slot_item</code> использует предмет в слоте действия.
 +
*<code>volume (0-1)</code> изменяет громкость в игре
  
Сетевая статистика:  '''netgraph <num>'''
+
==Расширенные Методы Написания Скриптов==
 +
===Toggle===
 +
Использование Toggle для действия которое требует удерживания клавиши.
  
Следующее оружие:  '''invnext'''
+
<code>
 +
bind "w" toggle<br/>
 +
alias toggle "enable"<br/>
 +
alias enable "alias toggle disable; +forward"<br/>
 +
alias disable "alias toggle enable; -forward"<br/>
 +
</code>
 +
Скрипт заставляет игрока бежать вперед при нажатии {{key|W}}, а при повторном нажатии заставит его остановится.
  
Список игроков:  '''listplayers'''
+
===Комбинации клавиш===
 +
Это делает возможным использование сочетаний, что сокращает общее количество занятых клавиш, да и просто является удобным.
  
Предыдущее оружие:  '''invprev'''
+
<code>
 +
bind "e" call<br/>
 +
alias call Call_For_Medic<br/>
 +
alias Call_For_Medic "Voicemenu 0 0"<br/>
 +
alias Call_For_Ubercharge "Voicemenu 1 6"<br/>
 +
</code>
 +
На данный момент, при нажатии {{key|E}}, скрипт будет работать как обычная команда «МЕДИК»! , но остался не использованным alias с командой «Давай убер!».<br/>
 +
<code>
 +
bind shift +toggleState<br/>
 +
alias +toggleState "alias call Call_For_Ubercharge"<br/>
 +
alias -toggleState "alias call Call_For_Medic<br/>
 +
</code>
 +
Готово! Теперь при нажатии {{key|E}} игрок зовет медика, а при нажатии {{key|Shift}}+{{key|E}} он попросит дать убер.
  
Сообщение для всех:  '''say''' (прим. bind "key" "say текст")
+
===Wait-test (Wait-тест)===
 +
Скрипт, проверяющий на работоспособность команду <code>wait</code> на сервере к которому вы присоединились.<br/>
  
Перезарядить оружие:  '''+reload'''
+
<code>alias waitTester "alias waitTest waitPositive; wait; waitTest"<br/>
 +
alias wait "alias waitTest waitNegative"<br/>
 +
alias waitPositive "echo Wait is enabled on this server.; exec waitPositive.cfg"<br/>
 +
alias waitNegative "echo Wait is DISABLED on this server!; exec waitNegative.cfg"<br/>
 +
waitTester</code><br/>
 +
Скрипт основан на том, что если <code>wait</code> отключен на сервере то его имя можно использовать в alias, таким образом, если на сервере отключён <code>wait</code> то включится alias с аналогичным именем и сообщит нам об этом в консоль, и запустит файл «waitNegative.cfg», в обратном случае, в консоли будет сообщение о действии команды <code>wait</code> и запустится файл «waitPositive.cfg»
  
Просмотр счёта:  '''+showscores'''
+
=== Loops (Циклы)===
 +
'''Внимание: Циклы без использования <code>wait</code> могут привести к зависанию игры.'''<br/>
 +
Использование alias, который обращается к самому себе - бесконечный цикл, потому что эти скрипты нельзя сломать или перезапустить. Так или иначе, цикл включает в себя две части: Часть ожидания и часть повторения.<br/>
 +
<code>alias loop "+taunt; wait 132; redirect"<br/>
 +
alias redirect loop<br/>
 +
bind g "redirect"<br/>
 +
bind o "alias redirect break"<br/>
 +
alias break "alias redirect loop"<br/></code>
 +
Этот скрипт зацикливается при нажатии {{key|G}}. Он включает насмешку через каждые 132 кадра(2 секунды на большинстве серверов). Клавиша {{key|O}} приведет к следующему повтору цикла. Alias <code>break</code> перезапускает цикл и через некоторое время он начинается снова.
  
Снимок экрана: '''snapshot'''
+
=== Alias (Последовательности) ===
 +
<pre>alias +pyrocombo "slot1;+attack;wait 32;slot2"
 +
alias -pyrocombo "-attack;slot1"</pre>
 +
This script will create two aliases, one to start a sequence, and one to end it. The sequence will switch to a Pyro's [[Degreaser]] and fire for 32 ticks, before switching to the [[Panic Attack]] and shooting until the button is no longer held. Sequences can also be made like this:
 +
Этот скрипт создаст два параметра alias: один для начала последовательности, а другой для ее завершения. Последовательность сначала переключится на [[Degreaser/ru|Чистильщика]] и будет выпускать пламя в течение 32 тиков, затем переключится на [[Panic Attack/ru|Паническую атаку]] и стрелять до тех пор, пока кнопка больше не будет зажата. Последовательности также могут быть выполнены следующим образом:
 +
<br><pre>alias quickscope "slot1;+attack2;wait 32;+attack;wait 16;-attack;-attack2"</pre>
 +
This script will create a sequence alias, that once activated will cause the Sniper to quick-scope his [[Sniper Rifle]]; by executing the long string of commands called a sequence.
 +
Sequences are useful in making scripts, and learning how to make one will help in the long run of scripting.
 +
Этот скрипт создаст последовательность, которая после активации заставит снайпера быстро прицелиться в свою [[Sniper Rifle/ru|Снайперскую винтовку]] и выстрелить.
 +
Последовательности полезны при создании сценариев консольных команд.
  
Движение боком: '''+strafe'''
+
=== Cycles (другая разновидность циклов) ===
 +
Cycle - это сценарий переключения, в котором есть как минимум 3 возможных варианта, которые повторяются (например, 1, 2, 3, 1). Пример:
 +
<pre>
 +
alias message_1 "say message 1.; bind x message_2"
 +
alias message_2 "say message 2.; bind x message_3"
 +
alias message_3 "say message 3.; bind x message_1"
 +
bind x message_1
 +
</pre>
 +
Этот скрипт делает так, что нажатие клавиши {{Key|X}} будет сначала воспроизведёт голосовую команду «сообщение 1», «сообщение 2» и затем «сообщение 3».
  
Движение боком влево: '''+moveleft'''
+
{{note|<code>[[vdc:toggle|toggle]]</code>, <code>[[vdc:incrementvar|incrementvar]]</code>, and <code>[[vdc:multvar|multvar]]</code> часто может использоваться вместо alias (последовательностей) при изменении консольной переменной.}}.}}
  
Движение боком вправо:  '''+moveright'''
+
=== Selection addons (Выбор адд-онов)===
 +
Сценарий выбора встроен в Cycle, что делает его более интуитивно понятным. Сценарии выбора позволяют выполнять циклические действия c первой по последнее и с последнего по первый, что в конечном итоге дает больше контроля при выборе команд для использования.
 +
<pre>
 +
alias CondC_UP Cond1
 +
alias CondC_DOWN Cond5
 +
alias ApplyCond ApplyCond33
 +
alias ApplyCond33 "addcond 33"
 +
alias ApplyCond49 "addcond 49"
 +
alias ApplyCond72 "addcond 72"
 +
alias ApplyCond74 "addcond 74"
 +
alias ApplyCond90 "addcond 90"
 +
alias Cond1 "alias CondC_UP Cond2;alias CondC_DOWN Cond5;alias ApplyCond ApplyCond33"
 +
alias Cond2 "alias CondC_UP Cond3;alias CondC_DOWN Cond1;alias ApplyCond ApplyCond49"
 +
alias Cond3 "alias CondC_UP Cond4;alias CondC_DOWN Cond2;alias ApplyCond ApplyCond72"
 +
alias Cond4 "alias CondC_UP Cond5;alias CondC_DOWN Cond3;alias ApplyCond ApplyCond74"
 +
alias Cond5 "alias CondC_UP Cond1;alias CondC_DOWN Cond4;alias ApplyCond ApplyCond90"
 +
</pre>
 +
Это дает больше контроля над тем, какие условия проигрывать. Это также обеспечивает большую свободу выбора и простоту использования, поскольку позволяет прокручивать параметры в цикле.
  
Альтернативный огонь  '''+attack2'''
+
=== Randomization (Рандомизация) ===
 +
Рандомизация - странная и нишевая функция. Рандомизация используется редко, так как большинство процессов не так полезны, когда они рандомизированы. Однако рандомизация может быть полезна для привязки к чату, например, для рекламы с предложениями обмена в чате.
  
Насмешка: '''taunt'''
+
'''Примечание: Из-за особенностей сценариев TF2 этот раздел будет довольно длинным. Если вы еще не имеете представления о том, как работают Cycle, представленная информация может оказаться неактуальной.'''
 +
<pre>
 +
alias call f1
 +
alias cycle c2
  
Смерть от взрыва (самоубийство): '''explode'''
+
alias c1 "alias cycle c2;alias call f1"
 +
alias c2 "alias cycle c3;alias call f2"
 +
alias c3 "alias cycle c4;alias call f3"
 +
alias c4 "alias cycle c5;alias call f4"
 +
alias c5 "alias cycle c1;alias call f5"
  
Сообщение для команды:  '''say_team'''
+
alias f1 "say 1"
 +
alias f2 "say 2"
 +
alias f3 "say 3"
 +
alias f4 "say 4"
 +
alias f5 "say 5"
  
Выбор команды:  '''changeteam'''
+
alias +w "+forward;cycle"
 +
alias -w "-forward;cycle"
 +
alias +a "+moveleft;cycle"
 +
alias -a "-moveleft;cycle"
 +
alias +s "+back;cycle"
 +
alias -s "-back;cycle"
 +
alias +d "+moveright;cycle"
 +
alias -d "-moveright;cycle"
  
Повернуться налево: '''+left'''
+
bind o call
 +
bind w +w
 +
bind a +a
 +
bind s +s
 +
bind d +d
 +
</pre>
 +
This script is assigning and resigning multiple alias values. When any of the {{key|WASD}} keys are pressed or released, the cycle command is ran, which moves the cycle command to the next value in the cycle and sets the «call» command to a value corresponding to the cycle number. This is based on the player's movement, and only changes values if the player is moving. It is possible to make this randomizer more effective by using other various techniques stated here (ex. Loops), but this example is for demonstration purposes only.
  
Повернуться направо:  '''+right'''
+
Этот скрипт назначает и переназначает несколько значений alias. При нажатии или отпускании любой из клавиш {{key|WASD}} выполняется команда цикла, которая перемещает команду Cycle к следующему значению в Cycle и устанавливает для консольной команды значение «call» , соответствующее номеру Cycle. Это основано на движении игрока и изменяет значения только в том случае, если игрок движется. Можно сделать этот рандомизатор консольных команд более эффективным, используя другие различные методы, описанные здесь (например Cycle), но этот пример предназначен только для демонстрации.
==Список назначаемых клавиш==
 
Список назначаемых клавиш TF2, использующихся в [[Scripting/ru|написании скриптов]]. Левая колонка показывает название, правая колонка показывает ключевое имя.
 
  
<div align="left">
+
=== Timed action Рассчитанное по времени действие ===
 +
Синхронизированные или удерживаемые действия запускаются при нажатии кнопки в течение определенного периода времени. Синхронизированные действия могут использоваться в ситуациях, когда сценарий или команда не должны запускаться мгновенно в момент нажатия кнопки (например, при случайном нажатии bind).
  
<table border="1" cellpadding="3" cellspacing="0" bordercolordark="#000000" bordercolorlight="#000000">
+
<pre>
<tr>
+
alias "+ti_zoom" "alias zoom_con zoomOn; wait 132; zoom_con"
<th>Название</th>
+
alias "-ti_zoom" "zoomOff; alias zoom_con ; rb_tizoom-M4"
<th>Ключевое имя</th>
+
alias "rb_tizoom-M4" "unbind mouse4; wait 132; bind mouse4 +ti_zoom"
</tr>
+
alias "zoomOn" "fov_desired 20; r_drawviewmodel 0"
 +
alias "zoomOff" "fov_desired 90; r_drawviewmodel 1"
 +
bind "mouse4" "+ti_zoom"
 +
</pre>
  
<!-- Numbers -->
+
Нажатие (и немедленное отпускание) {{key|Mouse 4}} при загруженном этом скрипте не окажет заметного эффекта, однако удерживание нажатой {{key|Mouse 4}} в течение 2 секунд приведет к тому, что скрипт снизит угол обзора до 20 и скроет переменную viewmodels. Отпускание {{key|Mouse 4}} в любой момент отменит эти изменения, установив поле обзора равным 90 и обратно отобразив переменную viewmodels.
<tr>
 
<td class="lgray" align="center">1</td>
 
<td class="lgray" align="center">Один</td>
 
</tr>
 
  
 +
This works because of the use of + and - aliases. Pressing the key <code>+ti_zoom</code> is bound to will redefine <code>zoom_con</code> to activate the script, and if left pressed for the <code>wait</code> duration will execute the script. However, if the button is released, <code>zoom_con</code> is redefined to do nothing. The key is then «disabled» by being unbound for the same <code>wait</code> duration, and rebound afterwards to restore use of the key.
  
<tr>
+
Это работает из-за использования alias + и -. Нажатие клавиши <code>+ti_zoom</code> обязательно приведёт к переопределению значения <code>zoom_con</code> для активации скрипта, и, если оставить нажатой клавишу в течение <code> ожидания </code>, скрипт запустится. Однако, если кнопка отпущена, <code>zoom_con</code> переопределяется таким образом, что ничего в этот момент не будет выполняться. Затем клавиша «отключается», поскольку она отключается на тот же период ожидания <code>, а затем возвращается для восстановления использования клавиши.
<td bgcolor=#ffb449 align="center">2</td>
 
<td bgcolor=#ffb449 align="center">Два</td>
 
</tr>
 
  
<tr>
+
'''Примечание:''' Повторная привязка клавиши технически имеет ограничение, так как скрипт не выполнит синхронизированное действие, если кнопка будет отпущена. Однако, если кнопка будет нажата несколько раз, можно выполнить синхронизированное действие, если alias подтверждения (в данном случае, <code>zoom_con</code>) определён правильно, поскольку любое из нажатий приведет к его выполнению заданных действий. «Отключение» клавиши на ту же продолжительность, что и первоначальная задержка <code>wait</code>, гарантирует, что эффект не сработает при быстром нажатии кнопки.
<td class="lgray" align="center">3</td>
 
<td class="lgray" align="center">Три</td>
 
  
</tr>
 
  
<tr>
+
=== Базовые условия ===
<td bgcolor=#ffb449 align="center">4</td>
+
{{rewrite}}
<td bgcolor=#ffb449 align="center">Четыре</td>
+
Базовое условие позволяет сценарию изменять своё поведение, не запуская полностью новый сценарий. Используя фиктивный alias, можно изменить результат ввода на основе других входных данных. Базовые условия могут поддерживать потенциально бесконечно много проверок состояния других консольных команд, однако маловероятно, что сценарию потребуется больше нескольких проверок для каждого условного выражения.
</tr>
 
  
<tr>
+
Простой пример базового условия:
<td class="lgray" align="center">5</td>
+
<pre>
<td class="lgray" align="center">Пять</td>
+
alias "check_test" "alias test success; check1; check2; test"
</tr>
+
alias "check1" ""
 +
alias "check2" ""
 +
alias "test" "success"
  
<tr>
+
alias "fail_check" "alias test failure"
<td bgcolor=#ffb449 align="center">6</td>
 
<td bgcolor=#ffb449 align="center">Шесть</td>
 
</tr>
 
  
<tr>
+
alias "success" "echo SUCCESS!"
 +
alias "failure" "echo FAILURE!"
  
<td class="lgray" align="center">7</td>
+
alias "+k_pressed" "alias check1 fail_check"
<td class="lgray" align="center">Семь</td>
+
alias "-k_pressed" "alias check1"
</tr>
+
alias "+j_pressed" "alias check2 fail_check"
 +
alias "-j_pressed" "alias check2"
  
<tr>
+
bind "l" "check_test"
<td bgcolor=#ffb449 align="center">8</td>
+
bind "j" "+j_pressed"
<td bgcolor=#ffb449 align="center">Восемь</td>
+
bind "k" "+k_pressed"
</tr>
+
</pre>
  
 +
Основной функцией этого скрипта является alias <code>check_test</code>. При запуске этот alias проверяет два других условия, и если проверки завершаются успешно, он запускает alias <code>success</code>. Однако, если одна из проверок завершается неудачей, используется фиктивный alias <code>test</code> для запуска alias <code>failure</code>. Проще говоря, при успешной проверке команда checking не перенаправляет alias, на который указывает <code>test</code>. Если проверка завершается неудачей, она перенаправляет alias <code>test на другой alias, в котором хранится команда для запуска в случае неудачной проверки..
  
<tr>
+
В этом случае при нажатии кнопки {{key|L}} без нажатия ни {{key|J}}, ни {{key|K}} проверка завершается успешно и на консоль выводится <code>SUCCESS!</code>. Если нажать и удерживать клавишу {{key|J}} или {{key|K}}, а затем нажать клавишу {{key|L}}, проверка завершится ошибкой и в консоль будет выведено <code>FAILURE!</code>.
<td class="lgray" align="center">9</td>
 
<td class="lgray" align="center">Девять</td>
 
</tr>
 
  
<tr>
+
Пример:
<td bgcolor=#ffb449 align="center">0</td>
+
<pre>
<td bgcolor=#ffb449 align="center">Ноль</td>
+
// Изменение цвета перекрестия при передвижении
  
</tr>
+
alias "+w_pressed" "+forward;  alias check_w pressed_w; chc_forward"
 +
alias "+a_pressed" "+moveleft;  alias check_a pressed_a; chc_left"
 +
alias "+s_pressed" "+back;      alias check_s pressed_s; chc_back"
 +
alias "+d_pressed" "+moveright; alias check_d pressed_d; chc_right"
  
<!-- Letters -->
+
alias "-w_pressed" "-forward;  alias check_w; check_none"
<tr>
+
alias "-a_pressed" "-moveleft;  alias check_a; check_none"
<td class="lgray" align="center">A</td>
+
alias "-s_pressed" "-back;      alias check_s; check_none"
<td class="lgray" align="center">A</td>
+
alias "-d_pressed" "-moveright; alias check_d; check_none"
</tr>
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">B</td>
 
<td bgcolor=#ffb449 align="center">B</td>
 
</tr>
 
  
<tr>
+
alias "check_w"  
<td class="lgray" align="center">C</td>
+
alias "check_a"  
<td class="lgray" align="center">C</td>
+
alias "check_s"  
</tr>
+
alias "check_d"  
  
<tr>
+
alias "pressed_w" "dchk_fail; chc_forward"
<td bgcolor=#ffb449 align="center">D</td>
+
alias "pressed_a" "dchk_fail; chc_left"
<td bgcolor=#ffb449 align="center">D</td>
+
alias "pressed_s" "dchk_fail; chc_back"
</tr>
+
alias "pressed_d" "dchk_fail; chc_right"
  
<tr>
+
alias "check_none" "check_s; check_a; check_d; check_w; dmy_check"
<td class="lgray" align="center">E</td>
+
alias "dmy_check" "chc_success"
<td class="lgray" align="center">E</td>
 
</tr>
 
  
 +
alias "dchk_fail" "alias dmy_check chc_failure"
 +
alias "dchk_reset" "alias dmy_check chc_success"
  
<tr>
+
alias "chc_failure" "dchk_reset"
<td bgcolor=#ffb449 align="center">F</td>
+
alias "chc_success" "chc_default"
<td bgcolor=#ffb449 align="center">F</td>
 
</tr>
 
  
<tr>
+
alias "chc_default" "color0"
<td class="lgray" align="center">G</td>
+
alias "chc_forward" "color1"
<td class="lgray" align="center">G</td>
+
alias "chc_left"    "color2"
 +
alias "chc_back"   "color3"
 +
alias "chc_right"   "color4"
  
</tr>
+
// Binds (бинды)
 +
bind "w" "+w_pressed"
 +
bind "a" "+a_pressed"
 +
bind "s" "+s_pressed"
 +
bind "d" "+d_pressed"
  
<tr>
+
// Цвета
<td bgcolor=#ffb449 align="center">H</td>
+
alias "color0" "cl_crosshair_red 0; cl_crosshair_green 255; cl_crosshair_blue 0"        // Стандартный цвет если не двигаться
<td bgcolor=#ffb449 align="center">H</td>
+
alias "color1" "cl_crosshair_red 0; cl_crosshair_green 0; cl_crosshair_blue 255"        // Цвет при движении вперёд
</tr>
+
alias "color2" "cl_crosshair_red 255; cl_crosshair_green 0; cl_crosshair_blue 255"      // Цвет при движении влево
 +
alias "color3" "cl_crosshair_red 128; cl_crosshair_green 212; cl_crosshair_blue 255"   // Цвет при движении назад
 +
alias "color4" "cl_crosshair_red 255; cl_crosshair_green 140; cl_crosshair_blue 25"     // Цвет при движении вправо
 +
</pre>
  
<tr>
+
Этот скрипт изменит цвет перекрестия прицела пользователя, когда он будет нажимать клавиши {{key|WASD}}. Важное примечание: при неудачной проверке он может выполнить несколько действий, а не просто изменить переменную фиктивной консольной команды. Когда проверка завершается неудачно, перекрестие меняет цвет, а также изменяет переменную фиктивной консольной команды на неуспешную проверку. Это означает, что при отпускании нескольких кнопок цвет перекрестия корректно меняется на цвет последней нажатой клавиши.
<td class="lgray" align="center">I</td>
 
<td class="lgray" align="center">I</td>
 
</tr>
 
  
<tr>
+
== Сообщение в чате с голосовые репликой ==
<td bgcolor=#ffb449 align="center">J</td>
+
По мере того как скрипты становятся длиннее, потребность в alias с правильными названиями растет. Однако не всегда достаточно просто указать, что должен делать alias, просто указав его. Добавление пары прямых косых черт (//) превратит остальную часть строки в сообщение для чата – никаких действий с текстом произведено не будет.
<td bgcolor=#ffb449 align="center">J</td>
 
</tr>
 
  
<tr>
+
<pre>voicemenu 1 6 //Активирую убер!</pre>
 +
Поскольку иногда реплику можно пропустить, то её можно пояснить/дополнить сообщением.
  
<td class="lgray" align="center">K</td>
+
==Интересные скрипты==
<td class="lgray" align="center">K</td>
+
Есть несколько скриптов которые могут или могли раньше повлиять на игровой процесс. В данный момент часть из них не работает, а некоторые работают и сейчас.
</tr>
 
  
<tr>
+
===Исправленные скрипты===
<td bgcolor=#ffb449 align="center">L</td>
+
====Пистолет====
<td bgcolor=#ffb449 align="center">L</td>
+
Изначально, [[Pistol/ru|пистолет]] стрелял с каждым нажатием клавиши стрельбы без ограничений по времени. Игроки создали скрипт, который позволял совершить множество кликов за долю секунды, что делало пистолет самым скорострельным оружием в игре.
</tr>
 
  
 +
{{Patch name|8|13|2009}}: Отныне пистолеты стреляют с фиксированной скоростью, не зависящей от того, насколько быстро вы нажимаете на кнопку стрельбы.
 +
====Штурмовой щит====
 +
Раньше клавиши на клавиатуре, управляющие вращением камерой, не были связаны с передвижением камеры на мыши. На тот момент [[Chargin%27 Targe/ru|Штурмовой щит]] был единственным оружием которое могло блокировать движение камеры игрока, Valve сделали лимит на вращение камеры мыши, но забыли о вращении камеры с клавиатуры, после чего был сделан скрипт срабатывающий во время действия штурмового щита и дающий свободное управление во время рывка.
  
<tr>
+
{{Patch name|6|23|2011}}: Исправлена ошибка Штурмового щита, при которой игроки могли использовать некоторые консольные команды для достижения большей чувствительности при повороте, чем предполагалось.
<td class="lgray" align="center">M</td>
+
Однако, баг до сих пор может быть использован с джойстиком.
<td class="lgray" align="center">M</td>
+
====Приседание в прыжке====
</tr>
+
В первых версиях игры ограничений на количество приседаний в полёте не было. Большое количество анимаций приседания в полёте не могло обрабатываться движком игры корректно, однако [[Hitbox/ru|хитбокс]] игрока во время приседания уменьшался. Пользовательские скрипты позволили игрокам по сути уменьшить хитбокс игрока в полёте с помощью многочисленных вызовов команды приседания.
  
<tr>
+
{{Patch name|3|6|2009}}: Теперь в воздухе можно приседать дважды.
<td bgcolor=#ffb449 align="center">N</td>
 
<td bgcolor=#ffb449 align="center">N</td>
 
  
</tr>
+
==== Скрипты Idle (бездействия - предвещения отключения клиента от сервера игры) ====
 +
Большинство серверов используют систему отключения клиентов от сервера игры (кика) игроков из-за злоупотребления [[Item drop system/ru|системы выпадения предметов]]. Игроки могут попытаться перехитрить эти системы с помощью скриптов, имитирующих основные движения.
  
<tr>
+
[http://www.teamfortress.com/post.php?id=11105 Активное решение проблемы использования таких скриптов] требует, чтобы игроки принимали всплывающее уведомление, чтобы продолжать получать предметы.
<td class="lgray" align="center">O</td>
 
<td class="lgray" align="center">O</td>
 
</tr>
 
  
<tr>
+
===Действующие скрипты===
<td bgcolor=#ffb449 align="center">P</td>
 
<td bgcolor=#ffb449 align="center">P</td>
 
</tr>
 
  
<tr>
+
====Возможность прятать модель оружия от первого лица====
<td class="lgray" align="center">Q</td>
+
Существует огромное количество скриптов скрывающие модель оружия от первого лица при смене на определенный слот. Используется это для того, что бы очистить экран для лучшего обзора, обычно используется для оружия ближнего боя, КПК, часов шпиона.
<td class="lgray" align="center">Q</td>
 
</tr>
 
  
<tr>
+
==== Скрипты для увеличения приближения оружием ====
 
+
Изменяя [[Field of View/ru|угол поля зрения]], этот скрипт создает визуальный эффект увеличения изображения оружия, которое находится в руках пользователя. Обычно его можно переключать между увеличенной и обычной версиями. Ниже приведен пример скрипта, который переключает углы поля зрения:
<td bgcolor=#ffb449 align="center">R</td>
+
<pre>
<td bgcolor=#ffb449 align="center">R</td>
+
alias +zoom "fov_desired 20"
</tr>
+
alias -zoom "fov_desired 90"
 
+
bind shift "+zoom"
<tr>
+
</pre>
<td class="lgray" align="center">S</td>
 
<td class="lgray" align="center">S</td>
 
</tr>
 
 
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">T</td>
 
<td bgcolor=#ffb449 align="center">T</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">U</td>
 
<td class="lgray" align="center">U</td>
 
 
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">V</td>
 
<td bgcolor=#ffb449 align="center">V</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">W</td>
 
<td class="lgray" align="center">W</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">X</td>
 
<td bgcolor=#ffb449 align="center">X</td>
 
</tr>
 
 
 
<tr>
 
 
 
<td class="lgray" align="center">Y</td>
 
<td class="lgray" align="center">Y</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">Z</td>
 
<td bgcolor=#ffb449 align="center">Z</td>
 
</tr>
 
 
 
 
 
<!-- F Keys -->
 
<tr>
 
<td class="lgray" align="center">F1</td>
 
<td class="lgray" align="center">F1</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">F2</td>
 
<td bgcolor=#ffb449 align="center">F2</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">F3</td>
 
<td class="lgray" align="center">F3</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">F4</td>
 
<td bgcolor=#ffb449 align="center">F4</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">F5</td>
 
<td class="lgray" align="center">F5</td>
 
</tr>
 
 
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">F6</td>
 
<td bgcolor=#ffb449 align="center">F6</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">F7</td>
 
<td class="lgray" align="center">F7</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">F8</td>
 
<td bgcolor=#ffb449 align="center">F8</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">F9</td>
 
<td class="lgray" align="center">F9</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">F10</td>
 
<td bgcolor=#ffb449 align="center">F10</td>
 
</tr>
 
  
<tr>
 
<td class="lgray" align="center">F11</td>
 
<td class="lgray" align="center">F11</td>
 
</tr>
 
  
<tr>
+
====Турельные прыжки====
<td bgcolor=#ffb449 align="center">F12</td>
+
После [[Engineer Update/ru|Обновления Инженера]], [[Engineer/ru|инженеры]] могли поднимать и переносить свои постройки. Одновременно с этим в обновлении был введен [[Wrangler/ru|Поводырь]], который позволял делать [[Sentry jump/ru|турельные прыжки]] с помощью ракет [[Sentry/ru|турели]]. Вместе с этим было обнаружено, что игрок может после прыжка успеть забрать постройку и улететь с ней на ракете выпущенной Поводырем.
<td bgcolor=#ffb449 align="center">F12</td>
+
Даже если человек способен совершить этот подвиг - это трудно, поэтому некоторые игроки написали скрипты способные выполнять эти же действия без труда и гарантировано.
</tr>
 
  
 +
Примечание: [[Rescue Ranger/ru|Спасатель]] может обойти эти действия потратив на телепортацию постройки к вам в руки всего 100  единиц метала.
  
<!-- Other keys -->
+
====Оружейник====
<tr>
+
Очень часто играя с [[Gunslinger/ru|Оружейником]] ваша [[Sentry Gun/ru#Мини-турель|мини-турель]] будет разрушаться, что бы не тратить ценное время на то что бы достать КПК, были сделаны скрипты моментальной установки мини-турели за одно нажатие клавиши, что очень удобно при использовании в связке с [[Frontier Justice/ru|Самосудом]].
<td class="lgray" align="center">`</td>
 
<td class="lgray" align="center">Тильда</td>
 
</tr>
 
  
<tr>
+
====Чувствительность мыши====
<td bgcolor=#ffb449 align="center">'</td>
+
Некоторые игроки предпочитают разную чувствительность мыши для каждого из классов. К примеру для медика высокую чувствительность, чтобы быстрее реагировать на раненных, а для снайпера меньшую чувствительность во время прицеливания и нормальную при опущенном прицеле и тому подобное.
<td bgcolor=#ffb449 align="center">Одиночная кавычка</td>
 
</tr>
 
  
<tr>
+
====Взлет с Штурмовым щитом====
<td class="lgray" align="center">-</td>
+
Иногда, прыжок на далекое расстояние с Штурмовым щитом может быть проблемой для некоторых игроков, ибо трудно нажать одновременно прыжок и удар ближним боем, поэтому есть очень простой скрипт который выполняет оба действия за одно нажатие, что дает взлет практически с любой наклонной поверхности.
<td class="lgray" align="center">Дефис</td>
 
</tr>
 
  
<tr>
+
====Быстрое прицеливание====
 +
Многим игрокам трудно быстро попасть в голову после включения прицела. Есть скрипты способные быстро взвести винтовку к прицелу, но не дающие много времени на прицеливание.
  
<td bgcolor=#ffb449 align="center">=</td>
+
====Ракетный прыжок====
<td bgcolor=#ffb449 align="center">Знак равно</td>
+
Существует много скриптов на возможность максимального высокого или максимально дальнего прыжка на ракете, при этом скрипт позволяет сделать такой прыжок всего за одну кнопку.
</tr>
 
  
<tr>
+
==== Скрипт авто-маскировки ====
<td class="lgray" align="center">]</td>
+
Для шпионов, которым сложно или неудобно маскироваться вручную. Обычно автоматическую маскировку можно переключать и настраивать.
<td class="lgray" align="center">Правая квадратная скобка</td>
 
</tr>
 
  
 +
==== Скрипты для уведомления о готовности убер-заряда ====
 +
С помощью этого скрипта при активации убер-заряда, будучи классом [[Medic/ru|медик]] также будет отправлено сообщение в командный чат, чтобы предупредить ваших товарищей по команде о вашей активации, чтобы побудить вашу команду двигаться вперёд вместе с вами. Аналогичный скрипт при активации воспроизводит голосовую команду «Убер-заряд готов», одновременно отправляя сообщение в командный чат, что вы использовали свой Über.
  
<tr>
 
<td bgcolor=#ffb449 align="center">\</td>
 
<td bgcolor=#ffb449 align="center">Обратная косая черта</td>
 
</tr>
 
  
<tr>
+
==== Medic Radar (радар медика)====
<td class="lgray" align="center">,</td>
+
Этот скрипт работает только для медика. Это позволяет вам видеть местоположение ближайших товарищей по команде.
<td class="lgray" align="center">Запятая</td>
+
Скрипт:
</tr>
+
<pre>alias "autocall_default" "hud_medicautocallersthreshold 75.730003/Custom Threshold"
 +
alias "autocall_all" "hud_medicautocallersthreshold 150"
 +
alias "+radar" "autocall_all"
 +
alias "-radar" "autocall_default"
 +
bind [KEY] "+radar</pre>
  
<tr>
+
==== (Kill-Bind Scripts) Бинд на самоубийство ====
<td bgcolor=#ffb449 align="center">/</td>
+
{{main|Suicide/ru|l1=Самоубийство}}
<td bgcolor=#ffb449 align="center">Косая черта</td>
+
В определенных обстоятельствах, например, когда медик загоняет противника в угол с помощью [[Übersaw/ru|Убер-пилы]], классу может быть полезно иметь возможность быстро покончить с собой (в данном случае, лишить медика возможности накапливать убер-заряд с каждым ударом) с помощью привязки клавиши (например, <code>bind k kill</code>). Хотя в основном это актуально только в соревновательной игре, иногда это используется на серверах для создания комедийного эффекта, а не для улучшения игрового процесса. Связывание kill может быть настроено на взрыв вашего персонажа, если вместо этого вы используете <code>explode</code> (например, <code> bind k explode</code>). Особой разницы между этими двумя параметрами нет.
</tr>
 
  
<tr>
+
==== Скрипты Null-Cancelling Movement (отмена залипания двух клавиш передвижения)  ====
<td class="lgray" align="center">SPACE</td>
+
In stock TF2, pressing two opposing movement keys at once (such as «A» (+moveleft) and «D» (+moveright)) will cancel all movement and render the player immobile, which can be a fatal mistake during battle. This script makes it so that the direction of the last key pressed will be used instead. For example, pressing «A» will make the player go left, and pressing «D» while still holding «A» will make the player go right instead of stopping.
<td class="lgray" align="center">Пробел</td>
 
</tr>
 
  
 +
В TF2 одновременное нажатие двух противоположных клавиш перемещения (таких как «A» (+moveleft) и «D» (+moveright)) отменяет все перемещения и делает игрока неподвижным, что может стать фатальной ошибкой во время боя. Этот скрипт делает так, что вместо этого будет использоваться направление последнего нажатия клавиши. Например, нажатие «A» заставит игрока повернуть налево, а нажатие «D» с одновременным удерживанием «A» заставит игрока повернуть направо, вместо того чтобы остановиться.
  
<tr>
+
==== Скрипты привязки для чата ====
<td bgcolor=#ffb449 align="center">ENTER</td>
+
Скрипты привязки для чата предназначены для отправки заранее написанного сообщения во внутриигровом текстовом чате. Как правило, пользователи привязывают эти скрипты к клавише на своей клавиатуре для удобства повторения. Эти сценарии могут варьироваться от пользователя к пользователю и могут содержать всё, что угодно, в пределах текстового лимита. Некоторые общие привязки используются для координации команды, например, привязка, сообщающая команде, что их медик уже накопил [[ÜberCharge/ru|убер-заряд]]. Другие общие привязки используются для подшучивания, например, сообщения об убийствах и/или доминировании. Другим вариантом этого является привязка к торговому предложению, при которой в чат отправляется информация о возможном торговом предложении покупки, продажи, или обмена. Этот тип скрипта также может быть автоматизирован для отправки этих сообщений каждые пару минут.
<td bgcolor=#ffb449 align="center">Ввод</td>
 
</tr>
 
  
<tr>
+
==== Voice Toggle ====
<td class="lgray" align="center">ESCAPE</td>
+
Этот скрипт позволяет вам переключать ваш микрофон в режим включен, выключен вместо режима «рации».
<td class="lgray" align="center">Выход</td>
+
Скрипт:
</tr>
+
<pre>bind [KEY] mic_toggle
 
+
alias mic_toggle mic_enable
<tr>
+
alias mic_enable "+voicerecord; alias mic_toggle mic_disable"
<td bgcolor=#ffb449 align="center">PAUSE</td>
+
alias mic_disable "-voicerecord; alias mic_toggle mic_enable"</pre>
<td bgcolor=#ffb449 align="center">Пауза</td>
 
</tr>
 
 
 
 
 
 
 
 
 
<tr>
 
<td class="lgray" align="center">BACKSPACE</td>
 
<td class="lgray" align="center">Удалить назад</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">TAB</td>
 
<td bgcolor=#ffb449 align="center">Табуляция</td>
 
</tr>
 
 
 
 
 
<tr>
 
<td class="lgray" align="center">SEMICOLON</td>
 
<td class="lgray" align="center">Точка с запятой</td>
 
</tr>
 
 
 
 
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">SHIFT</td>
 
<td bgcolor=#ffb449 align="center">Шифт</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">CTRL</td>
 
<td class="lgray" align="center">Контроль</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">ALT</td>
 
<td bgcolor=#ffb449 align="center">Альт</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">UPARROW</td>
 
<td class="lgray" align="center">Стрелка вверх</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">DOWNARROW</td>
 
<td bgcolor=#ffb449 align="center">Стрелка вниз</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">LEFTARROW</td>
 
<td class="lgray" align="center">Стрелка влево</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">RIGHTARROW</td>
 
<td bgcolor=#ffb449 align="center">Стрелка вправо</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">INS</td>
 
<td class="lgray" align="center">Вставка</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">HOME</td>
 
<td bgcolor=#ffb449 align="center">Домой</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">PGUP</td>
 
<td class="lgray" align="center">Страница вверх</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">PGDN</td>
 
<td bgcolor=#ffb449 align="center">Страница вниз</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">DEL</td>
 
<td class="lgray" align="center">Удалить</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">END</td>
 
<td bgcolor=#ffb449 align="center">Конец</td>
 
</tr>
 
 
 
 
 
<!-- Keypad -->
 
<tr>
 
<td class="lgray" align="center">KP_HOME</td>
 
<td class="lgray" align="center">Домой (ЦБ)<ref>ЦБ — цифровой блок.</ref> / 7</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">KP_UPARROW</td>
 
<td bgcolor=#ffb449 align="center">Стрелка вверх (ЦБ) / 8</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">KP_PGUP</td>
 
<td class="lgray" align="center">Страница вверх (ЦБ) / 9</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">KP_LEFTARROW</td>
 
<td bgcolor=#ffb449 align="center">Стрелка влево (ЦБ) / 4</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">KP_5</td>
 
<td class="lgray" align="center">5 (ЦБ) </td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">KP_RIGHTARROW</td>
 
<td bgcolor=#ffb449 align="center">Стрелка вправо (ЦБ) / 6</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">KP_END</td>
 
<td class="lgray" align="center">Конец (ЦБ) / 1</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">KP_ENTER</td>
 
<td bgcolor=#ffb449 align="center">Ввод (ЦБ) </td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">KP_DOWNARROW</td>
 
<td bgcolor=#ffb449 align="center">Стрелка вниз (ЦБ) / 2</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">KP_PGDN</td>
 
<td class="lgray" align="center">Страница вниз (ЦБ) / 3</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">KP_INS</td>
 
<td bgcolor=#ffb449 align="center">Вставка (ЦБ) / 0</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">KP_DEL</td>
 
<td class="lgray" align="center">Удалить (ЦБ) /.</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">KP_SLASH</td>
 
<td bgcolor=#ffb449 align="center">Косая черта (ЦБ)</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">KP_MINUS</td>
 
<td class="lgray" align="center">Минус (ЦБ)</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">KP_PLUS</td>
 
<td bgcolor=#ffb449 align="center">Плюс (ЦБ)</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">KP_MULTIPLY</td>
 
<td class="lgray" align="center">Умножение (ЦБ)</td>
 
</tr>
 
 
 
 
 
<!-- Mouse buttons -->
 
<tr>
 
<td bgcolor=#ffb449 align="center">MOUSE1</td>
 
<td bgcolor=#ffb449 align="center">Левая кнопка мыши</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">MOUSE2</td>
 
<td class="lgray" align="center">Правая кнопка мыши</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">MOUSE3</td>
 
<td bgcolor=#ffb449 align="center">Средняя кнопка мыши (колёсико)</td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">MOUSE4</td>
 
<td class="lgray" align="center">Дополнительная кнопка мыши<ref>Эта кнопка используется на нестандартных мышках.</ref></td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">MOUSE5</td>
 
<td bgcolor=#ffb449 align="center">Дополнительная кнопка мыши<ref>Эта кнопка используется на нестандартных мышках.</ref></td>
 
</tr>
 
 
 
<tr>
 
<td class="lgray" align="center">MWHEELUP</td>
 
<td class="lgray" align="center">Прокрутка колёсика вверх</td>
 
</tr>
 
 
 
<tr>
 
<td bgcolor=#ffb449 align="center">MWHEELDOWN</td>
 
<td bgcolor=#ffb449 align="center">Прокрутка колёсика вниз</td>
 
</tr>
 
 
 
</table>
 
</div>
 
  
 
== Примечания ==
 
== Примечания ==
<references/>
+
* Объем каждого файла .cfg ограничен одним файлом в 1,04858 [[w:mebibyte/мегабайт]] информации. Это ограничение можно обойти, [[##Exec|запустив]] другой конфигурационный файл, одновременно с другим.
 
+
== см. также ==
== См. также==
 
 
* [[List of useful console commands/ru|Список полезных консольных команд]]
 
* [[List of useful console commands/ru|Список полезных консольных команд]]
 +
* {{vdc|Список консольных команд и их разновидностей}}
 +
* {{vdc|Command Line Options|Параметры командной строки}}
 +
* {{vdc|VScript}}
 +
* [[Cheats/ru|консольные читы]]
  
 
== Ссылки ==
 
== Ссылки ==
* [http://www.gamebanana.com/tuts/4646 FPSBanana.com]
+
*[http://www.gamebanana.com/scripts/games/297 Сотни скриптов на Gamebanana(англ.)]
* [http://www.gamebanana.com/tuts/2290 FPSBanana.com]
+
* [https://cfg.tf сайт, посвященный конфигурации Team Fortress 2]
*[http://clancya.org/2007/10/13/list-of-tf2source-engine-keyboard-keys-that-can-be-binded Clancya.org]
 
* [http://developer.valvesoftware.com/wiki/Bind Valve Developer Community]
 
  
 
[[Category:Customization/ru]]
 
[[Category:Customization/ru]]
{{track me}}
 

Latest revision as of 15:01, 6 August 2025

Скриптинг — это использование файлов конфигурации (.cfg) для создания различных биндов/байндов (англ. bind) и alias, которые связывают вашу клавиатуру, мышь или джойстик с консольными командами. Скрипты изначально существуют в Team Fortress, поэтому блокировка от VAC (Valve Anti-Cheat) невозможна. Использование скриптов варьируется от простейших биндов, таких, как «bind «w» «+forward»» - бинд позволяющий нам двигаться вперед в игре, до скриптов позволяющие строить постройки инженера без КПК при этом используя на клавиатуре всего несколько клавиш! Конечно, любое действие воспроизведенное скриптом можно повторить и без него, но в быстро изменяющейся ситуации, когда каждая секунда на счету, скрипты вам несомненно помогут.

Примечание: если bind не работает, то могут помочь кавычки. Пример: bind "r" "voicemenu 2 6".

Содержание

Стандартные Файлы для Скриптов

Team Fortress автоматически считывает информацию с игровых файлов и выполняет любые скрипты внутри них. Список файлов:

  • config.cfg - стандартный файл с вашими изменениями внутри игры, к примеру, настройка графики, управления, звука и тому подобное. Не зная, какая и за что команда отвечает не стоит изменять там что-либо.
    • config_default.cfg - стандартный файл, с базовыми настройками игры, таких как при первой установке.
  • autoexec.cfg - стандартный файл, при каждом включении игры подгружает вписанные в него скрипты, по-стандарту пустой.
  • (имя-класса).cfg - файлы для создания скриптов под определенный класс, к примеру, «Pyro.cfg» включится при выборе класса Поджигателя в игре.

Местонахождение Файлов

В Windows, файлы хранятся в: «<Steam Folder>/SteamApps/common/Team Fortress 2/tf/cfg».
В Mac, файлы хранятся по адресу: «~/Library/Application Support/Steam/SteamApps/common/Team Fortress 2/tf/cfg».
После обновления SteamPipe, файлы также могут хранится в «.../SteamApps/common/Team Fortress 2/tf/custom/yourfoldernamehere/cfg».

Команды

Ниже приведены команды не используемые нигде кроме скриптов, а также не влияющие напрямую на игровой процесс.

Bind

Самая простая команда. Выполняет определенное действие при нажатии на определенную кнопку.

bind [КЛАВИША] [ДЕЙСТВИЕ]
Рекомендуется писать название клавиши и действие в кавычках.
bind [КЛАВИША] "[ДЕЙСТВИЕ; ДЕЙСТВИЕ 1; ДЕЙСТВИЕ 2]"
Бинд, содержащий количество действий больше одного, должен быть выделен кавычками, а сами действия, кроме последнего, должны оканчиваться точкой с запятой - «;»

Бинды бывают двух видов:

bind "e" "+helpme"
При нажатии E игрок позовет медика.

bind "w" "+forward"
При зажимании W игрок пойдет вперед.

Toggle

Эта команда позволяет переключать действия содержащие несколько значений.

toggle «[ДЕЙСТВИЕ 0 1]»

BindToggle

Команда идентична Toggle, отличается тем, что переключение действия можно привязать к кнопке.

BindToggle «[КЛАВИША]» «[ДЕЙСТВИЕ 0 1]»

IncrementVar

Это позволяет переменным быть уменьшенным или увеличенным настолько, насколько было установлено ограничение.

bind [КЛАВИША 1] [ПЕРЕМЕННАЯ 75 90 1]
bind [КЛАВИША 2] [ПЕРЕМЕННАЯ 75 90 -1]
При нажатии на первую клавишу, переменная увеличится на 1 единицу, в итоге мы получим переменную со значением 76.
При нажатии на вторую клавишу, переменная уменьшится на 1 единицу, в итоге мы получим число со значением 74.

Alias

Эта команда позволяет нам объединить несколько действий в одну команду. Полезно использовать для сокращения биндов, которые состоят из большого количества действий. Может содержать любые команды и переменные. Примечание: Можно присвоить любое имя на английском и не содержащее пробелов.

alias Medic! «voicecommand 0 0» bind «e» Medic!

Работает как обычный бинд, при нажатии на E игрок позовет медика.

Exec

Консольная команда позволяющая подгружать любой файл в игру находящийся в папке «config».

exec autoexec.cfg
Скрипт подгружает в игру ваш «autoexec.cfg»

Echo

Эта команда напишет любой текст у вас в консоли. Очень полезно для отладки вашего скрипта.

echo " Scripting is very useful. "
Это выведет в консоль: Scripting is very useful.
Примечание: echo неправильно интерпретирует кавычки, их использование приводит к неработоспособности команды.

Wait

Команда сообщает игре заданное время ожидания до следующего действия.
Примечание: 1 секунда приравнивается к количеству тикрейта сервера.
Внимание: Wait отключен на некоторых серверах, что приводит к неработоспособности скрипта, а иногда способствует «падению» игры.

"echo Why did the chicken cross the road?; wait 66; echo To get to the other side!"
Скрипт сначала напишет в консоль первую фразу, а через секунду, если тикрейт сервера 66, последнюю.

Файлы .cfg, относящиеся к конкретному классу

При переключении на определенный класс игра запускает соответствующий CFG-файл (если он существует), названный, в соответствии с названием класса.

scout.cfg (разведчик)
soldier.cfg (солдат)
pyro.cfg (поджигатель) 
demoman.cfg (подрывник)
heavyweapons.cfg (пулемётчик)
engineer.cfg (инженер)
medic.cfg (медик)
sniper.cfg (снайпер)
spy.cfg (шпион)

Это позволяет игроку использовать разные комбинации клавиш и игровые настройки для каждого класса.

.vpk и .cfg файлы

.vpk files take priority over config files located within the cfg folder. Mods using .vpk files may run the risk of negatively interfering with any custom configuration changes, however, some mods provide methods to override the configs from within the .vpk files natively. Файлы .vpk имеют приоритет над файлами конфигурации (.cfg), расположенными в папке cfg. Моды, использующие файлы .vpk, могут создавать риск ошибок на любые пользовательские изменения конфигурации, однако некоторые моды предоставляют методы для переопределения конфигураций из файлов .vpk в файлы .cfg изначально.

Параметры запуска

Параметры запуска могут быть использованы для изменения режима работы TF2, как с точки зрения производительности, так и функциональности. Смю полный список параметров запуска в разделе Параметры командной строки (английский) в Сообществе разработчиков Valve (английский).

Настройки параметров запуска

Наглядное руководство по настройке параметров запуска.
  1. Right-click on the game title under the Library in Steam and select Properties.
  2. Щёлкните правой кнопкой мыши на названии игры в разделе Библиотека в Steam и выберите Свойства...
  3. В вкладке Общие найдите строку Параметры запуска.
  4. Введите параметры запуска, которые вы хотите применить (обязательно разделяйте каждый параметр пробелом).
  5. Закройте окно Свойства и запустите игру.

Режим отображения

Обратите внимание, что это может привести к неправильной настройке режима отображения, который может конфликтовать с другими параметрами, и также привести к снижению производительности. По возможности, вам следует использовать игровые настройки, заместо данного параметра

Разрешение

Параметр запуска: -w # -h #

Описание: Запускает игру в заданной высоте и ширине (w - ширина, h - высота).

Refresh Rate

Параметр запуска: -freq #

Описание: Forces the game refresh rate in Hz.

В окне

Параметр запуска: -windowed

Описание: Запускает игру в режиме отображения «В окне».

В окне (без рамки)

Параметр запуска: -noborder

Описание: Запускает игру в режиме «в окне», но без границ окна.

На весь экран

Параметр запуска: -fullscreen

Описание: Запускает игру в режиме «На весь экран».

Периферийная поддержка

Отключить поддержку джойстика

Параметр запуска: -nojoy

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

Отключить поддержку Steam Controller

Параметр запуска: -nosteamcontroller

Описание: Предотвращает загрузку Steam Сontroller, что увеличивает время запуска и объем используемой памяти. Не используйте это, если вы собираетесь использовать Steam controller в игре.

Программное обеспечение

Отключить SourceTV

Параметр запуска: -nohltv

Описание: Отключает поддержку SourceTV, что улучшает использование памяти. Не используйте это, если вы используете SourceTV.

Сетевые параметры

Включить поддельный IP-адрес

Параметр запуска: -enablefakeip

Описание: Uses a Зарезервированные IP-адреса вместо вашего собственного и анонимный идентификатор сервера при использовании локального сервера. Если параметр sv_lan установлен на значении 0 - это позволит другим игрокам подключаться к вашему локальному серверу.

Параметры игрового движка

Отключить вступительную заставку

Launch Option: -novid

Описание: Удаляет вступительную заставку Valve, показанное при запуске игры, что сокращает время загрузки.

Изменения лимита частиц

Параметр запуска: -particles #

Описание: Ограничивает количество частиц на экране. Установите для параметра # значение от '1' и не более 512.

Предварительный рендеринг шрифтов в кэше

Параметр запуска: -precachefontchars

Описание: Предварительно кэширует рендеринг шрифта для распространённых символов, сокращая время рендеринга.

Отключить потоковую передачу текстур

Параметр запуска: -no_texture_stream

Описание: Отключает использование текстур более низкого качества при загрузке версий более высокого качества. Это позволяет мгновенно загружать версии более высокого качества. Отключение потоковой передачи текстур приводит к повышению производительности в системах, работающих на графических процессорах с низким объёмом видеопамяти.

Выбор версии DirectX (только на Windows ОС)

Параметр запуска: -dxlevel #

Описание: Выбирает версию DirectX, используемую в игре; принимает множество значений в диапазоне от 80 до 100. Ручная настройка уровней DirectX является экспериментальной и обычно изменяется для поддержки более старого оборудования.
'-dxlevel 100' использует DirectX 9. Аппаратное обеспечение автоматически определяется для выбора графических возможностей системы.
'-dxlevel 81' самая стабильная версия DirectX для графических процессоров, выпущенных до 2004 года. DirectX 8 имеет ограниченный набор функций, таких как отсутствие Боевых окрасок на оружии и прозрачности на моделях (таких как Проклятая душа вуду). Значения ниже 81 приведут к еще большему количеству графических ошибок. Этого следует избегать, за исключением случаев, когда это необходимо по совместимости с оборудованием.
Примечание: После однократного запуска игры с помощью команды -dxlevel игру следует закрыть, а затем полностью удалить параметр запуска, прежде чем запускать игру снова.

Vulkan (только на Windows ОС)

Параметр запуска: -vulkan

Описание: Включает w:Vulkan/Vulkan вместо DirectX. В системах Linux Vulkan включен по умолчанию.

Запуск скрипта при запуске игры

Параметр запуска: +exec script.cfg

Описание: Запускает указанный скрипт при запуске игры.

Pictogram comment.png Примечание: скрипт, названный autoexec.cfg автоматически запускается при запуске игры.

Список имен клавиш

Наведите курсор на клавишу, чтобы увидеть имя.

ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12

` 1 2 3 4 5 6 7 8 9 0 - = Delete

Tab ⇆ Q W E R T Y U I O P [ ] \

⇪ Caps A S D F G H J K L ; '   ↵  

⇧ Shift Z X C V B N M , . / ⇧ Shift

Ctrl Alt       Spacebar       ≣ Menu Ctrl

PrtScn ScrLk Pause

Insert Home PgUp

Delete End PgDn


       

   

Num / * -
7 8 9 +
4 5 6
1 2 3
    0     .
Кнопка мыши имя клавиши
Колесико вверх MWHEELUP
Колесико вниз MWHEELDOWN
ЛКМ MOUSE1
ПКМ MOUSE2
Колесико MOUSE3
Вперед MOUSE4
Назад MOUSE5

Полезные команды

Основная статья: Список команд и переменных TF2(англ.)

Маскировка

Команда disguise имеет два значения, первая отвечает за класс, вторая за команду.

Класс
1. Разведчик
2. Снайпер
3. Солдат
4. Подрывник
5. Медик
6. Пулеметчик
7. Поджигатель
8. Шпион
9. Инженер
Команда
1. СИН
2. КРС
-1. Противположная команда
-2. Своя команда.

При disguise 5 1 вы замаскируетесь под синего медика, а так disguise 7 -2 под дружественного поджигателя.
Примечание: Маскировка под дружественного шпиона отключает маскировку.

Постройки

Команда build имеет два значения, первая отвечает за саму постройку, вторая за её тип.
build 0 0 построит Раздатчик (Только инженер)
build 1 0 построит Телепорт (Только инженер)
build 1 1 построит Выход телепорта (Только инженер)
build 2 0 построит Турель (Только инженер)
build 3 0 построит Жучок (Только шпион)

Аналогичным образом, команда destroy будет разрушать постройки.
destroy 0 0 разрушит Раздатчик (Только инженер)
destroy 1 0 разрушит Телепорт (Только инженер)
destroy 1 1 разрушит Выход телепорта (Только инженер)
destroy 2 0 разрушит Турель (Только инженер)
Примечание: Жучки не разрушаются.

Голосовое меню

Команда voicemenu имеет два значения, первое отвечает за номер меню, второе за номер команды.

  • 0 (Голосовое меню 1)
    0: МЕДИК!
    1: Спасибо!
    2: Вперед! Вперед!
    3: Продвигаемся!
    4: Налево
    5: Направо
    6: Да
    7: Нет
  • 1 (Голосовое меню 2)
    0: Нас атакуют!
    1: Шпион!
    2: Впереди турель!
    3: Постройте телепорт
    4: Постройте раздатчик
    5: Постройте турель
    6: Давай убер!
    7: МЕДИК: Убер-заряд накоплен
  • 2 (Голосовое меню 3)
    0: На помощь!
    1: Боевой клич
    2: Молодцы
    3: Глупцы
    4: Одобрение
    5: Негативная реакция
    6: Отличный выстрел
    7: Хорошая работа

Примечание: Порядковый номер указан на единицу меньше, чем в игре.

Телепортация Озарением

The eureka_teleport Инженер, может телепортироваться при помощи Озарения с зажатой клавишей на зону возрождения или к своему выходу из телепорта.

Разное

  • clear очищает полностью консоль от текста.
  • fov_desired (75-90) устанавливает ваше поле зрения.
  • viewmodel_fov устанавливает поле обзора для вашего оружия. По-стандарту используется значение 55.
  • r_drawviewmodel (0/1) показывает (1) или скрывает (0) ваше оружие на экране.
  • lastdisguise маскирует вас под последнюю использованную маскировку. (Только шпион)
  • load_itempreset [0, 1, 2, 3] загружает наборы снаряжения [А, Б, В, Г].
  • say "message" отправит сообщение в общий чат.
  • say_team "message" отправит сообщение в командный чат.
  • +taunt активирует насмешку.
  • +use_action_slot_item использует предмет в слоте действия.
  • volume (0-1) изменяет громкость в игре

Расширенные Методы Написания Скриптов

Toggle

Использование Toggle для действия которое требует удерживания клавиши.

bind "w" toggle
alias toggle "enable"
alias enable "alias toggle disable; +forward"
alias disable "alias toggle enable; -forward"
Скрипт заставляет игрока бежать вперед при нажатии W, а при повторном нажатии заставит его остановится.

Комбинации клавиш

Это делает возможным использование сочетаний, что сокращает общее количество занятых клавиш, да и просто является удобным.

bind "e" call
alias call Call_For_Medic
alias Call_For_Medic "Voicemenu 0 0"
alias Call_For_Ubercharge "Voicemenu 1 6"
На данный момент, при нажатии E, скрипт будет работать как обычная команда «МЕДИК»! , но остался не использованным alias с командой «Давай убер!».
bind shift +toggleState
alias +toggleState "alias call Call_For_Ubercharge"
alias -toggleState "alias call Call_For_Medic
Готово! Теперь при нажатии E игрок зовет медика, а при нажатии ⇧ Shift+E он попросит дать убер.

Wait-test (Wait-тест)

Скрипт, проверяющий на работоспособность команду wait на сервере к которому вы присоединились.

alias waitTester "alias waitTest waitPositive; wait; waitTest"
alias wait "alias waitTest waitNegative"
alias waitPositive "echo Wait is enabled on this server.; exec waitPositive.cfg"
alias waitNegative "echo Wait is DISABLED on this server!; exec waitNegative.cfg"
waitTester

Скрипт основан на том, что если wait отключен на сервере то его имя можно использовать в alias, таким образом, если на сервере отключён wait то включится alias с аналогичным именем и сообщит нам об этом в консоль, и запустит файл «waitNegative.cfg», в обратном случае, в консоли будет сообщение о действии команды wait и запустится файл «waitPositive.cfg»

Loops (Циклы)

Внимание: Циклы без использования wait могут привести к зависанию игры.
Использование alias, который обращается к самому себе - бесконечный цикл, потому что эти скрипты нельзя сломать или перезапустить. Так или иначе, цикл включает в себя две части: Часть ожидания и часть повторения.
alias loop "+taunt; wait 132; redirect"
alias redirect loop
bind g "redirect"
bind o "alias redirect break"
alias break "alias redirect loop"
Этот скрипт зацикливается при нажатии G. Он включает насмешку через каждые 132 кадра(2 секунды на большинстве серверов). Клавиша O приведет к следующему повтору цикла. Alias break перезапускает цикл и через некоторое время он начинается снова.

Alias (Последовательности)

alias +pyrocombo "slot1;+attack;wait 32;slot2"
alias -pyrocombo "-attack;slot1"

This script will create two aliases, one to start a sequence, and one to end it. The sequence will switch to a Pyro's Degreaser and fire for 32 ticks, before switching to the Panic Attack and shooting until the button is no longer held. Sequences can also be made like this: Этот скрипт создаст два параметра alias: один для начала последовательности, а другой для ее завершения. Последовательность сначала переключится на Чистильщика и будет выпускать пламя в течение 32 тиков, затем переключится на Паническую атаку и стрелять до тех пор, пока кнопка больше не будет зажата. Последовательности также могут быть выполнены следующим образом:


alias quickscope "slot1;+attack2;wait 32;+attack;wait 16;-attack;-attack2"

This script will create a sequence alias, that once activated will cause the Sniper to quick-scope his Sniper Rifle; by executing the long string of commands called a sequence. Sequences are useful in making scripts, and learning how to make one will help in the long run of scripting. Этот скрипт создаст последовательность, которая после активации заставит снайпера быстро прицелиться в свою Снайперскую винтовку и выстрелить. Последовательности полезны при создании сценариев консольных команд.

Cycles (другая разновидность циклов)

Cycle - это сценарий переключения, в котором есть как минимум 3 возможных варианта, которые повторяются (например, 1, 2, 3, 1). Пример:

alias message_1 "say message 1.; bind x message_2"
alias message_2 "say message 2.; bind x message_3"
alias message_3 "say message 3.; bind x message_1"
bind x message_1

Этот скрипт делает так, что нажатие клавиши X будет сначала воспроизведёт голосовую команду «сообщение 1», «сообщение 2» и затем «сообщение 3».

Pictogram comment.png toggle, incrementvar, and multvar часто может использоваться вместо alias (последовательностей) при изменении консольной переменной.
.}}

Selection addons (Выбор адд-онов)

Сценарий выбора встроен в Cycle, что делает его более интуитивно понятным. Сценарии выбора позволяют выполнять циклические действия c первой по последнее и с последнего по первый, что в конечном итоге дает больше контроля при выборе команд для использования.

alias CondC_UP Cond1
alias CondC_DOWN Cond5
alias ApplyCond ApplyCond33
alias ApplyCond33 "addcond 33"
alias ApplyCond49 "addcond 49"
alias ApplyCond72 "addcond 72"
alias ApplyCond74 "addcond 74"
alias ApplyCond90 "addcond 90"
alias Cond1 "alias CondC_UP Cond2;alias CondC_DOWN Cond5;alias ApplyCond ApplyCond33"
alias Cond2 "alias CondC_UP Cond3;alias CondC_DOWN Cond1;alias ApplyCond ApplyCond49"
alias Cond3 "alias CondC_UP Cond4;alias CondC_DOWN Cond2;alias ApplyCond ApplyCond72"
alias Cond4 "alias CondC_UP Cond5;alias CondC_DOWN Cond3;alias ApplyCond ApplyCond74"
alias Cond5 "alias CondC_UP Cond1;alias CondC_DOWN Cond4;alias ApplyCond ApplyCond90"

Это дает больше контроля над тем, какие условия проигрывать. Это также обеспечивает большую свободу выбора и простоту использования, поскольку позволяет прокручивать параметры в цикле.

Randomization (Рандомизация)

Рандомизация - странная и нишевая функция. Рандомизация используется редко, так как большинство процессов не так полезны, когда они рандомизированы. Однако рандомизация может быть полезна для привязки к чату, например, для рекламы с предложениями обмена в чате.

Примечание: Из-за особенностей сценариев TF2 этот раздел будет довольно длинным. Если вы еще не имеете представления о том, как работают Cycle, представленная информация может оказаться неактуальной.

alias call f1
alias cycle c2

alias c1 "alias cycle c2;alias call f1"
alias c2 "alias cycle c3;alias call f2"
alias c3 "alias cycle c4;alias call f3"
alias c4 "alias cycle c5;alias call f4"
alias c5 "alias cycle c1;alias call f5"

alias f1 "say 1"
alias f2 "say 2"
alias f3 "say 3"
alias f4 "say 4"
alias f5 "say 5"

alias +w "+forward;cycle"
alias -w "-forward;cycle"
alias +a "+moveleft;cycle"
alias -a "-moveleft;cycle"
alias +s "+back;cycle"
alias -s "-back;cycle"
alias +d "+moveright;cycle"
alias -d "-moveright;cycle"

bind o call
bind w +w
bind a +a
bind s +s
bind d +d

This script is assigning and resigning multiple alias values. When any of the WASD keys are pressed or released, the cycle command is ran, which moves the cycle command to the next value in the cycle and sets the «call» command to a value corresponding to the cycle number. This is based on the player's movement, and only changes values if the player is moving. It is possible to make this randomizer more effective by using other various techniques stated here (ex. Loops), but this example is for demonstration purposes only.

Этот скрипт назначает и переназначает несколько значений alias. При нажатии или отпускании любой из клавиш WASD выполняется команда цикла, которая перемещает команду Cycle к следующему значению в Cycle и устанавливает для консольной команды значение «call» , соответствующее номеру Cycle. Это основано на движении игрока и изменяет значения только в том случае, если игрок движется. Можно сделать этот рандомизатор консольных команд более эффективным, используя другие различные методы, описанные здесь (например Cycle), но этот пример предназначен только для демонстрации.

Timed action Рассчитанное по времени действие

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

alias "+ti_zoom" "alias zoom_con zoomOn; wait 132; zoom_con"
alias "-ti_zoom" "zoomOff; alias zoom_con ; rb_tizoom-M4"
alias "rb_tizoom-M4" "unbind mouse4; wait 132; bind mouse4 +ti_zoom"
alias "zoomOn" "fov_desired 20; r_drawviewmodel 0"
alias "zoomOff" "fov_desired 90; r_drawviewmodel 1"
bind "mouse4" "+ti_zoom"

Нажатие (и немедленное отпускание) Mouse 4 при загруженном этом скрипте не окажет заметного эффекта, однако удерживание нажатой Mouse 4 в течение 2 секунд приведет к тому, что скрипт снизит угол обзора до 20 и скроет переменную viewmodels. Отпускание Mouse 4 в любой момент отменит эти изменения, установив поле обзора равным 90 и обратно отобразив переменную viewmodels.

This works because of the use of + and - aliases. Pressing the key +ti_zoom is bound to will redefine zoom_con to activate the script, and if left pressed for the wait duration will execute the script. However, if the button is released, zoom_con is redefined to do nothing. The key is then «disabled» by being unbound for the same wait duration, and rebound afterwards to restore use of the key.

Это работает из-за использования alias + и -. Нажатие клавиши +ti_zoom обязательно приведёт к переопределению значения zoom_con для активации скрипта, и, если оставить нажатой клавишу в течение ожидания , скрипт запустится. Однако, если кнопка отпущена, zoom_con переопределяется таким образом, что ничего в этот момент не будет выполняться. Затем клавиша «отключается», поскольку она отключается на тот же период ожидания , а затем возвращается для восстановления использования клавиши.

Примечание: Повторная привязка клавиши технически имеет ограничение, так как скрипт не выполнит синхронизированное действие, если кнопка будет отпущена. Однако, если кнопка будет нажата несколько раз, можно выполнить синхронизированное действие, если alias подтверждения (в данном случае, zoom_con) определён правильно, поскольку любое из нажатий приведет к его выполнению заданных действий. «Отключение» клавиши на ту же продолжительность, что и первоначальная задержка wait, гарантирует, что эффект не сработает при быстром нажатии кнопки.


Базовые условия

Базовое условие позволяет сценарию изменять своё поведение, не запуская полностью новый сценарий. Используя фиктивный alias, можно изменить результат ввода на основе других входных данных. Базовые условия могут поддерживать потенциально бесконечно много проверок состояния других консольных команд, однако маловероятно, что сценарию потребуется больше нескольких проверок для каждого условного выражения.

Простой пример базового условия:

alias "check_test" "alias test success; check1; check2; test"
alias "check1" ""
alias "check2" ""
alias "test" "success"

alias "fail_check" "alias test failure"

alias "success" "echo SUCCESS!"
alias "failure" "echo FAILURE!"

alias "+k_pressed" "alias check1 fail_check"
alias "-k_pressed" "alias check1"
alias "+j_pressed" "alias check2 fail_check"
alias "-j_pressed" "alias check2"

bind "l" "check_test"
bind "j" "+j_pressed"
bind "k" "+k_pressed"

Основной функцией этого скрипта является alias check_test. При запуске этот alias проверяет два других условия, и если проверки завершаются успешно, он запускает alias success. Однако, если одна из проверок завершается неудачей, используется фиктивный alias test для запуска alias failure. Проще говоря, при успешной проверке команда checking не перенаправляет alias, на который указывает test. Если проверка завершается неудачей, она перенаправляет alias test на другой alias, в котором хранится команда для запуска в случае неудачной проверки..

В этом случае при нажатии кнопки L без нажатия ни J, ни K проверка завершается успешно и на консоль выводится SUCCESS!. Если нажать и удерживать клавишу J или K, а затем нажать клавишу L, проверка завершится ошибкой и в консоль будет выведено FAILURE!.

Пример:

// Изменение цвета перекрестия при передвижении

alias "+w_pressed" "+forward;   alias check_w pressed_w; chc_forward"
alias "+a_pressed" "+moveleft;  alias check_a pressed_a; chc_left"
alias "+s_pressed" "+back;      alias check_s pressed_s; chc_back"
alias "+d_pressed" "+moveright; alias check_d pressed_d; chc_right"

alias "-w_pressed" "-forward;   alias check_w; check_none"
alias "-a_pressed" "-moveleft;  alias check_a; check_none"
alias "-s_pressed" "-back;      alias check_s; check_none"
alias "-d_pressed" "-moveright; alias check_d; check_none"

alias "check_w" 
alias "check_a" 
alias "check_s" 
alias "check_d" 

alias "pressed_w" "dchk_fail; chc_forward"
alias "pressed_a" "dchk_fail; chc_left"
alias "pressed_s" "dchk_fail; chc_back"
alias "pressed_d" "dchk_fail; chc_right"

alias "check_none" "check_s; check_a; check_d; check_w; dmy_check"
alias "dmy_check" "chc_success"

alias "dchk_fail" "alias dmy_check chc_failure"
alias "dchk_reset" "alias dmy_check chc_success"

alias "chc_failure" "dchk_reset"
alias "chc_success" "chc_default"

alias "chc_default" "color0"
alias "chc_forward" "color1"
alias "chc_left"    "color2"
alias "chc_back"    "color3"
alias "chc_right"   "color4"

// Binds (бинды)
bind "w" "+w_pressed"
bind "a" "+a_pressed"
bind "s" "+s_pressed"
bind "d" "+d_pressed"

// Цвета
alias "color0" "cl_crosshair_red 0; cl_crosshair_green 255; cl_crosshair_blue 0"        // Стандартный цвет если не двигаться
alias "color1" "cl_crosshair_red 0; cl_crosshair_green 0; cl_crosshair_blue 255"        // Цвет при движении вперёд
alias "color2" "cl_crosshair_red 255; cl_crosshair_green 0; cl_crosshair_blue 255"      // Цвет при движении влево
alias "color3" "cl_crosshair_red 128; cl_crosshair_green 212; cl_crosshair_blue 255"    // Цвет при движении назад
alias "color4" "cl_crosshair_red 255; cl_crosshair_green 140; cl_crosshair_blue 25"     // Цвет при движении вправо

Этот скрипт изменит цвет перекрестия прицела пользователя, когда он будет нажимать клавиши WASD. Важное примечание: при неудачной проверке он может выполнить несколько действий, а не просто изменить переменную фиктивной консольной команды. Когда проверка завершается неудачно, перекрестие меняет цвет, а также изменяет переменную фиктивной консольной команды на неуспешную проверку. Это означает, что при отпускании нескольких кнопок цвет перекрестия корректно меняется на цвет последней нажатой клавиши.

Сообщение в чате с голосовые репликой

По мере того как скрипты становятся длиннее, потребность в alias с правильными названиями растет. Однако не всегда достаточно просто указать, что должен делать alias, просто указав его. Добавление пары прямых косых черт (//) превратит остальную часть строки в сообщение для чата – никаких действий с текстом произведено не будет.

voicemenu 1 6 //Активирую убер!

Поскольку иногда реплику можно пропустить, то её можно пояснить/дополнить сообщением.

Интересные скрипты

Есть несколько скриптов которые могут или могли раньше повлиять на игровой процесс. В данный момент часть из них не работает, а некоторые работают и сейчас.

Исправленные скрипты

Пистолет

Изначально, пистолет стрелял с каждым нажатием клавиши стрельбы без ограничений по времени. Игроки создали скрипт, который позволял совершить множество кликов за долю секунды, что делало пистолет самым скорострельным оружием в игре.

Обновление от 13 августа 2009: Отныне пистолеты стреляют с фиксированной скоростью, не зависящей от того, насколько быстро вы нажимаете на кнопку стрельбы.

Штурмовой щит

Раньше клавиши на клавиатуре, управляющие вращением камерой, не были связаны с передвижением камеры на мыши. На тот момент Штурмовой щит был единственным оружием которое могло блокировать движение камеры игрока, Valve сделали лимит на вращение камеры мыши, но забыли о вращении камеры с клавиатуры, после чего был сделан скрипт срабатывающий во время действия штурмового щита и дающий свободное управление во время рывка.

Обновление от 23 июня 2011: Исправлена ошибка Штурмового щита, при которой игроки могли использовать некоторые консольные команды для достижения большей чувствительности при повороте, чем предполагалось. Однако, баг до сих пор может быть использован с джойстиком.

Приседание в прыжке

В первых версиях игры ограничений на количество приседаний в полёте не было. Большое количество анимаций приседания в полёте не могло обрабатываться движком игры корректно, однако хитбокс игрока во время приседания уменьшался. Пользовательские скрипты позволили игрокам по сути уменьшить хитбокс игрока в полёте с помощью многочисленных вызовов команды приседания.

Обновление от 6 марта 2009: Теперь в воздухе можно приседать дважды.

Скрипты Idle (бездействия - предвещения отключения клиента от сервера игры)

Большинство серверов используют систему отключения клиентов от сервера игры (кика) игроков из-за злоупотребления системы выпадения предметов. Игроки могут попытаться перехитрить эти системы с помощью скриптов, имитирующих основные движения.

Активное решение проблемы использования таких скриптов требует, чтобы игроки принимали всплывающее уведомление, чтобы продолжать получать предметы.

Действующие скрипты

Возможность прятать модель оружия от первого лица

Существует огромное количество скриптов скрывающие модель оружия от первого лица при смене на определенный слот. Используется это для того, что бы очистить экран для лучшего обзора, обычно используется для оружия ближнего боя, КПК, часов шпиона.

Скрипты для увеличения приближения оружием

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

alias +zoom "fov_desired 20"
alias -zoom "fov_desired 90"
bind shift "+zoom"


Турельные прыжки

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

Примечание: Спасатель может обойти эти действия потратив на телепортацию постройки к вам в руки всего 100 единиц метала.

Оружейник

Очень часто играя с Оружейником ваша мини-турель будет разрушаться, что бы не тратить ценное время на то что бы достать КПК, были сделаны скрипты моментальной установки мини-турели за одно нажатие клавиши, что очень удобно при использовании в связке с Самосудом.

Чувствительность мыши

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

Взлет с Штурмовым щитом

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

Быстрое прицеливание

Многим игрокам трудно быстро попасть в голову после включения прицела. Есть скрипты способные быстро взвести винтовку к прицелу, но не дающие много времени на прицеливание.

Ракетный прыжок

Существует много скриптов на возможность максимального высокого или максимально дальнего прыжка на ракете, при этом скрипт позволяет сделать такой прыжок всего за одну кнопку.

Скрипт авто-маскировки

Для шпионов, которым сложно или неудобно маскироваться вручную. Обычно автоматическую маскировку можно переключать и настраивать.

Скрипты для уведомления о готовности убер-заряда

С помощью этого скрипта при активации убер-заряда, будучи классом медик также будет отправлено сообщение в командный чат, чтобы предупредить ваших товарищей по команде о вашей активации, чтобы побудить вашу команду двигаться вперёд вместе с вами. Аналогичный скрипт при активации воспроизводит голосовую команду «Убер-заряд готов», одновременно отправляя сообщение в командный чат, что вы использовали свой Über.


Medic Radar (радар медика)

Этот скрипт работает только для медика. Это позволяет вам видеть местоположение ближайших товарищей по команде. Скрипт:

alias "autocall_default" "hud_medicautocallersthreshold 75.730003/Custom Threshold"
alias "autocall_all" "hud_medicautocallersthreshold 150"
alias "+radar" "autocall_all"
alias "-radar" "autocall_default"
bind [KEY] "+radar

(Kill-Bind Scripts) Бинд на самоубийство

Основная статья: Самоубийство

В определенных обстоятельствах, например, когда медик загоняет противника в угол с помощью Убер-пилы, классу может быть полезно иметь возможность быстро покончить с собой (в данном случае, лишить медика возможности накапливать убер-заряд с каждым ударом) с помощью привязки клавиши (например, bind k kill). Хотя в основном это актуально только в соревновательной игре, иногда это используется на серверах для создания комедийного эффекта, а не для улучшения игрового процесса. Связывание kill может быть настроено на взрыв вашего персонажа, если вместо этого вы используете explode (например, bind k explode). Особой разницы между этими двумя параметрами нет.

Скрипты Null-Cancelling Movement (отмена залипания двух клавиш передвижения)

In stock TF2, pressing two opposing movement keys at once (such as «A» (+moveleft) and «D» (+moveright)) will cancel all movement and render the player immobile, which can be a fatal mistake during battle. This script makes it so that the direction of the last key pressed will be used instead. For example, pressing «A» will make the player go left, and pressing «D» while still holding «A» will make the player go right instead of stopping.

В TF2 одновременное нажатие двух противоположных клавиш перемещения (таких как «A» (+moveleft) и «D» (+moveright)) отменяет все перемещения и делает игрока неподвижным, что может стать фатальной ошибкой во время боя. Этот скрипт делает так, что вместо этого будет использоваться направление последнего нажатия клавиши. Например, нажатие «A» заставит игрока повернуть налево, а нажатие «D» с одновременным удерживанием «A» заставит игрока повернуть направо, вместо того чтобы остановиться.

Скрипты привязки для чата

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

Voice Toggle

Этот скрипт позволяет вам переключать ваш микрофон в режим включен, выключен вместо режима «рации». Скрипт:

bind [KEY] mic_toggle
alias mic_toggle mic_enable
alias mic_enable "+voicerecord; alias mic_toggle mic_disable"
alias mic_disable "-voicerecord; alias mic_toggle mic_enable"

Примечания

  • Объем каждого файла .cfg ограничен одним файлом в 1,04858 w:mebibyte/мегабайт информации. Это ограничение можно обойти, запустив другой конфигурационный файл, одновременно с другим.

см. также

Ссылки