Перейти к содержанию
Ҫвяҭѳӎӹшљ

[COP] Разбор файла outfit.ltx

Рекомендуемые сообщения

 

[COP] Разбор файла outfit.ltx

Всем бобра! Сильно затягивать не буду, ибо зачем нужны эти "прологи" для уроков по моддингу на наш с вами любимый Стулкер? Сегодня мы с вами разберём файл configs\misc\outfit.ltx образца ЗП. И так начнём-с!

Спойлер

Так открываем наш файл outfit.ltx, и видим вот эти строки:

#include "outfit_upgrades\o_novice_outfit_up.ltx"
#include "outfit_upgrades\o_stalker_outfit_up.ltx"
#include "outfit_upgrades\o_svoboda_light_outfit_up.ltx"
#include "outfit_upgrades\o_scientific_outfit_up.ltx"
#include "outfit_upgrades\o_cs_heavy_outfit_up.ltx"
#include "outfit_upgrades\o_dolg_outfit_up.ltx"
#include "outfit_upgrades\o_svoboda_heavy_outfit_up.ltx"
#include "outfit_upgrades\o_specops_outfit_up.ltx"
#include "outfit_upgrades\o_exo_outfit_up.ltx"
#include "outfit_upgrades\o_dolg_heavy_outfit_up.ltx"
#include "outfit_upgrades\o_military_outfit_up.ltx"

#include "outfit_upgrades\helm_battle_up.ltx"
#include "outfit_upgrades\helm_hardhat_up.ltx"
#include "outfit_upgrades\helm_protective_up.ltx"
#include "outfit_upgrades\helm_respirator_up.ltx"
#include "outfit_upgrades\helm_tactic_up.ltx"

Данные строки являются ничем иным, как файлами апгрейдов для всех костюмов и шлемов оригинального ЗП, которые находятся по этому адресу configs\misc\outfit_upgrades.

Теперь мы разберём эти строки:

[outfit_base] ; Это базовая секция всех костюмов*
; delete full_scale_icon    next update- obsolete, use  full_icon_name instead !!!

additional_inventory_weight        = 0      ; Максимальный вес при котором ГГ может ходить (именно ходить, а не бегать) 
additional_inventory_weight2    = 0        ; Дополнительный переносимый вес (в кг.)    
full_icon_name                    = npc_icon_without_outfit  ; Не используется (иконка ГГ в костюме в полный рост, использовалась только в инвентаре ТЧ) 

default_to_ruck     = false ; Будет ли при поднятии костюма, перемещение оного автоматически в слот (true - не будет, false - будет)
sprint_allowed      = true ; Может ли в костюме бегать ГГ (true - может, false - не может)
control_inertion_factor = 1 
;player_hud_section    = actor_hud_05
; Худ-модель рук костюма (местоположение meshes\dynamics\weapons\wpn_hand)

[without_outfit]:outfit_base ; Секция костюма* (в квадратных скобках) и та самая базовая секция
;базовый костюм сталкера - костюм новичка. Обычная одежда туриста - штормовка+сапоги
full_scale_icon        = 6,6
; Координаты иконки сталкера в костюме в полный рост (не используется)
;player_hud_section    = actor_hud_05 ; Аналогично, тому что и в [outfit_base]


Примечание: Никогда не трогайте данную секцию ([outfit_base]), её изменение влечёт за собой очень глобальные изменения, извините за тавтологию, в характеристиках ВСЕХ костюмов.



Примечание: Данного костюма как бы нет, но он есть. Сейчас я вам поясню в чём же дело, с именно этим костюмом. Данный костюм является ничем иным, как просто переменная для состояния ГГ без одетого костюма, тобиш всем известный "свитер". Также, данный костюм не имеет своей глобальной и NPC моделей, а вот по поводу последней, модель имеется, но задаётся в файле configs\gameplay\character_desc_general.xml в секции, иль секторе, ГГ (<specific_character id="actor" no_random = "1">) в этой строке: <visual>actors\stalker_hero\stalker_hero_1</visual>.


