Скрипты для Quake
Введение
Простая схема зацикленного переключателя
Схема передвижения по алиасам вперед и назад
Как делать менюшки
Как сделать ZOOM
Как сделать Rocket Jump
Как забиндить по 2 оружия на клавишу
Как убрать автопереключение оружия при его поднятии
Как кинуть гранату (и др) а потом переключиться на старое оружие
Как сделать изменение громкости
Как сделать изменение яркости
Как сделать управление просмотром демки
Как сделать быстрый выход
Как сделать запись текущих настроек, и консольных команд
Алиас прыжка из конфига Вентуры
Введение
Алиаc - это последовательность команд, вызывающихся через одно имя.
Алиаc в ку1 пишется следующим образом:
alias <name> <command>
Если алиас содержит несколько команд, то они должны быть заключены в кавычки:
alias <name> "<command1>; <command1>; ...; <commandN>"
Далее вы можете вызывать алиас либо из консоли, либо забиндить его на клавишу:
alias <name> <command>
bind <key> <name>
Можно сделать алиас на нажатие и отжатие клавиши:
alias +<name> <command1>
alias -<name> <command2>
bind <key> +<name>
Простая схема зацикленного переключателя
Алиаc служит для зацикленного вызова, те когда вы он вызывает последний алиас <имяN> то при следующем нажатии вызовется <имя1>:
alias <имя> "<имя1>"
alias <имя1> "<команды; имя2>"
alias <имя2> "<команды; имя1>"
bind <клавиша> "<имя>"
Схема передвижения по алиасам вперед и назад
Алиаc дает возможностя вернуться к предыдущему алиасу в списке <имяN>:
alias <вперед> "<имя1>"
alias <назад> "<имя0>"
alias <имя0> "<команды>; alias <вперед> <имя1>; alias <назад> <имя0>"
alias <имя1> "<команды>; alias <вперед> <имя2>; alias <назад> <имя0>"
alias <имя2> "<команды>; alias <вперед> <имяN>; alias <назад> <имя1>"
...
alias <имяN> "<команды>; alias <вперед> <имяN>; alias <назад> <имя2>"
bind <keyDown> <вперед>
bind <keyUp> <назад>
Как делать менюшки
У Q1 есть 4 строки с текстом которые мокут быть видимыми на экране, туда поподают сообщения из консоли. Я приведу пример для 8 пунктов меню, клавишами вверх и вниз мы выбираем нужный пункт, при этом на [Enter] у нас биндится нужная команда:
alias text1 "echo Menu Item 1"
alias text2 "echo Menu Item 2"
alias text3 "echo Menu Item 3"
alias text4 "echo Menu Item 4"
alias text5 "echo Menu Item 5"
alias text6 "echo Menu Item 6"
alias text7 "echo Menu Item 7"
alias text8 "echo Menu Item 8"
alias stext1 "echo =>Menu Item 1<="
alias stext2 "echo =>Menu Item 2<="
alias stext3 "echo =>Menu Item 3<="
alias stext4 "echo =>Menu Item 4<="
alias stext5 "echo =>Menu Item 5<="
alias stext6 "echo =>Menu Item 6<="
alias stext7 "echo =>Menu Item 7<="
alias stext8 "echo =>Menu Item 8<="
alias curup "menu1"
alias curdown "menu2"
alias menucom "<команда1>"
alias menu1 "alias curup menu1; alias curdown menu2; alias menucom <команда1>;
stext1;text2;text3;text4"
alias menu2 "alias curup menu1; alias curdown menu3; alias menucom <команда2>;
text1;stext2;text3;text4"
alias menu3 "alias curup menu2; alias curdown menu4; alias menucom <команда3>;
text1;text2;stext3;text4"
alias menu4 "alias curup menu3; alias curdown menu5; alias menucom <команда4>;
text2;text3;stext4;text5"
alias menu5 "alias curup menu4; alias curdown menu6; alias menucom <команда5>;
text3;text4;stext5;text6"
alias menu6 "alias curup menu5; alias curdown menu7; alias menucom <команда6>;
text4;text5;stext6;text7"
alias menu7 "alias curup menu6; alias curdown menu8; alias menucom <команда7>;
text5;text6;stext7;text8"
alias menu8 "alias curup menu7; alias curdown menu8; alias menucom <команда8>;
text5;text6;text7;stext8"
bind <вверх> curup
bind <вниз> curdown
bind <энтер> menucom
Еще, чтобы было более удобно, можно сделать алиас на вызов меню:
alias menucall0 "menucall1"
alias menucall1 "bind <вверх> curup; bind <вниз> curdown; bind <энтер> menucom;
alias menucall0 menucall2; curup"
alias menucall2 "bind <вверх> <старая команда>;
bind <вниз> <старая команда>;
bind <энтер> <старая команда>;
alias menucall0 menucall1; echo; echo; echo;
echo LOG: Menu is closed."
Либо на menucall2 можно просто сделать exec <ваш_конфиг>, но тогда все настройки будут загружены заново.
Как сделать ZOOM.
Зум, изменяет угол обзора и чуствительность мышки, поэтому я рекомендую вам сделать алиасы фова и чувствительности заранее, дабы при изменении настроек вам не пришлось бы переписывать алиас зума. Hапример где вы прописывайте фов лучше напишите:
alias fovu "fov 90"
fovu
а вместо установки чувствительности:
alias senu "sensitivity 3.8"
senu
Основной вид алиаса зума:
alias +zoom "<угол обзора при приближении>;
<чувствительность при приближении>"
alias -zoom "<исходный угол обзора>; <исходная чувствительность>"
Иногда требуется приближать на разное расстояние. Это можно сделать следующим
образом:
alias fovt "fov 40"
alias sent "sensitivity 2"
alias chz change_zoom
alias change_zoom "alias fovt fov 20;
alias sent sensitivity 1;
alias chz change_zoom1; echo Big Zoom"
alias change_zoom1 "alias fovt fov 40;
alias sent sensitivity 2;
alias chz change_zoom; echo Small Zoom"
fovu и senu у нас определены ранее поэтому далее пишем:
alias +zoom "fovt; sent"
alias -zoom "fovu; senu"
bind <клавиша> +zoom
bind <клавиша> chz // Эта клавиша будет менять степень приближения
Вы, наверно, заметили, что в Q2 & Q3 зум меняется плавно, а в Q1 он устанавливается резко, ниже следует алиас плавного зума для Q1:
alias +zoom "fovu;wait;fov 80;wait;fov 70;wait;fov 60;wait;fov 50;wait;
fov 40;wait;fovt; sent"
alias -zoom "fovt;wait;fov 40;wait;fov 50;wait;fov 60;wait;fov 70;wait;
fov 80;wait;fovu; senu"
Так же некоторым нужно сидеть с зумом, и при этом не держать клавишу. Hажал - приблизило, еще раз - восстановилось. Это делается следующим образом.
(fovu, senu, fovt, sent у нас определены ранее; биндить алиас zoom_ch)
alias zoom_ch zoom1
alias zoom1 "fovt; sent; alias zoom_ch zoom2"
alias zoom2 "fovu; senu; alias zoom_ch zoom1"
bind <клавиша> "zoom_ch"
Далее следует алиас зума как в Action Quake2:
(fovt1, sent1 и т.п. определите сами; биндить алиас zoom_ch)
alias zoom_ch zoom1
alias zoom1 "fovt1; sent1; alias zoom_ch zoom2"
alias zoom2 "fovt2; sent2; alias zoom_ch zoom3"
...
alias zoomN "fovtN; sentN; alias zoom_ch zoom_reset"
alias zoom_reset "fovu; senu; alias zoom_ch zoom1"
Как сделать Rocket Jump
Если вы используете для наклонов клавиатуру, то вам необходимо добавить
восстановку cl_pitchspeed в прежнее значение.
cl_pitchspeed "9999"
alias +rj "impulse 7; +lookdown; wait; +jump; +attack; wait"
alias -rj "-attack; -jump; -lookdown; force_centerview"
Как забиндить по 2 оружия на клавишу
К сожалению, можно сделать только выбор по приоритету. Hапример если у вас есть бумстик (одноствольный шотган) и шотган, то преимущество шотгана очивидно, для меня идеальным алиасом для 2х оружий является ку2шная система, там выбор идет либо первое, либо то, у которого есть патроны:
alias weapon0 "impulse 2; wait; impulse 3" // Boomstic & Super Shotgun
alias weapon1 "impulse 4; wait; impulse 5" // Machinegun & Nailgun
Как убрать автопереключение оружия при его подборе
Биндить надо алиасы weaponN
alias weapprev "weapon2"
alias weapon1 "impulse 1; alias weapprev weapon1"
alias weapon2 "impulse 2; wait; impulse 3; alias weapprev weapon2"
alias weapon3 "impulse 4; wait; impulse 5; alias weapprev weapon3"
alias weapon4 "impulse 6; alias weapprev weapon4"
alias weapon5 "impulse 7; alias weapprev weapon5"
alias weapon6 "impulse 8; alias weapprev weapon6"
Hижеследующее надо биндть вместо стандартной команды +attack:
alias +attack0 "weapprev; wait; +attack"
alias -attack0 "-attack"
Как кинуть гранату (и др) а потом переключиться на старое оружие
weapprev должен всегда указывать на оружие, которое у вас в руках, как это делается показано выше, но вам не обязательно делать по 2 оружия, достаточно дописать к клавише выбора:
bind <клавиша> "impulse <оружие>; alias weapprev impulse <оружие>"
alias +gr "impulse 6; wait; +attack"
alias -gr "-attack; weapprev"
Вместо impulse 6, вы можете подставить что захотите. Быстрым переключением оружия, Q1 дает огромные возможности для комбинаций, вы можете сделать алиас, чтобы кидалась граната, потом стрелял рокет, итп, но не забывайте, что следующее оружие переключается только после перезарядки текущего.
Как сделать изменение громкости
Позволяет регулировать громкость, не выходя в меню.
bind <клавиша> vu
bind <клавиша> vdn
alias vup "v_6"
alias vdn "v_4"
alias v_0 "play items/protect; volume 0 ; alias vup v_1;
echo VOLUME: ----------"
alias v_1 "play items/protect; volume 0.1; alias vup v_2;
alias vdn v_0; echo VOLUME: |---------"
alias v_2 "play items/protect; volume 0.2; alias vup v_3;
alias vdn v_1; echo VOLUME: ||--------"
alias v_3 "play items/protect; volume 0.3; alias vup v_4;
alias vdn v_2; echo VOLUME: |||-------"
alias v_4 "play items/protect; volume 0.4; alias vup v_5;
alias vdn v_3; echo VOLUME: ||||------"
alias v_5 "play items/protect; volume 0.5; alias vup v_6;
alias vdn v_4; echo VOLUME: |||||-----"
alias v_6 "play items/protect; volume 0.6; alias vup v_7;
alias vdn v_5; echo VOLUME: ||||||----"
alias v_7 "play items/protect; volume 0.7; alias vup v_8;
alias vdn v_6; echo VOLUME: |||||||---"
alias v_8 "play items/protect; volume 0.8; alias vup v_9;
alias vdn v_7; echo VOLUME: ||||||||--"
alias v_9 "play items/protect; volume 0.9; alias vup v_10;
alias vdn v_8; echo VOLUME: |||||||||-"
alias v_10 "play items/protect; volume 1 ;
alias vdn v_9; echo VOLUME: ||||||||||"
Как сделать изменение яркости
Позволяет регулировать яркость, не выходя в меню.
alias gup "g_7"
alias gdn "g_5"
alias g_0 "gamma 1.0; alias gup g_1; echo;echo;
echo GAMMA: ---------"
alias g_1 "gamma 0.9; alias gup g_2; alias gdn g_0; echo;echo;
echo GAMMA: |--------"
alias g_2 "gamma 0.8; alias gup g_3; alias gdn g_1; echo;echo;
echo GAMMA: ||-------"
alias g_3 "gamma 0.7; alias gup g_4; alias gdn g_2; echo;echo;
echo GAMMA: |||------"
alias g_4 "gamma 0.6; alias gup g_5; alias gdn g_3; echo;echo;
echo GAMMA: ||||-----"
alias g_5 "gamma 0.5; alias gup g_6; alias gdn g_4; echo;echo;
echo GAMMA: |||||----"
alias g_6 "gamma 0.4; alias gup g_7; alias gdn g_5; echo;echo;
echo GAMMA: ||||||---"
alias g_7 "gamma 0.3; alias gup g_8; alias gdn g_6; echo;echo;
echo GAMMA: |||||||--"
alias g_8 "gamma 0.2; alias gup g_9; alias gdn g_7; echo;echo;
echo GAMMA: ||||||||-"
alias g_9 "gamma 0.1; alias gdn g_8; echo;echo;
echo GAMMA: |||||||||"
Как сделать управление просмотром демки
Забиндите эти алиасы на клавиши
alias demopause "host_framerate 0.0001; echo DEMO: Stop."
alias demoslow "host_framerate 0.005; echo DEMO: Slow play."
alias demonormal "host_framerate 0; echo DEMO: Play."
alias demoforward "host_framerate 0.09; echo DEMO: Forward."
alias demofastforward "host_framerate 0.2; echo DEMO: Fast forward."
Как сделать быстрый выход
Выходим из игры по нажатию одной клавиши.
alias fast_quit "toggleconsole;wait;quit"
Как сделать запись текущих настроек, и консольных команд
alias writecfg "clear; cvarlist; aliaslist; bindlist; condump mycfg"
Далее идет алиас для записи всех консольных команд:
alias writecmd "clear; cmdlist; condump mycmd"
Алиас прыжка из конфига Вентуры
Алиас взятый из конфига Вентуpы - популяpная вещь сpеди буpжуев. Высота пpыжка pегулиpуется за счет угла наклона во вpемя пpыжка. Работает на большинстве машин, на котоpых есть хотя бы 30-40 fps, т.е. на данной
вpемя пpактически в любом клубе:
alias ventjump "pitchi; yawi; impulse 7; -forward; +back; +left; +jump;
+attack; wait; -attack; -jump; -left; -back; +forward; +right;
wait; -right; -forward; ihctip; iway"
alias pitchi "cl_pitchspeed 23000"
alias yawi "cl_yawspeed 25000"
alias ihctip "cl_pitchspeed 150"
alias iway "cl_yawspeed 140"
bind <key> ventjump