Написание скриптов
Скриптинг — это использование файлов конфигурации (.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».<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
Самая простейшая команда. Выполняет определенное действие при нажатии на определенную кнопку.
bind [КЛАВИША] [ДЕЙСТВИЕ]<br\> Желательно возвести имя вашей клавиши и действие в кавычки, это дополнительная гарантия работоспособности вашего скрипта.<br\> bind [КЛАВИША] "[ДЕЙСТВИЕ; ДЕЙСТВИЕ 1; ДЕЙСТВИЕ 2]"<br\> Бинд, содержащий количество действий больше одного, должен быть выделен кавычками, а сами действия, кроме последнего, должны оканчиваться точкой с запятой - «;»<br\>
Бинды бывают двух видов:
bind "e" "voicecommand 0 0"<br\> При нажатии E игрок позовет медика.<br\>
bind "w" "+forward"<br\> При зажимании W игрок пойдет вперед.<br\>
Toggle
Эта команда позволяет переключать действия содержащие несколько значений.
toggle "[ДЕЙСТВИЕ 0 1]"
BindToggle
Команда идентична Toggle, отличается тем, что переключение действия можно привязать к кнопке.
BindToggle "[КЛАВИША]" "[ДЕЙСТВИЕ 0 1]"
IncrementVar
Это позволяет переменным быть уменьшенным или увеличенным настолько, насколько было установлено ограничение.
bind [КЛАВИША 1] [ПЕРЕМЕННАЯ 75 90 1] <br\> bind [КЛАВИША 2] [ПЕРЕМЕННАЯ 75 90 -1]<br\> При нажатии на первую клавишу, переменная увеличится на 1 единицу, в итоге мы получим переменную со значением 76.<br\> При нажатии на вторую клавишу, переменная уменьшится на 1 единицу, в итоге мы получим число со значением 74.<br\>
Alias
Эта команда позволяет нам объединить несколько действий в одну команду. Полезно использовать для сокращения биндов, которые состоят из большого количества действий. Может содержать любые команды и переменные. Примечание: Можно присвоить любое имя на английском и не содержащее пробелов.
alias medic! "voicecommand 0 0" bind "e" Medic!
Работает как обычный бинд, при нажатии на E игрок позовет медика.
Exec
Консольная команда позволяющая подгружать любой файл в игру находящийся в папке «config».
exec autoexec.cfg<br\> Скрипт подгружает в игру ваш «autoexec.cfg»<br\>
Echo
Эта команда напишет любой текст у вас в консоли. Очень полезно для отладки вашего скрипта.
echo " Scripting is very useful. "<br\> Это выведет в консоль: Scripting is very useful. <br\> Примечание: echo не правильно интерпретирует кавычки, их использование приводит к неработоспособности команды. <br\>
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\>
Список имен клавиш
Наведите курсор на клавишу, чтобы увидеть имя.
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
под дружественного поджигателя.<br\>
Примечание: Маскировка под дружественного шпиона отключает маскировку.<br\>
Постройки
Команда 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
устанавливает поле обзора для вашего оружия. По-стандарту используются значения от 50 до 70.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
Скрипт заставляет игрока бежать вперед при нажатии W, а при повторном нажатии заставит его остановится.
alias toggle "enable"
alias enable "alias toggle disable; +forward"
alias disable "alias toggle enable; -forward"
Комбинации клавиш
Это делает возможным использование сочетаний, что сокращает общее количество занятых клавиш, да и просто является удобным.
bind "e" call
На данный момент, при нажатии E, скрипт будет работать как обычная команда «МЕДИК»! , но остался не использованным алиас с командой «Давай убер!».
alias call Call_For_Medic
alias Call_For_Medic "Voicemenu 0 0"
alias Call_For_Ubercharge "Voicemenu 1 6"
bind shift +toggleState
Готово! Теперь при нажатии E игрок зовет медика, а при нажатии ⇧ Shift+E он попросит дать убер.
alias +toggleState "alias call Call_For_Ubercharge"
alias -toggleState "alias call Call_For_Medic
Wait-тест
Скрипт проверяющий на работоспособность команду wait
на сервере к которому вы присоединились.<br\>
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
могут привести к зависанию игры.<br\>
Использование алиаса, который обращается к самому себе - бесконечный цикл, потому что эти скрипты нельзя сломать или перезапустить. Так или иначе, цикл включает в себя две части: Часть ожидания и часть повторения.<br\>
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\>
Этот скрипт зацикливается при нажатии G. Он включает насмешку через каждые 132 кадра(2 секунды на большинстве серверов). Клавиша O приведет к следующему повтору цикла. Алиас break
перезапускает цикл и через некоторое время он начинается снова.
Интересные скрипты
Есть несколько скриптов которые могут или могли раньше повлиять на игровой процесс. В данный момент часть из них не работает, а некоторые работают и сейчас.
Исправленные скрипты
Пистолет
В оригинале, пистолет позволял произвести столько выстрелов в секунду, насколько хватало нажатия пальца человека. Был создан скрипт который делал ОГРОМНОЕ количество нажатий в секунду, что давало выпустить все пули из обоймы за долю секунды.
Обновление от 13 августа 2009: Отныне пистолеты стреляют с фиксированной скоростью, не зависящей от того, насколько быстро вы нажимаете на кнопку стрельбы.
Штурмовой щит
Раньше, клавиши на клавиатуре, управляющие вращением камерой, не были связаны с передвижением камеры на мыши. На тот момент Штурмовой щит был единственным оружием которое могло блокировать движение камеры игрока, Valve сделали лимит на вращение камеры мыши, но забыли о вращении камеры с клавиатуры, после чего был сделан скрипт срабатывающий во время действия штурмового щита и дающий свободное управление во время рывка.
Обновление от 23 июня 2011: Исправлена ошибка Штурмового щита, при которой игроки могли использовать некоторые консольные команды для достижения большей чувствительности при повороте, чем предполагалось. Однако, это работает с джойстиком до сих пор.
Приседание в прыжке
Изначально не было лимита на приседание в полете, что конечно же, побудило создать скрипт заставляющий игрока приседать в полете большое количество раз, следствием чего было невозможность движка проработать все анимации игрока и в тот же момент хитбоксы прорабатывались со скоростью приседания, что затрудняло попадание в игрока находящегося в прыжке.
Обновление от 6 марта 2009: Теперь в воздухе можно приседать дважды.
Горящие Рукавицы Ускорения
Не так давно Г.Р.У. отнимали 6 здоровья в секунду при активном слоте ближнего боя. Урон наносимый Г.Р.У. давал в прыжке отталкивание достаточное, чтобы двигаться быстрее, к этому было не трудно написать скрипт для смены оружия на ближний бой перед прыжком и возвращению обратно к предыдущему слоту.
Обновление от 27 июня 2012: Убран наносимый себе с течением времени урон.
Действующие скрипты
Возможность прятать модель оружия от первого лица
Существует огромное количество скриптов скрывающие модель оружия от первого лица при смене на определенный слот. Используется это для того, что бы очистить экран для лучшего обзора, обычно используется для оружия ближнего боя, КПК, часов шпиона.
Турельные прыжки
После Обновления Инженера, инженеры могли поднимать и переносить свой постройки. Одновременно с этим в обновлении был введен Поводырь, который позволял делать турельные прыжки с помощью ракет турели. Вместе с этим было обнаружено, что игрок может после прыжка успеть забрать постройку и улететь с ней на ракете выпущенной Поводырем. Даже если человек способен совершить этот подвиг - это трудно, поэтому некоторые игроки написали скрипты способные выполнять эти же действия без труда и гарантировано.
Примечание: Спасатель может обойти эти действия потратив на телепортацию постройки к вам в руки всего 130 единиц метала.
Оружейник
Очень часто играя с Оружейником ваша мини-турель будет разрушаться, что бы не тратить ценное время на то что бы достать кпк, были сделанны скрипты моментальной установки мини-турели за одно нажатие клавиши, что очень удобно при использовании в связке с Самосудом.
Чувствительность мыши
Некоторые игроки предпочитают разную чувствительность мыши для каждого из классов. К примеру для медика высокую чувствительность, чтобы быстрее реагировать на раненных, а для снайпера меньшую чувствительность во время прицеливания и нормальную при опущенном прицеле и тому подобное.
Взлет с Штурмовым щитом
Иногда, прыжок на далекое расстояние с Штурмовым щитом может быть проблемой для некоторых игроков, ибо трудно нажать одновременно прыжок и удар ближним боем, поэтому есть очень простой скрипт который выполняет оба действия за одно нажатие, что дает взлет практически с любой наклонной поверхности.
Быстрое прицеливание
Многим игрокам трудно быстро попасть в голову после включения прицела. Есть скрипты способные быстро взвести винтовку к прицелу, но не дающие много времени на прицеливание.
Ракетный прыжок
Существует много скриптов на возможность максимального высокого или максимально дальнего прыжка на ракете, при этом скрипт позволяет сделать такой прыжок всего за одну кнопку.