Лучшая модификация месяца
Всего ответов: 202
Главная » Статьи » Сталкер Зов Припяти » Уроки по модостроению

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

Участвуют след. параметры:

1. hit_power - мощность ствола из файлов параметров стволов
2. k_hit - мощность пули из weapons.ltx для каждого типа патронов
3. k_ap - способность пули пробивать защиту (куртки, броники и т.п)
4. Секции [body_damage_*] и [head_damage_*] из damages.ltx с набором
параметров bip01_* - определяет прочность защиты на каждой части тела (второй параметр).
Далее эти параметры я обозначу как Bd и Hd.
5. hit_fraction из damages.ltx для каждого типа защиты определяет прочность защиты.
Надо упомянуть что параметры броников неписей определяются из файла damages.ltx,
а не из outfit.ltx (этот файл чисто для ГГ).
6. Секция [stalker_damage] из m_stalker.ltx с набором параметров bip01_* - определяет фактор
уменьшения здоровья при попадании в соответсвующую часть тела (первый параметр).
Далее этот параметр я обозначу как Sd.

Далее я опишу алгоритм по которому происходит вычисление повреждений.
Алгоритм был получен опытным путем при стрельбе по неписи в упор и не претендует на истину в последней инстанции.

Контроль количества повреждений производился через hit_callback функцию скрипта.

1. Здоровье неписи лежит в диапазоне от 0 до 100%.
2. Если пуля не бронебойная (k_ap = 0) то урон здоровью вычисляется как:

hit_power * k_hit * hit_fraction * Sd * 100

Полученное число вычитается из здоровья неписи и при достижении <=0 - непись убита.
Т.е. учитывается только фактор защиты в целом без учета степени защиты на разных частях тела.

3. Если пуля бронебойная (k_ap > 0), то ее фактор повреждения зависит от того пробила пуля защиту или нет.
Если пуля не пробила защиту ( k_ap <= Bd(Hd) ) то повреждения считаются как в п.2.
Если пуля пробила защиту ( k_ap > Bd(Hd) ) то повреждения считаются как:
Вычисляется 2 числа и берется большее:

hit_fraction * Sd * 100
и
hit_power * k_hit * F * Sd * 100 где F = (k_ap-Bd)/k_ap или F = (k_ap-Hd)/k_ap

Интересно что урон здоровью в случае пробития брони бронебойной пулей никак не меньше чем фактор ослабления пули броней (hit_fraction * Sd * 100).

И еще о k_ap. Было замечено странное поведение алгоритма расчета урона при значении этого коэффициента выше 0.75.

Пуля наносит как бы двойное повреждение. Одно как бронибойная пробивая защиту, и другое - как не бронибойная пуля.

В результате совокупный урон неписю может составляеть больше чем 2 * hit_power * k_hit * 100.

Скорее всего глюк в игре. Получается, например, при k_ap = 0.75 непись получает 70% урона, а при k_ap = 0.76 - безуслованя смерть.
К тому же этот эффект пропадает, например, при определенных сочетаниях hit_power * k_hit >= 1 и k_ap > 2.2

Так что лучше k_ap ограничить максимум 0.75

Теперь что касаемо пробивания препятствий:
Похоже что параметр k_pierce не используется вообще (наверное пришел из ТЧ). За пробиваемость препятствий отвечает также k_ap.
Вот некоторые его значения:

>0.34 - пробивает тонкие фанерки (двери и т.п.)
>1.0 - пробивает листовой металл
>1.5 - пробивает деревянные брусья и стены деревянных домов

Ну а гаусска с ее k_ap=15 шьет все.

Ты-ы-ыкс, вот мы добрались и до стрельбы неписей по ГГ. Алгоритм тот же самый.
В качестве hit_fraction выступает hit_fraction_actor из outfit.ltx для каждого костюмчика. Повреждения по частям тела расписаны опять же в

damages.ltx в секциях [actor_damage_N]. Ссылки на секции повреждений в параметрах bones_koeff_protection из outfit.ltx для каждого костюма.

Параметр fire_wound_protection не используется.

В инвентаре пулестойкость костюма отображается на основе второго значения из bip01_spine параметра из соответсвующей секции в damages.ltx.


Категория: Уроки по модостроению | Добавил: Блэк☭ (05.12.2015)
Просмотров: 1629 | Теги: сталкер, уроки по модостроению, зов Припяти, расчет, STALKER, по, NPC, по стрельбе, повреждений, call of Pripyat | Рейтинг: 0.0/0
Всего комментариев: 0
Внимание! Прочтите для ознакомления!
Правила написания коментария: В комментариях запрещено - Писать сообщение прописными буквами (Caps Lock). Рекламировать какие-либо сайты. Использовать более двух смайлов в одном комментарии. Оскорблять пользователей сайта. Выражаться некультурными словами. Комментарии, в которых содержатся предложения по обмену баннерами, лишние вопросы, или просто не несущие никакого смысла будут незамедлительно удаляться, а пользователи, написавшие их, будут строго наказаны.

avatar
Приветствую, Гость!

-Ну что,Бродяга?
Мне тебе мозги парить,как я со всеми новичками делаю,или с тобой как с опытным сталкером обращатся?


-Давай как с новичком..

-Давай как с опытным!!!
Рейтинг@Mail.ru
Онлайн всего: 1
Бродяг: 1
Сталкеров: 0

[ Сегодняшние посетители ]