Это популярное сообщение. frags 30 Опубликовано 24 Декабря 2008 Это популярное сообщение. Поделиться Опубликовано 24 Декабря 2008 Я провел детальное исследование влияние параметров пули и броников при стрельбе по неписям. Ссылка на написанную мной программу для расчета повреждений по нижеописанному алгоритму v2: http://ifolder.ru/9830240 Добавлено поле которое показывает необходимое количество пуль для убийства неписи. Теперь программа сохранаяет последние введенные значения после выхода. Участвуют след. параметры: 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. Теперь о гранатах. У гранат два поражающих фактора - взрывная волна и осколки. 1. Взрывная волна описана двумя параметрами: blast - кэффициент поражения blast_r - радиус поражения в метрах Максимальный урон здоровью в процентах от ударной волны определяется по формуле (blast - explosion_protection) * 100, где explosion_protection - параметр костюма. Если получилось отрицательное число, то урона нет. Наносимый урон падает пропорционально расстоянию от ГГ до гранаты в пределах blast_r. Неписи никак своим костюмом не защищены от гранат и для них урон равен blast * 100. 2. Разлет осколков описан 3мя параметрами: frags - количество осколков frags_r - радиус разлета frag_hit - коэффициент поражения каждого осколка Осколки наносят поражение в пределах frags_r как небронебойная пуля с k_hit * hit_power равным frag_hit (если конечно осколок попал в непись или ГГ). Теперь охота на зверушек. Все зверушки изначально имеют 100% здоровье. Уязвимость зверушек определяется такими параметрами: 1. hit_power - мощность ствола из файлов параметров стволов 2. k_hit - мощность пули из weapons.ltx для каждого типа патронов 3. Секция указанная в параметре damage из m_*.ltx файлов для зверушек (m_dog.ltx, m_boar.ltx и т.д.) с набором параметров bip01_* (bip01_spine, bip01_head) - определяет прочность частей тела (первый параметр). 4. fire_wound_immunity - определяет общую уязвимость зверушки Формула урона для зверушек: hit_power * k_hit * bip01_ * fire_wound_immunity * 100% 4 4 Ссылка на комментарий
garand2k 5 Опубликовано 24 Декабря 2008 Поделиться Опубликовано 24 Декабря 2008 Интересно,крайне интересно... Лови плюсик за работу. Одно дополнение-при расчете еще учитывается иммунитет из м_сталкера Мой Full Realism Mod для STCS. Ссылка на комментарий
frags 30 Опубликовано 24 Декабря 2008 Автор Поделиться Опубликовано 24 Декабря 2008 Интересно,крайне интересно... Лови плюсик за работу. Одно дополнение-при расчете еще учитывается иммунитет из м_сталкера Это тот который fire_wound_immunity? Сегодня испытаю и его и отпишусь. Ссылка на комментарий
fritz 0 Опубликовано 24 Декабря 2008 Поделиться Опубликовано 24 Декабря 2008 Я провел детальное исследование влияние параметров пули и броников при стрельбе по неписям. И еще о k_ap. Было замечено странное поведение алгоритма расчета урона при значении этого коэффициента выше 0.75. Пуля наносит как бы двойное повреждение. Одно как бронибойная пробивая защиту, и другое - как не бронибойная пуля. В результате совокупный урон неписю может составляеть больше чем 2 * hit_power * k_hit * 100. В своё время (очень давно) я плотно общался с Прохоровым из ГСЦ (если в курсе, кто это), на предмет баллистики БП и т.д., так вот на основании тех дел могу предположить, что такой эффект получается от пуль типа 9х19 ПБП 7н21 (так сказать бронебойно-экспасивных), т.е. пробите брони и снятие "рубашки" с сердечника уже в теле жертвы. Ссылка на комментарий
St.Ser 0 Опубликовано 24 Декабря 2008 Поделиться Опубликовано 24 Декабря 2008 Вопрос тогда автору данной темы. 2. Если пуля не бронебойная (k_ap = 0) то урон здоровью вычисляется как: hit_power * k_hit * hit_fraction * Sd * 100 Полученное число вычитается из здоровья неписи и при достижении <=0 - непись убита. Давай посчитаем для примера убойность пистолета форт.по броне долга в грудь. 0.669Х1Х1Х1Х100=66.9 ед а здоровья у долговца 100 и что получается?? Что одним выстрелом из пистолета в защищенное от бронебойной пули АК убирается 66% здоровья?? Ссылка на комментарий
frags 30 Опубликовано 24 Декабря 2008 Автор Поделиться Опубликовано 24 Декабря 2008 Вопрос тогда автору данной темы. 2. Если пуля не бронебойная (k_ap = 0) то урон здоровью вычисляется как: hit_power * k_hit * hit_fraction * Sd * 100 Полученное число вычитается из здоровья неписи и при достижении <=0 - непись убита. Давай посчитаем для примера убойность пистолета форт.по броне долга в грудь. 0.669Х1Х1Х1Х100=66.9 ед а здоровья у долговца 100 и что получается?? Что одним выстрелом из пистолета в защищенное от бронебойной пули АК убирается 66% здоровья?? Не правильно. hit_fraction у брони не может быть 1, единица это если только голяком. А так да, 2 выстрела из форта по голому договцу - и труба. Ссылка на комментарий
St.Ser 0 Опубликовано 24 Декабря 2008 Поделиться Опубликовано 24 Декабря 2008 Давай посчитаем для примера убойность пистолета форт.по броне долга в грудь.(изменено) 0.669Х1Х0.2Х1Х100=13.38 ед Но по логике вещей пуля из пистолета форт попав в грудь вообще не должна отнимать здоровье.. Ссылка на комментарий
frags 30 Опубликовано 24 Декабря 2008 Автор Поделиться Опубликовано 24 Декабря 2008 В своё время (очень давно) я плотно общался с Прохоровым из ГСЦ (если в курсе, кто это), на предмет баллистики БП и т.д., так вот на основании тех дел могу предположить, что такой эффект получается от пуль типа 9х19 ПБП 7н21 (так сказать бронебойно-экспасивных), т.е. пробите брони и снятие "рубашки" с сердечника уже в теле жертвы. Да нет, это скорее всего глюк в игре. Получается, например, при k_ap = 0.75 непись получает 70% урона, а при k_ap = 0.76 - безуслованя смерть. К тому же этот эффект пропадает, например, при определенных сочетаниях hit_power * k_hit >= 1 и k_ap > 2.2 ЗЫ. Алгоритм расчета обновлен с связи с дальнейшими исследованиями. Давай посчитаем для примера убойность пистолета форт.по броне долга в грудь.(изменено) 0.669Х1Х0.2Х1Х100=13.38 ед Но по логике вещей пуля из пистолета форт попав в грудь вообще не должна отнимать здоровье.. Считай, что здоровье отнимается от удара пули через непробитый броник. Ссылка на комментарий
frags 30 Опубликовано 25 Декабря 2008 Автор Поделиться Опубликовано 25 Декабря 2008 Написал программку для расчета повреждений по описанному алгориму. Ссылка в шапке. Ссылка на комментарий
garand2k 5 Опубликовано 25 Декабря 2008 Поделиться Опубликовано 25 Декабря 2008 Написал программку для расчета повреждений по описанному алгориму. Ссылка в шапке. Ты монстр)) Похоже что параметр k_pierce не используется вообще (наверное пришел из ТЧ). За пробиваемость препятствий отвечает также k_ap. Сам только что проверил, это правда. Мой Full Realism Mod для STCS. Ссылка на комментарий
frags 30 Опубликовано 25 Декабря 2008 Автор Поделиться Опубликовано 25 Декабря 2008 Увы не получается поставить значение меньше единицы в любом поле ни запятая ни ноль не ставятся так и выглядит, но после нуля запятая не ставится и все другие цифры не лезут Так у тебя разделитель наверное точка, а не запятая. А если первая цифра ноль, то да, другие цифры не набить, потому как код ожидает разделитель. ЗЫ. Пишу сюда, так как система говорит, что твой личный ящик полон и не дает отправить сообщение - почисть ящик. Ссылка на комментарий
garand2k 5 Опубликовано 25 Декабря 2008 Поделиться Опубликовано 25 Декабря 2008 Скомпилишь обновленную версию программы? Надо поправить то, что k_ap делится на 2 при расчете того, пробила ли пуля защиту. И добавить переменную "stalker_immunities". P.S.Такой вопрос. У меня возникла проблема с выдачей тайников в моде. Скрипты treasure_manager и bind_faction не изменял. Содержимое нычек не правил. При покупке нычки пишется, что деньги сняли, но ни сам тайник, ни отметка на карте не дается. В чем может быть проблема? Мой Full Realism Mod для STCS. Ссылка на комментарий
frags 30 Опубликовано 25 Декабря 2008 Автор Поделиться Опубликовано 25 Декабря 2008 Скомпилишь обновленную версию программы? Надо поправить то, что k_ap делится на 2 при расчете того, пробила ли пуля защиту. И добавить переменную "stalker_immunities". P.S.Такой вопрос. У меня возникла проблема с выдачей тайников в моде. Скрипты treasure_manager и bind_faction не изменял. Содержимое нычек не правил. При покупке нычки пишется, что деньги сняли, но ни сам тайник, ни отметка на карте не дается. В чем может быть проблема? 1. k_ap НЕ надо делить на 2. Программа должна работать согласно описанного в шапке алгоритма. 2. Хорошо, посмотрю. Ссылка на комментарий
garand2k 5 Опубликовано 25 Декабря 2008 Поделиться Опубликовано 25 Декабря 2008 1. k_ap НЕ надо делить на 2. Программа должна работать согласно описанного в шапке алгоритма. 2. Хорошо, посмотрю. Я то понимаю, что на 2 делить не надо. Но в первой версии алгоритма было деление 2, возможно опечатка. А в программе алгоритм все-таки с ошибкой(ошибками). Пример. Ввожу такие параметры: 1 -hit_power 1 -k_hit 0.7 -k_ap 0.4 -hit_fraction 0.4 - Bd 1 -Sd и выдает повреждение 42,9%. Пуля пробила броню. Если считать по варианту hit_fraction * Sd * 100 , то получится 40%. Если по второму, то будет 100 * F. Тогда получается, что F = 0,429 ; но откуда это число? по формуле F = (k_ap-Bd)/k_ap оно должно быть равно ... черт! Все верно. Сдаюсь. Мой Full Realism Mod для STCS. Ссылка на комментарий
frags 30 Опубликовано 25 Декабря 2008 Автор Поделиться Опубликовано 25 Декабря 2008 Я то понимаю, что на 2 делить не надо. Но в первой версии алгоритма было деление 2, возможно опечатка. Да, делить не надо. То была моя ошибка при попытке вывести формулы эмпирическим путем. То что сейчас описано и в программе вроде как правильно, потому как совпадает с практическими результатами. Ссылка на комментарий
frags 30 Опубликовано 26 Декабря 2008 Автор Поделиться Опубликовано 26 Декабря 2008 Баланс это хорошо. Но нужно и геймплей разнообразить. Все-таки глобальный мод. Хотя конечно, теперь буду одними конфигами заниматься. Кстати, фикс2 выпустил. P.S. Такая еще штука. Нычки выдаются, но не отмечаются как выданные. Посмотри как сделана функция function CTreasure:give_treasure в treasure_manager.script в оригинальном файле. У тебя кажись оператор self.active = true не на своем месте. Добавил описания стрельбы неписей по ГГ и воздействия гранат на ГГ и неписей. Ссылка на комментарий
Sp@wN 0 Опубликовано 27 Декабря 2008 Поделиться Опубликовано 27 Декабря 2008 за что отвечает "hit_impulse"в конфигах оружия? если руки золотые, то не важно от куда они растут не когда не бойся делать того что не умеешь, помни: Титаник строили проффесионалы, а Ковчег - любитель=) Ссылка на комментарий
frags 30 Опубликовано 27 Декабря 2008 Автор Поделиться Опубликовано 27 Декабря 2008 за что отвечает "hit_impulse"в конфигах оружия? и все красиво игнорят мой вопрос Ну че ты расшумелся? Я только вернулся. Импульсные дела отвечают за то, насколько сильно отлетит тело после того как умрет. Ссылка на комментарий
St.Ser 0 Опубликовано 28 Декабря 2008 Поделиться Опубликовано 28 Декабря 2008 Рейтинг у него мал для плюсиков =) когда исправишь программку свою. Как запятые не ставились так и не ставятся Ссылка на комментарий
frags 30 Опубликовано 28 Декабря 2008 Автор Поделиться Опубликовано 28 Декабря 2008 Рейтинг у него мал для плюсиков =) когда исправишь программку свою. Как запятые не ставились так и не ставятся Точку попробуй - может у тебя разделитель - точка. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти