new FHR FAQtoid
#1
Heiho,

I don't and won't announce any minor edits in that not-so-small-anymore collection, but the commonly believed '1/12 loss of maxlife will cause Hit Recovery' rule is more than slightly off.
Although the assembly analysisses both from Myrdinn and Nefarius are over a year old I haven't seen it discussed further since then, and I just had the time to try a summary in more, eh, human terms.
It bloated the original text to about three-times size, but well ...

So here it is:
http://www.mannm.org/d2library/faqtoids/fhr_eng.html

based on Nefarius'
http://phrozenkeep.planetdiablo.gamespy.co...pic.php?t=47619
and Myrdinn's
http://www.theamazonbasin.com/d2/forums/in...showtopic=77949
findings

My door is always open for suggestions. Metaphorically speakin', of course ;-)
so long ...
librarian

Check out some peanuts or the
Diablo II FAQtoids
current status: re-thinking about HoB
Reply
#2
Is there an English transcript of that page? I'm having difficulty deciphering exactly what it says.
"The true value of a human being is determined primarily by the measure and the sense in which he has attained liberation from the self." -Albert Einsetin
Reply
#3
Heiho,

sorry, I forgot to add the _eng suffix :-)
Correct link is
http://www.mannm.org/d2library/faqtoids/fhr_eng.html

Will edit initial posting right away.
so long ...
librarian

Check out some peanuts or the
Diablo II FAQtoids
current status: re-thinking about HoB
Reply
#4
Does {} mean round up or down? And same with []? The frames end up with the difference of 1 depending on if you round up or down in each part of the formula.

Quote:HRf = {256 * GetHitbase / [vanim * (50 + EFHR) / 100]} - 1

Humm, I figured it out: {} round up, [] round down. However, using this formula in Excel, I'm almost identical results for Hit Recovery to FPS as what other tables on the net list, for example, this site.

MY RESULTS:
Assassin
FHR...FPS
0...9
6...8
14...7
26...6
46...5
83...4
194...3

Pre 1.1 Results:
Assassin
FHR...FPS
0...9
7...8
15...7
27...6
48...5
86...4
200...3

Is this correct? If so, when are you doing to come out when completed tables :D?

Also, if anyone wants an Excel formula to do it themselves, it's pretty simple:
FHR: =(ROUNDUP(256*B1/ROUNDDOWN(B2*(50+B3)/100,0),0)-1)

USER INPUT:
B1 = Base
B2 = VANIM
B3 = EFHR: =ROUNDUP(B4*120/(B4+120),0)
B4 = Faster Hit Recover from items
"The true value of a human being is determined primarily by the measure and the sense in which he has attained liberation from the self." -Albert Einsetin
Reply
#5
Heiho,

ah, the formula part has not changed, so you'll get pretty much same results :-)
The referential tables I use are linked also in that FAQtoid, they're here
http://www.mannm.org/d2library/faqtoids/...g.html#fhr
Back in the days I decided to put all the tables into one page for better survey instead of cluttering them over several FAQtoids.

In your terms:
Quote:USER INPUT:
B1 = Base
B2 = VANIM
B3 = EFHR: =ROUNDUP(B4*120/(B4+120),0)
B4 = Faster Hit Recover from items
B3 should read
B3 = EFHR: =ROUNDDOWN(B4*120/(B4+120),0)
instead; square brackets indicate floor function (rounding down), and curved brackets indicate ceiling function (rounding up)


The new part is about the loss of life actually needed to trigger Hit Recovery, which was commonly believed to be 1/12 of target's maximum life. But it is, as default, 1/16. And this starts the evaluation of Hit Recovery, but doesn't grant it. And some missile based attacks will use 1/8 instead of 1/16 to start evaluation, thus while, say, throwing throwing knifes you'll need to erase 1/8 of opponent's maximum life to even start Hit Recovery evaluation.

As a side effect I noticed that the Barbarian hireling doesn't suffer GetHit and Knockback, because he lacks according animation modes. Which is kind of funny, since I haven't seen this mentioned anywhere.
Not that I'd expect to know all english resources, but the most prominent german resource was written by me, and I still get complaints because I hadn't included equipment suggestions containing some of the more ridiculous items the game offers by now (the resource is from 1.10).
so long ...
librarian

Check out some peanuts or the
Diablo II FAQtoids
current status: re-thinking about HoB
Reply
#6
Quote:ah, the formula part has not changed, so you'll get pretty much same results :-)

