WORLD OF WARCRAFT

Тема: откуда берется dps  (Прочитано 24804 раз)

0 Пользователей и 1 Гость просматривают эту тему.

v1z

  • Завсегдатай
  • **
  • Сообщений: 811

  • Варкрафт: +
    • Имя: Зулор
    • Класс: Охотник
    • Сервер: Гордунни
откуда берется dps
« : 06 Июня, 2012, 20:14:36 »
  • Рейтинг:4 (+4 | 0)


собсно формулы расчета дпс (предельная погрешность 0,15%), мб кому-то пригодятся))

для не дуалов
DPS = CF * AF * APS * (WD + BD)
CF - коэффициент крита ( CF = 1 + crit_chance * crit_damage / 10 000 )

AF - коэффициент главного аттрибута ( AF = (main_atr / 100) + 1 )

APS - атак в секунду ( APS = base_wep_aps * (1 + wep_ias / 100) * (1 + gear_ias / 100 ) )

WD - dmg оружия ( WD = avg_wep_dmg )

BD - dmg шмота ( BD = avg_gear_dmg )


для дуалов
DPS = CF * AF * APS * DWB * (WD + 2 * BD)
CF - коэффициент крита ( CF = 1 + crit_chance * crit_damage / 10 000 )

AF - коэффициент главного аттрибута ( AF = (main_atr / 100) + 1 )

APS - атак в секунду ( APS = aps 1 * aps 2 / (aps1 + aps2) )
( aps1(2) = base_wep1(2) * (1 + wep1(2)_ias / 100) )

DWB - бонус дуал атаки ( DWB = (1.15 + gear_ias / 100) )

WD - dmg оружия ( WD = avg_wep1_dmg + avg_wep2_dmg )

BD - dmg шмота ( BD = avg_gear_dmg )


crit_chance - величина шанса критического удара в % (есть в окне details вашего персонажа) (пример - 17)

crit_damage - величина увеличения урона от критического удара в % (есть в окне details вашего персонажа) (пример  - 64)

base_wep_aps - величина базовой скорости атаки оружия (зависит от типа оружия)

 2hand Mace    0,9
 Polearm    0,95
 2hand Axe    1
 Crossbow    1,1
 Staff    1
 2hand Mighty weapon    1
 2hand Sword    1,1
 Daibo    1,1
 1hand Mace    1,2
  Spear    1,2
 1hand Axe    1,3
 1hand Mighty weapon    1,3
 1hand Sword    1,4
 Bow    1,4
 Wand    1,4
 Ceremonial knife    1,4
 Fist weapon    1,4
 Dagger    1,5
 Hand crossbow    1,6

wep_ias - величина увеличения скорости атаки в % которая находится только на оружии (пример - 3)

gear_ias - величина увеличения скорости атаки в % (считается в ручную на всех вещах(исключая оружие), как сумма всех аффиксов Increase Attack Speed) (пример - 26)

