Modный Quake. Программная часть

on апреля 26, 2025 - 15:58

Помните пословицу «Встречают по одежке, а провожают по уму»? Наверняка помните. У вас было достаточно времени, что­бы обновить «гардероб» Quake- а. Я надеюсь, с этим проблем не было. Пришло время и в «го­лове» игры полазить, то бишь в ее коде. Меньше слов — больше дела.

Хирургические инструменты

Для начала поговорим о том, при по­мощи чего мы будем копаться в «мозгу» пациента. Содержимое пап­ки «vm» — это уже закомпилированные коды игры. Работать с ними не представляется возможным. Для «хи­рургического» вмешательства стоит скачать исходные коды (в простона­родье исходники), например, тут http://vr.manarchy.net/files/q3source.exe. Далее нам понадобится компиля­тор языка. Использовать мы будем Microsoft Visual C++. Именно на нем писалась сама игра. Этот компиля­тор довольно распространен, а тем, кто не имеет его в наличии, посове­тую одно: метнуться в ближайший прокат и взять его. Поспешу обрадо­вать тех, кто споткнулся на названии языка. Никаких специальных знаний для внесения простейших изменений в игру не потребуется. А потребуется нам поверхностное знание англий­ского или наличие переводчика. Ну и напоследок, самое главное, что нам понадобится, это сам Quake версии 1.32. Если же у вас более ранняя версия, то стоит скачать патч.

Приготовления перед «творением»

Для начала установите исходные ко­ды игры. Я устанавливал их в каталог по умолчанию. Это поможет избе­жать путаницы с оригинальными фай­лами игры. Далее необходимо произ­вести некоторые изменения в пара­метрах Windows'a. Для Windows ХР (т.к. она более популярна на сегодняшний день) выполняем следую­щее: правый клик по значку «Мой компьютер»/Свойства/Дополнительно. Внизу окна будет кнопка «Пере­менные среды». Нажимаем ее и в по­явившемся чуть ниже середины экра­на окне в «Системных переменных» ищем переменную Path. Выставляем ее параметры на «C:\quake3\ source\bin», где C:\quake3\source\bin — это путь к компиляторам.

Наш первый серьезный мод

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

Первоначально поставим конкрет­ную задачу: нужно добиться того, чтобы счет был, как в футболе. «А как?» — спросите вы. Просто-напро­сто делаем повреждения в 5 раз меньше. Например, у рокета макси­мальные повреждения при прямом попадании 100. А мы хотим 20. Захо­дим в папку с проинсталлированны­ми исходниками и ищем там файл quake3sdk.dsw. Если вы устанавли­вали коды в каталог по умолчанию, то он будет тут: C:\quake3\source\ code\quake3sdk.dsw. Далее открыва­ем файл C:\quake3\source\code\game\ g_missile.c и переходим к 621 строке. В Microsoft Visual C++ это легко сде­лать, нажав Ctrl+G и вписав нужную строку. Мы видим все параметры выпущенной ракеты. Самое простое — это с какой скоростью она летит (VectorScale(dir, 900, bolt->s.pos.trDelta), где 900 — это скорость), сколько она летит (bolt->nextthink = level.time + 15000), какие повреждения нано­сит (bolt->damage = 100), какие по­вреждения от взрывной волны (bolt- >splashDamage = 100) и на какое расстояние (bolt->splashRadius = 120). Нам нужно не что иное, как bolt->damage = 100. Изменяем 100 на 20. Чтобы была полная гармония, изменим и bolt->splashDamage = 20. Подобным образом изменяем пара­метры для BFG (581 строка), для гранатомета (строка 539) и для плазмы (497 строка). Сохраняем файл. Оста­лось изменить повреждения у ос­тального оружия. Их параметры хра­нятся в файле g_weapon.c в той же папке. Аналогично изменяем их (по­вреждения примерно в 5 раз мень­ше). Затем в Microsoft Visual C++ на верхних раскладках выбираем Project/Set Active Project/2 game и жмем F7. Если все выполнено верно, то вы увидите сообщение:

Linking...

LINK: LNK6006: program da­tabase C:\quake3\source\code\ game\Debug_TA\qagamex86-pdb missing; performing full link

Creating library Debug_TA/ qagamex86.lib and object De- bug_TA/qagamex8 6.exp

qagamex86.dll — 0 error(s), 0 warning(s)

В этой же папке есть файл game.bat. Запускаем его. После не­долгого процесса компиляции у нас появляется заветный файл вот тут: C:\quake3\baseq3\vm\qagame.qvm. Упаковываем его в архив, как описа­но в первой части статьи, и наслаж­даемся.

Кравченко Олег aka erRor

№ 59

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