Quake 2 еще жив. Часть 1 - Оружие и патроны. Часть 2-3 - Написание простенького конфига

on июля 30, 2003 - 00:00

Я надеюсь, что еще остались люди, которые ночи напролет просиживали в клубах или у себя дома за игрой Quake 2, кто еще помнит имя Полосатого во второй ку. Ведь вторая Квака — это отлично сбалансированная игра, а то, что графика отстает от 21 века, так это ж не главное, да и настроить ее можно на очень даже приличном уровне. Да и физика мне в Quake 2 нравится больше, чем в третьей. Правда, многие настройки, порой очень даже важные, доступны только через конфигурационные файлы (конфиги). Как же правильно написать свой конфиг? Какие существуют трюки конфигописания? Что можно вытворять на картах второй кваки? На эти и многие другие вопросы я постараюсь ответить.



Оружие и патроны. Часть 1.
Для начала вам нужно будет кое-что знать об основном оружии.

Blaster. Самое начальное оружие. Патроны у него бесконечные, а максимальный наносимый ущерб всего 15 жизней. Эффективен только на очень коротких расстояниях. В темных переулках можете им освещать дорогу. Зато шлейф от бластера выдает ваше местоположение. Если хорошо будете прыгать, то можете убить бластером человека, разве что с Railgun'ом.

Для Shotgun'а нужны патроны (Shells). Оружие бесполезное, стреляет дробинками по 12 штук, каждая из которых наносит ущерб в 4 жизни. В зависимости от того, как вы попадете в противника, вы нанесете ущерб от 4 до 48 жизней. Обычно из него стреляют со средних и длинных дистанций, однако, если вы будете пользоваться им вблизи, то будет больше шансов нанести максимальный урон. С него достаточно легко попадать, так как выстреливает сразу 12 дробинками. За 1 выстрел используется 1 shells. Стреляет раз в секунду.

Super Shotgun также использует shells, но за 1 выстрел аж 2 штуки. Так что патроны у вас будут заканчиваться довольно быстро. В отличие от обычного Shotgun'а, стреляет по 20 дробинок, каждая из которых снимает 6 пунктов жизней. Так что вы можете наносить ущерб от 6 до 120 пунктов жизней. На больших расстояниях бесполезен, зато на коротких дистанциях есть где развернуться. Стреляет раз в секунду.

Еще одно оружие, которым вы будете пользоваться не часто, — это Machinegun, так как существует Chaingun. Но этот автомат в умелых руках может быть грозным оружием. Одно попадание отнимает 8 жизней, а за секунду вы можете выпустить 10 выстрелов. Еще к достоинствам автомата можно отнести то, что он не требует перезарядки, т.е. вы можете стрелять из него до тех пор, пока не кончатся патроны. Минус в том, что патроны рассеиваются. Патроны — bullets.

Chaingun оружие очень мощное, но быстро кончаются патроны (bullets). За одно попадание снимает 6 жизней. Зато за первую секунду 20 патронов, во вторую — 40. Таким образом, вы можете за 1 секунду нанести урон в 240 единиц жизней. К недостаткам относится то, что на раскрутку chaingun'а необходимо время, да и на остановку тоже. Используйте это оружие на маленьких или средних расстояниях.

Hand grenade. Патроны — grenades. За 2 секунды вы можете кинуть одну гранату. Максимальный наносимый урон 125 жизней. Может задеть взрывной волной. Если передержите в руке, то взорвется, нанеся вам урон. Взрывается при контакте с противником.

Grenade launcher также использует grena-des. Максимальный урон — 100 жизней. Вы можете стрелять гранатами раз в секунду. Гранаты летят намного дальше, чем ручные, что позволяет его использовать на средних расстояниях. Также может наносить вам урон взрывной волной. Так что, если вы попадете в близстоящего противника, вам нанесется также урон.

Одно из самых популярных оружий в Quake 2 — это Rocket Launcher. Для стрельбы нужны ракеты (rockets). Если хорошо попасть, то можно нанести 120 пунктов урона. Можете наносить урон взрывной волной, но тогда он будет меньше, чем прямое попадание. Ракетами можно освещать дорогу. Один из существенных недостатков — это медленный полет ракет, что позволяет противнику уклоняться от выстрелов.

