Главная > Игры > 3D Action >
Алиазы для Quake II
   Редакция от 13.09.01
       Алиазы для Quake II

  Составлено на основе личного опыта, и писем из конференций
  Ru.Game.Quake и Ru.Game.Quake.II
  Автор: Тарас 'Tarik' Бондарь     2:5020/1507.31
           tarik_idt@mail.ru
  Последняя версия доступна на http:\\InfernalDomain.web1000.com
  Присылайте мне дополнения на мыло. Если вы не знаете как сделать
  алиаз, или у вас появились вопросы, то пишите мне, постараюсь помочь
 
  > - Так отмечены новые пункты


 

       Оглавление
1. Введение
2.    Простая схема зацикленного переключателя
3.    Схема передвижения по алиазам вперед и назад
4. Как делать менюшки
5. Как сделать зум
6. Как сделать RJ
7. Как сделать DRJ
8. Как сделать DJ
9. Как забиндить по 2 оружия на клавишу
10.   Как сделать выбор оружия, и дропанье на одни и те же клавиши
12.   Как сделать изменение громкости
13.   Как сделать запись демки с разными именами
14.   Как сделать просмотр фрагов по аналогии с Q3
15.   Как сделать запись текущих настроек, и консольных команд




> 1.  Введение

 Алиаз - это последовательность команд, вызывающихся через одно имя.
 Алиаз в ку1 пишется следующим образом:
 alias <name> <command>

 Если алиаз содержит несколько команд, то они должны быть заключены в кавычки:
 alias <name> "<command1>; <command1>; ...; <commandN>"

 Далее вы можете вызывать алиаз либо из консоли, либо забиндить его на клавишу:
 alias <name> <command>
 bind <key> <name>

 Можно сделать алиаз на нажатие и отжатие клавиши:
 alias +<name> <command1>
 alias -<name> <command2>
 bind <key> +<name>

 Так же в Q2 есть возможность делать макросы. Это делается следующим путем:
 set $<имя> "<команда>"




> 2.   Простая схема зацикленного переключателя

Алиаз служит для зацикленного вызова, те когда вы он вызывает последний алиаз
<имяN> то при следующем нажатии вызовется <имя1>:
alias <имя> "<имя1>"
alias <имя1> "<команды; alias имя имя2>"
alias <имя2> "<команды; alias имя имя1>"
bind  <клавиша> "<имя>"




> 3.   Схема передвижения по алиазам вперед и назад

Алиаз дает возможностя вернуться к предыдущему алиазу в списке <имя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> <назад>



> 4.  Как делать менюшки

 У Q2 есть 4 строки с текстом которые мокут быть видимыми на экране, туда
поподают сообщения из консоли. Я приведу пример для 8 пунктов меню, клавишами
вверх и вниз мы выбираем нужный пункт, при этом на Энтер у нас
биндится нужная команда:
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 ваш конфиг, но тогда все настройки

будут загружены заново.



> 5.  Как сделать зум

 Зум, изменяет угол обзора и чуствительность мышки, поэтому я рекомендую вам
сделать алиазы фова и чувствительности заранее, дабы при изменении настроек
вам не пришлось бы переписывать алиаз зума. 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"

 Далее следует алиаз зума где вы регулируете слепень приближения колесиком
мышки, либо это можно забиндить на 2 клавиши (zoom_in & zoom_out):
alias zoom_in zoom1
alias zoom_out zoom0
alias zoom0 "senu; fovu; alias zoom_in zoom1; alias zoom_out zoom0;
             echo Zoom 0.0X"
alias zoom1 "sent1; fovt1; alias zoom_in zoom2; alias zoom_out zoom0;
             echo Zoom 1.0X"
alias zoom2 "sent2; fovt2; alias zoom_in zoomN; alias zoom_out zoom1;
             echo Zoom 2.0X"
...
alias zoomN "sentN; fovtN; alias zoom_in zoom_end; alias zoom_out zoom2;
             echo Zoom N.0X"
alias zoom_end "sentend; fovtend; alias zoom_in zoom_end; alias zoom_out zoomN;

             echo Big Zoom"
bind MWHEELUP zoom_in
bind MWHEELDOWN zoom_out




> 6.  Как сделать RJ

 Если вы используете для наклонов клавиатуру, то вам необходимо добавить
восстановку cl_pitchspeed в прежнее значение.
cl_pitchspeed "9999"
alias +rj "+lookdown; wait; +moveup; +attack; wait"
alias -rj "-attack; -moveup; -lookdown; centerview"
                                                  



> 7.  Как сделать DRJ

alias LW0 "wait;wait;wait;wait;wait"
alias LW1 "LW0;LW0;LW0;LW0;LW0;LW0"
alias LW2 "LW1;LW1;LW1;LW1;LW1;LW1"
alias LW3 "LW2;LW2;LW2;LW2;LW2;LW2"

