|
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
|
|
|
|