» TeamX (Архив Форума)«


Форум TeamX » Тех. поддержка » Исследование поврежедений (Информация к размышлению)

Переход по темам
<< Пред. След. >>
Единственная страница этой темы

 
SoNOfBatch
BANNED

Регистрация: Авг. 2005

Всего: 74 сообщения

Этот топик предназначен для людей интересующихся внутренней механикой FO, и непосредственно занимающихся исследованиями.

Размышляя над тем почему в и-нэте нет ни одной нормальной формулы для расчета повреждений, я пришел к выводу что чем искать несчастные три строчки в маразме остающемся после декомпила движка(или донимать тех кто пытается это делать), куда проще вывести формулу аналитическим методом, что в условиях модифицированного GURPS'a намного проще чем скажем в D&D последних редакций с ее массой подводных камней(правда там расчеты весьма прозрачны, а правила досконально описаны).
Итак, всем сомневающимся предлагаю даже не читать мои выводы а сразу сделать следующее:
Находим несколько сэйвов в средине-конце игры(естевственно до отплытия в Enclave), берем RR BB gun LE(!обязательно!) и еще несколько стволов(стрелковых или энэрго - не важно, лишь бы одиночными били) + можно взять melee.
Теперь хватаем кого-нибудь из компаньонов-людей(обязательно людей) и набор armor'ов(в идеале - всех типов).
Отправляемся в пустыню и начинаем расстреливать и избивать верных спутников, не забывая записывать результаты успешных попаданий(единственное - нужно отделять критикалы от простых hit'ов)...

Теперь к каким выводам пришел я после сорока минутного расстрела товарищей с разных дистанций; в разное время суток; имея различный скилл; одетых в разнообразную броню; и т.д:
Повреждения НЕ зависят от: дистанции, скилла, времени суток, а также как цель ориентирована относительно dud'a.
Повреждения ЗАВИСЯТ от: оружия, патронов, DR, DT, perk'ов и trait'ов dud'a, и естевственно от выпадения критикала.
Конечная формула(т.е. та при подставлении в которую соответсвующих значений диапозон результатов не противоречит результатам полученным на практике[для RR BB gun'a и вовсе идентичен]):
Dmg=[(weapon_dmg * ammo_mod) * ({100 - DR - ammo_DR)/100} - DT] * [(100 + perk/trait_mod)/100] * crit_multiplier
где 0.1<{(100 - DR - ammo_DR)/100}<1 ---- =1 при критикале с ignore_armor.

-----
Love is what makes cactus grow. Love is what makes brahmin moo. Love is screwing. Its screwing your life. I hate love. I love hate. And if Master hate us - we'll be all right.
(c)CoA

Отправлено: 10:05 - 24 Сент., 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

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

Отправлено: 14:46 - 24 Сент., 2005
SoNOfBatch
BANNED

Регистрация: Авг. 2005

Всего: 74 сообщения

Цитата:

вывести сколь нибудь точную формулу на основе статистических наблюдений довольно сложно



Несомненно, но учитывая детальное описание переменных, а также элементарную логику - данный случай весьма прост.

Я непосредственно проверил(со всеми типами б/к):
Gauss rifle/pistol; RR BB gun LE; H&K_G11/E; Sniper rifle; .223 pistol; Hunting rifle; Assault rifle(ak-112); Desert eagle/magnum .44; 10mm SMG/Pistol; + всё melee. Конечно возможно для кокого-то ствола BIS сделала отдельную формулу или добавила определенный нюанс, но что-то я в этом сомневаюсь...
Да - не проверял дробовики, возможно dmg у них считается как у бъющего очередями - хотя я наверняка ошибаюсь.

Edit:
Я был прав в предположении своей неправоты.
Pankor Jackhammer; H&K_CAWS; shotgun/combat/sawed-off - проверены, расчет идентичен оружию стреляющему пулями.
Кроме того проверены: P90; Grease gun; 9mm mauser; Needler pistol; 14mm pistol.

-----
Love is what makes cactus grow. Love is what makes brahmin moo. Love is screwing. Its screwing your life. I hate love. I love hate. And if Master hate us - we'll be all right.
(c)CoA

Отправлено: 15:24 - 24 Сент., 2005 | ИСПРАВЛЕНО: SoNOfBatch - 4:47 - 25 Сент., 2005
Anchorite
Пользователь

Откуда: Не здесь
Регистрация: Янв. 2003

Всего: 283 сообщения

Я тут глянул функцию compute_damage_.

Довольно мрачная вещь. Учитывает уровень сложности боя, боеприпасы, тип повреждений , ряд перков и трейтов (типа Living Anatomy и т.д.)

Отправлено: 22:25 - 26 Сент., 2005
SoNOfBatch
BANNED

Регистрация: Авг. 2005

Всего: 74 сообщения

Да, упустил я кое-что...
Значит так: мои исследования проходили на уровне сложности боя - нормал. Плюс я не учел perk'ов изменяющих повреждения арифметически, с учетом этих ошибок формула будет такой:

Dmg=[(weapon_dmg * ammo_mod + perk_mod) * ({100 - DR - ammo_DR)/100} - DT] * [(100 + perk/trait_mod)/100] * crit_multiplier * difficulty_mod
где 0.1<{(100 - DR - ammo_DR)/100}<1 ---- =1 при критикале с ignore_armor.

либо:

Dmg=[((weapon_dmg + perk_mod) * ammo_mod) * ({100 - DR - ammo_DR)/100} - DT] * [(100 + perk/trait_mod)/100] * crit_multiplier * difficulty_mod
где 0.1<{(100 - DR - ammo_DR)/100}<1 ---- =1 при критикале с ignore_armor.

Точнее скажу после теста.

-----
Love is what makes cactus grow. Love is what makes brahmin moo. Love is screwing. Its screwing your life. I hate love. I love hate. And if Master hate us - we'll be all right.
(c)CoA

Отправлено: 8:20 - 27 Сент., 2005
Bondar
Пользователь

Регистрация: Апр. 2007

Всего: 2 сообщения

Доброго времени суток!
Извините за подъем старой темы, но это самое актуальное из того, что я нашел здесь.
Я всего лишь хочу узнать точный алгоритм расчета повреждений (для всех типов атак), а также все вероятности критических повреждений.

Цитата:
Quote: from Anchorite on 22:25 - 26 Сент., 2005
Я тут глянул функцию compute_damage_.

Довольно мрачная вещь. Учитывает уровень сложности боя, боеприпасы, тип повреждений , ряд перков и трейтов (типа Living Anatomy и т.д.)




Как мне «глянуть» на функцию compute_damage_?
Навскидку в exe не нашел. Использовал ida.

Отправлено: 12:12 - 28 Апр., 2007
Anchorite
Пользователь

Откуда: Не здесь
Регистрация: Янв. 2003

Всего: 283 сообщения

Цитата:


Как мне «глянуть» на функцию compute_damage_?
Навскидку в exe не нашел. Использовал ida.



А ты думал что там все прямо так и будет расписано?
Я вообще-то mapper2.exe копал.
В нем есть остатки отладочной инфы и код не оптимизирован местами.
Где-то на teamx.ru лежит скрипт для ИДЫ который переименовывает функции.
Поищи в файлах.

Отправлено: 13:26 - 28 Апр., 2007
 

Переход по темам
<< Пред. След. >>
Единственная страница этой темы


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com