Оружие сталкера

Материал из MODFAQ.RU — моддинг S.T.A.L.K.E.R., TES и Fallout
Перейти к: навигация, поиск

Оружие сталкера

Дата публикации

26 июня 2007 (17 лет) [1]

Автор Андрей Верещагин

Сталкер вот уже десять минут полз по зараженной территории. За ним гналась огромная банда, вооруженная «калашами». Шансов выжить практически не было, в пистолете оставался всего один патрон. Найденный в куче радиоактивного хлама старенький автомат сулил лишь небольшую отсрочку верной гибели.

Но первый же выстрел разрезал одного из бандитов надвое. Второй — рассек сразу двух. Уничтожив почти всех бандитов, сталкер принялся внимательно изучать найденный ствол. Странная надпись Made in Igromania на прикладе и ядерная символика на затворе однозначно говорили о том, что оружие не простое, а модифицированное.

В «Сталкере» представлено в основном оружие советского производства. Сегодня мы пополним арсенал несколькими футуристическими экземплярами. Хотите прожигать врагов лазером и стирать мутантов с лица земли атомными зарядами? Всегда пожалуйста!

Тренировка

Все самое ценное разработчики спрятали от пытливых глаз в архивы[2]. Всего их одиннадцать, и все имеют одно и то же имя — gamedata. Разница в расширении. Оно выглядит как db* (на месте звездочки стоит цифра или буква, своя для каждого файла). Для распаковки этих архивов можно использовать утилиту STALKER Data Unpacker (забирайте ее с нашего DVD из раздела «Игрострой»). Пользоваться программкой несложно. Скопируйте в игровую папку файл STALKER_Data_Unpacker_RU.exe, если у вас русская версия игры, или STALKER_Data_Unpacker_EN.exe, если вдруг английская, и запустите с параметром: gamedata.db* [Каталог для распаковки внутри игровой папки] (последний можно и не указывать — тогда архив распакуется прямо в каталог с игрой). Например: STALKER_Data_Unpacker_RU.exe gamedata.db0 gamedata.

После того как вы внесете изменения в разархивированные файлы, создайте в игровом каталоге папку \gamedata и поместите их туда, сохраняя иерархию подкаталогов, в которых они находятся (приоритет игра будет отдавать новым файлам, а не тем, что упакованы в архивы). Скажем, для ltx-файлов из архива gamedata.db0 (они описывают оружие) в директории \config\weapons следует создать в игровом каталоге папку \gamedata\config\weapons и складывать их именно туда.

Вы можете немного ускорить процесс загрузки игры, если распакуете все одиннадцать архивов в директорию <Каталог игры>\gamedata. Плюс, после этого все файлы будут у вас на виду и создавать моды станет удобнее.

Что касается самих архивов, то в этот раз нам пригодятся gamedata.db0 и gamedata.db8. Последний набит рассортированными по подкаталогам текстурами, в том числе и оружейными; gamedata.db0 же несет в себе, помимо всего прочего, папку \config, наполненную разнообразными конфигурационными файлами (как правило, имеющими расширение ltx). Те из них, что посвящены оружию, лежат в подкаталоге \weapons — каждый такой файл соответствует отдельной пушке. Исключение составляют только delayed_action_fuse.ltx и weapons.ltx (в нем находятся характеристики боеприпасов и всяческих примочек к стволам).

Структура ltx-файлов (редактировать можно в обычном «Блокноте») построена по следующему принципу. Все они состоят из разделов, имена которых маркированы квадратными скобками. В файлах оружия их, как правило, два: первый вмещает в себя боевые характеристики ствола, второй (в имени содержится аббревиатура hud) отвечает за экран героя, вооруженного указанной пушкой.

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

cost — стоимость оружия.

hit_power — урон от оружия. Значение параметра состоит из четырех чисел: первое обозначает минимальный ущерб, последнее — максимальный, средние два, соответственно, промежуточный.

hit_impulse — сила тряски, которой подвергается жертва.

fire_distance — дальнобойность.

bullet_speed — стартовая скорость полета пули. Этот и три предыдущих параметра в некоторых файлах имеют аналоги с префиксом silencer_, эти характеристики описывают ствол при надетом на него глушителе.

hit_type — тип повреждения, наносимого оружием. Огнестрельное ранение — fire_wound, ножевое — wound и wound_2, взрыв — explosion.

rpm — скорострельность.

hit_power_2 — урон от альтернативной атаки.

hit_impulse_2 — тряска жертвы, атакованной альтернативным ударом/выстрелом.

hit_type_2 — тип повреждения от альтернативной атаки.

startup_ammo — начальное количество патронов.

ammo_limit — максимальное число патронов к пушке, которое вы можете носить в рюкзаке единомоментно.

ammo_mag_size — вместимость обоймы.

ammo_class — тип патронов. В области значения этого и следующего параметров указывается название соответствующего раздела файла weapons.ltx.

grenade_class — тип гранат, которыми стреляет пушка (если она, конечно, наделена такой способностью).

explode_duration — продолжительность взрыва (только для оружия, стреляющего разрывными снарядами) в секундах.

sprint_allowed — определяет, в состоянии ли бежать персонаж с этой пушкой (true — да, false — нет).

inv_weight — вес.

shell_particles — модель гильз, отлетающих в разные стороны при стрельбе.

Следующие три характеристики указывают на наличие у ствола определенного дополнения. Возможные значения: 0 — отсутствует вообще, 1 — имеется сразу, 2 — может быть присоединено.

scope_status — снайперский прицел.

silencer_status — глушитель.

grenade_launcher_status — подствольный гранатомет.

zoom_enabled — возможность зумирования (true — имеется, false — нет).

scope_zoom_factor — максимальный зум. Обратите внимание, что зависимость здесь обратно пропорциональна: чем выше значение показателя, тем меньше приближение. Этот же параметр, к слову, присутствует и в файле weapons.ltx, в разделах, посвященных съемным прицелам.

1.jpg 2.jpg
Замах, удар — и враг повержен! Кинжал — это вам не нож, он может сразить противника одним ударом.

Кинжал

Добавим в игру несколько новых видов оружия. Делать их мы будем на базе уже имеющихся экземпляров. Весь этот процесс состоит из трех основных стадий, первая — редактирование боевых характеристик.

Начнем с холодного оружия, которое в игре представлено одним лишь ножом. Превратим его в кинжал. Для начала откройте в «Блокноте» файл w_knife.ltx и внесите в него небольшую правку. Повысьте значение характеристики cost до 100, в результате чего цена на это орудие вырастет до 100 рублей.

Возрастет в нашем моде и наносимое им повреждение — параметрам hit_power и hit_power_2 присвойте серию чисел 2.00, 2.20, 2.40, 2.60 в первом случае и 2.10, 2.25, 2.40, 2.55 во втором. Изначально у ножа сила альтернативной атаки почти дублирует основную. Отличия только в анимации.

С кинжалом все будет по-другому. Первый вид удара, как видите, здесь имеет больший разброс в силе — следовательно, атака может получиться как сильной, так и не очень. Альтернативный взмах кинжалом более стабилен, но нанести очень уж серьезное ранение врагу не получится.

Не забудьте об атрибутах hit_impulse и hit_impulse_2, которым следует присвоить значения 140 и 125. Первый вид атаки после этого будет сильнее отталкивать врагов от главного героя, что в некоторых случаях усложняет добивание.

Немного поработаем над балансом. Атрибутам inv_weight, rpm (минимальный временной интервал между двумя атаками) и bullet_speed (быстрота нанесения удара) определите соответственно значения 0.8 и 600. В отличие от ножа, кинжал, хоть и немного, но сколько-то весит, а значит, занимает чуточку места в вашем рюкзаке — это, согласитесь, вполне естественно.

В вашем распоряжении превосходное оружие ближнего боя. Один точный укол в тело слабого неприятеля — и тот испускает дух. Единственный недостаток кинжала по сравнению с ножом кроется в сниженной скорости. Главный герой машет кинжалом немного медленней, но уж если попадет... В оригинальной игре почти никто не пользовался ножом, слишком уж он слабенький. Кинжал же — вполне серьезное подспорье пистолету. С его помощью можно легко валить некоторых мутантов и добивать раненых бандитов.

3.jpg 4.jpg
Кинжал внешне отличается от ножа яркой гравировкой... ...А атомная пушка от РПГ — знаком радиации на верхней части корпуса.

Лазерная винтовка

Теперь займемся созданием футуристических стволов. Первый из них — лазерная винтовка. Делать ее мы будем на основе снайперки СВУмк2, которая детально описана в файле w_svu.ltx. Начните опять же с цены, подняв число, соответствующее показателю Cost, до 12000. А вот запас патронов следует ограничить, задав характеристикам ammo_limit, ammo_current, ammo_mag_size и startup_ammo значения 40 (первой из них) и 6 (остальным трем).

Не помешает также чуть утяжелить винтовку (пропишите параметру inv_weight значение 5.2) и усилить ее (в этом нам поможет регулировка настроек hit_power и hit_impulse). Первой теперь должно соответствовать значение 1.20, 1.30, 1.40, 1.50, второй — 180. Скорость полета снаряда и дальность стрельбы тоже увеличиваем: параметрам bullet_speed и fire_distance пропишите 1130. А вот скорострельность (rpm) лучше снизить до 150.

Ослабим у пушки зум, приписав атрибуту scope_zoom_factor число 30 — увеличение из трехкратного станет двукратным. Значение же показателя shell_particles следует обнулить, удалив прежнее weapons\generic_shells. В результате при стрельбе из винтовки больше не будут видны падающие на землю гильзы, что нам и нужно. Стреляет-то она теперь лазером. Наконец, слегка повысьте быстроту изнашиваемости ствола: у показателя condition_shot_dec пропишите число 0.00035.

Лазерная винтовка готова. Она дает большой урон, имеет высокую точность и большую дальность стрельбы, бешеную скорость полета заряда, но вот перезарядка происходит довольно медленно. Это оружие открывает совершенно новые тактики ведения боя. Можно притаиться за каким-либо сооружением, стоящим на возвышенности, дождаться группы бандитов, подпустить их на дистанцию выстрела и начать постепенно отступать, отстреливая догоняющих вас врагов.

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

А вот пытаться засесть с лазерной винтовкой на верхотуре однозначно не стоит. Из-за того, что она долго перезаряжается, враги успеют подобраться к вам в промежутке между выстрелами.

Атомная пушка

На десерт у нас атомная пушка. Ее мы получим из ракетницы (РПГ-7у). Следовательно, править нужно файл w_rpg7.ltx, и первое, что стоит сделать, — поднять цену на оружие (cost) до 14000. Показателю ammo_limit следует придать значение 10, чтобы понизить скорость полета снаряда, к характеристикам launch_speed, bullet_speed и fragment_speed подставьте соответственно числа 3, 50 и 30. Скорострельность тоже снижаем: сбавляем обороты параметра rpm до отметки 100, а дальнобойность (fire_distance) уменьшаем до 300.

Теперь поработаем над отдачей. У столь мощной пушки она должна быть весьма ощутимой. Посему настройкам cam_relax_speed, cam_dispersion и cam_max_angle следует задать значения 1, 8 и 12 соответственно.

Но баланс пока все равно остается перекошенным: слишком уж мощная штука у нас получилась. Добавим стволу еще один серьезный недостаток — сделаем его быстро изнашиваемым. Атрибуту condition_shot_dec логично будет поставить значение 0.00150. Кроме того, вероятность осечки при максимальном износе (misfire_probability) надо сделать равной 0.01. Понятно, что и вес у громоздкой новинки будет соответствующий: этого можно добиться, прописав показателю inv_weight число 8.

5.jpg
Одним выстрелом из атомной пушки можно не только подорвать танк, но и зачистить стоящую неподалеку вышку.


Повреждения же от новой пушки будут поистине громадными. Задайте параметрам hit_power, hit_impulse и explode_duration значения 5, 600 и 8. Также необходимо отредактировать третий раздел файла wpn_rpg7_missile (все оставшиеся изменения производите именно в нем), характеризующего непосредственно ракету. Здесь вы снова встретите показатель explode_duration, которому и в этот раз надо присвоить значение 8. Чтобы сделать взрыв ракеты еще более мощным, «привяжите» к настройке blast число 8, к blast_impulse450, а чтобы расширить его радиус — увеличьте показатель blast_r до 18.

Рекомендуем сделать взрыв более эффектным. В этом вам поможет изменение значений параметров light_range и light_time соответственно на 50 и 2.6. Это сделает вспышку после разрыва снаряда более длительной и яркой. Увеличению не помешало бы подвергнуть и следы на стенах, остающиеся после взрыва: задайте атрибуту wm_size значение 0.3.

Напоследок установите цену на снаряд (cost) в размере 300 рублей. Получившееся орудие убийства будет в игре на вес золота — по убойной силе ему просто нет равных. Хотя, конечно, им одним никак не обойдешься. Здесь сказывается и дефицит зарядов, и медлительность, и невысокая дальность стрельбы. Да и изнашивается оно очень быстро.

Тем не менее в некоторых заварушках, когда на вас нападает целая толпа мутантов или бандитов, только атомная пушка может спасти от неминуемой гибели. Всего один выстрел — и вокруг остаются только горы трупов.

Текстомания

При создании новых стволов необходимо заменить их названия и описания. Использующийся в игре текст вы найдете в файлах формата xml в директории \config\text\rus архива gamedata.db9. Тот, что касается непосредственно вооружения, содержится в файле string_table_enc_weapons.xml. Устроен он следующим образом. Каждой надписи соответствует небольшой раздел вида:

<string id="X">

<text>Y</text>

</string>

X здесь — кодовое наименование объекта (в данном случае — оружия, приспособлений к нему или боеприпасов), к которому относится надпись. Y — текст (как вариант — название объекта).

Найти нужный раздел несложно — в его заголовке (X) неизменно фигурирует краткое название ствола (то самое, что следует в имени соответствующего ltx-файла из папки \config\weapons после приставки w_).

Зададим новому оружию подходящие названия. Название ножа указано в файле string_table_general.xml (содержащем базовые игровые термины и понятия и имеющем ту же структуру, что и string_table_enc_weapons.xml). Оно располагается в блоке st_knife. Прописанное здесь слово Нож замените на Кинжал.

Следующие преобразования касаются исключительно файла string_table_enc_weapons.xml. Название модифицированной нами снайперки вы встретите в разделе wpn-svu, в котором сокращение СВУмк2 необходимо исправить на Лазерная винтовка. Что же касается ракетницы, то ей разработчики выделили блок wpn-rpg7, где аббревиатуру РПГ-7у надо заместить фразой Атомная пушка. Новое оружие называется теперь как положено, вот только описания пока остаются прежними — желательно подкорректировать и их.

Ножу отведен блок enc_weapons1_wpn-knife. Помещенное в него словосочетание Охотничий нож можно переделать, например, в Острый кинжал. Характеристики же СВУмк2 содержатся в разделе enc_weapons1_wpn-svu, а РПГ-7у — в enc_weapons1_wpn-rpg7. В первом случае на место Y можно вписать, скажем, такой текст: Новейшая разработка отечественных ученых. Стреляет лазером, во втором — такой: Мощнейшее оружие. Создано на территории Зоны специально для борьбы с мутантами. Использует атомную энергию. Несложно придумать и более изысканные описания — главное, теперь вы знаете, куда их ставить.

И последнее. Подредактированные файлы string_table_general.xml и string_table_enc_weapons.xml переместите в папку <Каталог игры>\gamedata\config\text\rus.

6.jpg 7.jpg

Визуализация

Вторая стадия разработки вооружения — графическая. На ней мы будем обновлять текстуры оружия. При этом понадобится набор инструментов DXT Tools (обращайтесь за ним на наш DVD, в раздел «Игрострой»). Что касается самих картинок, то они представлены файлами формата dds, лежат в архивах gamedata.db5, gamedata.db6, gamedata.db7 и gamedata.db8. Именно последний, как уже было упомянуто, несет в себе оружейные скины, которые внутри архива размещаются в каталоге \textures\wpn. Ножу здесь соответствует файл wpn_knife.dds, СВУмк2 — wpn_svu-a.dds, РПГ-7у — wpn_rpg-7.dds.

Перевести DDS-файлы в знакомый всем TGA-формат вам поможет как раз таки DXT Tools. Делается это по следующей схеме. Скопируйте выбранный dds-файл в директорию, куда вы установили пакет утилит. Находясь в папке, введите в командной строке: readdxt <имя dds-файла> (например, readdxt wpn_colt.dds). В результате этого в директории появится файл test.tga с интересующей вас картинкой.

Можете смело перерисовывать ее в графическом редакторе (например, в Photoshop). После завершения правки переведите измененный рисунок обратно в формат dds, набрав в командной строке (естественно, не покидая каталог DXT Tools) nvdxt test.tga. Вам останется только вернуть полученному в итоге файлу test.dds прежнее имя (в приведенном примере это wpn_colt.dds) и положить в соответствующую папку (в случае с оружием это <Каталог игры>\gamedata\textures\wpn).

Пора приступать непосредственно к перерисовке текстур, чтобы новые виды оружия обрели неповторимый облик. Например, почему бы вам не выгравировать на лезвии кинжала какую-нибудь надпись или несложный рисунок? Что касается лазерной винтовки, то на ее «шкурке» все еще красуется маркировка СВУ-АС 62x54 мм, которую желательно заменить хотя бы простейшей аббревиатурой ЛВ-1. Наконец, на корпусе атомной пушки пришелся бы к месту ваш аватар, логотип вашего клана, любимого журнала или какая-то еще картинка. И это только простейшие примеры того, как можно украсить новинки.

* * *

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

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

Если же вам мало этих трех новинок, то вы можете добавить игру любое количество оружия, создавая их по алгоритму, описанному в статье. Мы же продолжим вскрытие «Сталкера» в одном из ближайших номеров «Игромании», но расскажем вам уже не об оружии, а совсем о других, но не менее интересных вещах.

Источники