Рассмотрим пример создания нового нестандартного костюма, который впоследствии добавим в игру. Прежде всего необходимо распаковать архивы STALKER.После распаковки нам нужен файл outfit.ltx, который лежит в config\misc\. Откроем его БЛОКНОТОМ (не пугайтесь!): здесь расположены параметры костюмов которые есть в игре. Какой костюм создавать - ваш выбор, но ориентируйтесь на аналогичные стандартные костюмы. Например, захотите сделать экзо - копируете блок текста, соответствующего экзоскелету и изменяете имя на свое.
Итак, создадим например, прототип научного костюма. Находим в тексте:
;---------------------------------------------------------------------------------------------
; НАУЧНЫЙ КОСТЮМ НЕЙТРАЛЬНОГО СТАЛКЕРА
;---------------------------------------------------------------------------------------------
[scientific_outfit]:outfit_base
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "outfit\scientific_outfit"
$prefetch = 32
class = E_STLK
cform = skeleton
visual = equipments\stalker_scient_suit
actor_visual = actors\hero\stalker_scien.ogf
ef_equipment_type = 2
inv_name = scientific_outfit_name
inv_name_short = scientific_outfit_name
description = scientific_outfit_description
inv_weight = 9
slot = 6
inv_grid_width = 2
inv_grid_height = 3
inv_grid_x = 16
inv_grid_y = 13
full_icon_name = npc_icon_scientific_outfit
nightvision_sect = effector_nightvision_good
cost = 30000
full_scale_icon = 12,11
immunities_sect = sect_scientific_outfit_immunities
; MEDIUM RESISTANCE
burn_protection = 0.8
strike_protection = 0.5
shock_protection = 0.9
wound_protection = 0.5
radiation_protection = 0.9
telepatic_protection = 0.0
chemical_burn_protection = 0.7
explosion_protection = 0.5
fire_wound_protection = 0.40
bones_koeff_protection = kombez_kupol_damage
[sect_scientific_outfit_immunities]
burn_immunity = 0.0001
strike_immunity = 0.00001
shock_immunity = 0.0001
wound_immunity = 0.00001
radiation_immunity = 0.00
telepatic_immunity = 0.00
chemical_burn_immunity = 0.0001
explosion_immunity = 0.0001
fire_wound_immunity = 0.00001
Копируем этот блок, затем заменяем фрагмент текста scientific_outfit
на название своего костюма, например nauchniy_prototype
Получится примерно вот что:
;-------------------------------------------------------------
; здесь пиши че хочешь, например НАУЧНЫЙ ПРОТОТИП
;-------------------------------------------------------------
[nauchniy_prototype]:outfit_base
GroupControlSection = spawn_group - ? оставляем так же
discovery_dependency = - ? оставляем так же
$spawn = "outfit\scientific_outfit" - ? оставляем так же
$prefetch = 32 - ? оставляем так же
class = E_STLK - ? оставляем так же
cform = skeleton - ? оставляем так же
visual = equipments\stalker_scient_suit - внешний вид костюма, если выбросить из инвентаря
actor_visual = actors\hero\stalker_scien.ogf - внешний вид игрока в игре(от 3-го лица)
ef_equipment_type = 2 - ? оставляем так же
inv_name = nauchniy_prototype_name - имя в инвентаре
inv_name_short = nauchniy_prototype_name - имя в инвентаре
description = nauchniy_prototype_description - описание костюма
inv_weight = 11 - вес костюма
slot = 6 - ? оставляем так же
inv_grid_width = 2 - ширина иконки
inv_grid_height = 3 - высота иконки
inv_grid_x = n - координаты иконки х(ui_icon_equipment)
inv_grid_y = n - координаты иконки y(ui_icon_equipment)
full_icon_name = npc_icon_nauchniy_prototype - имя иконки
nightvision_sect = effector_nightvision_good - ТИП ПРИБОРА НОЧНОГО ВИДЕНИЯ
(good-фиолетовый, bad-зеленый)
cost = 100000 - цена в рубликах
full_scale_icon = 12,11 - ? оставляем так же
immunities_sect = sect_nauchniy_prototype_immunities
; MEDIUM RESISTANCE
burn_protection = 0.82 - ожог
strike_protection = 0.51 - удар
shock_protection = 0.9 - электрошок
wound_protection = 0.5 - разрыв **показатели защиты
radiation_protection = 0.95 - радиация
telepatic_protection = 0.1 - телепатия
chemical_burn_protection = 0.8 - хим. ожог
explosion_protection = 0.5 - взрыв
fire_wound_protection = 0.35 - пулестойкость
bones_koeff_protection = kombez_kupol_damage - ? оставляем так же
[sect_nauchniy_prototype_immunities]
burn_immunity = 0.0001
strike_immunity = 0.00001
shock_immunity = 0.0001
wound_immunity = 0.00001 - иммунитеты самого костюма
radiation_immunity = 0.00 (меньше значение-меньше износ)
telepatic_immunity = 0.00
chemical_burn_immunity = 0.0001
explosion_immunity = 0.0001
fire_wound_immunity = 0.00001
Теперь создадим описание, как в игре. Открываем блокнотом string_table_outfit.xml который находится в \config\text\rus
Здесь можно найти и при необходимости отредактировать тексты описания костюмов. Но мы будем делать новое описание для
своего костюмчика. Итак, перейдем в конец документа и найдем следующее:
...
<string id="mp_scientific_outfit_description">
<text>Данный комбинезон предназначен для исследовательской деятельности в Зоне. Снабжен системой дыхания с замкнутым циклом, а также встроенной системы подавления действия аномальных полей, благодаря чему великолепно защищает от аномалий. Из-за слабой защиты очень уязвим. Обладает встроенным контейнером для переноса артефактов.</text>
</string>
<string id="mp_scientific_outfit_name">
<text>Научный комбинезон</text>
</string>
</string_table>
КОПИРУЕМ ЭТОТ БЛОК ТЕКСТА И ВСТАВЛЯЕМ В КОНЕЦ ДОКУМЕНТА:
...
<string id="mp_scientific_outfit_description">
<text>Данный комбинезон предназначен для исследовательской деятельности в Зоне. Снабжен системой дыхания с замкнутым циклом, а также встроенной системы подавления действия аномальных полей, благодаря чему великолепно защищает от аномалий. Из-за слабой защиты очень уязвим. Обладает встроенным контейнером для переноса артефактов.</text>
</string>
<string id="mp_scientific_outfit_name">
<text>Научный комбинезон</text>
</string>
<string id="mp_scientific_outfit_description">
<text>Данный комбинезон предназначен для исследовательской деятельности в Зоне. Снабжен системой дыхания с замкнутым циклом, а также встроенной системы подавления действия аномальных полей, благодаря чему великолепно защищает от аномалий. Из-за слабой защиты очень уязвим. Обладает встроенным контейнером для переноса артефактов.</text>
</string>
<string id="mp_scientific_outfit_name">
<text>Научный комбинезон</text>
</string>
</string_table>
ВАЖНО! </string_table> должно стоять в конце документа. Заменяем ссылки имени и описания mp_scientific_outfit_name и mp_scientific_outfit_description своими nauchniy_prototype_name и nauchniy_prototype_description, затем пишем название и описание к костюму в поле для текста
ПОЛУЧИТСЯ ВОТ ЧТО:
...
<string id="mp_scientific_outfit_description">
<text>Данный комбинезон предназначен для исследовательской деятельности в Зоне. Снабжен системой дыхания с замкнутым циклом, а также встроенной системы подавления действия аномальных полей, благодаря чему великолепно защищает от аномалий. Из-за слабой защиты очень уязвим. Обладает встроенным контейнером для переноса артефактов.</text>
</string>
<string id="mp_scientific_outfit_name">
<text>Научный комбинезон</text>
</string>
<string id="nauchniy_prototype_description">
<text>Данный комбинезон является примером создания нового костюма специально для начинающих модостроителей.</text>
</string>
<string id="nauchniy_prototype_name">
<text>Прототип научного костюма</text>
</string>
</string_table>
Теперь для корректной работы в игре необходимо указать координаты для иконки костюма в полный рост. Для этого открываем файл ui_icons_npc.xml расположенный в \config\ui. дописываем после строчки <texture id="npc_icon_protection_outfit" x="768" y="384" width="128" height="320" /> следующее : <texture id="npc_icon_nauchniy_prototype" x="768" y="384" width="128" height="320" />
x="768" и y="384" - это координаты иконки в полный рост. Здесь можете указать любые координаты стандартного костюма, либо свои, если нарисуете собственную иконку. Также можно просто взять любую иконку из S.T.A.L.K.E.R Icons pack. О том, как делать иконки и добавлять их в игру, описано в другой статье о работе с Photoshop`ом
width="128" height="320" - это ширина и высота соответственно
ДОЛЖНО ПОЛУЧИТЬСЯ СЛЕДУЮЩЕЕ:
<ui_texture>
<file_name>ui\ui_icons_npc</file_name>
<texture id="npc_icon_without_outfit" x="384" y="384" width="128" height="320" />
<texture id="npc_icon_novice_outfit" x="0" y="704" width="128" height="320" />
<texture id="npc_icon_bandit_outfit" x="0" y="384" width="128" height="320" />
<texture id="npc_icon_killer_outfit" x="256" y="704" width="128" height="320" />
<texture id="npc_icon_monolit_outfit" x="384" y="704" width="128" height="320" />
<texture id="npc_icon_specops_outfit" x="256" y="384" width="128" height="320" />
<texture id="npc_icon_military_outfit" x="640" y="384" width="128" height="320" />
<texture id="npc_icon_stalker_outfit" x="896" y="704" width="128" height="320" />
<texture id="npc_icon_scientific_outfit" x="768" y="704" width="128" height="320" />
<texture id="npc_icon_exo_outfit" x="128" y="704" width="128" height="320" />
<texture id="npc_icon_svoboda_light_outfit" x="640" y="704" width="128" height="320" />
<texture id="npc_icon_svoboda_heavy_outfit" x="128" y="384" width="128" height="320" />
<texture id="npc_icon_dolg_outfit" x="512" y="704" width="128" height="320" />
<texture id="npc_icon_dolg_scientific_outfit" x="512" y="384" width="128" height="320" />
<texture id="npc_icon_ecolog_outfit" x="896" y="384" width="128" height="320" />
<texture id="npc_icon_protection_outfit" x="768" y="384" width="128" height="320" />
<texture id="npc_icon_nauchniy_prototype" x="768" y="384" width="128" height="320" />
</ui_texture>
Теперь нужно, чтобы костюмчик появился у торговц[а/ев]. Добавим его в ассортимент, например, Сидоровича. Для этого откроем блокнотом файл trade_trader.ltx который находится в \config\misc\. Здесь, после строки [trader_generic_buy] мы можем видеть
все предметы, артефакты, костюмы и оружие, которое можно продать или приобрести. Здесь найдите блок:
;Броники
novice_outfit = 1, 0.3
bandit_outfit = 1, 0.3
killer_outfit = 1, 0.3
monolit_outfit = 1, 0.3
soldier_outfit = 1, 0.3
specops_outfit = 1, 0.3
military_outfit = 1, 0.3
stalker_outfit = 1, 0.3
scientific_outfit = 1, 0.3
exo_outfit = 1, 0.3
svoboda_light_outfit = 1, 0.3
svoboda_heavy_outfit = 1, 0.3
dolg_outfit = 1, 0.3
dolg_scientific_outfit = 1, 0.3
ecolog_outfit = 1, 0.3
protection_outfit = 1, 0.3
Просто допишите в конце после строчки protection_outfit = 1, 0.3 наш костюмчик
Выглядеть это должно так:
...
ecolog_outfit = 1, 0.3
protection_outfit = 1, 0.3
nauchniy_prototype = 1, 0.3
Далее, в разделах [supplies_start] и [supplies_after_fabric] аналогично добавляем в блок "Броники" наш nauchniy_prototype
Здесь мы указали, что костюм появится в продаже сразу, где 0.3 - вероятность появления костюма.
Потом ищем разделы [trader_start_sell] и [trader_after_fabric_sell] и также вписываем в блок "Броники" nauchniy_prototype
По аналогии можно добавить костюм у каждого из торговцев: trade_ecolog, trade_freedom, trade_dolg и trade_barman