Hyperblaster по характеристикам схож с Chaingun'ом, но использует в качестве патронов cells. Один патрон наносит 15 пунктов повреждения, скорострельность — 10 патронов в секунду.

 Railgun — одно из моих любимых оружий. Поражает противника мгновенно, что не позволяет ему уклоняться. Вы можете выпускать 2 патрона (slugs) за 3 секунды и каждым наносить ущерб в 100 жизней. В 3-ей части моей статьи я расскажу вам, как можно сымитировать снайперскую винтовку с помощью Railgun'а.

 Последнее и наиболее мощное оружие — это BFG10k. В качестве патронов также использует cells и выпускает по 50 патронов одновременно. Зато может нанести ущерб в 1000 жизней. BFG стреляет шаром, от которого отходят лучи, каждый из которых наносит 50 пунктов повреждения за секунду. Чтобы нанести довольно мощный ущерб, можно стрелять в пол. Если противник и место попадания шара в пол находятся в прямой видимости, то ваш враг может получить ущерб в 1000 жизней. Также вы наверняка умрете, если этот шар попал прямо в вас.

Написание простенького конфига. Часть 2
Теперь, когда вы знаете, какое оружие лучше применять и в какой ситуации, можем написать свой конфигурационный файл (или просто конфиг).
Все пользовательские настройки Quake 2 хранит в cfg-файлах, расположенных в папке /baseq2 директории, куда установлена Квака. Это обычные текстовые файлы, и вы легко можете редактировать их блокнотом. В директории выше вы найдете *.pak файлы. На самом деле это обычные архивы, для работы с которыми я бы посоветовал вам использовать программку PakScape ( http://quake2.at.tut.by ). Вы можете скопировать ваш конфиг в один из существующих pak-файлов либо создать свой. Quake 2 понимает и умеет читать такие файлы. Файл config.cfg является начальным файлом конфигурации. Я советую скопировать его куда подальше, на всякий случай. Также можно создать файл autoexec.cfg, тогда ку2 будет считывать все настройки с него при загрузке.
Итак, для начала создайте в директории /baseq2 файл с расширением cfg. Например, q2.cfg. Откройте его блокнотом или любым другим текстовым редактором. Первой строкой можете написать какой-либо комментарий, предварительно поставив перед ним два слэша (//):

//This file was made by Vile. Don't modify:) ver 1.0

Затем напишем

unbindall

Эта команда отменяет все прошлые настройки управления, как бы затирает их.
Далее вам следует знать, что для того, чтобы написать конфиг, надо привязывать какое-либо действие клавише, вводить переменные (для того, чтобы проще было писать скрипты) и изменять настройки игры (звук, графика, игра, боты...).

Bind <клавиша> "команда"

Используется для привязки команды к клавише. Можно привязать к клавише и несколько команд, предварительно взяв их все в кавычки и разделив точкой с запятой. Считается хорошим тоном писать команду в двойных кавычках. Клавиши, которыми можно пользоваться при игре в q2, — A-Z, 0-9, F1-F12, TAB, ENTER, SPACE, BACKSPACE, UPARROW, DOWNARROW, LEFTARROW, RIGHTARROW, ALT, CTRL, SHIFT, INS, DEL, и дополнительные клавиши KP_HOME, KP_UPARROW, KP_PGUP, KP_LEFTARROW, KP_KP5, KP_RIGHTARROW, KP_END, KP_DOWNARROW, KP_PGDN, KP_*, KP_ENTER, ESCAPE

Alias < имя> "команда"

Создает ссылку на команду либо список команд. Напоминает объявление переменных в языках программирования. Изменить какие-либо параметры игры, звуковые или графические настройки можно с использованием вводного слова SET, а можно просто написать эту команду.
Далее в вашем конфиге должен следовать ряд стандартных команд:

bind escape "togglemenu" //вызывает меню выхода
bind '"toggleconsole" //вызывает консоль

Теперь научимся двигаться:

bind w "+forward" //движение вперед
bind s "+back" //движение назад
bind a "+moveleft" //стрейф влево
bind d "+moveright" // стрейф вправо
bind c "+movedown" //присесть
bind ctrl "+speed" //идти (двигаться бесшумно)
bind mouse2 "+moveup" //одиночный прыжок

Теперь рассмотрим команды, связанные с атакой и патронажем:

bind mouse1 "+attack" //стрелять
bind ="invnext" //следующий предмет из инвентаря
bind Backspace "invprev" //предыдущий предмет из инвентаря
bind enter "invuse" //использовать текущий артефакт или патроны
bind space "weapnext" //следующее оружие
bind z "weapprev" //предыдущее оружие

Осталось только настроить оружие, тем более, что названия вы уже знаете. Но мы напишем по-хитрому. Во-первых, для каждого оружия у нас будет своя чувствительность мышки (sensitivity), при желании можете ее настроить под свою мышку. Во-вторых, после выбора оружия вверху экрана будет выводиться надпись, какое мы выбрали оружие. Она будет видна только нам.
Обратите внимание, что, используя несколько команд, они в обязательном порядке берутся в кавычки и между ними ставится точка с запятой. Также посмотрите, как мы хитро повесили на одну клавишу 6 два оружия: Hand grenade и Grenade Launcher. То есть, при первом нажатии у вас окажется в руках ручная граната, а если ее нет, то гранатомет. А при втором нажатии вы выберете гранатомет.
Ну, вот и все, ваш простейший конфиг готов. Теперь, скопировав его в папку baseq2 и запустив кваку, осталось набрать в консоли "exec имя.cfg", где имя — название вашего конфига. Все ваши настройки загрузятся. Но ведь этих настроек недостаточно! Для вашего первого конфига я приведу еще несколько интересных команд:

Clear //очищает консоль
Cmdhelp //выводит задание в Single Player и результаты в Deathmatch
Invdrop //выбрасывает текущее оружие, если у вас его больше, чем 1
Drop xxx //выбрасывает предмет xxx
Quit //выйти из quake2
Name xxx //изменить свое имя на xxx (используется в deathmatch)

Все это вы можете также включить в свой конфиг, используя команду "bind <клавиша> "команда"". Текущую версию конфига вы также можете взять с сайта http://quake2.at.tut.by/ (q2_ver1.0.cfg) или написать сами, пользуясь этой статьей.

Совершенствуем свой конфиг. Часть 3
Теперь, когда вы уже знаете, как написать свой простейший конфиг, давайте приступим к его совершенствованию. На этом ведь не исчерпываются возможности quake2.
Рассмотрим команду drop <предмет>, где предметом может быть оружие, патроны, артефакты или руны (например, Megahealth, Quad Damage; в CTF это AutoDOC Time Accel, в OSP — это руны Vampire Strength и т.д.). В командной игре очень полезно выкинуть ненужное вам оружие своему другу. Иногда необходимо избавиться от какой-либо руны или артефакта, чтоб взять другой. Давайте посмотрим, как это реализовать в конфиге. Так как наиболее полезное оружие это Chaingun, Rocket Launcher и Railgun, а Hyperblaster'ом никогда не жалко поделиться, то выкидывать мы будем именно их.

bind alt "invdrop"
bind t "drop Chaingun; drop bullets;drop bullets"
bind y "drop HyperBlaster; drop cells; drop cells "
bind u "drop Rocket Launcher; drop rockets"
bind i "drop Railgun; drop slugs"
bind k "drop tech"

Команда "invdrop" выкидывает текущее оружие, если его у вас больше, чем, как минимум, один экземпляр. Команда "drop tech" выкидывает текущий артефакт (Megahealth, Quad Damage, Invulnerability, Auto Doc..., какие-либо руны в OSP tourney и так далее). Теперь посмотрите, как мы прописали в конфиге выброс оружия. Скорее всего, вашему товарищу не будет пользы от оружия без патронов, так вот, вместе с оружием рекомендую выбрасывать характерные для них патроны.
Теперь посмотрим, как обмениваться сообщениями и жестами при командной игре. Чтобы послать сообщение всем игрокам, используйте команду "say <текст>", а чтобы послать сообщение только своей команде, воспользуйтесь командой "say_team <текст>". Заметьте, что по-русски вы печатать не сможете, так что придется писать по-английски или латиницей. Еще один оригинальный способ общения — это писать русские сообщение, но заменять их похожими английскими буквами. В освоении этого приема вам поможет программка convertor ( http://quake2.at.tut.by ). А у кого нет Интернета, могут воспользоваться таблицей.
Итак, добавим эти строки в наш конфиг:

bind m"say Mo4N Nx BcEx! "
bind n"say_team Do you need a GUN "
bind v"I need help!"
bind o"say All your base are belong to me"
bind b "say We are 313373"

Как видите, все довольно просто. Но гораздо интереснее, когда ты можешь общаться жестами, тем более, что возможности quake это позволяют. Для этого необходимо использовать команду "wave <цифра>", где цифрой может быть 0,1,2,3 или 4. В зависимости от этой цифры ваш игрок может помахать рукой, отдать честь или поиздеваться над противником. Эти строки также добавим в наш конфиг, "забиндив" их на цифровые клавиши дополнительной клавиатуры.

bind KP_INS wave 0 // отвали!
bind KP_END wave 1 // отдать честь
bind KP_DOWNARROW wave 2 // ты мне ничего не сделаешь
bind KP_PGDN wave 3 // за мной!
bind KP_LEFTARROW wave 4 // стой, 
сюда не иди

Можно комбинировать жесты и сообщения. Например:

bind x "say prepare to DIE; wave 0"

Наверняка вам захочется хранить у себя на винчестере записи ваших похождений в кваке. Всю вашу игру можно записать в *.dm2 файлы, а потом просматривать или редактировать в специальных программах. ( http://quake2.at.tut.by,  качать keygrip)

Record <имя файла без расширения> // начать запись демки
Stop // закончить запись демки

Если за одну игру вам необходимо писать более чем одну демку, то предлагаю такой скрипт:

Вы нажимаете <home>, начинает записываться демка demo_q2_1, затем, нажав <end>, запись прекращается. Теперь, если вы нажмете опять <Home>, то будет уже записываться демка demo_q2_2, и так далее, покуда не дойдет до 10-ой. Затем будет выводиться сообщение "][BaTuT y)|(e geMku nucaTb:)".
Также очень удобно повесить на клавишу <F1> или <tab> такой скрипт:

bind tab "+help"
alias +help "cmd help"
alias -help "cmd help"

Это значит, что, пока вы удерживаете клавишу <tab>, на экране будут показываться результаты игры; как только вы ее отпустите — результаты исчезнут. В противном случае пришлось бы нажимать клавишу 2 раза: один раз — показать результаты, второй раз — спрятать.
Теперь, вместо обычного прыжка, мы "забиндим" на правую кнопку мыши двойной прыжок. Он нам пригодится при выполнении различных трюков. Суть его выполнения заключается в том, что если сделать двойной прыжок (быстро нажимать клавишу прыжок) возле небольшого ящика или выступа, то второй прыжок получается гораздо выше.

Alias+jump "+moveup;wait; wait;-moveup; wait;wait; +moveup;wait; wait"
alias -jump "-moveup"
bind mouse2 "+jump"

Помните, я говорил, что покажу, как из Railgun'а сделать снайперскую винтовку? Так вот, суть метода заключается в том, что есть такая команда fov, которая устанавливает угол обзора (стандартный 90°). C помощью этой команды мы уменьшаем угол обзора до 25° (изображение растягивается, а нам кажется, что приближается) и изменяем чувствительность мышки (чтоб не дергалась). Вот как это должно выглядеть в конфиге

alias +sniper "fov 25; sensitivity 3"
alias -sniper "fov 90; sensitivity 5"
bind shift "+sniper"

На самом деле, так можно приближать любое оружие:).

Также вы можете делать скриншоты прямо из игры. Для этого служит команда screenshot. Но знак прицела не будет смотреться на вашей картинке, значит его надо убирать. Без проблем, пишем:

bind F5 "crosshair 0;wait; wait;screenshot;wait; wait; crosshair 1"

Применяемая команда wait ожидает смену кадра игры. Она применяется лишь потому, что квака может так быстро и не сообразить поступление новой команды, особенно на быстрых машинах.
И напоследок расскажу вам об еще одном очень интересном и полезном скрипте — регулятор громкости. Очень удобно, не лазя в настройки, прямо посреди игры, увеличивать или уменьшать громкость. Я думаю, что этот скрипт в объяснении не нуждается, так как все интуитивно понятно.

alias vup vol_1
alias vdn vol_0
alias vol_1 "play parasite/ paratck4; set s_volume 0.1; alias vup vol_2; alias vdn vol_0; echo 3BYK: []----- 1"
alias vol_2 "play parasite/ paratck4; set s_volume 0.2; alias vup vol_3; alias vdn vol_1; echo 3BYK: -[]---- 2"
alias vol_3 "play parasite/ paratck4; set s_volume 0.3; alias vup vol_4; alias vdn vol_2; echo 3BYK: -[]---- 3"
alias vol_4 "play parasite/ paratck4; set s_volume 0.4; alias vup vol_5; alias vdn vol_3; echo 3BYK: --[]--- 4"
alias vol_5 "play parasite/ paratck4; set s_volume 0.5; alias vup vol_6; alias vdn vol_4; echo 3BYK: --[]--- 5"
alias vol_6 "play parasite/ paratck4; set s_volume 0.6; alias vup vol_7; alias vdn vol_5; echo 3BYK: ---[]-- 6"
alias vol_7 "play parasite/ paratck4; set s_volume 0.7; alias vup vol_8; alias vdn vol_6; echo 3BYK: ---[]-- 7"
alias vol_8 "play parasite/ paratck4; set s_volume 0.8; alias vup vol_9; alias vdn vol_7; echo 3BYK: ----[]- 8"
alias vol_9 "play parasite/ paratck4; set s_volume 0.9; alias vup vol_10; alias vdn vol_8; echo 3BYK: ----[]- 9"
alias vol_10 "play parasite/paratck4; set s_volume 1; alias vup vol_10; alias vdn vol_9;  echo 3BYK: -----[] 10"
bind. "vup"
bind, "vdn"

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

Все вопросы и пожелание можете писать мне на e-mail. Текущую версию конфига, а также упомянутые программы можете скачать с сайта http://quake2.at.tut.by/  — q2_ver1.1.cfg. 

Продолжение следует

Суслин Алексей aka Vile

Подробности № 43
Упоминаемые игры и серии: 
Quake

Яндекс.Метрика