alias +freeze "set cl_maxfps 0"
alias -freeze "set cl_maxfps 200"

set cl_pitchspeed "9999"

alias drj "+lookdown;lw0;+attack;+moveup;lw0;+freeze;lw3;-freeze;
           -lookdown;-attack;-moveup"
bind <клавиша> "drj"




> 8.  Как сделать DJ

alias +dj     "+moveup;wait;wait;wait;-moveup;wait;wait;wait;+moveup"
alias -dj     "-moveup"

 Иногда получается, что при мощьных компах этот алиаз не пашет, для того чтобы
он работал надо прописать cl_maxfps. В +dj меньше, при котором алиаз работает,
а в -dj исходный.




> 9.  Как забиндить по 2 оружия на клавишу

alias weapon0 "use Machinegun;   use Chaingun"
alias weapon1 "use Shotgun;      use Super shotgun"
bind <key> weapon0
bind <key1> weapon1




> 10.  Как сделать выбор оружия, и дропанье на одни и те же клавиши

Биндить надо алиазы weaponN, и +drop на выбор или дропанье:
set du0   "use"
alias +drop "set du0 drop; echo LOG: Droping..."
alias -drop "set du0 use; echo LOG: Using..."
alias weapon1 "$du0 Rocket Launcher"
alias weapon2 "$du0 Railgun"
alias weapon3 "$du0 HyperBlaster; $du0 BFG10K"
alias weapon4 "$du0 Machinegun;   $du0 Chaingun"
alias weapon5 "$du0 Shotgun;      $du0 Super shotgun"
alias weapon6 "$du0 Grenades;     $du0 Grenade Launcher"




> 12.  Как сделать изменение громкости

bind <клавиша>  vup
bind <клавиша>  vdn
alias vup  "v_6"
alias vdn  "v_4"
alias v_0  "play items/protect; s_volume 0  ; alias vup v_1;
                 echo VOLUME: ----------"
alias v_1  "play items/protect; s_volume 0.1; alias vup v_2;
                 alias vdn v_0; echo VOLUME: |---------"
alias v_2  "play items/protect; s_volume 0.2; alias vup v_3;
                 alias vdn v_1; echo VOLUME: ||--------"
alias v_3  "play items/protect; s_volume 0.3; alias vup v_4;
                 alias vdn v_2; echo VOLUME: |||-------"
alias v_4  "play items/protect; s_volume 0.4; alias vup v_5;
                 alias vdn v_3; echo VOLUME: ||||------"
alias v_5  "play items/protect; s_volume 0.5; alias vup v_6;
                 alias vdn v_4; echo VOLUME: |||||-----"
alias v_6  "play items/protect; s_volume 0.6; alias vup v_7;
                 alias vdn v_5; echo VOLUME: ||||||----"
alias v_7  "play items/protect; s_volume 0.7; alias vup v_8;
                 alias vdn v_6; echo VOLUME: |||||||---"
alias v_8  "play items/protect; s_volume 0.8; alias vup v_9;
                 alias vdn v_7; echo VOLUME: ||||||||--"
alias v_9  "play items/protect; s_volume 0.9; alias vup v_10;
                 alias vdn v_8; echo VOLUME: |||||||||-"
alias v_10 "play items/protect; s_volume 1  ;               
                 alias vdn v_9; echo VOLUME: ||||||||||"




> 13.  Как сделать запись демки с разными именами

bind ins "demo0"
bind del "stop"
bind end "bind ins demo0; echo LOG: Clear demos."
alias demo0 "record demo00; bind ins demo1; echo LOG: Recording 00."
alias demo1 "record demo01; bind ins demo2; echo LOG: Recording 01."
alias demo2 "record demo02; bind ins demo3; echo LOG: Recording 02."
alias demo3 "record demo03; bind ins demo4; echo LOG: Recording 03."
alias demo4 "record demo04; bind ins demo5; echo LOG: Recording 04."
alias demo5 "record demo05; bind ins demo6; echo LOG: Recording 05."
alias demo6 "record demo06; bind ins demo7; echo LOG: Recording 06."
alias demo7 "record demo07; bind ins demo8; echo LOG: Recording 07."
alias demo8 "record demo08; bind ins demo9; echo LOG: Recording 08."
alias demo9 "record demo09; unbind ins    ; echo LOG: Recording 09."




> 14.  Как сделать просмотр фрагов по аналогии с Q3

Иногда глючит под ОСП:
alias +score "cmd help"
alias -score "cmd help"




> 15.  Как сделать запись текущих настроек, и консольных команд

alias writecfg "clear; cvarlist; aliaslist; bindlist; condump mycfg"

Далее идет алиаз для записи всех консольных команд:
alias writecmd "clear; cmdlist; condump mycmd"


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

Copyright © 2001 - 2003 Olexandr Slobodyan.
Сайт создан в системе uCoz