..::GameCenter|MD::..



Опубликовано: [scx]scv , Включено: Jul-05-2003

"Пресс-энд-релиз" скрипты

В этой статье, вообщем-то моей первой по данной тематике, я хочу рассказать вам как сделать "прес-энд-релиз" скрипты. Название довольно странное, но если прочитать по английски, то все понятно. Механизм этих скриптов такой: при нажатии на клавишу выполняется некоторые команды, а как только эту клавишу отпускаешь - другие. Написание такого скрипта можно разбить на два шага.

1. Пишем алиасы:

alias "+press" "command1; command2"
alias "-press" "command3; command4"

Обратите особое внимание на "+" и "-". Они должны обязательно ставится перед именем алиаса, иначе сделать "прес-энд-релиз" скрипт невозможно. Второй алиас не является обязательным, если при отпускании клавиши никаких действий совершать не надо.

2. Биндим клавишу

bind "?" "+press"

Вот вообщем-то и все. Осталось только привести пример. Я думаю всем понятен, а может и полезен, будет пример с показом радара:

alias "+radar" "drawradar"
alias "-radar" "hideradar"

bind "q" "+radar"

В заключение, хотелось бы отметить, что скрипты "прес-энд-релиз" можно применять и для других целей, например дял покупки оружия(см. покупка оружия в разделе скрипты). Кроме того, аналогично работают некоторые встроенные команды в КС, в частности +forward

"Сайкл" скрипты

Такой вид скриптов используется чаще всего для изменения настроек. С помощью одной клавиши вы сможете проходить по циклу, а конце вернутся на начальную позицию. Ниже приведен синтаксис дял такого вида скриптов:

// начальное значение алиаса cycle
alias cycle "cycle1"

// для каждой настройки назначаем команды и меняем алиас на следующий член цикла
alias cycle1 "команда1; команда2; командаN; alias cycle cycle2"

//повторяем то же самое несколько раз
alias cycle2 "команда1; команда2; командаN; alias cycle cycle3"
alias cycle3 "команда1; команда2; командаN; alias cycle cycleN"

//возвращаемся на исходную настроку
alias cycleN "команда1; команда2; командаN; alias cycle cycle1"

//биндим наше творение
bind "?" "cycle"

Теперь нажимая на забинденную клавишу мы меняем либо вид игры, либо настройки, либо еще что-нибудь. Теперь приведем пример, сделаем сайкл-скрипт для такой важной команды, как sensitivity:

alias sens "sens1"

alias sens1 "sensitivity 4; developer 1; echo Sensitivity is 4; developer 0; alias sens sens2"
alias sens2 "sensitivity 3; developer 1; echo Sensitivity is 3; developer 0; alias sens sens3"
alias sens3 "sensitivity 2; developer 1; echo Sensitivity is 2; developer 0; alias sens sens4"
alias sens4 "sensitivity 1; developer 1; echo Sensitivity is 1; developer 0; alias sens sens1"

bind "k" "sens"

"Мета" скрипты

Было ли когда-нибудь с вами такое, что вам не хватало клавиш на клавиатуре, потому что вы забиндили и всю покупку, и сообщения, и радиокоманды? А хотели ли вы забиндить на одну и ту же клавишу несколько разных команд? Если ваш ответ да, то эта статья для вас. В ней я расскажу вам как сделать мета-скрипты. Что ж, начнем с синтаксиса:

// Сделаем алиасы для каждой команды
alias command1 "action1; wait; action1" //Алиас для первой команды//
alias command2 "action1; wait; action2" //Алиас для второй...//

// Теперь выберем, что будет по дефолту

bind f1 "command1"

// Делаем мета-алиасы:
alias +meta1 "bind f1 command2" // Эта команда запускается, когда нажата мета-клавиша
alias -meta1 "bind f1 command1" // А эта, когда не нажата

// Назначаем мета-клавишу
bind alt "+meta1"

Теперь приведем пример с радиосообщениями. При нажатии на кнопку "R" клавиши "S", "G", "F", "A" будут вызывать радиосообщения "Storm in Front", "Go, Go, Go", "Team, Fall Back" и "Affirmative" соответственно. Иначе они будут выполнять команды движения назад, выброс оружия, альтернатиная стрельба и стрейф влево.

// делаем алиасы для радиосообщений
alias go "radio2; wait; menuselect 1; wait; wait; wait; slot10; wait; slo10"
alias storm "radio2; wait; menuselect 5; wait; wait; wait; slot10; wait; slo10"
alias aff "radio3; wait; menuselect 1; wait; wait; wait; slot10; wait; slo10"
alias fal "radio2; wait; menuselect 2; wait; wait; wait; slot10; wait; slo10"

// биндим по дефолту
bind s "+back"
bind a "+moveleft"
bind g "drop"
bind f "+attack2"

// делаем мета-алиасы...
alias +meta "bind g go; bind s storm; bind a aff; bind f fal"
alias -meta "bind s +back; bind a +moveleft; bind g drop; bind f +attack2"

// биндим мета-клавишу
bind r +meta

Вот вроде и все:)

Клавиши, на которые можно биндить

Клавиши букв:

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


Остальные:

,
.
/

;
'
*
[
]
-
=
~


5.07.03 cszone.ru


Статья из ..::GameCenter::..
http://gamecenter.idknet.com/web

URL для этой статьи:
RC_MOD_URL/sections/index.php?op=viewarticle&artid=34