avg_gear_dmg - величина среднего урона шмота (вычисляется как сумма нижней и верхней границы урона поделенная на 2 (считается вручную на всех вещах(!не оружии) имеющих аффикс Minimum Damage +x или Damage + x-y или Maximum Damage +x)) (пример - 12  ( (8+16) / 2  где 8 это Minimum damage +6 Damage + 2-6, а 16 это Maximum damage +10)

avg_wep_dmg - величина среднего урона оружия (вычисляется как сумма нижней и верхней границы урона поделенная на 2 (смотрится на самом оружии, цифры серым шрифтом)) (пример - 644,5  ( (405+884) /2 )

main_atr - величина значения главного аттрибута Strength/Dexterity/Intelligence (смотрится в окне details вашего персонажа) (пример - 1464)

« Последнее редактирование: 22 Июня, 2012, 14:57:13 by v1z »

v1z

  • Завсегдатай
  • **
  • Сообщений: 811

  • Варкрафт: +
    • Имя: Зулор
    • Класс: Охотник
    • Сервер: Гордунни
Re: откуда берется dps
« Ответ #1 : 06 Июня, 2012, 20:14:51 »
  • Рейтинг:2 (+2 | 0)
данные формулы позволяют вычислить конечный дпс (БЕЗ УЧЕТА ПАССИВНЫХ СПОСОБНОСТЕЙ)

для примера мой барб под спойлером. скрин статов и дпса посчитанного игрой. формулы дают 15 547,2313 дпса, разница как видите ничтожна, единственная недоработка - на скрине не видно мин и макс бонус дмг, напишу так - мин=24 макс=16
(показать/скрыть)

всегда открыт к критике, если вы найдете неточность/погрешность/ошибку в моих расчетах - внимательно выслушаю
« Последнее редактирование: 17 Июня, 2012, 13:08:38 by v1z »

Megerko

  • Завсегдатай
  • **
  • Сообщений: 375

  • Варкрафт: +
    • Имя: Megerka
    • Класс: Warlock
    • Сервер: Black Scar
Re: откуда берется dps
« Ответ #2 : 07 Июня, 2012, 12:59:03 »
  • Рейтинг:0 (+0 | 0)
предложения - это всегда пожалуйста.
например такое :
зопели ка ты нам калькулятор на гугледокс, чтобы сравнивал две вещи и говорил что лучше,
с учетом уже одетых статов... а то я хочу поднять барбе ДПС, 10к меня не устраивают, а тут ещ как раз пришло время (читай бобла накопил) апгредйить руки, амулет, и прочие части тела... так вот, что лучше всего брать чтобы танкодпс подскочил ?

зы
отбой https://docs.google.com/spreadsheet/ccc?key=0Algw5XbCAjZSdDMxNXhDUnQ0RlpZRGNuVG1HZmNRQ3c
« Последнее редактирование: 07 Июня, 2012, 13:09:44 by Megerko »

v1z

  • Завсегдатай
  • **
  • Сообщений: 811

  • Варкрафт: +
    • Имя: Зулор
    • Класс: Охотник
    • Сервер: Гордунни
Re: откуда берется dps
« Ответ #3 : 07 Июня, 2012, 13:12:55 »
  • Рейтинг:0 (+0 | 0)
зопели ка ты нам калькулятор на гугледокс

щито это?

калькулятор в виде ввода 3раз характеристик - 1)эквип 2) первая шмотка 3)вторая шмотка - вывод результата что даст бОльший конечный дпс? в принципе осуществимо, но моих познаний в этой сфере хватит думаю только на простенький экзешник написанный на паскале уровня 11 класса

пока писал, ты уже линканул

shva

  • Завсегдатай
  • **
  • Сообщений: 396
Re: откуда берется dps
« Ответ #4 : 09 Июня, 2012, 00:51:07 »
  • Рейтинг:0 (+0 | 0)
это просто тот "ДПС" коотрый пишется в чар-листе.
к реальному ДПС он никакого отношения не имеет.

т.е. елси у вас в чар-листе написано 10к дпс и у вас скорост атаки по чар-листу 1 удар в секунду, то елси вы
сделаете 3 френзи + 1 молоток + 1 ревенж, то вы сделаете это  гораздо быстрее, чем за 5 сек и нанесёте гораздо больше чем 50к дмг.
« Последнее редактирование: 09 Июня, 2012, 00:53:09 by shva »

v1z

  • Завсегдатай
  • **
  • Сообщений: 811

  • Варкрафт: +
    • Имя: Зулор
    • Класс: Охотник
    • Сервер: Гордунни
Re: откуда берется dps
« Ответ #5 : 09 Июня, 2012, 10:05:44 »
  • Рейтинг:0 (+0 | 0)
как бы и френзи и молоток и ревенж наносят апнутный выше 100% дмг оружия, достаточно навести на скилл и прочитать тултип...

причем тут реальный дпс вообще? чем больше дпс в чар листе тем больше реальный, не? а за копетанство спасибо канеш

v1z

  • Завсегдатай
  • **
  • Сообщений: 811

  • Варкрафт: +
    • Имя: Зулор
    • Класс: Охотник
    • Сервер: Гордунни
