Написание скриптов для Counter-Strike сродни программированию - а посему не будем уходить от традиций и сходу напишем маленький код, который заставит по нажатию на клавишу [F3] выводить на экран фразу «Hello, World!». Итак, запускаем Counter-Strike, создаем игру на любой карте, открываем консоль (клавиша [~]) и прописываем следующую строку:
bind f3 "say Hello, World!"
Теперь в любой момент игры по нажатию на [F3] вы приветствуете весь мир. В данном скрипте использовалась конструкция bind <название клавиши> "<команды>", которая присваивает указанной клавише некоторую последовательность команд. Вот скрин использования такого считайте вашего 1-ого скрипта
В более весомых скриптах наряду с bind’ом используют такую конструкцию: alias <название alias’а> "<последовательность команд>". Использование alias’ов не только облегчает чтение скрипта (что очень полезно при дальнейшем его редактировании) но и расширяет наши возможности. Скоро вы сами поймете, когда можно обойтись, используя лишь bind’ы, а когда к ним необходимо добавлять alias’ы. Кстати, наш первый скрипт мог бы выглядеть и так:
alias salute "say Hello, World!" bind f3 "salute"
Как сохранить свой первый проект скрипта? Откройте директорию с игрой и перейдите в папку по адресу \cstrike\cfg. Здесь создайте с помощью любого текстового редактора файл с названием autoexec и измените его расширение с txt на cfg. Теперь откройте созданный файл с помощью все того же текстового редактора и занесите в него нашу строку bind f3 "say Hello, World!". Отныне вы будете автоматически загружать этот скрипт при каждом запуске игры.
Важно:если скрипт неработает, проверьте, какие вы вводите кавычки - должны быть те, что используются при печати в английском регистре.
Вот мы и добрались до следующего жизненно важного вопроса - написания config’ов. Config - это файл, в котором хранятся скрипты и настройки. Например, в папке \cstrike\cfg откройте файл config.cfg - в нем прописаны ваши настройки по умолчанию. По ряду причин я рекомендую вам ничего здесь не менять, а вместо этого написать собственный config. Для этого по приведенному только что алгоритму создайте не autoexec.cfg, а, скажем, myconfig.cfg. Занесите туда все свои настройки (это могут быть не только скрипты, но и обычные консольные команды) и сохраните его. Теперь запустите игру, откройте консоль и пропишите exec myconfig.cfg - все, ваши настройки загружены.
Совет: добавляйте к вашим скриптам комментарии. Делается это в любом месте после разделителя: //.
Например:
//по нажатию на [F3] на экран выводится фраза "Hello, World!" //begin bind f3 say "Hello, World!" //end
Нетрудно догадаться, что использование config’ов позволяет решить проблему уникальности настроек играющего за компьютером, если последний приходится делить с кем-либо. Достаточно создать для каждого пользователя по одному config-файлу, чтобы он не тратил время и нервы на настройку Counter-Strike в соответствии с его требованиями. Автоматизируем процесс загрузки config’ов, добавив в уже упомянутый autoexec.cfg строки:
bind f3 "exec myconfig.cfg" bind f4 "exec mother.cfg" bind f5 "exec father.cfg" bind f6 "exec brother.cfg" bind f7 "exec sister.cfg"
Теперь осталось только сообщить каждому пользователю компьютера, какая клавиша соответствует его настройкам.
Совет: чтобы в консоли при загрузке config-файла появлялось сообщение, добавьте в него строку echo "bla bla bla".
kb_actis
В директории \cstrike\scripts находится файл kb_act.lst. Откройте его, чтобы увидеть стандартные alias’ы и их краткое описание. Знание этих alias’ов поможет вам понимать чужие скрипты и писать собственные. Мне, для примера, пригодилась команда, которая производит снятие screenshot’а. Описание его в kb_act было следующим:
Новые команды
Incrementvar
В Counter-Strike: Source появилась команда, которая позволяет игроку прокручивать значение от максимального до минимального. Синтаксис команды имеет следующий вид: incrementvar <название переменной> <минимальное значение> <максмимальное значение> <инкремент>.
Вот таким незатейливым образом можно заставить меняться цвет прицела непосредственно во время игры:
bind p "incrementvar cl_crosshaircolor 0 4 1"
А вот еще один демонстративный пример использования команды incrementvar, который позволяет регулировать громкость в любой момент времени. Клавиша [Page Up] - громче, [Page Down] - тише.
bind pgup "incrementvar volume 0 1 0.1" bind pgdn "incrementvar volume 0 1 0.1"
BindToggle
BindToggle позволяет создавать переключатели для команд, которые могут быть в состоянии on или off (0 или 1). Для примера возьмем команду cl_showfps, которая показывает в верхнем правом углу экрана значение вашего fps. Чтобы по нажатию клавиши [F1] количество fps появилось на экране, а при повторном исчезло - используйте следующий скрипт
BindToggle f1 cl_showfps
Для сравнения, чтобы сделать подобный переключатель в предыдущих версиях Counter-Strike, вам бы понадобились следующие строки:
alias fps "fpson" alias fpson "cl_showfps 1; alias fps fpsoff" alias fpsoff "cl_showfps 0; alias fps fpson" bind f1 "fps"