Go, go, go!
| Быстро поздоровались со всем миром - и в бой. |
Написание скриптов для Counter-Strike сродни программированию - а
посему не будем уходить от традиций и сходу напишем маленький код,
который заставит по нажатию на клавишу [F3] выводить на экран
фразу «Hello, World!». Итак, запускаем Counter-Strike, создаем игру на
любой карте, открываем консоль (клавиша [~]) и прописываем следующую строку:
bind f3 "say Hello, World!"
|
Теперь в любой момент игры по нажатию на [F3] вы приветствуете весь мир. В данном скрипте использовалась конструкция bind <название клавиши> "<команды>", которая присваивает указанной клавише некоторую последовательность команд.
В более весомых скриптах наряду с 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
| В списке стандартных alias'ов можно найти множество очень полезных команд. |
В директории \cstrike\scripts находится файл kb_act.lst.
Откройте его, чтобы увидеть стандартные alias’ы и их краткое описание.
Знание этих alias’ов поможет вам понимать чужие скрипты и писать
собственные. Мне, для примера, пригодилась команда, которая производит
снятие screenshot’а. Описание его в kb_act было следующим:
jpeg - Valve_Take_Screen_Shot
Новые команды
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 появилось на экране, а при повторном исчезло - используйте следующий скрипт:
Для сравнения, чтобы сделать подобный переключатель в предыдущих версиях Counter-Strike, вам бы понадобились следующие строки:
alias fps "fpson"
alias fpson "cl_showfps 1; alias fps fpsoff"
alias fpsoff "cl_showfps 0; alias fps fpson"
bind f1 "fps"
|
Покупки
Пистолеты | Glock18 Select Fire | glock | USP .45 Tactical | usp | SIG P228 | p228 | Desert Eagle | deagle | FN Five-Seven | fiveseven | Dual Beretta 96G Elite | elite | Дробовики | Benelli M3 Super 90 | m3 | Benelli XM1014 | xm1014 | Автоматы | Steyr TMP | tmp | Ingram MAC-10 | mac10 | MP5 Navy | mp5navy | UMP 45 | ump45 | FN P90 | p90 | Винтовки | Galil | galil | Famas | famas | AK-47 | ak47 | Colt M4A1 Carbine | m4a1 | SIG 550 Sniper | sg550 | SIG 552 Commando | sg552 | Steyr Aug | aug | Steyr Scout | scout | AI Arctic Warfare/Magnum | awp | G3/SG-1 Sniper Rifle | g3sg1 | Пулемет | FN M249 Para | m249 |
| Экипировка | Kevlar Vest | vest | Kevlar Vest и Helmet | vesthelm | Flashbang | flashbang | HE Grenade | hegrenade | Smoke Grenade | smokegrenade | Defuse Kit | defuser | NightVision Goggles | nvgs | Primary Ammo | primammo | Secondary Ammo | secammo |
Продолжим наше образование по системе «от простого к сложному». Допустим, вы хотите по нажатию клавиши [F1] купить автомат Калашникова. Для этого добавьте в файл следующую строку:
Однако один автомат можно купить и через обычные сочетания клавиш,
поэтому пока никакой выгоды от нашей настройки мы не получили. Добавим
в наш набор покупки патроны, бронежилет, гранату. Выглядеть все это
будет следующим образом:
| Время слишком дорого, чтобы вручную закупать набор оружия. Используйте auto-buy - стандартный или скриптовый. |
bind f1 "buy ak47; buy m4a1; buy primammo; buy vest; buy hegrenade"
|
При этом предметы амуниции в подобном скрипте расставляются в
порядке приоритета закупки. Например, если у вас не хватает денег на
приобретение всех перечисленных в скрипте элементов, то закупаться
будут предметы слева направо. Причем обратите внимание на то, что в
приведенном скрипте есть и АК-47, и m4a1. Сделано это для того, чтобы в
любой команде по нажатию на [F1] закупался один из стволов - АК отсутствует в арсенале контртеррористов, которые в свою очередь располагают m4a1.
Чтобы узнать скриптовые название оружия, обратитесь к таблице.
Это важно: перед вами список названий клавиш в таком виде, в котором следует их «упоминать» в скриптах: space * capslock * escape * f1 * f2 * f3 * f4 * f5 * f6 * f7 * f8 * f9 * f10 * f11 * f12 * backspace * tab * shift * enter * , * ctrl * alt * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 0 * a * b * c * d * e * f * g * h * i * j * k * l * m * n * o * p * q * r * s * t * u * v * w * x * y * z * uparrow * downarrow * rightarrow * leftarrow * ins * home * pgup * pgdown * del * end * mouse1 * mouse2 * mouse3 * mouse4 * mouse5 * mwheelup * mwheeldown.
Общение
Зачастую на общение с командой во время игры у вас просто нет
времени. К счастью, этот процесс можно автоматизировать. Например, этот
скрипт сообщает о вашей перезарядке всей команде:
alias +relsay "+reload; say_team Please, cover me, I am reloading; radio1; menuselect 1; slot10; wait; wait; slot10"
alias -relsay "-reload"
bind "r" "+relsay"
|
Теперь, нажав на [R], вы перезарядите оружие, скажете по
радио «Cover me» и напишете в игровом командном chat’е сообщение
«Please, cover me, I am reloading».
Еще пример: членам вышей команды может быть полезна информация о
том, что вы заметили противника. Нижеприведенный скрипт при нажатии
левой кнопки мыши передает в радиоэфире «Enemy Spotted» и открывает
огонь:
alias +attack3 "+attack; radio3; menuselect 2; slot10"
alias -attack3 "-attack; slot10; wait; slot10"
bind mouse1 "+attack3"
|
Движение
Скрипты, кроме всего прочего, могут облегчить вам управление в игре.
Сразу же пример - скрипт, который освобождает вас от обязанности
постоянно держать клавишу [Ctrl] нажатой:
alias ctoggle "crouch"
alias stand "-duck; bind mouse1 +attack; alias ctoggle crouch"
alias crouch "+duck; bind mouse1 +release; alias ctoggle stand"
alias +release "+attack; -duck"
alias -release "-attack; bind mouse1 +attack; alias ctoggle crouch"
bind ctrl "ctoggle"
|
Теперь по нажатию на [Ctrl] вы припадете к земле, а повторное нажатие приведет к тому, что вы подниметесь.
Вот еще один скрипт, подобный предыдущему, который позволяет по нажатию на клавишу [Z] переключаться с бега на ходьбу и обратно.
alias walk "+speed; -duck; bind q run; bind c crouchwalk; dv1; echo Walking; dv0"
alias run "-speed; -duck; bind q walk; bind c crouch; dv1; echo Running; dv0"
alias crouchwalk "+duck; -speed; bind c walk; bind q crouch; dv1; echo Crouching Ready to Run; dv0"
bind z "walk"
|