Re: откуда берется dps
« Ответ #6 : 14 Июня, 2012, 23:22:48 »
  • Рейтинг:0 (+0 | 0)
добавил расчет при использовании дуал веапонов

shva

  • Завсегдатай
  • **
  • Сообщений: 396
Re: откуда берется dps
« Ответ #7 : 19 Июня, 2012, 17:03:52 »
  • Рейтинг:0 (+0 | 0)
как бы и френзи и молоток и ревенж наносят апнутный выше 100% дмг оружия, достаточно навести на скилл и прочитать тултип...

причем тут реальный дпс вообще? чем больше дпс в чар листе тем больше реальный, не? а за копетанство спасибо канеш

если бы у абилок не было кд и рага была бесконечной, вы бы были правы.
однако...
как вы считаете, чта даст больше дамага : медленный дрын, бьюший больно или быстрый комарино-дамагающий ножик в такой схеме:
Чарж - френзи - френзи - (опа, ревенж прокнул) - ревенж- френзи - френзи - (опа, раги набралось) Сейсмик -- (тут у дрына время закончилось, а ножик, так как он быстрее, сделал ещё 2 удара) - френзи - френзи

Реальный ДПС тут при том, что оружка с МЕНЬШИМ показателем ДПС может нанести БОЛЬШЕ дамага реального.
мобы то не от цифирки в чар-листе умирают
« Последнее редактирование: 19 Июня, 2012, 17:06:17 by shva »

v1z

  • Завсегдатай
  • **
  • Сообщений: 811

  • Варкрафт: +
    • Имя: Зулор
    • Класс: Охотник
    • Сервер: Гордунни
Re: откуда берется dps
« Ответ #8 : 19 Июня, 2012, 17:15:06 »
  • Рейтинг:0 (+0 | 0)
"тут у дрына закончилось время" - это что?
если это значит что дпс цикл дрына на этом кончился, а нож нанес еще 2 удара, то вспоминаем что любая из перечисленных абилок скалируется от вепон дамага(который у дрына выше) и соответственно те +2 удара ножом лишь восполнят разницу скалирования, но никак не превзойдут... вообще ОЧЕНЬ глупо рассуждать о цифрах не приведя ни одной цифры...

shva

  • Завсегдатай
  • **
  • Сообщений: 396
Re: откуда берется dps
« Ответ #9 : 19 Июня, 2012, 17:27:02 »
  • Рейтинг:0 (+0 | 0)
"тут у дрына закончилось время" - это что?
именн то,как вы это поняли

Цитировать
если это значит что дпс цикл дрына на этом кончился, а нож нанес еще 2 удара, то вспоминаем что любая из перечисленных абилок скалируется от вепон дамага(который у дрына выше) и соответственно те +2 удара ножом лишь восполнят разницу скалирования, но никак не превзойдут... вообще ОЧЕНЬ глупо рассуждать о цифрах не приведя ни одной цифры...
восполнит или нет -- это уже зависит от конкретных скоростей и дамагов, суть в том, что эти две цифры будут  различаться

но это всё лирика, ладно, готов признать что формулы в заглавии дествительно нужны и важны :)
даже спалю свой Scilab скрипт, которым сам считаю

wep_min_dmg = 153; // мин дамаг с тултипа оружки
wep_max_dmg = 325; // макс дамаг с тултипа оружки
add_min_dmg = 0 + 0// устаревшая х-ка, ничё менять не надо
add_max_dmg = 0 + 0// устаревшая х-ка, ничё менять не надо
wep_aps = 1.4; // скорост с тултипа оружки
wep_ias = 0; // устаревшая х-ка, ничего менять не надо
wep_str = 74; // стр (аги, инт) на оружке
wep_dmg_mult = 0; // дамаг мультиплааер на ОФФХЕНД оружке!!! (на саму оружку он уже посчитан в wep_min_dmg/wep_max_dmg)

crit_chanse = 7;
crit_val = 50

armor_min_dmg = 7; // мин дамаг с армора (кольца, неки)
armor_max_dmg = 14; // макс дамаг оттуда же
armor_ias = 0; // иас с армора (ринг, нек, руки ) в % (26 для 26%)
armor_str = 1165 - wep_str; // стр из чар-листа, - wep_str не удалять
frenzy_stacks = 0; // от 0 до 5
use_maniac = 0; // 1 -- если маньяк взят

str = armor_str + wep_str;
atk_spd = wep_aps * (1+wep_ias/100) * (1+armor_ias/100) * (1+frenzy_stacks*15/100);
avg_wep_dmg = (wep_min_dmg + wep_max_dmg + add_max_dmg + add_min_dmg + armor_min_dmg + armor_max_dmg) / 2 * (1+wep_dmg_mult / 100) * (1+0.15 * frenzy_stacks * use_maniac);
avg_dmg = avg_wep_dmg * (1 + str / 100);
wep_dps =  avg_wep_dmg * atk_spd;
dps = (avg_dmg * (1-crit_chanse/100) + avg_dmg * (1 + crit_val/100) * crit_chanse/100) * atk_spd;

printf ("weapon dps: %1f\n", wep_dps);
printf ("attack speed: %f hits per sec\n", atk_spd);
printf ("total dps: %f\n", dps);
printf ("\t%f sec per hit\n", 1 / atk_spd);
printf ("\t%f avg hit\n", avg_dmg);

printf ("110%% hit: %f\n", avg_dmg * 1.1);
printf ("210%% hit: %f\n", avg_dmg * 2.1);
printf ("270%% hit: %f\n", avg_dmg * 2.7);


hp_per_vit = 10
mlvl = 58;
if mlvl > 35 then
    hp_per_vit = mlvl-25;
else
    hp_per_vit = 10;
end
base_hp = 268;
hp_increase = 12
armor = 4477;
vitality = 1038;
block_min = 820;
block_max = 947;
mhit = 10000;
phis_res = 69;
dr = armor / (armor + mlvl * 50);
res = phis_res / (phis_res + mlvl*5)
block_v = (block_max + block_min)/2;
total_dr = (1-dr)*(1-res)
chit = floor(mhit * total_dr - block_v);
hp = (base_hp + vitality * hp_per_vit) * (1 +hp_increase/100) ;

printf ("HP: %d (%d hp per vitality)\n", hp, hp_per_vit);
printf ("armor %d gives %f dr versus %d lvl mob\n", armor, dr, mlvl );
printf ("%d phisical resistance gives you  %f dr versus %d lvl mob\n", phis_res, res, mlvl);
printf ("total phisical dr: %f\n", 1 - total_dr)

пример работы:
weapon dps: 349.300000
attack speed: 1.400000 hits per sec
total dps: 4573.297575
   0.714286 sec per hit
   3156.175000 avg hit
110% hit: 3471.792500
210% hit: 6627.967500
270% hit: 8521.672500
HP: 38664 (33 hp per vitality)
armor 4477 gives 0.606886 dr versus 58 lvl mob
69 phisical resistance gives you  0.192201 dr versus 58 lvl mob
total phisical dr: 0.682443

shva

  • Завсегдатай
  • **
  • Сообщений: 396
Re: откуда берется dps
« Ответ #10 : 21 Июня, 2012, 21:18:30 »
  • Рейтинг:0 (+0 | 0)
В процессе отладки скрипта наткнулся на одну "фичу":
APS = wep_APS * (1 + sum_ias / 100)

base_wep_APS - величина базовой скорости атаки оружия (смотрится на оружии при снятых вещах на Increase Attack Speed) (пример - 1.4)
sum_ias - величина увеличения скорости атаки в % (есть в окне details вашего персонажа) (пример - 26)

тут всё верно, но надо небольшое уточнение.

base_wep_ias -- Должно быть НЕ из тултипа, а то,  которое для данного типа оружия базовое
 1.5 - даггеры
 1.4-  мечи
 1.3 - топоры
 1.2 - копья/мейсы
 и т.д.
sum_ias -- включает в себя так же иас с самой оружки.

почему важно:
голый персонаж,
str: 58
копьё 14-23
ias - 2%
по тултипу aps -- 1.22
дпс в чарлисте -- 36.67

(14 + 23) / 2 * 1.58 * 1.22          * (1 + 5 * 50 / 10000) = 35.6606
(14 + 23) / 2 * 1.58 * 1.2 * 1.02 * (1 + 5 * 50 / 10000) = 36.671958 

как видно, даже на таким мелких цифрах разница весьма существенна

v1z

  • Завсегдатай
  • **
  • Сообщений: 811

  • Варкрафт: +
    • Имя: Зулор
    • Класс: Охотник
    • Сервер: Гордунни
Re: откуда берется dps
« Ответ #11 : 21 Июня, 2012, 21:59:08 »
  • Рейтинг:0 (+0 | 0)
(14 + 23) / 2 * 1.58 * 1.22          * (1 + 5 * 50 / 10000) = 35.6606
=36,55
разница с дпсом в чар листе 0,3%, а всё из-за того что апс на пушке обрезается до двух знаков после запятой (если взять апс как 1,224 то всё будет совпадать)... но замечание дельное, добавлю в первый пост, а также в руководство к калькулятору
« Последнее редактирование: 21 Июня, 2012, 22:07:55 by v1z »

shva

  • Завсегдатай
  • **
  • Сообщений: 396
Re: откуда берется dps
« Ответ #12 : 21 Июня, 2012, 23:00:34 »
  • Рейтинг:0 (+0 | 0)
> =36,55
угу, пофейлил чутка.
крит только на бумаге дописал, а не домножил на  самом деле :(

текущий scilab скрипт: https://www.dropbox.com/s/y3isjm1y5hq6d7h/d3wep_pub.sce

кстати, нашёл ещё одну "фичу", но уже дефенсовую (если будешь деф пркручивать к калькулятору):
+25% армора и шаут на +20(40) -- складываются, т.е.

total_armor = armor * (1 + 0.25 + 0.2)
а не
total_armor = armor * 1.25 * 1.2

кстати, в этом плане интересно, как с френзи (и шрайном)
dps = dmg * (1 + ias) * 1.75 * 1.25
или
dps = dmg * (1 + ias + 0.75 + 0.25)
похоже, что второй вариант, но проверить никак :(
« Последнее редактирование: 21 Июня, 2012, 23:15:15 by shva »

v1z

  • Завсегдатай
  • **
  • Сообщений: 811

  • Варкрафт: +
    • Имя: Зулор
    • Класс: Охотник
    • Сервер: Гордунни
Re: откуда берется dps
« Ответ #13 : 21 Июня, 2012, 23:24:51 »
  • Рейтинг:0 (+0 | 0)
в деф пока не лезу...
но вот начал глубже копать хаст, и кое что вскрылось...

а именно:
раньше я считал АПС дуалов как
aps = (aps1 + aps2) / 2 * 1.15 * (1 + sum_ias / 100)

твой пост про базовый апс вскрыл половину фейла этой формулы (т.е. нужно брать не aps1, а base_wep1_aps * (1 + wep1_ias / 100)
ну и естественно я поправил код калькулятор и пошел проверять, и довольно удивился что всё равно была разница между ин-гейм дпс и калькуляторским значением... похимичив с формулой нашел ошибку, оказывается что нужно не
1.15 * (1 + sum_ias / 100), а (1.15 + sum_ias / 100)... терь всё сходится просто идеально, вплоть до сотых

п.с. +3% атак спида от энчантрес дают меньше чем +3% атак спида со своего шмота (был весьма удивлен)
« Последнее редактирование: 21 Июня, 2012, 23:30:51 by v1z »

shva

  • Завсегдатай
  • **
  • Сообщений: 396
Re: откуда берется dps
« Ответ #14 : 21 Июня, 2012, 23:57:24 »
  • Рейтинг:0 (+0 | 0)
фух, нашёл таки шрайн френзи
шрайн умножает скорость:
atk_spd = weapon.aps * (1+gear.ias/100)  * (1+0.25 * shrine.frenzy); -- правильный вариант

а вот френзи никак не проверить (


 

закрыть