Основы написания скриптов для CS: SourceЭта статья описывает основы написания скриптов для Counter-Strike: Source. Многие из ранее существовавших команд и правил, применимых к написанию скриптов в Counter-Strike 1.6, по-прежнему применимы и к Source, но некоторые нет. Рассмотрим подробнее...

 

 

Файл autoexec.cfg

Файл autoexec.cfg – это файл, который высполняется во время загрузки игры, содержит различные команды и ссылки на другие конфиги, которые также подлежат исполнению. Располагается этот файл по адресу:

...\counter-strike source\cstrike\cfg

Если такого файла в директории нет, то создайте текстовый файл с именем autoexec и поменяйте расширение на cfg.

Теперь имеет смысл создать файл, в котором вы будете хранить свои скрипты, создавать его надо в папке где лежит сам autoexec.cfg (можно так же создать новую папку и поместить файл туда). Новый файл называем как угодно и сохраняем с расширением cfg, дописываем обращение (ссылку) к этому файлу в autoexec.cfg.

Ссылки на cfg-файлы в autoexec.cfg имеют вид:

exec имяфайла.cfg или exec имяпапки/имяфайла.cfg (в том случае если Вы поместили Ваш скрипт в подпапку)

После этого Вы практически готовы. Хорошо еще добавить команду "echo" в Ваш файл autoexec.cfg, чтобы быть уверенным, что он загружается должным образом. Добавьте что-то типа этого и сохраните файл:

echo
echo Autoexec loaded...
echo

Теперь, если Вы откроете консоль при загрузке игры, то увидите надпись "Autoexec loaded. . .". Если Вы этого не видите, то Ваш файл не грузится. Вы можете загрузить его вручную, написав в консоли "exec autoexec.cfg" .

Написание скрипта

Принцип работы команд bind и alias

bind - используется для назначения действия или набора действий на клавишу, команда имеет вид:

bind кнопка "действие1; действие2; действие *"

alias - создает набор действий, который впоследствии можно назначить на клавишу, имеет вид:

alias имя_алиаса "действие1; действие2; действие *"

Закупка оружия и оборудования

Процедура закупки оружия происходит командой "buy имяпредмета". Например, чтобы купить АК47, просто пропишете в консоли:

buy ak47

Чтобы закупить комбинацию оружия и оборудования выможете либо сделать алиас (фиксированный набор команд, который можно назначить на клавишу):

alias m4combo "buy m4a1; buy vesthelm; buy primammo"

Где m4combo - имя алиаса

А далее назначить выполнение алиаса на клавишу:

bind "q" "m4combo"

Так же можно сделать прямой бинд:

bind x "buy m4a1; buy vesthelm; buy primammo"

Список команд для употребления в связке с buy пожно посмотреть в конце статьи.



Команда "use"

Вы можете добавить команду "use" к названию оружия, чтобы немедленно вызвать это оружие для использования, например:

use weapon_m4a1


где weapon_m4a1 - название оружия (полный список в конце статьи)

Можно также сделать бинд или алиас на основе этой команды.  Пример бинда:

bind X "use weapon_m4a1"


Пример алиаса быстрого переключения оружия:

alias pistol "use weapon_deagle; use weapon_usp; use weapon_glock; use weapon_p228; use weapon_elite; use weapon_fiveseven"
bind X "pistol"


Теперь при нажатии на x будет появляться пистолет.

Радио-алиасы, команда "say"

Алиасы прямых биндов радиокоманд не включены в CS:Source, поэтому вы должны их сделать старым добрым способом. Помните, что при использовании этого типа алиасов Вы должны держать клавишу немного дольше, чтобы закрылось экранное меню. Вот быстрый пример:

Roger/Affirmative

alias +roger "rd3; w2; ms1"
alias -roger "close"
alias rd3 "radio3"
alias ms1 "menuselect 1"

 

Команда "say" и "say_team" используется для вывода в общий или командный (team) чат сообщений, например:

say hello world


Есть вариация данной команды:

say_team


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

Далее пример практической реализации - при нажатии на клавишу [R] Вы перезарядите оружие, скажите по радио "Cover me" и напишите в чате "Прикройте меня, перезаряжаюсь". Вот код этой комбинации:

alias +relsay "+reload; say_team Прикройте, перезаряжаюсь!; radio1; menuselect 1; slot10; wait; wait; slot10" 
alias -relsay "-reload"
bind "r" "+relsay"


Другой пример - при нажатии левой кнопки мыши вы открываете огонь, а в радио-эфир  передается сообщение «Enemy Spotted»:

alias +attack3 "+attack; radio3; menuselect 2; slot10"
alias -attack3 "-attack; slot10; wait; slot10"
bind mouse1 "+attack3"

 

Команда "incrementvar"

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

incrementvar команда мин.значение макс.значение шаг_изменения


Например - "incrementvar cl_crosshaircolor 0 4 1"

Как бинд:

bind X "incrementvar cl_crosshaircolor 0 4 1"


Как алиас: 

alias crosshair "incrementvar cl_crosshaircolor 0 4 1"
bind X "crosshair"


В обоих случаях при нажатии на x прицел будет менять цвет от 0 до 4

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

Команда "BindToggle"

Команда BindToggle является новой командой, которая позволяет Вам создавать "связанные выключатели ("bind toggles") для команд, которые обычно включаются и выключаются (0 или 1). Хорошим примером является команда cl_showfps. Чтобы включить cl_showfps, вы используете значение cl_showfps 1, и тогда текущее значение fps Вы увидите в верхней правой части Вашего экрана. Значение cl_showfps 0 убирает эту информацию с экрана. Ниже приведен пример, как это можно сделать:

 BindToggle x cl_showfps

 
При нажатии на x на экране появится информация о fps (cl_showfps 1), при
повторном нажатии - пропадет (cl_showfps 0).

Движение

Скрипты, кроме всего прочего, могут облегчить вам управление в игре. Например, следующий скрипт освобождает вас от обязанности постоянно держать клавишу [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] вы припадете к земле, а повторное нажатие приведет к тому, что вы подниметесь.

Вот еще один скрипт, который позволяет при нажатии на [capslock] переходить с бега на ходьбу и обратно:

 

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 capslock "walk"


Заключение

Вот вы и изучили основы скриптописания в counter-strike: source, теперь вы можете писать скрипты, сложность которых зависит только от Вашей фантазии - будь то бинды на комплекты оружия или же огромный пак настроек серьезно меняющий графику и, соответственно, фпс (команды для этого можете посмотреть в статье "Улучшаем FPS"), бинды на доступ к разным наборам конфигураций и многое, многое другое!

И еще, как известно, на серьезных чемпионатах использование собственных config’ов запрещено. Если вы думаете, что, играя дома или в клубе со своим config’ом, вы потом сможете запросто вернуться к первоначальному варианту, то сильно ошибаетесь. Вообще предчувствую негодование многих читателей - использование config’ов некоторыми считается занятием столь же низким, сколь и использование cheat’ов. За свою жизнь я встречал некоторых таких людей, а через некоторое время замечал их с дискеткой, на которой было записано не поверите что - правильно, config. Легче всего кричать, что config - это зло, если ты не умеешь или не хочешь научиться их писать. Не стоит забывать про возможности, которые дали нам разработчики игры. Ну, и в конце концов, вы же не все время участвуете в чемпионатах - дайте себе свободу проявляться по-разному.



Приложение

Полный список оружия (перед названием не забудьте дописать "weapon_"):

galil - IDF Defender (у теров b4-1)
ak47 - АК-47
scout - Schmidt Scout (муха)
sg552 - Krieg 552 (у теров b4-4)
awp - Magnum Sniper Rifle (слон)
g3sg1 - D3/AU1 (терорская скорострелка)
famas - Clarion 5.56 (у ментов b4-1)
m4a1 - Maverick M4A1 Carbine (эмка)
aug - Bullpup (ментовская b4-4)
sg550 - Krieg 550 Commando (ментовская скорострелка)
glock - 9x19mm Sidearm (глок)
usp - KM .45 Tactical (юсп, ментовский стандартный)
p228 - 228 Compact (b1-3)
deagle - Night Hawk .50C (дигл, b1-4)
elite - .40 Dual Elites (теророровские парные b1-5)
fiveseven - ES Five-Seven (ментовский b1-5)
m3 - Leone 12 Gauge Super (b2-1)
xm1014 - Leone YG1265 Auto Shotgun (b2-2)
mac10 - Ingram MAC-10 (b3-1 у теров)
tmp - Schmidt Machine Pistol (ментовский 3-1)
mp5navy - KM Sub-Machine Gun (мп5)
ump45 - KM UMP45 (b3-3)
p90 - ES C90 (b3-4)
m249 - M249  (пулемет)
primammo - патроны для первичного оружия
buyammo1 - 1 обойма для первичного оружия
buyammo2 - 1 обойма для вторичного оружия
secammo - патроны для вторичного оружия
vest - броня
vesthelm - броня+шлем
flashbang - флэшка
hegrenade - боевая грена
smokegrenade - дымовуха
nvgs - ПНВ (найтвижн)
defuser - (дефьюзы)
c4 - C4
knife - нож

Клавиши букв:
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

Клавиши цифр:

1
2
3
4
5
6
7
8
9
0

Кнопки мыши:

MOUSE1
MOUSE2
MOUSE3
MOUSE4
AUX5
AUX6
MWHEELUP
MWHEELDOWN

Кнопки джойстика:

JOY1
JOY2
JOY3
JOY4
AUX5
AUX6

Специальные клавиши:

Enter
Space
Shift
Ctrl
Pause
Alt
Backspace
Tab
Escape

Функциональные клавиши:

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

Клавиши прокручивания:

Ins
Del
Home
End
Pgdn
Pgup

Стрелки:

Leftarrow
Rightarrow
Uparrow
Downarrow

Клавиши цифровой панели:

kp_leftarrow
kp_del
kp_end
kp_downarrow
kp_pgup
kp_ins
kp_5
kp_plus
kp_uparrow
kp_enter
kp_pgdn
kp_rightarrow
kp_slash
kp_minus
kp_home

Остальные:

,
.
/
;
'
*
[
]
-
=
~


+forward двигаться вперед
+back двигаться назад
+moveleft стрейфиться налево
+moveright стрейфиться направо
+left повернуться налево
+right повернуться направо
+jump подпрыгнуть
+duck присесть
+use использовать
+attack стрелять, резать ножом
+attack2 альтернативная стрельба / дополнительная функция оружия
+reload перезарядить оружие
slot1 1-ый слот
slot2 2-ой слот
slot3 3-ий слот
slot4 4-ый слот
slot5 5-ый слот
slot6 6-ой слот
slot7 7-ой слот
slot8 8-ой слот
slot9 9-ый слот
slot10 нулевой слот
cancelselect отменить
say говорить всем игрокам
say_team говорить игрокам своей команды
radio1 первая группа радиокоманд
radio2 вторая группа радиокоманд
radio3 третья группа радиокоманд
toggleconsole открыть/закрыть консоль
chooseteam выбрать команду, за которую хотите играть
+showscores показать статистику
drop выбросить текущее оружие
nightvision включить/выключить очки ночного видения
impulse 201 нарисовать лого
impulse 100 включить/выключить фонарь
invprev переключиться на предыдущее оружие
invnext переключиться на следующее оружие
lastinv переключиться на последнее оружие
buy включить меню покупки
buyammo1 купить патроны для основного оружия
buyammo2 купить патроны для пистолета
buyequip купить дополнительное снаряжение
pause запаузить игру
+voicerecord использовать голосовую коммуникацию
showbriefing показать брифинг к карте
snapshot сделать скриншот
quit выйти из игры





Статья подверглась серьезной переработке с моей стороны, SeReGa

Автор: SxRxRnR, lulenok
Перевел: Palych
Оригинал: http://palych99.narod.ru/Counter-Strike/Source/CS_U_3.html


Дополнение.

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

bind q "use weapon_knife; wait;wait;wait;wait;wait;wait;wait;wait; lastinv"



Комментарии 

 
#8 SeReGa 06.11.2012 21:32
miko, уменьшить файл
Цитировать
 
 
#7 miko 06.11.2012 18:02
че делать в консоли пишет что файл типо больше 20mb?
Цитировать
 
 
#6 Гена 06.05.2011 19:29
Напишите мне плз бинд перезарядки со слона bind q "lastinv;wait;wa it;wait;use weapon_awp;" он почему-то не работает а вот ваш который выше он не всегда на авп попадает.
Цитировать
 
 
#5 Гена 21.04.2011 17:41
напишите мне бинд хороший у меня не получается вот то что у меня вышло bind mouse1"+attack;wait;wa it;wait;+lastin v;lastinv;wait; wait;wait;-attack;"
но это тоже медленно надо такой бинд который не зависит от того как ты нажимаешь сильно или слабо.этот бинд когда на мышку нажмешь сильно то он медленно переключает и видно нож .а мне надо такой как через use только быстрый и чтоб автоматом менял. ПОМОГИТЕ ПЛЗ !!!
Цитировать
 
 
#4 no0om 23.02.2011 11:48
Поддерживаю! Афигенный сайт! 8)
Цитировать
 
 
#3 SeReGa 08.01.2011 12:42
нет, это уже читы)
Цитировать
 
 
#2 hp/zK 30.10.2010 15:22
кста офигенный сайт!
Цитировать
 
 
#1 hp/zK 30.10.2010 15:21
а есть бинды,типо аима?помоги плз,или типо этого?я сморю тута люди на лету даже хэды ставят я уверен что у них что-то есть?можешь мне дзелать,что нить типо аима плз!?Заранее спасибо!
Цитировать
 

Добавить комментарий


Защитный код
Обновить