Так-с теперь начнём же разбор секции костюма, который используется в самом игровом процессе и полностью доступен для использования ГГ. Пожалуй для разбор мы возьмём секцию Комбинезона "Заря". Переходим же к самой секции костюма, а именно секции [stalker_outfit]:outfit_base.

Там мы видим множество разных строк, которые вам наверняка непонятны, и вам наверно немного стрьомно на них вообще смотреть, но это не беда ибо вот пояснения для почти всех строк (не всех из-за того, что некоторые из них мне просто не понятны):

[stalker_outfit]:outfit_base ; Секция костюма (в квадратных скобках) и базовая секция всех костюмов
GroupControlSection    = spawn_group 
discovery_dependency = 
$spawn             = "outfit\stalker_outfit"
; Секция спавна костюма
;$prefetch         = 32 
class            = E_STLK
; Класс предмета: броня (!НЕ МЕНЯТЬ!)
cform           = skeleton ; Скелет (!НЕ МЕНЯТЬ!)
visual          = dynamics\outfit\stalker_outfit ; Глобальная модель самого костюма
actor_visual    = actors\stalker_hero\stalker_hero_stalker_1.ogf ; Модель NPC для этого костюма
player_hud_section    = actor_hud_05 ; Аналогично тому, что написано и в секции [outfit_base]

ef_equipment_type    = 3 ; Тип предмета (советую не менять)

inv_name            = stalker_outfit_name ; Название костюма (местоположение configs\text\rus\st_items_outfit.xml)                                   inv_name_short        = stalker_outfit_name ; Короткое название костюма (де-факто тоже самое) (местоположение аналогично прошлому)
description            = stalker_outfit_description ; Описание костюма (местоположение аналогично прошлым)

inv_weight            = 5.0 ; Вес костюма (в кг.)

inv_grid_width        = 2 ; Ширина обычной иконки
inv_grid_height        = 3 ; Высота обычной иконки
inv_grid_x            = 6 ; Координата по оси x обычной иконки
inv_grid_y            = 15 ; Координата по оси y обычной иконки
upgr_icon_x            = 317 ; Координата по оси x в меню апгрейда
upgr_icon_y            = 0 ; Координата по оси y в меню апгрейда
upgr_icon_width        = 302 ; Ширина иконки в меню апгрейда
upgr_icon_height       = 130 ; Высота иконки в меню апгрейда
full_icon_name        = npc_icon_stalker_outfit ; Аналогично тому, что написано в секции [outfit_base]