Silly me :lol:.

Quote:The new part is about the loss of life actually needed to trigger Hit Recovery, which was commonly believed to be 1/12 of target's maximum life. But it is, as default, 1/16. [...] And some missile based attacks will use 1/8 instead of 1/16 to start evaluation, thus while, say, throwing throwing knifes you'll need to erase 1/8 of opponent's maximum life to even start Hit Recovery evaluation.

Now that is interesting. So player characters can get sent into a hit recovery much more often then before in patch 1.09. And that sucks for throwing knives; makes it near impossible to send an opponent into hit recovery.

Quote:And this starts the evaluation of Hit Recovery, but doesn't grant it.

I'm a little confused on exactly what this means? If you could explain, are you saying that if your character looses 1/16th of it's life to a monster's attack (melee, or spell, and some thrown weapons), that your character will exhibit the sound and animation effects of being sent into a hit recovery, but what? Your Hit Recovery FPS from gear does not kick in? Or you never actually enter Hit Recovery. Sorry, I'm confused by that statement, but I'm trying to understand.
"The true value of a human being is determined primarily by the measure and the sense in which he has attained liberation from the self." -Albert Einsetin
Reply
#7
Quote:ah, the formula part has not changed, so you'll get pretty much same results :-)

Silly me :lol:.

Quote:The new part is about the loss of life actually needed to trigger Hit Recovery, which was commonly believed to be 1/12 of target's maximum life. But it is, as default, 1/16. [...] And some missile based attacks will use 1/8 instead of 1/16 to start evaluation, thus while, say, throwing throwing knifes you'll need to erase 1/8 of opponent's maximum life to even start Hit Recovery evaluation.

Now that is interesting. So player characters can get sent into a hit recovery much more often then before in patch 1.09. And that sucks for throwing knives; makes it near impossible to send an opponent into hit recovery.

Quote:And this starts the evaluation of Hit Recovery, but doesn't grant it.

I'm a little confused on exactly what this means? If you could explain, are you saying that if your character looses 1/16th of it's life to a monster's attack (melee, or spell, and some thrown weapons), that your character will exhibit the sound and animation effects of being sent into a hit recovery, but what? Your Hit Recovery FPS from gear does not kick in? Or you never actually enter Hit Recovery. Sorry, I'm confused by that statement, but I'm trying to understand.
"The true value of a human being is determined primarily by the measure and the sense in which he has attained liberation from the self." -Albert Einsetin
Reply
#8
Heiho,

1. damage is applicated
2. if damage causes death of the target unit there'll be no further evaluation of GetHit
3. if target unit is frozen there'll be no further evaluation of GetHit
4. if applied damage is poison only there'll be no further evaluation of GetHit
5. if applied damage is smaller than 1 (aka 256 bites) there'll be no further evaluation of GetHit **
6. get MaxLife, maximum life of target unit
7. get divisor (the value which was believed to be 1/12)
8. get GetHitTriggerNumber via GetHitTriggerNumber = MaxLife / divisor
9. then the applied damage counts in in several steps
* if damage is smaller than GetHitTriggerNumber, there'll be no further evaluation of GetHit
* if damage is smaller than GetHitTriggerNumber * 2, GetHit evaluation will continue with 50% chance (rnd {0, 1} = 0 Exit, otherwise continue)
* if damage is smaller than GetHitTriggerNumber * 4, Hit Recovery will occur with 75% Chance (rnd {0, 1, 2, 3} = 0 Exit, otherwise Hit Recovery)
* if damage is bigger than GetHitTriggerNumber * 4, Hit Recovery will occur

10. if target unit is no subject to Hit Recovery at all, Hit Recovery will be skipped (yup, this check is done at the very end :-P )

An example to clarify the bolded part:
Let's just assume a MaxLife of 1600 and an attack with the standard divisor of 16, because I'm tired, no good at math, and have a long weekend full of work in front of me ;-)

GetHitTriggerNumber = MaxLife / divisor -> 1600 / 16 -> 100

damage applied is smaller than 100 -> no GetHit

damage is bigger than 100 but smaller than 200 -> 50% chance of continuing evaluation in next step, otherwise no GetHit
last condition true, or damage is bigger than 200 but smaller than 400 -> 75% chance of GetHit, otherwise no GetHit
=> damage is bigger than 100 but smaller than 200 -> 50% * 75% -> 37,5% chance of GetHit

damage is bigger than 400 -> GetHit granted always

So to be sure GetHit is triggered, life loss must be 1/4 of MaxLife. 1/16 of MaxLife lost will only have a probability of 37,5% to cause GetHit, and values between 1/8 and 1/4 of MaxLife will have a probability of 75% to cause GetHit.
This is far more complicated than the common rule of thumb, which suggested that 1/12 loss of MaxLife will always cause GetHit. This was always disputed especially in PvP communities, since to those guys forcing the opponent into Hit Recovery (resp avoiding it) is far more important than it is in PvM, and they noticed many aberrations of the 1/12 rule. In PvM I myself cared more about my char's HitRecovery than about monsters'.

so long ...
librarian

Check out some peanuts or the
Diablo II FAQtoids
current status: re-thinking about HoB
Reply
#9
Quote:Heiho,

1. damage is applicated
2. if damage causes death of the target unit there'll be no further evaluation of GetHit
3. if target unit is frozen there'll be no further evaluation of GetHit
4. if applied damage is poison only there'll be no further evaluation of GetHit
5. if applied damage is smaller than 1 (aka 256 bites) there'll be no further evaluation of GetHit **
6. get MaxLife, maximum life of target unit
7. get divisor (the value which was believed to be 1/12)
8. get GetHitTriggerNumber via GetHitTriggerNumber = MaxLife / divisor
9. then the applied damage counts in in several steps
* if damage is smaller than GetHitTriggerNumber, there'll be no further evaluation of GetHit
* if damage is smaller than GetHitTriggerNumber * 2, GetHit evaluation will continue with 50% chance (rnd {0, 1} = 0 Exit, otherwise continue)
* if damage is smaller than GetHitTriggerNumber * 4, Hit Recovery will occur with 75% Chance (rnd {0, 1, 2, 3} = 0 Exit, otherwise Hit Recovery)
* if damage is bigger than GetHitTriggerNumber * 4, Hit Recovery will occur

10. if target unit is no subject to Hit Recovery at all, Hit Recovery will be skipped (yup, this check is done at the very end :-P )

An example to clarify the bolded part:
Let's just assume a MaxLife of 1600 and an attack with the standard divisor of 16, because I'm tired, no good at math, and have a long weekend full of work in front of me ;-)

GetHitTriggerNumber = MaxLife / divisor -> 1600 / 16 -> 100

damage applied is smaller than 100 -> no GetHit

damage is bigger than 100 but smaller than 200 -> 50% chance of continuing evaluation in next step, otherwise no GetHit
last condition true, or damage is bigger than 200 but smaller than 400 -> 75% chance of GetHit, otherwise no GetHit
=> damage is bigger than 100 but smaller than 200 -> 50% * 75% -> 37,5% chance of GetHit

damage is bigger than 400 -> GetHit granted always

So to be sure GetHit is triggered, life loss must be 1/4 of MaxLife. 1/16 of MaxLife lost will only have a probability of 37,5% to cause GetHit, and values between 1/8 and 1/4 of MaxLife will have a probability of 75% to cause GetHit.
This is far more complicated than the common rule of thumb, which suggested that 1/12 loss of MaxLife will always cause GetHit. This was always disputed especially in PvP communities, since to those guys forcing the opponent into Hit Recovery (resp avoiding it) is far more important than it is in PvM, and they noticed many aberrations of the 1/12 rule. In PvM I myself cared more about my char's HitRecovery than about monsters'.

Thanks for indepth explanation. I understand it now. Yes, you said all that before in almost identical fashion, but I guess I didn't quite get it for some reason until now, so I appreciate you taking the time to explain it again to me. Well, it makes for a much more realistic experience - the more damage you have, the less likely you will be capable of defending yourself.
"The true value of a human being is determined primarily by the measure and the sense in which he has attained liberation from the self." -Albert Einsetin
Reply
#10
Heiho,

Quote:Yes, you said all that before in almost identical fashion, but I guess I didn't quite get it for some reason until now, so I appreciate you taking the time to explain it again to me.

no worries, I'll try to clarify the section based on your better understanding of the posting's version. If I don't get feedback, I don't get the chance to improve the FAQtoid :-)
so long ...
librarian

Check out some peanuts or the
Diablo II FAQtoids
current status: re-thinking about HoB
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)