Сделай Сам Свою Работу на 5

Часть четвёртая: Конфиги править





Конфиги главная часть всего сталкера (не считая скриптов). Сами файлы имеют форматы xml иltx. Мы будем открывать их блокнотом. Теперь разберёмся со структурой.


Папка configs:

· сreatures – папка с конфигами НПС, группировок (НПС или NPC - сталкеры, монстры)

· environment – папка с конфигами погодных эффектов

· gameplay – второстепенные конфиги НПС, инфопорции, диалоги

· misc – конфиги артефактов, предметов, еды, одежды, звуков, заданий

· models – конфиги моделей

· mp – мультиплеер

· prefetch – неважно

· scripts – логика НПС, мутантов, аномалий (НЕ ПУТАТЬ СО СКРИПТАМИ!)

· text– русские тексты (диалоги, пункты меню, имена сталкеров и т.д.)

· ui – конфиги положения иконок

· weapons – конфиги оружия

· weathers – конфиги погоды

· zones – конфиги аномалий


FAQ


Вопрос:Как сделать главного героя бессмертным, бесконечно выносливым?

Ответ: Параметры, отвечающие за потерю НР находятся в файлеgamedata/configs/creatures/actor.ltx, эти строки:

 

· satiety_critical = 0.0 ; критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться

· radiation_health_v = 0.004 ; уменьшение здоровья при воздействии радиации

· health_hit_part = 1.0 ; процент хита, уходящий на отнимание здоровья



· power_hit_part = 0.1 ; процент хита, уходящий на отнимание силы

· bleeding_v = 0.002 ;0.0005 ; потеря крови при номинальной ране в секунду

Cделайте их равными 0.0, ивы бессмертны.

· wound_incarnation_v = 0.0001 ;0.003 ;скорость заживления раны

· min_wound_size = 0.0256 ;минимальный размер раны, после которого она считается зажившей

· psy_health_v = 0.001 ;скорость восстановления psy-здоровья

Увеличьте эти параметры в несколько раз

Для бесконечной выносливости обнулите эти параметры:

· walk_power = 0.00001; умешьшение силы за секнду во время ходьбы без учета веса ноши

· walk_weight_power = 0.00005 ; умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса

Для увеличения высоты прыжка, измените этот параметр:

· jump_speed = 6


Вопрос:Как изменить длину палочки прицела?

Ответ: в gamedataconfigssystem.ltx отредактировать эти строки:
[hud_cursor]
;все размерv в процентах от длинv экрана

· cross_length = 0.015 ; длина "палочки" прицела

· min_radius = 0.0 ; минимальнvй радиус прицела (при нулевой дисперсии)

· max_radius = 1.0 ; максимальнvй радиус

· radius_lerp_speed = 0.08 ; скорость интерполљции положений прицела



· cross_color = 0.7,0.7,0.7,0.5 ; цвет прицела

· disp_scale = 0.08 ; масштаб прицела (относительно радиан)


Вопрос:Как изменить параметры конкретного оружия?

Ответ:Параметры стволов заданы в конфигурационных файлах по адресуgamedata/configs/weapons
Возьмем, для примера, конфигw_g36.ltx. Он делится на разделы:

 

· Первый раздел

Здесь хранится общая информация о оружии - его класс, тип, ссылки на спавн и т.д. Нас интересуют следующие строки:

 

· description = enc_weapons1_wpn-g36- ссылка на string_id, из которого игра подгружает описание этого оружия.

· ef_main_weapon_type = 2 - основной тип, к которому принадлежит оружие

· ef_weapon_type = 6 - подтип, к которому принадлежит оружие

· Второй раздел

Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC, держащего это оружие в руках:

· holder_range_modifier = 1.85 - во сколько раз увеличивается eye_range

· holder_fov_modifier = 0.3 - во сколько раз увеличивается eye_fov

· Третий раздел

Содержит данные о самом оружии, его некоторых характеристиках:

· cost = 18000- базовая цена (торговцы умножают её на некоторый коэффициент)

· weapon_class = assault_rifle - класс оружия (здесь - штурмовая винтовка)

· ammo_mag_size = 30 - размер магазина

· ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap - типы используемых патронов

· grenade_class = ammo_m209 - тип используемых гранат

· fire_modes = 1, -1 - режимы ведения огня

· hand_dependence = 1 - засивимость о рук (?) - возможно, речь идет о качании ствола

· single_handed = 0- держится ли только в одной руке

· slot = 2 - слот в инвентаре

· animation_slot = 2- вид анимации (для пистолета/для винтовки)

· inv_name = wpn-g36- ссылка на имя, отображаемое в инвентаре, тоже берется из string table, как и описание



· inv_name_short = wpn-g36 - короткое имя; в данном случае используется то же самое

· inv_weight = 3.6 - вес

· inv_grid_width = 5 - координаты первого угла иконки по x

· inv_grid_height = 2 - координаты первого угла иконки по y

· inv_grid_x = 0 - координаты второго угла иконки по x

· inv_grid_y = 10 - координаты второго угла иконки по y

· Четвертый раздел

В четвертом разделе хранится информация о износе/отдаче оружия. Практически все параметры там снабжены комментариями, поэтому приведу лишь самые интересные:

· cam_relax_speed = 5.7 - скорость возврата в исходное положение

· cam_dispersion = 0.2 - увеличения угла (в градусах) с каждым выстрелом

· fire_dispersion_condition_factor = 5 - увеличение дисперсии в процентах при максимальном износе

· misfire_probability = 0.003 - вероятность осечки при максимальном износе

· misfire_condition_k = 0.05 - порог (в данном случае - 5%), после которого оружие может заклинивать

· condition_shot_dec = 0.0002- увеличение износа при каждом выстреле

· Пятый раздел

Здесь хранится множество параметров, из которых наиболее интересны эти:

· PDM_disp_base = 3.0 - множитель, на который умножается базовая дисперсия оружия, когда ГГ (Главный Герой) стоит на месте в полный рост;

· PDM_disp_vel_factor = 1.3 - множитель, на который умножается базовая дисперсия оружия, когда ГГ крутит оружием или бежит;

· PDM_disp_accel_factor = 1.3 - множитель, на который умножается базовая дисперсия оружия, когда ГГ бежит в спринте;

· PDM_crouch = 1.0- множитель, на который умножается базовая дисперсия оружия, когда ГГ идет пригнувшись;

· PDM_crouch_no_acc = 1.0 - множитель, на который умножается базовая дисперсия оружия, когда ГГ стоит на месте, пригнувшись;

· hit_power = 0.50, 0.54, 0.57, 0.60 - сила выстрела

· hit_impulse = 105- импульс пули (сила, которую летящая пуля передает жертве, влияет на поведение ragdoll-тела)

· hit_type = fire_wound - тип причиняемых повреждений, в данном случае - пулевые ранения (параметр в синглплеере ни на что не влияет)

· fire_distance = 600- максимальная дистанция для выстрела

· bullet_speed = 925- начальная скорость пули

· hud = wpn_g36_hud - внешний вид оружия

· Шестой раздел

· position = -0.026, -0.132, 0.0 - позиция по отношению к игроку (?)

· orientation = 0, 0, 0 - направление, в которое смотрит ствол (?)

· Седьмой раздел

Содержит описания визуальной стороны оружия и некоторые другие параметры:

· startup_ammo = 90- как нетрудно догадаться, стартовое количество патронов (в синглплеере ни на что не влияет)

· visual = weaponsg36wpn_g36.ogf - модель оружия, используемая NPC, а также игроком при виде от третьего лица

· ph_mass = 4 - физическая масса, используемая при расчетах

· scope_status = 1 - ситуация со съемным прицелом

· silencer_status = 0 - ситуация со съемным глушителем

· grenade_launcher_status = 0 - ситуация с подствольным гранатометом

Параметры:

· 0 - нет, новый прикрепить нельзя

· 1 - уже есть, несъемный

· 2- нет, но можно установить новый

· zoom_enabled = true - есть ли зум (прицеливание)

· scope_zoom_factor = 33.3 - какой зум дает прицеливание (здесь - 1.8х)

· scope_texture = wpnwpn_crosshair_g36 - текстура прицельной сетки

· shell_point = 0.15, 0.0, -0.05 - точка вылета гильз

· shell_dir = 0.0, 1.0, 0.0

· fire_point = -0.000000,0.062000,0.134000 - точка выстрела

· fire_point2 = 0.30, 0.00, 0.05 - точка выстрела (2)

· fire_bone = wpn_body

· orientation = 0, 0, 0- направление

· position = 0, 0, 0 - позиция

· visual = weapons/g36/wpn_g36_hud.ogf - модель, отображаемая у нас в руках

 

 

Изменение описаний

Описания оружия хранятся в файле: ...S.T.A.L.K.E.R/gamedata/configs/text/rus/string_table_enc_weapons.xml

В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же G36 ссылается сюда:

[...]

Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец
современного оружия - лёгкого, надёжного и эргономичного.n Боеприпасы:n обычный 5,56x45 мм
SS109,n бронебойный 5,56x45 мм АР.
[...]

ГП37
[...]Меняя их содержимое, мы меняем описания/названия данного оружия.


Вопрос:Как изменить параметры конкретного боеприпаса?

Ответ: Параметры амуниции заданы в файле по адресуgamedata/configs/weapons/weapons.ltx

например:


· visual = weapons/ammo/ammo_556x45_ss190.ogf- модель коробки с патронами

· description = enc_weapons1_ammo_ammo-5.56x45-ss190 - ссылка на string_id, из которого игра подгружает описание этого типа патронов

· cost = 320 - стоимость одной коробки

· box_size = 30 - количество патронов в одной коробке

· inv_name = ammo-5.56x45-ss190 - ссылка на string_id, содержащий имя для инвентаря

· inv_name_short = ammo-5.56x45-ss190_s- ссылка на string_id, содержащий краткое имя для инвентаря

· inv_weight = 0.33- вес

· inv_grid_width = 2 - координаты первого угла иконки по x

· inv_grid_height = 1 - координаты первого угла иконки по y

· inv_grid_x = 14 - координаты второго угла иконки по x

· inv_grid_y = 11 - координаты второго угла иконки по y

· k_dist = 1 - коэффициент дальности, сама дальность - в стволе, тупо расстояние.

· k_disp = 2.5 - кучность, завязана с кучностью в стволе

· k_hit = 1 - убойность, завязана с убойностью в стволе

· k_impulse = 1 - чисто наскока эффектно ногами непись дрыгнет во время кердыка

· k_pierce = 1- коэффициент наскока испорится броня при попадании

· impair = 1 - коэффициент износа ствола от пули

· buck_shot = 1 - кол-во составляющих в пуле (напр картечь - 4, пуля - 1)

· tracer = on - является ли патрон трассирующим (on/off)

· wm_size = 0.05 - визуальный размер дырки на стене от пули


Вопрос:Как редактировать торговцев, торговлю с обычными сталкерами?


Ответ: Все настройки, связанные с ассортиментом торговцев в игре, находятся в файлахgamedata/configs/misc/trade_***.ltx Для всех остальных сталкеров -gamedata/configs/misc/trade_generic.ltx


Структура файла

· Секция[trader_generic_buy]

Эта секция описывает какие товары торговец будет покупать.

Название предмета =минимальная цена покупки, максимальная цена покупки

Например:

wpn_vintorez = 0.5, 0.7 - Это значит что торговец купит оружие от 50% полной его стоимости до 70%, т.е. если Винторез стоит 1000, то торговец купит его в диапазоне от 500 до 700 рублей. Диапазон зависит от отношения торговца к Меченому - чем лучше, тем дороже купит.


· Секция [supplies_start]

Эта секция описывает какие товары у торговца будут вначале.
Название предмета = количество, вероятность появления

Например:

bandage = 5, 1 - Это значит что у торговеца всегда будут 5 бинтов, с 100 процентной вероятностью появления в магазине.
bandage = 5, 0.6 - А тут уже вероятность появления 60%. Т.е. бинты не всегда будут.


· Секция[supplies_after_***]

Тоже самое, что в секции [supplies_start], но после выполнения квестов торговца.


· Секция [trader_start_sell]

Эта секция описывает за какую цену торговец будет продавать.

Название предмета =минимальная цена продажи, максимальная цена продажи

Например:

wpn_vintorez = 1, 2- Это значит что торговец продаст оружие от 100% полной его стоимости до 200%, т.е. если Винторез стоит 1000, то торговец продаст его в диапазоне от 1000 до 2000 рублей. Диапазон зависит от отношения торговца к Меченому - чем лучше, тем дешевле продаст


· Секция[trader_after_***_sell]

Тоже самое, что в секции [trader_start_sell], но после выполнения квестов торговца.

деньги торговцев правятся вcharacter_desc_название локации.xml.

Например, в character_desc_escape.xml такая строка: (если infinitive="1" - бесконечные деньги)

Вопрос:Как редактировать костюмы?

Ответ: Итак, секции с параметрами находятся в файле configs/misc/outfit.ltx

Рассмотрим, например, параметры классического костюма сталкера.

[stalker_outfit]:outfit_base ; название секции костюма. именно к нему игра будет обращаться. outfit_base -
базовая (наследуемая) секция (изменять строго не рекомендуется).


· visual = equipmentsstalker_suit ; модель, используемая для сложенного костюма, лежащего на земле.

· actor_visual = actorsherostalker_hood.ogf ; модель, используемая для игрока, когда на нем надет костюм.

· inv_name = stalker_outfit_name ; название в инвентаре.

· 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
inv_grid_y = 15
full_icon_name = npc_icon_stalker_outfit; название иконки.

cost = 15000; базовая цена (см. примечание 2).
full_scale_icon = 14,11 ; иконка сталкера в костюме в полный рост (отображается в инвентаре справа).
nightvision_sect = effector_nightvision_bad ; тип ПНВ ("плохой" - зеленый, "хороший" - синий).

; ниже идут параметры защиты владельца от различных типов воздействий,
обеспечиваемые костюмом.

 

· burn_protection = 0.5; защита от воздействия огня (костры, аномалия "Жарка" и т.д.).

· strike_protection = 0.5 ; защита от ударов (наносятся мутантами, например, псевдогигантом).

· shock_protection = 0.5 ; защита от поражения электричеством.

· wound_protection = 0.4 ; защита от ранений (наносятся мутантами, например, собаками, кровососами и т.д.).

· radiation_protection = 0.5 ; защита от радиации.

· telepatic_protection = 0.0 ; защита от пси-воздействия (например, присутствие контроллера серьезно влияет на psy_health).

· chemical_burn_protection = 0.5 ; защита от химического воздействия.

· explosion_protection = 0.3 ; защита от взрывов/осколков.

· fire_wound_protection = 0.3 ; защита от огнестрельного оружия (наиболее важный параметр для большинства костюмов).

· power_loss = 0.87

· bones_koeff_protection = gilet_antigas_damage


[sect_stalker_outfit_immunities]; коэффициенты иммунитета самого костюма, то есть - то, насколько сильно он сам подвержен повреждениям от различных типов воздействий. по значениям каждого типа - см. выше.

 

· burn_immunity = 0.03

· strike_immunity = 0.01

· shock_immunity = 0.03

· wound_immunity = 0.015

· radiation_immunity = 0.00

· telepatic_immunity = 0.00

· chemical_burn_immunity = 0.03

· explosion_immunity = 0.03

· fire_wound_immunity = 0.01


Вопрос:Как сделать так, чтобы стволы не убирались сами?

Ответ: Изменить эти строки в файле gamedata/scripts/sr_no_weapon.script

function action_no_weapon:zone_enter()
self.state = state_inside
bind_stalker.restore_weapon(self.object:id())
end
function action_no_weapon:zone_leave()
self.state = state_outside
bind_stalker.restore_weapon(self.object:id())
end


Вопрос:Как реализовать качание прицела?

Ответ: Конфиги, отвечающие за эту особенность, в файлеgamedata/configs/misc/effectors.ltx:

[zoom_inertion_effector]

 

· camera_move_epsilon = 0.03 ;разница между двумя векторами направления камера, когда считается что камера двинулась

· disp_min = 0.01

· speed_min = 0.00001

· zoom_aim_disp_k = 1.0 ; коэффициенты соотношения полной дисперсии стрельбы

· zoom_aim_speed_k = 0.0025 ; и покачивания прицела

· delta_time = 3000; время через которое эффектор меняет направление движения (в милисекундах)


Вопрос:Как "изменить" рост главного героя?

Ответ: В файле gamedata/configs/creatures/actor.ltx поменять параметрcamera_height_factor = 0.92


Вопрос:Где лежат конфиги артефактов?

Ответ: Все артефакты описаны в файле gamedata/configs/misc/artefacts.ltx

 

Вопрос:Как восстановить активацию артефактов?

Ответ: Распишу по пунктам как добавить например к "огненому шару" аномалию Жарка...

Открываете файл: gamedata/config/misc/artefacts.ltx

И там в самом начале файла такая секция:

;Артефакты, которые при активизации создают аномальные зоны

;формат: {секция_артефакта} = {секция_зоны},Radius,Power

[artefact_spawn_zones]

af_medusa = zone_mosquito_bald_weak, 2.0, 30.0

Обозначает что артефактaf_medusa при активации создаст аномальную зонуzone_mosquito_bald_weak с радиусом 2 метраи мощностью 30 (возможно влияет и на время жизни аномалии)

Кончается этот список по идее строчкой: mp_af_electra_flash = zone_witches_galantine, 3, 50.0

и сразу после неё пишете: af_fireball = zone_zharka_static, 3, 30.0

В принципе можно прописать там не статик а zone_zharka_weak незнаю что из них правильнее использовать... статик работает тоже.В той-же папке есть файлzone_zharka, где описаны свойства зон _weak, _average, _strong( слабая, средняя, сильная), а также зона zone_zharka_static.

После этого у вас игра станет вылетать с ошибкой про невозможность обнаружить последовательность описывающую анимацию активации аномалии.

А это всё там же в начале файла чуть ниже того где вы добавили новый артефакт в список есть такие строчки:


· [af_activation_gravi]


;----------------------------------------------------------------------------------------------------------------------------------------

;format: time(sec), sound_name, light_R,G,B, light_range, particle_name, af_animation_name

;----------------------------------------------------------------------------------------------------------------------------------------

starting = 5.0, anomalygravi_idle00, 0.5, 1.0, 1.5, 5.0, "anomaly2artefact_gravi_blast_start", "idle"

flying = 2.0, anomalygravi_idle01, 0.8, 1.0, 1.2, 3.0, "anomaly2artefactartefact_gravi", "idle"

idle_before_spawning = 5.0, anomalygravi_blowout5, 1.0, 1.0, 1, 0.0, "anomaly2artefact_gravi_blast_finished", "idle"

spawning = 1, anomalygravity_entrance, 0.9, 1.1, 1.01, 0.0, "", "idle"


Что как раз и описывает анимацию..


По-хорошему надо написать свою анимацию к жарке но это честно говоря не обязательно... потому что нам сейчас важна не красота а работоспособность.... Так вот... из заголовка "[af_activation_gravi]" берем название последовательностиaf_activation_gravi и ищем сам артефакт af_fireball (кто уже забыл зачем, мы на него собирались вешать новую активацию)

Найдете что-то вроде:


· [af_fireball]:af_base


GroupControlSection = spawn_group

$spawn = "artifactszharka fireball"

$npc = on ; option for Level Editor

;$prefetch = 3

cform = skeleton

class = ARTEFACT

visual = physicsanomalyartefact_fire.ogf

description = enc_zone_artifact_af-fireball

inv_name = af-fireball

И где-нибудь тут добавляете строчку: artefact_activation_seq = af_activation_gravi


И на этом всё. Прописываем в artefacts.ltx в блоке [af_base]:identity_immunitiesвместо ;slot=10 вот это: slot=1. Насколько я знаю, знак ; зоначает, что строка закомментирована(неактивна) У себя я прописывал slot=1 между строчками inv_name = af-electra-moonlight inv_name_short = inv_weight = 0.05 slot = 1 inv_grid_x = 10 inv_grid_y = 10 для того артефакта, который хочу активировать.

В игре берем артефакт в первый слот и активируем.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.