Сталкер вот уже десять минут полз по зараженной территории. За ним
гналась огромная банда, вооруженная «калашами». Шансов выжить
практически не было, в пистолете оставался всего один патрон. Найденный
в куче радиоактивного хлама старенький автомат сулил лишь небольшую
отсрочку верной гибели.
Но первый же выстрел разрезал одного из бандитов надвое. Второй —
рассек сразу двух. Уничтожив почти всех бандитов, сталкер принялся
внимательно изучать найденный ствол. Странная надпись Made in Igromania на
прикладе и ядерная символика на затворе однозначно говорили о том, что оружие
не простое, а модифицированное.
В «Сталкере» представлено в
основном оружие советского производства. Сегодня мы пополним арсенал
несколькими футуристическими экземплярами. Хотите прожигать врагов лазером и
стирать мутантов с лица земли атомными зарядами? Всегда пожалуйста!
Тренировка
Все самое ценное разработчики спрятали от пытливых глаз в
архивы. Всего их одиннадцать, и все имеют одно и то же имя — 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, в разделах,
посвященных съемным прицелам.
 |
 |
Замах, удар — и враг повержен! Кинжал — это вам не нож, он может сразить противника одним ударом. |
Кинжал
Добавим в игру несколько новых видов оружия. Делать их мы
будем на базе уже имеющихся экземпляров. Весь этот процесс состоит из трех
основных стадий, первая — редактирование боевых характеристик.
Начнем с холодного оружия, которое в игре представлено одним
лишь ножом. Превратим его в кинжал. Для начала откройте в «Блокноте» файл 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. В отличие от ножа, кинжал,
хоть и немного, но сколько-то весит, а значит, занимает чуточку места в вашем
рюкзаке — это, согласитесь, вполне естественно.
В вашем распоряжении превосходное оружие ближнего боя. Один
точный укол в тело слабого неприятеля — и тот испускает дух. Единственный
недостаток кинжала по сравнению с ножом кроется в сниженной скорости. Главный
герой машет кинжалом немного медленней, но уж если попадет... В оригинальной
игре почти никто не пользовался ножом, слишком уж он слабенький. Кинжал же —
вполне серьезное подспорье пистолету. С его помощью можно легко валить
некоторых мутантов и добивать раненых бандитов.
 |
 |
Кинжал внешне отличается от ножа яркой гравировкой... |
...А атомная пушка от РПГ — знаком радиации на верхней части корпуса. |
Лазерная винтовка
Теперь займемся созданием футуристических стволов. Первый из
них — лазерная винтовка. Делать ее мы будем на основе снайперки СВУмк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.
 |
Одним выстрелом из атомной пушки можно не только подорвать танк, но и зачистить стоящую неподалеку вышку. |
Повреждения же от новой пушки будут поистине громадными.
Задайте параметрам hit_power, hit_impulse и explode_duration значения 5, 600 и 8. Также
необходимо отредактировать третий раздел файла wpn_rpg7_missile (все оставшиеся изменения производите именно в
нем), характеризующего непосредственно ракету. Здесь вы снова встретите
показатель explode_duration,
которому и в этот раз надо присвоить значение 8. Чтобы сделать взрыв ракеты еще более мощным, «привяжите» к
настройке blast число 8, к blast_impulse — 450, а чтобы расширить его радиус —
увеличьте показатель 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.
|
Визуализация
Вторая стадия разработки вооружения — графическая. На ней мы
будем обновлять текстуры оружия. При этом понадобится набор инструментов 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. Наконец, на корпусе атомной пушки
пришелся бы к месту ваш аватар, логотип вашего клана,
любимого журнала или какая-то еще картинка. И это только простейшие примеры
того, как можно украсить новинки.
* * *
Вместе с вами мы добавили в игру три новых орудия убийства:
смертоносный кинжал, меткую и убойную лазерную винтовку и всеразрушающую
атомную пушку. Причем атомная пушка и винтовка удивительным образом придают
игре ощущение, что вы находитесь в далеком будущем.
Все оружие отлично сбалансировано и позволяет использовать
дополнительные тактики в бою, которые с оригинальным оружием просто не
работают. Кинжал позволяет шинковать врагов на ближней дистанции, лазерная
винтовка хороша при ведении боя на средней дистанции (только не вздумайте
сидеть с ней на одном месте). Атомная же пушка как нельзя лучше поможет вам
разобраться с большим скоплением врагов.
Если же вам мало этих трех новинок, то вы можете добавить
игру любое количество оружия, создавая их по алгоритму, описанному в статье. Мы
же продолжим вскрытие «Сталкера» в одном из ближайших номеров «Игромании», но расскажем вам уже не об оружии, а
совсем о других, но не менее интересных вещах.
Источник: http://www.igromania.ru |