|
|
(18 intermediate revisions by 10 users not shown) |
Line 1: |
Line 1: |
| {{DISPLAYTITLE:Написание скриптов}} | | {{DISPLAYTITLE:Написание скриптов}} |
− | {{retrans}}
| + | '''Скриптинг''' — это использование файлов конфигурации (.cfg) для создания различных биндов/байндов (англ. bind) и алиасов (англ. alias), которые связывают вашу клавиатуру, мышь или джойстик с [[Console/ru|консольными командами]]. Скрипты изначально существуют в Team Fortress, поэтому блокировка от VAC ([[Valve Anti-Cheat/ru|Valve Anti-Cheat]]) невозможна. Использование скриптов варьируется от простейших биндов, таких, как «bind «w» «+forward»» - бинд позволяющий нам двигаться вперед в игре, до скриптов позволяющие строить постройки [[Engineer/ru|инженера]] без КПК при этом используя на клавиатуре всего несколько клавиш! Конечно, любое действие воспроизведенное скриптом можно повторить и без него, но в быстро изменяющейся ситуации, когда каждая секунда на счету, скрипты вам несомненно помогут. |
− | '''Скриптинг''' — это использование файлов конфигурации для создания новых кейбайндов (кейбиндов, байндов, биндов) (keybind -англ.) и алиасов (aliases -англ.)- наборов [[Console/ru|консольных команд]]. | |
| | | |
− | *Кейбайнды привязывают кнопку к консольной команде. Например выбрать [[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>
| |
− | alias qBetween1and2 "slot2; wait 10; slot1"
| |
− | bind 1 qBetween1and2
| |
− | </pre>
| |
− | Примечание: здесь для наглядности аргументы отделены друг от друга пробелами, но при написании скриптов более одного пробела за раз использовать НЕЛЬЗЯ.
| |
| | | |
− | ===Как написать простейшую привязку?=== | + | ===IncrementVar=== |
− | Самый простой бинд имеет форму ''bind <клавиша> <команда>''. Например, если вы хотите активировать первичное оружие нажатием клавиши «1», вы должны прописать бинд, выглядящий так:
| + | Это позволяет переменным быть уменьшенным или увеличенным настолько, насколько было установлено ограничение. |
− | <pre>bind 1 slot1</pre>
| |
− | :(где ''slot1'' — это команда, активирующая ваше основное оружие)
| |
− | Каждый новый бинд в файле ''autoexec.cfg'' нужно писать с новой строки. Чтобы получить представление о том, как всё это должно выглядеть в итоге, загляните в ваш ''config.cfg'', открыв его любым текстовым редактором. Чтобы ознакомиться с используемыми при биндинге командами, изучите раздел «Консольные команды» на этой странице.
| |
| | | |
− | ===Как написать сложную привязку (алиас)?===
| + | bind [КЛАВИША 1] [ПЕРЕМЕННАЯ 75 90 1] <br/> |
− | Сложные бинды имеет форму схожую с простыми биндами, однако они исполняют ряд команд, в то время как вы нажимаете всё ту же единственную клавишу. Каждая команда должна быть обязательно отделена точкой с запятой (''';'''). Рассмотрим сложный бинд для инженера:
| + | bind [КЛАВИША 2] [ПЕРЕМЕННАЯ 75 90 -1]<br/> |
− | <pre>bind "q" "build 0; wait 50; +attack; wait; -attack; slot1"</pre>
| + | При нажатии на первую клавишу, переменная увеличится на 1 единицу, в итоге мы получим переменную со значением 76.<br/> |
− | :Этот бинд привязывает серию команд к клавише «q». Когда игрок нажимает «q», последовательно выполняется серия команд:
| + | При нажатии на вторую клавишу, переменная уменьшится на 1 единицу, в итоге мы получим число со значением 74.<br/> |
− | :*'''build 0''' активирует опцию строительства Раздатчика
| |
− | :*'''wait 50''' задает время ожидания (равное 50 фреймам) до начала выполнения следующей команды
| |
− | :*'''+attack''' активирует и продолжает первичную атаку (о значении символов ''плюс'' и ''минус'' будет сказано ниже)
| |
− | :*'''wait''' задает единичное время ожидания до начала выполнения следующей команды
| |
− | :*'''-attack''' прекращает первичную атаку
| |
− | :*'''slot1''' активирует первичное оружие (в случае с инженером — это дробовик)
| |
| | | |
− | ===Как работают команды с символами плюс (+) и минус (-)?=== | + | ===Alias=== |
− | Команды с символами плюс и минус — это длящиеся команды. Символ плюс задаёт начало и продолжение исполнения команды пока нажата клавиша. Минус прекращает исполнение, когда игрок отпускает клавишу. Например:
| + | Эта команда позволяет нам объединить несколько действий в одну команду. Полезно использовать для сокращения биндов, которые состоят из большого количества действий. Может содержать любые команды и переменные. |
− | <pre>bind "c" "+duck"</pre>
| + | Примечание: Можно присвоить любое имя на английском и не содержащее пробелов. |
− | :Этот бинд заставляет игрока присесть и оставаться в этом положении в то время, когда зажата клавиша «c». После того как она будет отпущена, игрок вновь встанет. | |
− | Важно отметить при этом, что в использовании команды типа '''-duck''' нет смысла, так как эта команда исполняется по умолчанию, без нажатия какой-либо клавиши.
| |
| | | |
− | ===Что такое связки биндов и как их писать?===
| + | alias Medic! «voicecommand 0 0» |
− | Связки биндов почти во всём сходны с обычными биндами за исключением того, что привязка команды (серии команд) осуществляется ни к клавише, а к определённому «имени». Такое «имя» впоследствии может быть использовано при написании других биндов. Рассмотрим такой пример связки биндов для Инженера:
| + | bind «e» Medic! |
− | <pre>
| |
− | alias "buildDispenser" "build 0; wait 50; +attack; wait; -attack; slot1" | |
− | bind "q" "buildDispenser" | |
− | </pre>
| |
− | :Эта связка в сочетании с уже использованным нами ранее примером может продемонстрировать всю функциональность биндинга в TF2. Итак, мы создали связку именуемую «'''buildDispenser'''» (название связки при этом может быть любым, например, «Vanya» или «Vrotmnenogi» и т.д.). Теперь, когда бы мы ни использовали имя этой связки, игра выполнит все команды привязанные к нему. После мы привязали это «имя» к клавише «q». Следовательно, после нажатия «q» отныне будет исполняться эта связка.
| |
− | Почему связки более удобны, нежели отдельные бинды? Подробнее на этом мы остановимся позже, однако пока представьте, что вам нужно привязать одну и ту же серию команд к разным клавишам. Теперь вместо того, чтобы печатать серии этих команды каждый раз заново, вы просто прописываете имя созданной вами связки. Кроме того, после, если вы вдруг захотите что-нибудь изменить в вашей серии, вам будет нужно переписать всего лишь одну эту связку.
| |
| | | |
− | ===Как работают связки с символами плюс (+) и минус (-)?===
| + | Работает как обычный бинд, при нажатии на {{key|E}} игрок позовет медика. |
− | Точно так же, как плюс-минус команды, плюс-минус связки — это длящиеся связки. Плюс начинает и продолжает действие, пока зажата клавиша. А минус прекращает его, когда клавиша отпущена. Рассмотрим ещё один пример с Инженером:
| |
− | <pre>
| |
− | alias "+upgradeBuilding" "slot3; +attack"
| |
− | alias "-upgradeBuilding" "-attack; wait; slot1"
| |
− | bind "mouse3" "+upgradeBuilding"
| |
− | </pre>
| |
− | :*'''+upgradeBuilding''' активирует выбор Гаечного ключа и удары им
| |
− | :*'''-upgradeBuilding''' прекращает удары, выдерживает паузу и изменяет текущее оружие на дробовик
| |
− | :* Привязываем эту плюс-связку ('''+upgradeBuilding''') к средней кнопке мышки. Теперь, когда эта кнопка зажата, мы размахиваем Ключом. После того, как мы отпускаем кнопку, автоматически исполняется минус-связка.
| |
− | Отметим также, что даже если вы не собираетесь привязывать минус-связку к какой-либо клавише, она будет автоматически исполняться, точно так же, как она выполнялась по дефолту, пока клавиша, активирующая плюс-связку не была нажата. Это неотъемлемая функция всех плюс-минус связок.
| |
| | | |
− | ===Как писать циклические и сложные связки?=== | + | ===Exec=== |
− | Циклические или сложные связки — это связки, которые ссылаются на другие уже существующие связки или создают их. Достаточно сложно объяснить всё это на словах, поэтому обратимся к примеру:
| + | Консольная команда позволяющая подгружать любой файл в игру находящийся в папке «config». |
− | <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», он встанет в полный рост.
| |
| | | |
− | ===Комбинации клавиш===
| + | exec autoexec.cfg<br/> |
− | Выше мы везде использовали слово «клавиша» только потому, что нет более подходящего слова. На самом же деле, к одной единственной клавише в игре могут быть привязаны другие клавиши, к которым в свою очередь будут привязаны команды или группы команд. Например:
| + | Скрипт подгружает в игру ваш «autoexec.cfg»<br/> |
− | <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=== |
− | <pre>
| + | Эта команда напишет любой текст у вас в консоли. Очень полезно для отладки вашего скрипта. |
− | //Скрипт быстрой смены игрового класса. Протестирован и работает.
| |
− | //Нажмите «шифт» («shift») и клавишу от 1 до 9, чтобы выбрать соответствующий класс.
| |
− | </pre>
| |
| | | |
− | Все это можно поставить на макросы, которые будут выполнены при нажатии соответствующей кнопки на вашей клавиатуре, либо мышке.
| + | echo " Scripting is very useful. "<br/> |
| + | Это выведет в консоль: Scripting is very useful. <br/> |
| + | Примечание: echo неправильно интерпретирует кавычки, их использование приводит к неработоспособности команды. <br/> |
| | | |
− | ==Ещё немного о создании скриптов== | + | ===Wait=== |
− | ===Почему не стоит использовать уже связанную клавишу внутри связки, которую она активирует?=== | + | Команда сообщает игре заданное время ожидания до следующего действия.<br/> |
− | Для этого существует несколько причин.
| + | Примечание: 1 секунда приравнивается к количеству тикрейта сервера.<br/> |
− | # В последствие очень сложно обнаружить и правильно изменить такой бинд.
| + | '''Внимание: Wait отключен на некоторых серверах, что приводит к неработоспособности скрипта, а иногда способствует «падению» игры.''' |
− | # Если вы используете сложный или циклический бинд и вдруг решили изменить привязанную клавишу, то, пропустив её при исправлении всего один раз, вы полностью испортите всю связку.
| |
− | # Также это привязывает бинд к одной единственной клавише «навсегда», затрудняя его повторную привязку к другим клавишам.
| |
− | Давайте на примере уже упомянутой связки '''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"
| + | "echo Why did the chicken cross the road?; wait 66; echo To get to the other side!"<br/> |
− | </pre> | + | Скрипт сначала напишет в консоль первую фразу, а через секунду, если тикрейт сервера 66, последнюю.<br/> |
− | Примечание по первой строке:
| |
− | <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> | |
− | Если мы будем биндить наши клавиши внутри связок, нам придётся каждый раз полностью переписывать бинд, при его привязке к новой клавише. В тоже время, когда клавиша вынесена за пределы бинда, его можно привязывать к какому угодно числу кдавиш.
| |
| | | |
− | Когда вы прописываете скрипты для широкого круга пользователей (не только для себя), старайтесь держать это правило в голове. Такие скрипты не только удобнее в обращении для других, но и гораздо проще пишутся и изменяются.
| + | ==Список имен клавиш== |
| + | Наведите курсор на клавишу, чтобы увидеть имя. |
| + | <code> |
| + | {| |
| + | ! width="45%" <!-- Main keyboard -->| |
| + | ! width="4%" <!-- Spacing -->| |
| + | ! width="20%" <!-- Special keys -->| |
| + | ! width="1%" <!-- Spacing -->| |
| + | ! width="25%" <!-- Keypad 1 -->| |
| + | ! width="5%" <!-- Keypad 2 -->| |
| + | |- |
| + | | |
| + | {{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}} |
| | | |
− | Вам понадобится файл ''con_filter_text_clear.cfg'', содержащий:
| + | {{tooltip|{{key|TAB}}|TAB}} |
− | con_filter_text ""
| + | {{tooltip|{{key|Q}}|Q}} |
| + | {{tooltip|{{key|W}}|W}} |
| + | {{tooltip|{{key|E}}|E}} |
| + | {{tooltip|{{key|R}}|R}} |
| + | {{tooltip|{{key|T}}|T}} |
| + | {{tooltip|{{key|Y}}|Y}} |
| + | {{tooltip|{{key|U}}|U}} |
| + | {{tooltip|{{key|I}}|I}} |
| + | {{tooltip|{{key|O}}|O}} |
| + | {{tooltip|{{key|P}}|P}} |
| + | {{tooltip|{{key|[}}|[}} |
| + | {{tooltip|{{key|]}}|]}} |
| + | {{tooltip|{{key|\}}|\}} |
| | | |
− | А также файл с именем ''con_filter_text_script.cfg'', содержащий:
| + | {{tooltip|{{key|⇪ Caps}}|CAPSLOCK}} |
− | con_filter_text "|}"
| + | {{tooltip|{{key|A}}|A}} |
| + | {{tooltip|{{key|S}}|S}} |
| + | {{tooltip|{{key|D}}|D}} |
| + | {{tooltip|{{key|F}}|F}} |
| + | {{tooltip|{{key|G}}|G}} |
| + | {{tooltip|{{key|H}}|H}} |
| + | {{tooltip|{{key|J}}|J}} |
| + | {{tooltip|{{key|K}}|K}} |
| + | {{tooltip|{{key|L}}|L}} |
| + | {{tooltip|{{key|;}}|SEMICOLON}} |
| + | {{tooltip|{{key|'}}|'}} |
| + | {{tooltip|{{key| ↵ }}|ENTER}} |
| | | |
− | Теперь внесём изменения в ваш ''autoexec.cfg''
| + | {{tooltip|{{key|Shift}}|SHIFT}} |
− | // aliases to execute the 2 scripts we made (''перевод'': связки для выполнения созданных нами скриптов)
| + | {{tooltip|{{key|Z}}|Z}} |
− | alias "cft_clear" "exec con_filter_text_clear.cfg"
| + | {{tooltip|{{key|X}}|X}} |
− | alias "cft_script" "exec con_filter_text_script.cfg"
| + | {{tooltip|{{key|C}}|C}} |
− | // aliases to toggle console filtering (''перевод'': связка для переключения фильтра консоли)
| + | {{tooltip|{{key|V}}|V}} |
− | alias "cf1" "con_filter_enable 1"
| + | {{tooltip|{{key|B}}|B}} |
− | alias "cf0" "con_filter_enable 0"
| + | {{tooltip|{{key|N}}|N}} |
− | // to echo a newline (''перевод'': для отображения новой строки)
| + | {{tooltip|{{key|M}}|M}} |
− | alias "cfnl" "cf0;echo;cf1"
| + | {{tooltip|{{key|,}}|,}} |
− |
| + | {{tooltip|{{key|.}}|.}} |
− | // if you turn this off all text disapears! it is left always on (''перевод'': если вы отключите эту опцию, весь текст исчезнет с экрана! Так что держите её всегда включённой)
| + | {{tooltip|{{key|/}}|/}} |
− | developer 1
| + | {{tooltip|{{key|Shift}}|RSHIFT}} |
− | // start with filtering enabled so we don't see all the console garbage on our screen (''перевод'': запуск производится с автоматически включённым фильтром, так что мы не увидим весь консольный мусор, и он не будет нам мешать)
| |
− | cf1
| |
− |
| |
− | // you can play with the following settings (''перевод'': эти настройки вы можете изменять ''под себя'')
| |
− | 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 и без этого достаточно хорош.
| + | {{tooltip|{{key|Ctrl}}|CTRL}} |
| + | {{tooltip|{{key|⊞}}|LWIN}} |
| + | {{tooltip|{{key|Alt}}|ALT}} |
| + | {{tooltip|{{key| Spacebar }}|SPACE}} |
| + | {{tooltip|{{key|⊞}}|RWIN}} |
| + | {{tooltip|{{key|Menu}}|Cannot be bound}} |
| + | {{tooltip|{{key|Ctrl}}|RCTRL}} |
| | | |
− | '''Внимание: активация фильтра консоли означает, что вы не будете видеть никакой консольный текст, за исключением того, что занесён в ваши скрипты! Чтобы вернуть весь консольный текст пропишите команду ''ctf_clear''.'''
| + | |<!-- Spacing --> |
| + | | |
| + | {{tooltip|{{key|PrtScn}}|Cannot be bound}} |
| + | {{tooltip|{{key|ScrLk}}|SCROLLOCK}} |
| + | {{tooltip|{{key|Pause}}|NUMLOCK}} |
| | | |
− | ==Консольные команды==
| + | {{tooltip|{{key|Insert}}|INS}} |
− | '''Замечание по написанию:''' если какой-то символ, заключён в квадратные скобки ([ или ]), то он является необязательным; если же символ, помещён в треугольные скобки (< или >), то он является неотъемлемой частью команды и необходим для её функционирования.
| + | {{tooltip|{{key|Home}}|HOME}} |
| + | {{tooltip|{{key|PgUp}}|PGUP}} |
| | | |
− | === Связки (ALIAS) ===
| + | {{tooltip|{{key|Delete}}|DEL}} |
− | *Классовое ограничение
| + | {{tooltip|{{key|End}}|END}} |
− | *:Отсутствует
| + | {{tooltip|{{key|PgDn}}|PGDN}} |
− | *Описание
| |
− | *:Связка — это замена длинной последовательности команд одним простым действием. Например, команда ''wait''. Если вы привяжете её, то в будущем сможете легко использовать свой бинд вместо того, чтобы каждый раз по новой прописывать всю команду. Так гораздо удобней. К тому же это упрощает написание информационных (для общения) скриптов и им подобных.
| |
− | *Написание
| |
− | *:alias "<name_of_alias>" "<command; list>" (''перевод'': связка "<имя_связки>" "<команда; список>")
| |
− | *Аргументы
| |
− | **Отсутствуют
| |
| | | |
− | ===Строить (BUILD)===
| |
− | * Классовое ограничение
| |
− | *:Инженер
| |
− | *Описание
| |
− | *: Если у Инженера, использующего эту команду, достаточно металла, то он автоматически перейдёт в режим строительства выбранного сооружения.
| |
− | *Написание
| |
− | *: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)===
| + | {{tooltip|{{key|↑}}|UPARROW}} |
− | * Классовое ограничение
| |
− | *:Инженер
| |
− | *Описание
| |
− | *:Позволяет разрушать Инженеру уже построенные им сооружения.
| |
− | *Написание
| |
− | *: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)===
| + | {{tooltip|{{key|←}}|LEFTARROW}} |
− | * Классовое ограничение
| + | {{tooltip|{{key|↓}}|DOWNARROW}} |
− | *:Шпион
| + | {{tooltip|{{key|→}}|RIGHTARROW}} |
− | *Описание
| + | |<!-- Spacing --> |
− | *:Позволяет вам с лёгкостью маскироваться, в отличие от тех, кто до сих пор использует сочетания клавиш. Первая цифра — номер класса, под который вы маскируетесь, вторая — цвет команды.
| + | | |
− | *Написание
| |
− | *: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)===
| + | {{Scripting Numpad}} |
− | * Классовое ограничение
| + | |} |
− | *:Шпион
| |
− | *Описание
| |
− | *: Как понятно из названия, эта команда применяет последнюю использованную вами маскировку. Кроме того, она запоминает вашу последнюю предсмертную маскировку. По умолчанию эта команда привязана к клавише «b». Если присоединить к этой команде случайный параметр, то маскировка будет выбираться произвольно, за исключением Шпиона и Разведчика.
| |
− | *Написание
| |
− | *:lastdisguise [random] (''перевод'': последняя маскировка [случайно])
| |
− | *Аргументы
| |
− | **[random] (''перевод'': [случайно])
| |
− | **:Chooses a random disguise that's neither Spy nor Scout (''перевод'': замаскироваться произвольно за исключением Шпиона и Разведчика)
| |
| | | |
− | ===Последний слот (LASTINV)=== | + | {| |
− | *Классовое ограничение
| + | ! align="left"| Кнопка мыши |
− | *:Отсутствует
| + | ! имя клавиши |
− | *Описание
| + | |- |
− | *:Это очень простая команда. Всё, что она делает — это активирует слот последнего использованного вами оружия (По умолчанию «q»)
| + | | Колесико вверх |
− | *Написание
| + | | MWHEELUP |
− | *:lastinv (''перевод'': последний слот)
| + | |- |
− | *Аргументы
| + | | Колесико вниз |
− | **Отсутствуют
| + | | MWHEELDOWN |
| + | |- |
| + | | ЛКМ |
| + | | MOUSE1 |
| + | |- |
| + | | ПКМ |
| + | | MOUSE2 |
| + | |- |
| + | | Колесико |
| + | | MOUSE3 |
| + | |- |
| + | | Вперед |
| + | | MOUSE4 |
| + | |- |
| + | | Назад |
| + | | MOUSE5 |
| + | |} |
| | | |
− | ===Выбор в меню (MENUSELECT)===
| + | </code> |
− | *Классовое ограничение
| |
− | *:Отсутствует
| |
− | *Описание
| |
− | *:Эта команда работает только в голосовых меню, но не работает в визуальных, таких как выбор класса или строительство.
| |
− | *Написание
| |
− | *:menuselect <item_number> (''перевод'': выбор в меню <номер_слота>)
| |
− | * Аргументы
| |
− | **<item_number> (''перевод'': <номер_слота>)
| |
− | **:Any valid menu choice. (''перевод'': любой из доступных выборов)
| |
− | *Заметьте: используйте команду '''cancelselect''', чтобы покинуть меню.
| |
| | | |
− | ===Игра (PLAY)=== | + | ==Полезные команды== |
− | *Классовое ограничение
| + | {{Main|vdc:List_of_TF2_console_commands_and_variables|l1=Список команд и переменных TF2(англ.)}} |
− | *:Отсутствует
| |
− | *Описание
| |
− | *:Проигрывает выбранный .wav или .mp3 файл. Чтобы отыскать нужный .wav или .mp3 файл, вам следует использовать один из обозревателей GCF файлов, например, [http://developer.valvesoftware.com/wiki/GCFScape GCFScape]. Благодаря нему вы сможете определить путь к необходимому файлу и сослаться на него через команду консоли или скрипт.
| |
− | :Кроме того, вы можете добавить свои собственные .wav и .mp3 файлы в директорию '''C:\Program Files\Steam\steamapps\%USERNAME%\team fortress 2\tf\sound\'''.
| |
− | *Написание
| |
− | *:play <path><sound_file_name.wav> (''перевод'': <путь_к_файлу><имя_файла.wav>)
| |
− | *:play <path><sound_file_name.mp3> (''перевод'': <путь_к_файлу><имя_файла.mp3>)
| |
− | *Пример
| |
− | *:play vo/demoman_specialcompleted11.wav
| |
− | *:play ui/gamestartup1.mp3
| |
| | | |
− | *Аргументы
| + | ===Маскировка=== |
− | **Отсутствуют
| + | Команда <code>disguise</code> имеет два значения, первая отвечает за класс, вторая за команду. |
| + | :'''Класс''' |
| + | :1. Разведчик |
| + | :2. Снайпер |
| + | :3. Солдат |
| + | :4. Подрывник |
| + | :5. Медик |
| + | :6. Пулеметчик |
| + | :7. Поджигатель |
| + | :8. Шпион |
| + | :9. Инженер |
| | | |
− | === Слот <X> (SLOT<X>)===
| + | :'''Команда''' |
− | *Классовое ограничение
| + | :1. СИН |
− | *:Отсутствует
| + | :2. КРС |
− | *Описание
| + | :-1. Противположная команда |
− | *:Эта команда чуть более сложная, чем рассмотренные нами ранее. В её основе лежит выбор активного оружия, комбинированный с стандартными голосовыми командами из «z», «x» и «c» меню. Так, например, если вы привязали к клавише «f» слот1 (slot1) и использование голосового меню 1 (voice_menu_1 («z»)), то после нажатия «f» вы автоматически позовёте Медика. В тоже время выбор оружия может осуществляться двумя путями. Первый, если у вас в меню включена быстрая смена оружия, эта команда немедленно активирует выбранный слот. Если же нет, то команда только высветит слоты выбора оружия, оставив окончательное решение за вами. Однако в последнем случае вы можете дополнить скрипт параметрами: "slot1; wait 50; +attack; wait; -attack", и это произойдёт автоматически.
| + | :-2. Своя команда. |
− | *Написание
| |
− | *:slot<slot_number> (''перевод'': слот<номер_слота>)
| |
− | *Аргументы
| |
− | **<slot_number> (''перевод'': <номер_слота>)
| |
− | **:Необходимо ввести номер слота от 0 до 10, при этом слот10 (slot10) — это команда выхода из меню.
| |
| | | |
− | ===Использовать (USE)===
| + | При <code>disguise 5 1</code> вы замаскируетесь под синего медика, а так <code>disguise 7 -2</code> под дружественного поджигателя.<br/> |
− | *Классовое ограничение
| + | Примечание: Маскировка под дружественного шпиона отключает маскировку.<br/> |
− | *:Отсутствует
| |
− | *Описание
| |
− | *:Команда «использовать» («use») применяется для активации конкретного оружия, при этом тип этого оружия не имеет значения.
| |
− | *Написание
| |
− | *:use <weapon_name> (''перевод'': use <название_оружия>)
| |
− | *Аргументы
| |
− | **<weapon_name> (''перевод'': <название_оружия>)
| |
− | '''Разведчик'''
| |
− | tf_weapon_scattergun
| |
− | tf_weapon_handgun_scout_primary
| |
− | tf_weapon_pistol_scout
| |
− | 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)=== | + | ===Постройки=== |
− | *Классовое ограничение
| + | Команда <code>build</code> имеет два значения, первая отвечает за саму постройку, вторая за её тип. |
− | *:Отсутствует
| + | <br /><code>build 0 0</code> построит [[Dispenser/ru|Раздатчик]] <small>(Только инженер)</small> |
− | *Описание
| + | <br /><code>build 1 0</code> построит [[teleporter entrance/ru|Телепорт]] <small>(Только инженер)</small> |
− | *:Эта команда основана на использовании разделов голосового меню, активируемых нажатием клавиш «z», «x» и «c». В принципе никто не мешает вам забиндить каждую голосовую команду на отдельную клавишу, так как это сделано с клавишей «e», при нажатии которой игрок зовёт Медика.
| + | <br /><code>build 1 1</code> построит Выход телепорта <small>(Только инженер)</small> |
− | *Написание
| + | <br /><code>build 2 0</code> построит [[Sentry Gun/ru|Турель]] <small>(Только инженер)</small> |
− | *:voicemenu <menu_number> <phrase_number> (''перевод'': голосовое_меню <номер_меню> <номер_фразы>)
| + | <br /><code>build 3 0</code> построит [[Sapper/ru|Жучок]] <small>(Только шпион)</small> |
− | *Аргументы
| |
− | **<menu_number> (''перевод'': <номер_меню>)
| |
− | ***0 <phrase_number> (''перевод'': <номер_фразы>)
| |
− | ***:0: Медик (Medic)
| |
− | ***:1: Спасибо (Thanks)
| |
− | ***: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)===
| + | Аналогичным образом, команда <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> |
− | *:Это очень полезная команда, когда вы используете сложные бинды. Её сущность заключается в том, что она задерживает исполнение следующей команды в списке/цикле на время Х, количество которого измеряется во фреймах/кадрах. Если после имени команды (''wait''), вы не укажите числовой параметр, то по умолчанию он будет равен 1. Из моего опыта следует, что значение равное 100 фреймам примерно эквивалентно одной секунде, однако у меня не было времени точно установить, как на это влияет параметр задержки сервер-клиент, и в этом вам предстоит разобраться самостоятельно. Приведу пример с Инженером, совершенствующим свою Пушку :<br><br>"use tf_weapon_wrench; wait; +duck; wait; +attack; wait 500; -attack; wait; -duck; lastinv" (''перевод'': использовать тф_оружие_гаечный_ключ; ждать; +присесть; ждать; +атаковать; ждать 500; -атаковать; ждать; - присесть; последний_слот<br><br>
| + | <br /><code>destroy 2 0</code> разрушит [[Sentry Gun/ru|Турель]] <small>(Только инженер)</small> |
− | Результат: Инженер берёт в руки Ключ, приседает, бьёт Ключом примерно 5 секунд, прекращает бить, встаёт и выбирает последнее использованное до этого оружие в качестве текущего. Если бы мы не вставили между действия команду ''wait'', то вероятность того, что наш бинд попросту не стал бы работать, была бы очень велика. <br><br>Заметьте, что в отличии от предыдущих примеров, здесь команда ''wait'', не прерывала исполнение бинда, а выступала в роли таймера.
| + | <br />Примечание: Жучки не разрушаются. |
− | *Написание
| |
− | *:wait [wait_time] (''перевод'': ждать [ждать_время])
| |
− | *Аргументы
| |
− | **[wait_time] (''перевод'': [ждать_время])
| |
− | **:Значения между 1 и <бесконечностью>. По умолчанию 1.
| |
− | *'''Важное замечание'''
| |
− | :Всё вышеизложенное актуально и будет работать только на серверах с параметром ''sv_allow_wait_command'' со значением 1, однако в настоящее время многие серверы используют параметр 0, и на них данный скрипт выполняться не будет. Более того, некоторые устаревшие скрипты, как то [[Scout scripts#Autopistol|Autopistol Script]], могут привести к нестабильной работе клиента и его падению.
| |
| | | |
− | ===Другие команды движков GoldSource и Source=== | + | ===Голосовое меню=== |
| + | Команда <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: Хорошая работа |
| | | |
− | Выбор класса: '''changeclass'''
| + | Примечания: Порядковый номер указан на единицу меньше, чем в игре. |
| | | |
− | Переключение консоли: '''toggleconsole'''
| + | ===Разное=== |
| + | *<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> изменяет громкость в игре |
| | | |
− | Присесть: '''+duck'''
| + | ==Расширенные Методы Написания Скриптов== |
| + | ===Toggle=== |
| + | Использование Toggle для действия которое требует удерживания клавиши. |
| | | |
− | Выбросить предмет: '''dropitem'''
| + | <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}}, а при повторном нажатии заставит его остановится. |
| | | |
− | Повторить сообщение: '''echo'''
| + | ===Комбинации клавиш=== |
− | | + | Это делает возможным использование сочетаний, что сокращает общее количество занятых клавиш, да и просто является удобным. |
− | Атаковать: '''+attack'''
| |
− | | |
− | Показать частоту кадров: '''cl_showfps 1'''
| |
− | | |
− | Сменить ведущую руку на левую: '''setinfo lefthand 1'''
| |
− | | |
− | Сменить ведущую руку на правую: '''setinfo lefthand 0'''
| |
− | | |
− | Прыгнуть: '''+jump'''
| |
− | | |
− | Последнее оружие: '''lastinv'''
| |
− | | |
− | Использовать спрей: '''impulse 201'''
| |
− | | |
− | Смотреть вниз: '''+lookdown'''
| |
− | | |
− | Смотреть вверх: '''+lookup'''
| |
− | | |
− | Информация о карте: '''showbriefing'''
| |
− | | |
− | Список карт: '''listmaps'''
| |
− | | |
− | Двигаться назад: '''+back'''
| |
− | | |
− | Двигаться вперёд: '''+forward'''
| |
− | | |
− | Сетевая статистика: '''netgraph <num>'''
| |
− | | |
− | Следующее оружие: '''invnext'''
| |
− | | |
− | Список игроков: '''listplayers'''
| |
− | | |
− | Предыдущее оружие: '''invprev'''
| |
− | | |
− | Сообщение для всех: '''say''' (прим. bind "key" "say текст")
| |
− | | |
− | Перезарядить оружие: '''+reload'''
| |
− | | |
− | Просмотр счёта: '''+showscores'''
| |
− | | |
− | Снимок экрана: '''snapshot'''
| |
− | | |
− | Движение боком: '''+strafe'''
| |
− | | |
− | Движение боком влево: '''+moveleft'''
| |
− | | |
− | Движение боком вправо: '''+moveright'''
| |
| | | |
− | Альтернативный огонь '''+attack2'''
| + | <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}}, скрипт будет работать как обычная команда «МЕДИК»! , но остался не использованным алиас с командой «Давай убер!».<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}} он попросит дать убер. |
| | | |
− | Насмешка: '''taunt'''
| + | ===Wait-тест=== |
| + | Скрипт проверяющий на работоспособность команду <code>wait</code> на сервере к которому вы присоединились.<br/> |
| | | |
− | Смерть от взрыва (самоубийство): '''explode'''
| + | <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> отключен на сервере то его имя можно использовать в алиасе, таким образом, если на сервере отключен <code>wait</code> то включится алиас с аналогичным именем и сообщит нам об этом в консоль, и запустит файл «waitNegative.cfg», в обратном случае, в консоли будет сообщение о действии команды <code>wait</code> и запустится файл «waitPositive.cfg» |
| | | |
− | Сообщение для команды: '''say_team'''
| + | ===Циклы=== |
| + | '''Внимание: Циклы без использования <code>wait</code> могут привести к зависанию игры.'''<br/> |
| + | Использование алиаса, который обращается к самому себе - бесконечный цикл, потому что эти скрипты нельзя сломать или перезапустить. Так или иначе, цикл включает в себя две части: Часть ожидания и часть повторения.<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}} приведет к следующему повтору цикла. Алиас <code>break</code> перезапускает цикл и через некоторое время он начинается снова. |
| + | ==Интересные скрипты== |
| + | Есть несколько скриптов которые могут или могли раньше повлиять на игровой процесс. В данный момент часть из них не работает, а некоторые работают и сейчас. |
| | | |
− | Выбор команды: '''changeteam'''
| + | ===Исправленные скрипты=== |
| + | ====Пистолет==== |
| + | Изначально, [[Pistol/ru|пистолет]] стрелял с каждым нажатием клавиши стрельбы без ограничений по времени. Игроки создали скрипт, который позволял совершить множество кликов за долю секунды, что делало пистолет самым скорострельным оружием в игре. |
| | | |
− | Повернуться налево: '''+left'''
| + | {{Patch name|8|13|2009}}: Отныне пистолеты стреляют с фиксированной скоростью, не зависящей от того, насколько быстро вы нажимаете на кнопку стрельбы. |
| + | ====Штурмовой щит==== |
| + | Раньше клавиши на клавиатуре, управляющие вращением камерой, не были связаны с передвижением камеры на мыши. На тот момент [[Chargin%27 Targe/ru|Штурмовой щит]] был единственным оружием которое могло блокировать движение камеры игрока, Valve сделали лимит на вращение камеры мыши, но забыли о вращении камеры с клавиатуры, после чего был сделан скрипт срабатывающий во время действия штурмового щита и дающий свободное управление во время рывка. |
| | | |
− | Повернуться направо: '''+right'''
| + | {{Patch name|6|23|2011}}: Исправлена ошибка Штурмового щита, при которой игроки могли использовать некоторые консольные команды для достижения большей чувствительности при повороте, чем предполагалось. |
− | ==Список назначаемых клавиш== | + | Однако, баг до сих пор может быть использован с джойстиком. |
− | Список назначаемых клавиш TF2, использующихся в [[Scripting/ru|написании скриптов]]. Левая колонка показывает название, правая колонка показывает ключевое имя.
| + | ====Приседание в прыжке==== |
| + | В первых версиях игры ограничений на количество приседаний в полёте не было. Большое количество анимаций приседания в полёте не могло обрабатываться движком игры корректно, однако [[Hitbox/ru|хитбокс]] игрока во время приседания уменьшался. Пользовательские скрипты позволили игрокам по сути уменьшить хитбокс игрока в полёте с помощью многочисленных вызовов команды приседания. |
| | | |
− | <div align="left">
| + | {{Patch name|3|6|2009}}: Теперь в воздухе можно приседать дважды. |
− | | |
− | | |
− | {| border="1" cellpadding="3" cellspacing="0" bordercolordark="#000000" bordercolorlight="#000000" | |
− | |-
| |
− | ! Название
| |
− | ! Ключевое имя
| |
− | | |
− | <!-- Numbers -->
| |
− | |-
| |
− | | class="lgray" align="center" | 1 || class="lgray" align="center" | Один
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | 2
| |
− | | bgcolor="#ffb449" align="center" | Два
| |
− | |-
| |
− | | class="lgray" align="center" | 3 || class="lgray" align="center" | Три
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | 4
| |
− | | bgcolor="#ffb449" align="center" | Четыре
| |
− | |-
| |
− | | class="lgray" align="center" | 5 || class="lgray" align="center" | Пять
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | 6
| |
− | | bgcolor="#ffb449" align="center" | Шесть
| |
− | |-
| |
− | | class="lgray" align="center" | 7 || class="lgray" align="center" | Семь
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | 8
| |
− | | bgcolor="#ffb449" align="center" | Восемь
| |
− | |-
| |
− | | class="lgray" align="center" | 9
| |
− | | class="lgray" align="center" | Девять
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | 0
| |
− | | bgcolor="#ffb449" align="center" | Ноль
| |
| | | |
− | <!-- Letters -->
| + | ====Горящие Рукавицы Ускорения==== |
− | |-
| + | Не так давно [[Gloves of Running Urgently/ru|Г.Р.У.]] отнимали 6 здоровья в секунду при активном слоте ближнего боя. Урон наносимый Г.Р.У. давал в прыжке отталкивание достаточное, чтобы двигаться быстрее, к этому было не трудно написать скрипт для смены оружия на ближний бой перед прыжком и возвращению обратно к предыдущему слоту. |
− | | class="lgray" align="center" | A || class="lgray" align="center" | A
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | B
| |
− | | bgcolor="#ffb449" align="center" | B
| |
− | |-
| |
− | | class="lgray" align="center" | C || class="lgray" align="center" | C
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | D
| |
− | | bgcolor="#ffb449" align="center" | D
| |
− | |-
| |
− | | class="lgray" align="center" | E || class="lgray" align="center" | E
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | F
| |
− | | bgcolor="#ffb449" align="center" | F
| |
− | |-
| |
− | | class="lgray" align="center" | G || class="lgray" align="center" | G
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | H
| |
− | | bgcolor="#ffb449" align="center" | H
| |
− | |-
| |
− | | class="lgray" align="center" | I || class="lgray" align="center" | I
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | J
| |
− | | bgcolor="#ffb449" align="center" | J
| |
− | |-
| |
− | | class="lgray" align="center" | K || class="lgray" align="center" | K
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | L
| |
− | | bgcolor="#ffb449" align="center" | L
| |
− | |-
| |
− | | class="lgray" align="center" | M || class="lgray" align="center" | M
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | N
| |
− | | bgcolor="#ffb449" align="center" | N
| |
− | |-
| |
− | | class="lgray" align="center" | O || class="lgray" align="center" | O
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | P
| |
− | | bgcolor="#ffb449" align="center" | P
| |
− | |-
| |
− | | class="lgray" align="center" | Q || class="lgray" align="center" | Q
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | R
| |
− | | bgcolor="#ffb449" align="center" | R
| |
− | |-
| |
− | | class="lgray" align="center" | S || class="lgray" align="center" | S
| |
− | |- | |
− | | bgcolor="#ffb449" align="center" | T
| |
− | | bgcolor="#ffb449" align="center" | T
| |
− | |-
| |
− | | class="lgray" align="center" | U || class="lgray" align="center" | U
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | V
| |
− | | bgcolor="#ffb449" align="center" | V
| |
− | |-
| |
− | | class="lgray" align="center" | W || class="lgray" align="center" | W
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | X
| |
− | | bgcolor="#ffb449" align="center" | X
| |
− | |-
| |
− | | class="lgray" align="center" | Y || class="lgray" align="center" | Y
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | Z
| |
− | | bgcolor="#ffb449" align="center" | Z
| |
| | | |
| + | {{Patch name|6|27|2012}}: Убран наносимый себе с течением времени урон. |
| | | |
− | <!-- F Keys -->
| + | ===Действующие скрипты=== |
− | |-
| + | ====Возможность прятать модель оружия от первого лица==== |
− | | class="lgray" align="center" | F1 || class="lgray" align="center" | F1
| + | Существует огромное количество скриптов скрывающие модель оружия от первого лица при смене на определенный слот. Используется это для того, что бы очистить экран для лучшего обзора, обычно используется для оружия ближнего боя, КПК, часов шпиона. |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | F2
| |
− | | bgcolor="#ffb449" align="center" | F2
| |
− | |-
| |
− | | class="lgray" align="center" | F3 || class="lgray" align="center" | F3
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | F4
| |
− | | bgcolor="#ffb449" align="center" | F4
| |
− | |-
| |
− | | class="lgray" align="center" | F5 || class="lgray" align="center" | F5
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | F6
| |
− | | bgcolor="#ffb449" align="center" | F6
| |
− | |-
| |
− | | class="lgray" align="center" | F7 || class="lgray" align="center" | F7
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | F8
| |
− | | bgcolor="#ffb449" align="center" | F8
| |
− | |-
| |
− | | class="lgray" align="center" | F9 || class="lgray" align="center" | F9
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | F10
| |
− | | bgcolor="#ffb449" align="center" | F10
| |
− | |-
| |
− | | class="lgray" align="center" | F11 || class="lgray" align="center" | F11
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | F12
| |
− | | bgcolor="#ffb449" align="center" | F12
| |
| | | |
| + | ====Турельные прыжки==== |
| + | После [[Engineer Update/ru|Обновления Инженера]], [[Engineer/ru|инженеры]] могли поднимать и переносить свои постройки. Одновременно с этим в обновлении был введен [[Wrangler/ru|Поводырь]], который позволял делать [[Sentry jump/ru|турельные прыжки]] с помощью ракет [[Sentry/ru|турели]]. Вместе с этим было обнаружено, что игрок может после прыжка успеть забрать постройку и улететь с ней на ракете выпущенной Поводырем. |
| + | Даже если человек способен совершить этот подвиг - это трудно, поэтому некоторые игроки написали скрипты способные выполнять эти же действия без труда и гарантировано. |
| | | |
− | <!-- Other keys -->
| + | Примечание: [[Rescue Ranger/ru|Спасатель]] может обойти эти действия потратив на телепортацию постройки к вам в руки всего 100 единиц метала. |
− | |-
| |
− | | class="lgray" align="center" | `
| |
− | | class="lgray" align="center" | Тильда
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | '
| |
− | | bgcolor="#ffb449" align="center" | Одиночная кавычка
| |
− | |-
| |
− | | class="lgray" align="center" | -
| |
− | | class="lgray" align="center" | Дефис
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | =
| |
− | | bgcolor="#ffb449" align="center" | Знак равно
| |
− | |-
| |
− | | class="lgray" align="center" | ]
| |
− | | class="lgray" align="center" | Правая квадратная скобка
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | \
| |
− | | bgcolor="#ffb449" align="center" | Обратная косая черта
| |
− | |-
| |
− | | class="lgray" align="center" | ,
| |
− | | class="lgray" align="center" | Запятая
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | /
| |
− | | bgcolor="#ffb449" align="center" | Косая черта
| |
− | |-
| |
− | | class="lgray" align="center" | SPACE
| |
− | | class="lgray" align="center" | Пробел
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | ENTER
| |
− | | bgcolor="#ffb449" align="center" | Ввод
| |
− | |-
| |
− | | class="lgray" align="center" | ESCAPE
| |
− | | class="lgray" align="center" | Выход
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | PAUSE
| |
− | | bgcolor="#ffb449" align="center" | Пауза
| |
− | |-
| |
− | | class="lgray" align="center" | BACKSPACE
| |
− | | class="lgray" align="center" | Удалить назад
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | TAB
| |
− | | bgcolor="#ffb449" align="center" | Табуляция
| |
− | |-
| |
− | | class="lgray" align="center" | SEMICOLON
| |
− | | class="lgray" align="center" | Точка с запятой
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | SHIFT
| |
− | | bgcolor="#ffb449" align="center" | Шифт
| |
− | |-
| |
− | | class="lgray" align="center" | CTRL
| |
− | | class="lgray" align="center" | Контроль
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | ALT
| |
− | | bgcolor="#ffb449" align="center" | Альт
| |
− | |-
| |
− | | class="lgray" align="center" | UPARROW
| |
− | | class="lgray" align="center" | Стрелка вверх
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | DOWNARROW
| |
− | | bgcolor="#ffb449" align="center" | Стрелка вниз
| |
− | |-
| |
− | | class="lgray" align="center" | LEFTARROW
| |
− | | class="lgray" align="center" | Стрелка влево
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | RIGHTARROW
| |
− | | bgcolor="#ffb449" align="center" | Стрелка вправо
| |
− | |-
| |
− | | class="lgray" align="center" | INS
| |
− | | class="lgray" align="center" | Вставка
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | HOME
| |
− | | bgcolor="#ffb449" align="center" | Домой
| |
− | |-
| |
− | | class="lgray" align="center" | PGUP
| |
− | | class="lgray" align="center" | Страница вверх
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | PGDN
| |
− | | bgcolor="#ffb449" align="center" | Страница вниз
| |
− | |-
| |
− | | class="lgray" align="center" | DEL
| |
− | | class="lgray" align="center" | Удалить
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | END
| |
− | | bgcolor="#ffb449" align="center" | Конец
| |
| | | |
| + | ====Оружейник==== |
| + | Очень часто играя с [[Gunslinger/ru|Оружейником]] ваша [[Sentry Gun/ru#Мини-турель|мини-турель]] будет разрушаться, что бы не тратить ценное время на то что бы достать КПК, были сделаны скрипты моментальной установки мини-турели за одно нажатие клавиши, что очень удобно при использовании в связке с [[Frontier Justice/ru|Самосудом]]. |
| | | |
− | <!-- Keypad -->
| + | ====Чувствительность мыши==== |
− | |-
| + | Некоторые игроки предпочитают разную чувствительность мыши для каждого из классов. К примеру для медика высокую чувствительность, чтобы быстрее реагировать на раненных, а для снайпера меньшую чувствительность во время прицеливания и нормальную при опущенном прицеле и тому подобное. |
− | | class="lgray" align="center" | KP_HOME
| |
− | | class="lgray" align="center" | Домой (ЦБ)<ref>ЦБ — цифровой блок.</ref> / 7
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | KP_UPARROW
| |
− | | bgcolor="#ffb449" align="center" | Стрелка вверх (ЦБ) / 8
| |
− | |-
| |
− | | class="lgray" align="center" | KP_PGUP
| |
− | | class="lgray" align="center" | Страница вверх (ЦБ) / 9
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | KP_LEFTARROW
| |
− | | bgcolor="#ffb449" align="center" | Стрелка влево (ЦБ) / 4
| |
− | |-
| |
− | | class="lgray" align="center" | KP_5
| |
− | | class="lgray" align="center" | 5 (ЦБ)
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | KP_RIGHTARROW
| |
− | | bgcolor="#ffb449" align="center" | Стрелка вправо (ЦБ) / 6
| |
− | |-
| |
− | | class="lgray" align="center" | KP_END
| |
− | | class="lgray" align="center" | Конец (ЦБ) / 1
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | KP_ENTER
| |
− | | bgcolor="#ffb449" align="center" | Ввод (ЦБ)
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | KP_DOWNARROW
| |
− | | bgcolor="#ffb449" align="center" | Стрелка вниз (ЦБ) / 2
| |
− | |-
| |
− | | class="lgray" align="center" | KP_PGDN
| |
− | | class="lgray" align="center" | Страница вниз (ЦБ) / 3
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | KP_INS
| |
− | | bgcolor="#ffb449" align="center" | Вставка (ЦБ) / 0
| |
− | |-
| |
− | | class="lgray" align="center" | KP_DEL
| |
− | | class="lgray" align="center" | Удалить (ЦБ) /.
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | KP_SLASH
| |
− | | bgcolor="#ffb449" align="center" | Косая черта (ЦБ)
| |
− | |-
| |
− | | class="lgray" align="center" | KP_MINUS
| |
− | | class="lgray" align="center" | Минус (ЦБ)
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | KP_PLUS
| |
− | | bgcolor="#ffb449" align="center" | Плюс (ЦБ)
| |
− | |-
| |
− | | class="lgray" align="center" | KP_MULTIPLY
| |
− | | class="lgray" align="center" | Умножение (ЦБ)
| |
| | | |
| + | ====Взлет с Штурмовым щитом==== |
| + | Иногда, прыжок на далекое расстояние с Штурмовым щитом может быть проблемой для некоторых игроков, ибо трудно нажать одновременно прыжок и удар ближним боем, поэтому есть очень простой скрипт который выполняет оба действия за одно нажатие, что дает взлет практически с любой наклонной поверхности. |
| | | |
− | <!-- Mouse buttons -->
| + | ====Быстрое прицеливание==== |
− | |-
| + | Многим игрокам трудно быстро попасть в голову после включения прицела. Есть скрипты способные быстро взвести винтовку к прицелу, но не дающие много времени на прицеливание. |
− | | bgcolor="#ffb449" align="center" | MOUSE1
| |
− | | bgcolor="#ffb449" align="center" | Левая кнопка мыши
| |
− | |-
| |
− | | class="lgray" align="center" | MOUSE2
| |
− | | class="lgray" align="center" | Правая кнопка мыши
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | MOUSE3
| |
− | | bgcolor="#ffb449" align="center" | Средняя кнопка мыши (колёсико)
| |
− | |-
| |
− | | class="lgray" align="center" | MOUSE4
| |
− | | class="lgray" align="center" | Дополнительная кнопка мыши<ref>Эта кнопка используется на нестандартных мышках.</ref>
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | MOUSE5
| |
− | | bgcolor="#ffb449" align="center" | Дополнительная кнопка мыши<ref>Эта кнопка используется на нестандартных мышках.</ref>
| |
− | |-
| |
− | | class="lgray" align="center" | MWHEELUP
| |
− | | class="lgray" align="center" | Прокрутка колёсика вверх
| |
− | |-
| |
− | | bgcolor="#ffb449" align="center" | MWHEELDOWN
| |
− | | bgcolor="#ffb449" align="center" | Прокрутка колёсика вниз
| |
− | |}
| |
− | </div>
| |
| | | |
− | == Примечания == | + | ====Ракетный прыжок==== |
− | <references/>
| + | Существует много скриптов на возможность максимального высокого или максимально дальнего прыжка на ракете, при этом скрипт позволяет сделать такой прыжок всего за одну кнопку. |
| | | |
− | == См. также== | + | == Так же == |
| * [[List of useful console commands/ru|Список полезных консольных команд]] | | * [[List of useful console commands/ru|Список полезных консольных команд]] |
| | | |
| == Ссылки == | | == Ссылки == |
− | * [http://www.gamebanana.com/tuts/4646 GameBanana.com] | + | *[http://www.gamebanana.com/scripts/games/297 Сотни скриптов на Gamebanana(англ.)] |
− | * [http://www.gamebanana.com/tuts/2290 GameBanana.com]
| |
− | *[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]] |
Скриптинг — это использование файлов конфигурации (.cfg) для создания различных биндов/байндов (англ. bind) и алиасов (англ. alias), которые связывают вашу клавиатуру, мышь или джойстик с консольными командами. Скрипты изначально существуют в Team Fortress, поэтому блокировка от VAC (Valve Anti-Cheat) невозможна. Использование скриптов варьируется от простейших биндов, таких, как «bind «w» «+forward»» - бинд позволяющий нам двигаться вперед в игре, до скриптов позволяющие строить постройки инженера без КПК при этом используя на клавиатуре всего несколько клавиш! Конечно, любое действие воспроизведенное скриптом можно повторить и без него, но в быстро изменяющейся ситуации, когда каждая секунда на счету, скрипты вам несомненно помогут.
Стандартные Файлы для Скриптов
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, последнюю.
Список имен клавиш
Наведите курсор на клавишу, чтобы увидеть имя.
|
|
|
|
|
|
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
|
Полезные команды
Маскировка
Команда 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: Хорошая работа
Примечания: Порядковый номер указан на единицу меньше, чем в игре.
Разное
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, скрипт будет работать как обычная команда «МЕДИК»! , но остался не использованным алиас с командой «Давай убер!».
bind shift +toggleState
alias +toggleState "alias call Call_For_Ubercharge"
alias -toggleState "alias call Call_For_Medic
Готово! Теперь при нажатии E игрок зовет медика, а при нажатии ⇧ Shift+E он попросит дать убер.
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
отключен на сервере то его имя можно использовать в алиасе, таким образом, если на сервере отключен wait
то включится алиас с аналогичным именем и сообщит нам об этом в консоль, и запустит файл «waitNegative.cfg», в обратном случае, в консоли будет сообщение о действии команды wait
и запустится файл «waitPositive.cfg»
Циклы
Внимание: Циклы без использования wait
могут привести к зависанию игры.
Использование алиаса, который обращается к самому себе - бесконечный цикл, потому что эти скрипты нельзя сломать или перезапустить. Так или иначе, цикл включает в себя две части: Часть ожидания и часть повторения.
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 приведет к следующему повтору цикла. Алиас break
перезапускает цикл и через некоторое время он начинается снова.
Интересные скрипты
Есть несколько скриптов которые могут или могли раньше повлиять на игровой процесс. В данный момент часть из них не работает, а некоторые работают и сейчас.
Исправленные скрипты
Пистолет
Изначально, пистолет стрелял с каждым нажатием клавиши стрельбы без ограничений по времени. Игроки создали скрипт, который позволял совершить множество кликов за долю секунды, что делало пистолет самым скорострельным оружием в игре.
Обновление от 13 августа 2009: Отныне пистолеты стреляют с фиксированной скоростью, не зависящей от того, насколько быстро вы нажимаете на кнопку стрельбы.
Штурмовой щит
Раньше клавиши на клавиатуре, управляющие вращением камерой, не были связаны с передвижением камеры на мыши. На тот момент Штурмовой щит был единственным оружием которое могло блокировать движение камеры игрока, Valve сделали лимит на вращение камеры мыши, но забыли о вращении камеры с клавиатуры, после чего был сделан скрипт срабатывающий во время действия штурмового щита и дающий свободное управление во время рывка.
Обновление от 23 июня 2011: Исправлена ошибка Штурмового щита, при которой игроки могли использовать некоторые консольные команды для достижения большей чувствительности при повороте, чем предполагалось.
Однако, баг до сих пор может быть использован с джойстиком.
Приседание в прыжке
В первых версиях игры ограничений на количество приседаний в полёте не было. Большое количество анимаций приседания в полёте не могло обрабатываться движком игры корректно, однако хитбокс игрока во время приседания уменьшался. Пользовательские скрипты позволили игрокам по сути уменьшить хитбокс игрока в полёте с помощью многочисленных вызовов команды приседания.
Обновление от 6 марта 2009: Теперь в воздухе можно приседать дважды.
Горящие Рукавицы Ускорения
Не так давно Г.Р.У. отнимали 6 здоровья в секунду при активном слоте ближнего боя. Урон наносимый Г.Р.У. давал в прыжке отталкивание достаточное, чтобы двигаться быстрее, к этому было не трудно написать скрипт для смены оружия на ближний бой перед прыжком и возвращению обратно к предыдущему слоту.
Обновление от 27 июня 2012: Убран наносимый себе с течением времени урон.
Действующие скрипты
Возможность прятать модель оружия от первого лица
Существует огромное количество скриптов скрывающие модель оружия от первого лица при смене на определенный слот. Используется это для того, что бы очистить экран для лучшего обзора, обычно используется для оружия ближнего боя, КПК, часов шпиона.
Турельные прыжки
После Обновления Инженера, инженеры могли поднимать и переносить свои постройки. Одновременно с этим в обновлении был введен Поводырь, который позволял делать турельные прыжки с помощью ракет турели. Вместе с этим было обнаружено, что игрок может после прыжка успеть забрать постройку и улететь с ней на ракете выпущенной Поводырем.
Даже если человек способен совершить этот подвиг - это трудно, поэтому некоторые игроки написали скрипты способные выполнять эти же действия без труда и гарантировано.
Примечание: Спасатель может обойти эти действия потратив на телепортацию постройки к вам в руки всего 100 единиц метала.
Оружейник
Очень часто играя с Оружейником ваша мини-турель будет разрушаться, что бы не тратить ценное время на то что бы достать КПК, были сделаны скрипты моментальной установки мини-турели за одно нажатие клавиши, что очень удобно при использовании в связке с Самосудом.
Чувствительность мыши
Некоторые игроки предпочитают разную чувствительность мыши для каждого из классов. К примеру для медика высокую чувствительность, чтобы быстрее реагировать на раненных, а для снайпера меньшую чувствительность во время прицеливания и нормальную при опущенном прицеле и тому подобное.
Взлет с Штурмовым щитом
Иногда, прыжок на далекое расстояние с Штурмовым щитом может быть проблемой для некоторых игроков, ибо трудно нажать одновременно прыжок и удар ближним боем, поэтому есть очень простой скрипт который выполняет оба действия за одно нажатие, что дает взлет практически с любой наклонной поверхности.
Быстрое прицеливание
Многим игрокам трудно быстро попасть в голову после включения прицела. Есть скрипты способные быстро взвести винтовку к прицелу, но не дающие много времени на прицеливание.
Ракетный прыжок
Существует много скриптов на возможность максимального высокого или максимально дальнего прыжка на ракете, при этом скрипт позволяет сделать такой прыжок всего за одну кнопку.
Так же
Ссылки