cost                = 5000 ; Цена костюма (в руб.)
slot                = 6 ; Слот костюма (!НЕ МЕНЯТЬ!) (файл со списком всех слотов configs\system.ltx (строка [inventory])
full_scale_icon        = 14,11 ; Координаты иконки сталкера в костюме в полный рост (не используется)

additional_inventory_weight        = 0      ; Максимальный вес при котором ГГ может бегать без штрафа на выносливость
additional_inventory_weight2    = 0        ;  Максимальный вес при котором ГГ вообще может двигаться

artefact_count                  = 2 ; Количество изначально доступных ячеек, иль же одной ячейки, для артефактов

default_to_ruck     = false ; Будет ли при поднятии костюма, перемещение оного автоматически в слот (true - не будет, false - будет)
immunities_sect        = sect_stalker_outfit_immunities ; Секция иммунитетов костюма


; LOW RESISTANCE - Слабые защитные характеристики костюма 
burn_protection                 = 0.0650 ; Защита от ожогов
shock_protection                 = 0.200 ; Защита от ударов электричеством
radiation_protection             = 0.0030 ; Защита от радиации
chemical_burn_protection         = 0.0325 ; Защита от хим.ожогов
telepatic_protection             = 0.0 ; Защита от пси-воздействия 
strike_protection                 = 0.15 ; Защита от ударов
explosion_protection             = 0.2 ; Защита от взрывов
wound_protection                = 0.15 ; Защита от кровотечения

hit_fraction_actor                = 0.75 ; Общая защита (в %)
bones_koeff_protection             = actor_armor_light ; Коэффициенты параметров "стойкости" костей ГГ в костюме (местоположение configs\creatures\damages.ltx)

control_inertion_factor = 1.2
power_loss             = 0.7
; Коэффициент выносливости (в %) в костюме для ГГ*


Примечание: Чем этот коэффициент больше, тем выносливость быстрее уменьшается, а чем этот коэффициент меньше, тем выносливость восстанавливается быстрее.


upgrades                = up_gr_firstab_stalker_outfit, up_gr_seconab_stalker_outfit, up_gr_thirdab_stalker_outfit ; Апгрейды костюма
installed_upgrades      = ; Установленные апгрейды
upgrade_scheme          = upgrade_scheme_stalker_outfit ; Основная схема апгрейдов

[sect_stalker_outfit_immunities] ; Секция иммунитетов костюма (не защ.характеристик, а именно иммунитетов)
burn_immunity                = 0.03 ; Иммунитет костюма против ожогов        
strike_immunity                = 0.0 ; Иммунитет костюма против ударов
shock_immunity                = 0.03 ; Иммунитет костюма против ударов электричеством
wound_immunity                = 0.03 ; Иммунитет костюма против кровотечения
radiation_immunity            = 0.0 ; Иммунитет костюма против радиации
telepatic_immunity            = 0.0 ; Иммунитет костюма против пси-воздействия
chemical_burn_immunity        = 0.03 ; Иммунитет костюма против хим.ожогов
explosion_immunity            = 0.03 ; Иммунитет костюма против взрывов
fire_wound_immunity            = 0.015 ; Иммунитет костюма против выстрелов

[sect_stalker_outfit_immunities_add] ; Секция значений отнимающих состояние костюма при определённом виде дамага
burn_immunity                = -0.015 ; Значение иммунитета, которое отнимается при дамаге костюма ожогом
strike_immunity                = 0.0 ; Значение иммунитета, которое отнимается при дамаге костюма ударом
shock_immunity                = -0.015 ; Значение иммунитета, которое отнимается при дамаге костюма ударом электричества
wound_immunity                = -0.015 ; Значение иммунитета, которое отнимается при дамаге костюма кровотечением
radiation_immunity            = 0.0 ; Значение иммунитета, которое отнимается при дамаге костюма радиацией
telepatic_immunity            = 0.0 ; Значение иммунитета, которое отнимается при дамаге костюма пси-воздействием
chemical_burn_immunity        = -0.015 ; Значение иммунитета, которое отнимается при дамаге костюма хим.ожогом
explosion_immunity            = -0.015 ; Значение иммунитета, которое отнимается при дамаге костюма взрывом
fire_wound_immunity            = -0.005 ; Значение иммунитета, которое отнимается при дамаге костюма выстрелом

Так-с с секцию костюма мы разобрали, теперь мы можем переходить к разбору секции шлема. 

В целом данные секции мало чем отличаются друг от друга, но всё же отличия имеются. 

Сейчас мы будем разбирать базовую секцию шлемов [helmet].

[helmet] ; Базовая секция всех шлемов
GroupControlSection    = spawn_group
discovery_dependency =
;$spawn             = "outfit\helmet" 
; Секция спавна шлема
$prefetch         = 32
class            = E_HLMET
; Класс предмета: шлем (!НЕ МЕНЯТЬ!)
cform               = skeleton ; Скелет (!НЕ МЕНЯТЬ!)
visual              = dynamics\outfit\scientific_outfit ; Глобальная модель самого шлема
slot            = 11 ; Слот шлема (!НЕ МЕНЯТЬ!) (файл со списком всех слотов configs\system.ltx (строка [inventory])
default_to_ruck        = false ; Будет ли при поднятии шлема, перемещение оного автоматически в слот (true - не будет, false - будет)
sprint_allowed        = true ; Может ли в шлеме бегать ГГ (true - может, false - не может)
control_inertion_factor    = 1.0
inv_name                 = st_helmet 
; Название шлема (местоположение configs\text\rus\st_items_outfit.xml)
inv_name_short           = st_helmet ; Короткое название шлема (тоже самое) (местоположение аналогично прошлому)
description                = st_helmet_descr ; Описание шлема (местоположение аналогично прошлым)
inv_weight               = 4.0 ; Вес шлема (в кг.)
inv_grid_width           = 2 ; Ширина обычной иконки (местположение текстуры textures\ui\ui_icon_equipment.dds, а реестра данной текстуры по факту нету)
inv_grid_height          = 3 ; Высота обычной иконки (местоположение аналогично "сказаному" выше)
inv_grid_x               = 14 ; Координата по оси x обычной иконки (местоположение аналогично "сказаному" выше)
inv_grid_y               = 16 ; Координата по оси y обычной иконки (местоположение аналогично "сказаному" выше)
upgr_icon_x            = 200 ; Координата по оси x иконки апгрейда (местположение текстуры textures\ui\ui_actor_armor.dds, а реестра данной текстуры configs\ui\textures_descr\ui_actor_armor.xml)
upgr_icon_y            = 0 ; Координата по оси y иконки апгрейда (местоположение аналогично "сказаному" выше)
upgr_icon_width        = 100 ; Ширина иконки апгрейда (местоположение аналогично "сказаному" выше)
upgr_icon_height       = 100 ; Высота иконки апгрейда (местоположение аналогично "сказаному" выше)
cost            = 1000 ; Цена шлема (в руб.)

burn_protection             = 0.0 ; Защита от ожогов
shock_protection             = 0.0 ; Защита от ударов электричеством
chemical_burn_protection     = 0.0 ; Защита от хим.ожогов
radiation_protection         = 0.0 ; Защита от радиации
telepatic_protection         = 0.0 ; Защита от пси-воздействия 
strike_protection             = 0.0 ; Защита от ударов
explosion_protection         = 0.0 ; Защита от взрывов
wound_protection            = 0.0 ; Защита от кровотечения
hit_fraction_actor            = 1.0 ; Защита от выстрелов

immunities_sect             = sect_helm_immunities ; Секция иммунитетов шлема
bones_koeff_protection        = actor_helm_respirator ; Коэффициенты параметров защиты костей ГГ в шлеме (местоположение configs\creatures\damages.ltx

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

[helm_protective]:helmet ; Секция шлема (в квадратных скобках) и базовая секция всех шлемов
$spawn             = "outfit\helm_protective" ; Секция спавна шлема
visual              = dynamics\outfit\helm_protective ; Глобальная модель самого шлема
control_inertion_factor    = 1.0
inv_name                 = st_helm_protective
 ; Название шлема (местоположение configs\text\rus\st_items_outfit.xml)
inv_name_short           = st_helm_protective ; Короткое название шлема (тоже самое) (местоположение аналогично прошлому)
description                = st_helm_protective_descr ; Описание шлема (местоположение аналогично прошлым)

inv_weight               = 4.0 ; Вес шлема (в кг.)

inv_grid_width           = 2 ; Ширина обычной иконки (местположение текстуры textures\ui\ui_icon_equipment.dds, а реестра данной текстуры по факту нету)
inv_grid_height          = 2 ; Высота обычной иконки (местоположение аналогично "сказаному" выше)
inv_grid_x               = 4 ; Координата по оси x обычной иконки (местоположение аналогично "сказаному" выше)
inv_grid_y               = 20 ; Координата по оси y обычной иконки (местоположение аналогично "сказаному" выше)

upgr_icon_x            = 639 ; Координата по оси x иконки апгрейда (местположение текстуры textures\ui\ui_actor_armor.dds, а реестра данной текстуры configs\ui\textures_descr\ui_actor_armor.xml)
upgr_icon_y            = 619 ; Координата по оси y иконки апгрейда (местоположение аналогично "сказаному" выше)
upgr_icon_width        = 119 ; Ширина иконки апгрейда (местоположение аналогично "сказаному" выше)
upgr_icon_height       = 148 ; Высота иконки апгрейда (местоположение аналогично "сказаному" выше)

cost            = 6000 ; Цена шлема (в руб.)

immunities_sect             = sect_helm_protective_immunities ; Секция иммунитетов шлема
bones_koeff_protection        = actor_helm_protective ; Коэффициенты параметров защиты костей ГГ в шлеме (местоположение configs\creatures\damages.ltx

radiation_protection         = 0.0025 ; Защита от радиации
chemical_burn_protection     = 0.0500 ; Защита от хим.ожогов
telepatic_protection         = 0.060 ; Защита от пси-воздействия 

upgrades                = up_gr_firstab_helm_protective, up_gr_seconab_helm_protective ; Апгрейды шлема
installed_upgrades      = ; Установленные апгрейды
upgrade_scheme          = upgrade_scheme_helm_protective ; Основная схема апгрейдов

[sect_helm_protective_immunities] ; Секция иммунитетов шлема (не защ.характеристик, а именно иммунитетов)
burn_immunity            = 0.01 ; Иммунитет костюма против ожогов 
strike_immunity            = 0.0 ; Иммунитет костюма против ударов
shock_immunity            = 0.01 ; Иммунитет костюма против ударов электричеством
wound_immunity            = 0.0 ; Иммунитет костюма против кровотечения
wound_2_immunity        = 0.0  ; Иммунитет костюма против кровотечения 2
radiation_immunity        = 0.0 ; Иммунитет костюма против радиации
telepatic_immunity        = 0.0 ; Иммунитет костюма против пси-воздействия
chemical_burn_immunity    = 0.0 ; Иммунитет костюма против хим.ожогов
explosion_immunity        = 0.03 ; Иммунитет костюма против взрывов
fire_wound_immunity        = 0.035 ; Иммунитет костюма против выстрелов

Всё! В целом мы весь файл outfit.ltx разобрали, только вот осталось несколько нюансов, которые я должен вам дорассказать.

Во-первых, для создания "уникальных" костюмов, а точнее подобных костюму Баржи и противогазу Шутника, сотрудники GSC просто решили заполнять разными апгрейдами строку: installed_upgrades.*


Примечание: Это вы можете увидеть в самом конце этого файла.


Во-вторых, в разборе я не разобрал вот эти строки:
nightvision_sect    = effector_nightvision_1,2,3 ; Прибор ночного виденья (местоположение configs\misc\postprocess.ltx)

helmet_avaliable              = true ; Можно ли одевать шлем с этим костюмом ГГ (true - можна, false - не можна)

nearest_enemies_show_dist    = 20 ; Распознавание враг\нейтрал\друг, аля бинокль (по неизвестным мне причинам не работает)

Любая строка на убавление\восстановление чего-либо, из файла configs\misc\artefacts.ltx* (к примеру radiation_restore_speed = -0.002, убавление 2 ед. радиации в секунду, строка взята из секции артефакта "Медуза")


Примечание: Данная функция не использовалась в оригинальном ЗП, из-за ненадобности, ибо были апгрейды с подобными свойствами.



Всё на этом разбор файла outfit.ltx остаточно закончен, и мы теперь можем подвести некие итоги данного разбора. По итогу разбора мы с вами полностью, за исключением разве что некоторых строк, разобрались в структуре данного файла, и те люди которые сюда зашли чисто случайно, что навряд ли, надеюсь заинтересовались моддингом, ибо данный досуг-хобби, как помне, крайне хорошо влияет на развитие критического мышления и математического ума.

Всем удачи, и пока! 

Предупреждение: Данный разбор не является последней инстанцией, тобиш в нём возможны некоторые неточности и ошибки. Но это не означает то, что разбор целиком и полностью неправильный, это означает всего лишь то, что он не идеален. А также, если у вас есть какие-то вопросы по данной теме, то задавайте их здесь: https://ap-pro.ru/forums/topic/92-cop-modostroy-voprosnica/.

Изменено пользователем Ҫвяҭѳӎӹшљ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

А ты каждый файл будешь разбирать так подробно?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Hunter Конечно)

Просто, когда я сам начинал заниматься моддингом, столько экспериментировал, столько часов потратил в пустую, что вот решил расписывать всё, ну иль практически всё, для новичков, дабы они не тратили много времени на разбор различных фалов и т.д. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Ҫвяҭѳӎӹшљ , не всё так, как вы пишите. Даже совсем наоборот.

1.

control_inertion_factor = 1.2    ==== инерция в костюме. 1.0 = это наш герой в свитере: поворачивается быстро, останавливается тоже. А вот при 1.2 уже чуть медленнее начинает движение и тормозит, как бы более тяжелым становиться. Это параметр имитирует вес и громоздкость костюма при движении.

2.

[sect_stalker_outfit_immunities] ;

Это устойчивость самого костюма к различным повреждениям.

Например, radiation_immunity            = 0.0 ;  это означает, что радиация костюм не портит совсем.

explosion_immunity            = 0.03;  а вот взрыв [гранаты] портит костюм даже очень.

3.

[sect_stalker_outfit_immunities_add] ;  тут у вас вообще бред написан.

это секция параметров, которые добавляются/вычитаются к устойчивости самого костюма при апгрейде.

4.

hit_fraction_actor                = 0.75 ;  это броня, которая учитывается при попадании бронебойной пули.  Как бы толщина броне-пластин. Если параметр бронебойности (k_ap) пули больше этого показателя, то броня пробивается. Меньше - не пробивается. И повреждения в первом и втором случае считаются по-разному.

5.

power_loss             = 0.7 ; это не коэффициент выносливости. И не скорость восстановления выносливости.

Это коэфф. снижения выносливости. 1.0 = это полная скорость снижения выносливости (при беге, например)

А 0.7 - это только 70% скорости снижения выносливости по сравнению с обычной. То есть, наш герой сможет бежать дольше. При коэфф. 0.0 герой вообще никогда не устает.

За восстановление выносливости отвечает другой параметр.

6.

bones_koeff_protection             = actor_armor_light ; это защита от пуль. Пулестойкость.

 Защита от пуль (и только от них) задается параметром bones_koeff_protection, а не fire_wound_protection, который просто фейковый параметр для отображения на экране монитора.
Отсюда же следующая особенность - параметр пулестойкости НЕ зависит от состояния костюма.

Т.е. даже самый "убитый" костюм будет защищать от пуль как новый.
Более подробно можно почитать здесь http://www.amk-team.ru/forum/index.php?showtopic=4188&page=1#entry174907 посты за авторством Колмогора (первого движкового ковырятеля)

7.

strike_protection = защита от гравитационных ударов как у псевдогиганта и бюрера, падений с высоты и гравитационных аномалий.

wound_protection  = защита от клыков и когтей мутантов. и от ударов ножом. кровотечения тут вообще ни при чем.

==================

Предлагаю вам ознакомиться со справочным материалом:

Расчет повреждений по стрельбе по NPC

[SoC] Расчет повреждений при стрельбе по неписям

Редактирование костюмов

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

4udik Искренне благодарю вас за то, что вы указали мне на мои ошибки, а также протупы. В ближайшее время всё будет исправлено, как по фэншую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 минуты назад, Ҫвяҭѳӎӹшљ сказал:

4udik Искренне благодарю вас за то, что вы указали мне на мои ошибки, а также протупы. В ближайшее время всё будет исправлено, как по фэншую.

На здоровье! Я тоже не особо специалист. Тоже не всё знаю досконально. Но, что знал, сказал.

Сталкер тем и прекрасен, что с помощью Блокнота и смекалки из него можно сделать игру своей мечты.

Конструктор ЛЕГО, ей-богу. За что и любим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
   

А где найти сам нередактированный файл outfit.ltx?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Bespredelschik распаковать архивы игры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу