Не работают изменения в actor ltx сталкер

Обновлено: 02.07.2024

max_item_mass = 999 ; Стоит указывать значения меньше параметра max_walk_weight (см.выше).
jump_speed = 60 ; Высота прыжка. Не указывайте астрономические значения. Гл. герой всё равно не улетит в космос ))
crouch_coef = 1 ; Скорость ползагия "очень сидя" (Ctrl + Shift по умолчанию)
climb_coef = 2 ; Вроде присев (Ctrl)
run_coef = 3 ; Обычный бег с параметром консоли "g_always_run" равным 1
sprint_koef = 4 ; спринт
run_back_coef = 3 ; бег назад
walk_back_coef = 2 ; ходьба назад с клавишей Shift
air_control_param = 1 ; контроль полёта. Выгоден при высоких значениях jump_speed, т.к. можно быстро перемещаться по карте
walk_accel = 17 ; неизвестный параметр

Дальше будет параметр pickup_info_radius и его можно настроить на любое значение. Увеличивает радиус отображения названия предмета при нажатии "F"

Далее параметы 3d и т.п. смотрим поэтому дальше.

camera_height_factor = 0.85 ; опреляет высоту взгляда. Увеличиваем и игрок станет зрительно выше

disp_base = 0 ;угол (в градусах) разлета пуль, когда актер стоит на месте
disp_aim = 0
disp_vel_factor = 0 ;на сколько увеличится дисперсия при скрости в 10 м/с (не обязательно при беге)
disp_accel_factor = 0 ;еще на сколько увеличится, если актер бежит (+ скорость)
disp_crouch_factor = 0 ;уменьшение если актер сидит
disp_crouch_no_acc_factor = 0 ;уменьшение если актер сидит + no acceleration

Чтобы уменьшить размер прицела можно сделать так.

Дальше увидим секцию [actor_immunities_gd_***] (вместо *** нужный ранг)

Чтобы увеличить живучесть - меняем значение ниже.

burn_immunity = 0.0
strike_immunity = 0.0
shock_immunity = 0.0
wound_immunity = 0.0
radiation_immunity = 0.0
telepatic_immunity = 0.0
chemical_burn_immunity = 0.0
explosion_immunity = 0.0
fire_wound_immunity = 0.0

Дальше видим [actor_condition]

И настройка в лучшую сторону будт таковой:

satiety_v = 0 ;скорость уменьшения сытости со временем
radiation_v = 1 ;скорость уменьшения радиации
satiety_power_v = 1 ;увеличение силы при уменьшении сытости
satiety_health_v = 1 ;увеличение здоровья при уменьшении сытости
satiety_critical = 0 ;критическое значения сытости (в процентах от 0..1) когда здоровье начианает уменьшаться
radiation_health_v = 0 ;уменьшение здоровья при воздействии радиации
morale_v = 1 ;скорость восстановления морали
psy_health_v = 1 ;скорость восстановления psy-здоровья
alcohol_v = -1
health_hit_part = 0 ;процент хита, уходящий на отнимание здоровья
power_hit_part = 0 ;процент хита, уходящий на отнимание силы
max_power_leak_speed = 0 ;накопление усталости (макс граница, до которой восстанавливается сила) в секунду игрового времени
max_walk_weight = 1000 ; Вес, при котором игрок не может двигаться. Указать можно любое значение.

bleeding_v = 0 ;потеря крови при номинальной ране в секунду
wound_incarnation_v = 1 ;скорость заживления раны
min_wound_size = 0 ;минимальный размер раны, после которого она считается зажившей

min_wound_size,satiety_v,satiety_power,satiety_health,satiety_critical,alcohol_v можно было и не настраивать, если вам нужно бессмертие

Будем настраивать выносливость.

Назодим строку "jump_power"

Меняем так, чтобы игрок никогда не уставал, разве что если нацепит на себя 5 огненных шаров ))

jump_power = 0 ;умешьшение силы с прыжком без учета веса ноши
jump_weight_power = 0 ;умешьшение силы с прыжком с учетом веса ноши, для максимального допустимого веса
overweight_jump_k = 1 ;коэффициент влияние перегрузки прыжок с весом (умножается на jump_weight_power)

stand_power = 0
walk_power = 0 ;умешьшение силы за секнду во время ходьбы без учета веса ноши
walk_weight_power = 0 ;умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса
overweight_walk_k = 1 ;коэффициент влияние перегрузки ноши (умножается на walk_weight_power)
accel_k = 1;коэффициент на бег (умножается walk_power, walk_weight_power)
sprint_k = 1 ;коэффициент на "sprint" бег (умножается walk_power, walk_weight_power)


Значения с комментом "коофициент" и значениями более 1 (необязательно) рекомендую менять на 1.

limping_health_begin = 0 ;порог здоровья меньше которого актер начинает хромать
limping_health_end = 0;порог здоровья больше которого актер перестает хромать
limping_power_begin = 0 ;порог силы меньше которого актер начинает хромать
limping_power_end = 0 ;порог силы больше которого актер перестает хромать

cant_walk_power_begin = 0 ;порог силы меньше которого актер не может двигаться
cant_walk_power_end = 0 ;порог силы больше которого актер сможет двигаться

cant_sprint_power_begin = 0 ;порог силы меньше которого актер не может бежать в спринте
cant_sprint_power_end = 0 ;порог силы больше которого актер сможет бежать в спринте

Дальше идут кости, работающие в 3d, и их тоже можно менять, чтобы уменьшить уязвимость, но пока их настройка не столь нужна. Я лишь скажу, что нужно настраивать 1 (первый) параметр. Чем меньше, тем лучше.

изменяя файл мне писали " В доступе отказано" я сохранил на раб стол, а потом заменил. надо было просто в Тень чернобыля а не в bin?

Лунарей Гений (55371) В доступе отказано из-за того, что у тебя игра установлена на системный раздел диска (С)


установил все как сказано в описании, вот что снова получается

все начало работать) спасибо ты лучший, ты меня прям спас)

Делай всё по инструкции и всё будет работать. Если, конечно, у тебя не установлен мод со встроенным анти-читом.

max_item_mass = 999 ; Стоит указывать значения меньше параметра max_walk_weight (см.выше).
jump_speed = 60 ; Высота прыжка. Не указывайте астрономические значения. Гл. герой всё равно не улетит в космос ))
crouch_coef = 1 ; Скорость ползагия "очень сидя" (Ctrl + Shift по умолчанию)
climb_coef = 2 ; Вроде присев (Ctrl)
run_coef = 3 ; Обычный бег с параметром консоли "g_always_run" равным 1
sprint_koef = 4 ; спринт
run_back_coef = 3 ; бег назад
walk_back_coef = 2 ; ходьба назад с клавишей Shift
air_control_param = 1 ; контроль полёта. Выгоден при высоких значениях jump_speed, т.к. можно быстро перемещаться по карте
walk_accel = 17 ; неизвестный параметр
pickup_info_radius = 5 ;радиус, в котором над предметами выводятся их названия при нажатии клавиши "F".

Далее параметры 3d и т.п. смотрим поэтому дальше.

camera_height_factor = 0.85 ; определяет высоту взгляда. Увеличиваем и игрок станет зрительно выше

disp_base = 0 ;угол (в градусах) разлета пуль, когда актер стоит на месте
disp_aim = 0
disp_vel_factor = 0 ;на сколько увеличится дисперсия при скорости в 10 м/с (не обязательно при беге)
disp_accel_factor = 0 ;еще на сколько увеличится, если актер бежит (+ скорость)
disp_crouch_factor = 0 ;уменьшение если актер сидит
disp_crouch_no_acc_factor = 0 ;уменьшение если актер сидит + no acceleration

Чтобы уменьшить размер прицела можно сделать так.

Дальше увидим секцию [actor_immunities_gd_***] (вместо *** нужный ранг)

Чтобы увеличить живучесть - меняем значение ниже.

burn_immunity = 0.0
strike_immunity = 0.0
shock_immunity = 0.0
wound_immunity = 0.0
radiation_immunity = 0.0
telepatic_immunity = 0.0
chemical_burn_immunity = 0.0
explosion_immunity = 0.0
fire_wound_immunity = 0.0

Дальше видим [actor_condition]

И настройка в лучшую сторону будет таковой:

satiety_v = 0 ;скорость уменьшения сытости со временем
radiation_v = 1 ;скорость уменьшения радиации
satiety_power_v = 1 ;увеличение силы при уменьшении сытости
satiety_health_v = 1 ;увеличение здоровья при уменьшении сытости
satiety_critical = 0 ;критическое значения сытости (в процентах от 0..1) когда здоровье начинает уменьшаться
radiation_health_v = 0 ;уменьшение здоровья при воздействии радиации
morale_v = 1 ;скорость восстановления морали
psy_health_v = 1 ;скорость восстановления psy-здоровья
alcohol_v = -1
health_hit_part = 0 ;процент хита, уходящий на отнимание здоровья
power_hit_part = 0 ;процент хита, уходящий на отнимание силы
max_power_leak_speed = 0 ;накопление усталости (макс граница, до которой восстанавливается сила) в секунду игрового времени
max_walk_weight = 1000 ; Вес, при котором игрок не может двигаться. Указать можно любое значение.

bleeding_v = 0 ;потеря крови при номинальной ране в секунду
wound_incarnation_v = 1 ;скорость заживления раны
min_wound_size = 0 ;минимальный размер раны, после которого она считается зажившей

min_wound_size,satiety_v,satiety_power,satiety_health,satiety_critical,alcohol_v можно было и не настраивать, если вам нужно бессмертие

Будем настраивать выносливость.

Назодим строку "jump_power"

Меняем так, чтобы игрок никогда не уставал, разве что если нацепит на себя 5 огненных шаров ))

jump_power = 0 ;умешьшение силы с прыжком без учета веса ноши
jump_weight_power = 0 ;умешьшение силы с прыжком с учетом веса ноши, для максимального допустимого веса
overweight_jump_k = 1 ;коэффициент влияние перегрузки прыжок с весом (умножается на jump_weight_power)

stand_power = 0
walk_power = 0 ;умешьшение силы за секнду во время ходьбы без учета веса ноши
walk_weight_power = 0 ;умешьшение силы за секнду во время ходьбы с учетом веса ноши, для максимального допустимого веса
overweight_walk_k = 1 ;коэффициент влияние перегрузки ноши (умножается на walk_weight_power)
accel_k = 1;коэффициент на бег (умножается walk_power, walk_weight_power)
sprint_k = 1 ;коэффициент на "sprint" бег (умножается walk_power, walk_weight_power)

Значения с комментом "коофициент" и значениями более 1 (необязательно) рекомендую менять на 1.

limping_health_begin = 0 ;порог здоровья меньше которого актер начинает хромать
limping_health_end = 0;порог здоровья больше которого актер перестает хромать
limping_power_begin = 0 ;порог силы меньше которого актер начинает хромать
limping_power_end = 0 ;порог силы больше которого актер перестает хромать

cant_walk_power_begin = 0 ;порог силы меньше которого актер не может двигаться
cant_walk_power_end = 0 ;порог силы больше которого актер сможет двигаться

cant_sprint_power_begin = 0 ;порог силы меньше которого актер не может бежать в спринте
cant_sprint_power_end = 0 ;порог силы больше которого актер сможет бежать в спринте

Дальше идут кости, работающие в 3d, и их тоже можно менять, чтобы уменьшить уязвимость, но пока их настройка не столь нужна. Я лишь скажу, что нужно настраивать 1 (первый) параметр. Чем меньше, тем лучше.

kak_izmenit_perenosimyy_ves_v_stalker.jpg


Меняем блок под той шапкой, на каком уровне сложности играем. Например, уровень сложности у нас "Сталкер". Редактируем следующий блок:

Редактируем следующим образом: после знака равно каждого параметра ставим 0.0 - и наш ГГ бессмертен. ВНИМАНИЕ: СПОЙЛЕР!

Мне кажется многие задавались вопросом "Как же создать худ маски"? Немного пораздумав, я создал функцию, которая крепит текстуру к определенному костюму.

Первым делом в директории gamedata\scripts создайте файл с названием xr_mask.script

Открываем его пишем:

function hud_gas()
local slot_stalker = db.actor:item_in_slot(6)
local object_1 = db.actor:object("stalker_outfit")
local slot_killer = db.actor:item_in_slot(6)
local object_2 = db.actor:object("killer_outfit")
if slot_stalker and slot_stalker:section() == "stalker_outfit" and object_1

= nil or
slot_killer and slot_killer:section() == "killer_outfit" and object_2

= nil then
local hud = get_hud()
local custom_static = hud:GetCustomStatic("hud_gas")
if custom_static == nil then
hud:AddCustomStatic("hud_gas", true)
end
else
local hud = get_hud()
local custom_static = hud:GetCustomStatic("hud_gas")
if custom_static

= nil then
hud:RemoveCustomStatic("hud_gas", false)
end
end
end

function hud_gas() -- функция
local slot_stalker = db.actor:item_in_slot(6) -- переменная костюма
local object_1 = db.actor:object("stalker_outfit") -- переменная объекта
local slot_killer = db.actor:item_in_slot(6) -- переменная костюма
local object_2 = db.actor:object("killer_outfit") -- переменная объекта
if slot_stalker and slot_stalker:section() == "stalker_outfit" and object_1

= nil or
slot_killer and slot_killer:section() == "killer_outfit" and object_2

= nil then -- проверяем надет ли костюм сталкера\наемника
local hud = get_hud() -- худ
local custom_static = hud:GetCustomStatic("hud_gas")
if custom_static == nil then -- если худа нет, выдаем, если одет костюм
hud:AddCustomStatic("hud_gas", true)
end
else
local hud = get_hud()
local custom_static = hud:GetCustomStatic("hud_gas")
if custom_static

= nil then -- если худ есть, убираем при смене костюма
hud:RemoveCustomStatic("hud_gas", false)
end
end
end

Теперь зайдем в bind_stalker.script, который находится в gamedata\scripts, найдем функцию: function actor_binder:update(delta) и после пишем: xr_mask.hud_gas() в итоге:

function actor_binder:update(delta)
xr_mask.hud_gas()
object_binder.update(self, delta)
local time = time_global()
game_stats.update (delta, self.object)

Итак, заходим в директорию gamedata\config\ui, находим файл с названием ui_custom_msgs, открываем его и в самом конце перед строкой: </header> пишем:

<hud_gas x="0" y="0" width="1024" height="768" stretch="1">
<texture>hud\hud_gas</texture> -- текстура маски. Посмотрите внимательно в скрипте мы указывали '''hud_gas'''
</hud_gas>

Теперь заходим в gamedata\textures\ui, находим файл с названием ui_mainmenu.dds. Копируем его, заходим в gamedata\textures\hud вставляем его и переминуем в hud_gas.dds Открываем программой Adobe Photoshop и рисуем подходящую для вас маску.

ВНИМАНИЕ: СПОЙЛЕР!

Конфиги, отвечающие за эту особенность, в файле 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 ;время через которое эффектор меняет направление движения (в милисекундах)

у меня лично стоит так:

[zoom_inertion_effector]
camera_move_epsilon = 0.03 ;разница между двумя векторами направления камера, когда считается что камера двинулась
disp_min = 0.02
speed_min = 0.0001
zoom_aim_disp_k = 1.18 ;коэффициенты соотношения полной дисперсии стрельбы
zoom_aim_speed_k = 0.0015 ;и покачивания прицела
delta_time = 1350 ;время через которое эффектор меняет направление движения (в милисекундах)

ВНИМАНИЕ: СПОЙЛЕР!

все настройки, связанные с ассортиментом торговцев в игре, находятся в файлах 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 такая строка:
<money min="100000" max="100000" infinitive="1"/> (если infinitive="1" - бесконечные деньги)

ВНИМАНИЕ: СПОЙЛЕР!

Часть 1
Сложность: Легко
Как сделать простой диалог.
1. Открываем, например файл dialogs_escape.xml (gamedata/config/gameplay) и пишем в конец:

Это скелет диалога. В нём будут написаны все инфопоршни и actions.

<dialog - это название диалога, которое нужно будет написать НПС.

<phrase - номер фразы.

<text>test_dialog_0</text> - это текст фразы.

<next>?</next> - переход к фразе.

2. Теперь нужно написать тексты диалога. Заходим в файл "stable_dialogs_bar.xml" (gamedata/config/text/rus) и пишем в конце:

<string - это то, на что ссылается скелет диалога.

<text>Это тэстовый диалог</text> - собственно текст.

. ВНИМАНИЕ.
Все диалоги начинаются со слов Меченого.

3. Теперь нужно прописать этот диалог НПС. Например Бармену.
Открываем файл "character_desc_bar.xml" и находим секцию Бармена. Она идёт самой первой.
После всех
<actor_dialog>. </actor_dialog>
Прописываем свой:
<actor_dialog>test_dialog</actor_dialog>

Часть 2
Сложность:Средне

1. Открываем, например файл dialogs_escape.xml (gamedata/config/gameplay) и пишем в конец:

<next>2</next>
и
<next>3</next> это возможные ответы Меченого.

2. Теперь нужно написать тексты диалога. Заходим в файл "stable_dialogs_bar.xml" (gamedata/config/text/rus) и пишем в конце:

3.Чтобы этот диалог не появлялся, пишем инфопоршень. Например в файле info_l01escape.xml

4.Дописываем инфопоршень в скелет диалога:

<dont_has_info>test_pogovoril</dont_has_info> - если ГГ получил инфопоршень, диалог не показывать.

<give_info>test_pogovoril</give_info> - дать ГГ инфопоршень.

Получается, что когда ГГ скажет любую из 2 фраз, диалог больше не появится.

Часть 3
Сложность:Сложно

-Как сделать разные action в диалогах.

1.Создаём обычный диалог:

C такими текстами:

2.Создаём свой скрипт в папке gamedata/script например test.script и пишем в него 3 функции:

Код
function dat_dengi(first_speaker, second_speaker)
dialogs.relocate_money(second_speaker, 3000, "in")
end

Это функция отдачи денег ГГ. На месте 3000 любое число.
На месте dat_dengi любое название.
------------------------------------------------------------

Код
function dat_item(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "wpn_pm", "in")
end

Это функция отдачи предмета ГГ. На месте wpn_pm любой предмет.
На месте dat_item любое название.
------------------------------------------------------------

Код
function spawn_item_or_monster_or_stalker()
alife():create("wpn_pm",vector():set(pos),lvid,gvid)
end

Это функция спавна чего либо. На месте wpn_pm любой предмет,монстр или сталкер.
На месте (pos),lvid,gvid) любые координаты.
На месте spawn_item_or_monster_or_stalker любое название.
------------------------------------------------------------
Так же функция может быть одна, но с несколькими действиями.
Например:

Код
function all(first_speaker, second_speaker)
dialogs.relocate_money(second_speaker, 3000, "in")
dialogs.relocate_item_section(second_speaker, "wpn_pm", "in")
alife():create("wpn_pm",vector():set(pos),lvid,gvid)
end

Значит что одновременно ГГ дадут 3000 рублей, ПМ и по заданным координатам заспавнится ПМ.
------------------------------------------------------------

3.Впишем функции в диалог:

Это значит что после после фразы
<text>test_dialog_2</text>
ГГ дадут 3000руб.

Это значит что после после фразы
<text>test_dialog_3</text>
ГГ дадут ПМ.

Это значит что после после фразы
<text>test_dialog_3</text>
Заспавнится ПМ.

Часть 4
Сложность: Очень сложно

-Как сделать разные precondition в диалогах.
Прекондишоны - это проверки на появление диалога

1.Создаём обычный диалог:

C такими текстами:

Код
<string
<text>Тест прекондишонов.</text>
</string>
<string
<text>Какой?</text>
</string>
<string
<text>Эта фраза появляется если у ГГ есть . рублей.</text>
</string>
<string
<text>Эта фраза появляется если у ГГ есть . предмет.</text>
</string>

2.Создаём свой скрипт в папке gamedata/script например test.script и пишем в него 3

Код
function has_money_. ()
local money = math.floor(200 *

xr_statistic_freeplay.get_freeplay_statistic():get_found_pda_discount())
return db.actor:money()>=money
end

Это функция проверки количества денег ГГ. На месте 200 любое число.
На месте has_money_. любое название.
------------------------------------------------------------

Код
function has_item(task, objective)
if db.actor

= nil then
return db.actor:object("wpn_pm")

= nil
end
return false
end

Это функция проверки наличия какого либо предмета у ГГ. На месте wpn_pm любой предмет.
На месте has_item любое название.
------------------------------------------------------------

3.Впишем функции в диалог:

Это значит что фраза <text>test_dialog_2</text> появится если у ГГ есть 200рублей
Это значит что фраза <text>test_dialog_3</text> появится если у ГГ есть ПМ.

ВНИМАНИЕ: СПОЙЛЕР!

[af_medusa]:af_base ---Название артефакта
GroupControlSection = spawn_group ---хз
$spawn = "artifacts\moscito medusa" ---спаун

$prefetch = 64 -=-
cform = skeleton =-=Эти три строки не трогать.
class = ARTEFACT -=-

visual = physics\anomaly\artefact_blackdrip.ogf ----визуал артефакта
description = enc_zone_artifact_af-medusa ---описание
inv_name = af-medusa ---имя
inv_name_short = ---имя но короткое,в игре для артов не испоьлзуется
inv_weight = 0.5 ---вес

inv_grid_x = 9 -=-Координаты по оси Х
inv_grid_y = 4 -=-Координаты по оси У

jump_height = .5 ---высота прыжка

;подсветка арта
lights_enabled = true
trail_light_color = 2.5, 2.4, 0
trail_light_range = 1.0

;скорости увеличения (уменьшения) --- думаю обьяснять не нужно
health_restore_speed = 0.0
radiation_restore_speed = 0.0007
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_medusa_absorbation

[af_medusa_absorbation] - а вот здесь загвоздочка.Допустим вы поставили burn_immunity = 2.0. а в игре заметили что она уменьшает на 100 защиту от ожогов.Ставить нужно наоборот,то есть.хочешь чтобы медуза давала 30 пулестойкости из 100-30=70.Ставишь на fire_wound_immunity = 0.70
burn_immunity = 1.0
strike_immunity = 0.97
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity = 1.0

ВНИМАНИЕ: СПОЙЛЕР!

Рассмотрим костюм долга

;---------------------------------------------------------------------------------------------
; ОБЫЧНЫЙ КОСТЮМ ДОЛГА
;---------------------------------------------------------------------------------------------
[dolg_outfit]:outfit_base ---Название костюма в документах(в скриптах и ltx файлах)
GroupControlSection = spawn_group ---Этого я не знаю,и лучше не трогать,обычно вылет
discovery_dependency = ---Тоже какая то функция
$spawn = "outfit\dolg_outfit" ---Спаун,то есть,костюм лежащий на земле
;$prefetch = 32 ---ХЗ
class = E_STLK ---класс
cform = skeleton ---НЕ ТРОГАТЬ!
visual = equipments\dolg_suit ---Визуал костюма лежащий на земле
actor_visual = actors\hero\stalker_dolg.ogf ---Визуал НПС,В нашем случае ГГ

ef_equipment_type = 3 ---Опять же ХЗ

inv_name = dolg_outfit_name ---Название костюма
inv_name_short = dolg_outfit_name ---Название костюма(короткое)
description = dolg_outfit_description ---Описание(можно и не прописывать их в string_table,можно писать через кавычки.Ставьте "" и пишите описание костюма.Например: "Костюм долга,хорошая защита." Без кавычек пробелы не буду засчитыватся)
inv_weight = 7.0 ---ВЕС
inv_grid_width = 2 -=Эти четыре строки отвечают за иконку в инвентаре,не одетого костюма
inv_grid_height = 3 -=
inv_grid_x = 12 -=
inv_grid_y = 16 -=
full_icon_name = npc_icon_dolg_outfit ---Название иконки

cost = 15000 ---Цена
slot = 6 ---Слот для костюма.НЕ ТРОГАТЬ!
full_scale_icon = 8,11 ---иконка сталкера в костюме в полный рост
nightvision_sect = effector_nightvision_good ---Прибор ночного видения

immunities_sect = sect_dolg_outfit_immunities ---Название иммунитета,для нового костюма введите свой вместо dolg_outfit

ЭТО ЗАЩИТА КОТОРУЮ ДАЕТ КОСТЮМ

burn_protection = 0.1 = Ожог
strike_protection = 0.1 = Удар
shock_protection = 0.1 = Электрошок
wound_protection = 0.1 = Разрыв
radiation_protection = 0.1 = Радиация
telepatic_protection = 0.1 = Телепатия
chemical_burn_protection = 0.1 = Хим.ожог
explosion_protection = 0.1 = Взрыв
fire_wound_protection = 0.1 = Пулестойкость

additional_inventory_weight = 13 ---Дополнительный переносимый вес
additional_inventory_weight2 = 13 ---Дополнительный переносимый вес второй,но ставьте как на первом

bones_koeff_protection = kombez_antigas_damage ---ХЗ,но если делать костюм со средней защитой ставьте такой.Научу ниже

[sect_dolg_outfit_immunities]
burn_immunity = 0.03 ---коэффициенты иммунитета самого костюма(чем меньше значение,тем медленнее костюм портиться.Если на все поставить 0.0 костюм не будет портиться никогда)
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

Обещал рассказать что такое Бонес коэфф протекшн
bones_koeff_protection = kombez_antigas_damage
Оно отвечает за то,как сильно будет защищать костюм.Если например поставить вместо: kombez_antigas_damage ,вот это: kurtka_mask_damage,то сколько бы ты не ставил защиту,она будет слабой.А если поставить exo_helmet_damage то будет высокая защита.Поставите очень много защиты,вы будете бессмертны,и костюм будет защищать вас очень хорошо(то есть,бывает например,оденешь экзоскелет,и иногда пули попадают и наносят совсем крохотный урон.Вот,если поставить экзо хелмет то такие маленьки уроны будут чаще,а если поставить куртка маск то такие случаи будут редкими.)

Все,можете приступать к созданию ваших костюмов,при это зная,в каком документе лежат новые костюмы.

Читайте также: