Some bug about Pain Attunement or Spell echo or GMP

Hi guys im come from taiwan server
I am building a caculator about spell damage
but when I build it , i found a weird thing about Pain Attunement
I use fireball to help me check the accuracy of my caculator

my fireball use
1、GMP (50% less damage)
2、Spell echo (10% less damage)
3、Pain Attunement (30% more damage)

and when I use two of them or only one to check the accuracy
it's correct , the caculation is same as game index
but when i use three of them
some weird thing happened
the effect of Pain Attunement become 28.9% , not 30% anymore!

my base dmg of fireball is 999 - 1498 ( with gmp and spell echo)

http://imgur.com/5ZkTnlO

you guys can see the index in the buttom

and when I ues Pain Attunement
the dmg sould be 999 * 1.3 ~ 1498 * 1.3 = 1298 ~ 1948
but it became 1287 ~ 1931 (999*1.289 ~ 1498*1.289)

http://imgur.com/DH3raMP

the base dmg is in the bottom

I dont know it is a bug or I make any mistake
dose anyone help me deal with this problem?

--------------------------------------

i dont know the problem is about Pain Attunement or Spell echo or GMP
because as I say before, when I use two of them to check the accuracy
the index is all correct.
The problem only appears when I use all of them.

---------------------------------------

here is my passive / gears / gems / about %increase dmg and %more or less dmg

lv19 fireball

base dmg:358 - 537

%increase dmg
1、passive:321% (fire / elemental / projectile)
2、gears:143%
3、gems:56% (Q20 fire penetration +10% , Q20 spell echo +10% , lv19 gmp +36% )

%more or less dmg
1、GMP:-50%
2、Spell echo:-10%
3、Pain Attunement:+30%

so the final base dmg should be

358 * [1 + 3.21 + 1.43 + 0.56] * 0.5 * 0.9 * 1.3 = 1298
537 * [1 + 3.21 + 1.43 + 0.56] * 0.5 * 0.9 * 1.3 = 1949

---------------------------------------

here is all of my caculation and indexes in game

use none of them http://imgur.com/oBoqJZ7

min 358 * [1 + 3.21 + 1.43 + 0.1 (fire penatration) ] = 2055
max 537 * [1 + 3.21 + 1.43 + 0.1 (fire penatration) ] = 3082

only use GMP http://imgur.com/FOR0510

min 358 * [1+ 3.21 + 1.43 + 0.46 ] * 0.5 = 1092
max 537 * [1+ 3.21 + 1.43 + 0.46 ] * 0.5 = 1638

only use Spell echo http://imgur.com/bRoUUba

min 358 * [1 + 3.21 + 1.43 + 0.2 ] * 0.9 = 1882
max 537 * [1 + 3.21 + 1.43 + 0.2 ] * 0.9 = 2822

only use Pain Attunement http://imgur.com/rzjJ2oc

min 358 * [1 + 3.21 + 1.43 + 0.1 ] * 1.3 = 2671
max 537 * [1 + 3.21 + 1.43 + 0.1 ] * 1.3 = 4007

GMP + Spell echo http://imgur.com/RFI1DTw

min 358 * [1 + 3.21 + 1.43 + 0.56] * 0.9 * 0.5 = 999
max 537 * [1 + 3.21 + 1.43 + 0.56] * 0.9 * 0.5 = 1498

GMP + Pain Attunement http://imgur.com/sF5Wi4P

min 358 * [1 + 3.21 + 1.43 + 0.46] * 0.5 * 1.3 = 1419
max 537 * [1 + 3.21 + 1.43 + 0.46] * 0.5 * 1.3 = 2129


Spell echo + Pain Attunement http://imgur.com/80QOKjy

min 358 * [1 + 3.21 + 1.43 + 0.2] * 0.9 * 1.3 = 2446
max 537 * [1 + 3.21 + 1.43 + 0.2] * 0.9 * 1.3 = 3669

the caculations are as same as the indexes in game so far.

but when I use three of them

it sould be

358 * [1 + 3.21 + 1.43 + 0.56] * 0.5 * 0.9 * 1.3 = 1298
537 * [1 + 3.21 + 1.43 + 0.56] * 0.5 * 0.9 * 1.3 = 1949

but the index in game is like this
http://imgur.com/1Dq7Jq3


I think my caculation is right...:(
Last edited by chriso_ov on Oct 20, 2014, 2:56:52 PM
"
phoenix4dota wrote:


I had saw this page before , but it didnt solve my problem :\

still thanks for your answer.
Try to calculate from unsupported fireball damage.
GMP x0.5 - round down
spell echo x0.9 - round down
pain attunement x1.3 - round down

The loss in damage is probably because the game will round down 3 times rather than 1.
IGN: NNQQ, Sporkay, Rands_
"
kolton wrote:
Try to calculate from unsupported fireball damage.
GMP x0.5 - round down
spell echo x0.9 - round down
pain attunement x1.3 - round down

The loss in damage is probably because the game will round down 3 times rather than 1.


OK I try to round down 3 times

the dmg still 1298 - 1948 :\
Edit: nvm that, I misread. My bad!

Also, what Kolton said is inaccurate. All modifiers are applied in one step, and round once.
Last edited by Vipermagi on Oct 19, 2014, 5:54:03 PM
"
Vipermagi wrote:
Edit: nvm that, I misread. My bad!

Also, what Kolton said is inaccurate. All modifiers are applied in one step, and round once.


I work on damage calculations too and i got into same troubles with multiple "more"/"less" multipliers.
So how did you solve it in the end?
What do you mean by "All modifiers are applied in one step, and round once." ?
All modifiers as increases and multipliers, or only all multipliers?
And what kind of rounding is needed (truncate, round away from zero, round half down, ...)?
GGG isn't really consistent with its rounding styles.

This is last issue affecting accuracy of my calculations :(
"
logosys wrote:
All modifiers as increases and multipliers, or only all multipliers?

An increase is a multiplier - it's a percentage-based modifier after all.

As for how Damage is calculated exactly, I've always been off by a similar amount as the OP. Rounding multiple times has only thrown it off further, so that hardly seems to be accurate.
Well, to be more precise. All increases summed, create one single multiplier.

And there is definitely some sort of rounding involved when "more/less" multipliers are applied (or is it just "% base damage" one?).

I have a much simplier example of an Axe with Spectral Throw and Fork linked on spell caster character, so there are no increases applicable at all.
The final damage range is purely based on multiplications from ST's base damage and Fork's less damage multipliers.

Axe Physical Damage: 29 - 54
Fork (30% less Projectile Damage): * 0.7
Spectral Throw (Deals 38% of Base Damage): * 0.38
In-game displayed damage range is 8 - 15

No idea how to get max. hit of 15 when at max. precision it's 14.346.

And it's not simple "round up" 14.346 to 15. As this would throw off almost every test build except this one :)

"
logosys wrote:


No idea how to get max. hit of 15 when at max. precision it's 14.346.

And it's not simple "round up" 14.346 to 15. As this would throw off almost every test build except this one :)



I think you forgot to caculate the STR

STR will give you some physical damage and maybe it will make the max up to 14.5

then the system will roundup the damage to 15

Report Forum Post

Report Account:

Report Type

Additional Info