Leoric's life steal...
#1
Quote from JG :

"He (King Leoric) steal 100% life, that is, all the damage he inflicts is added to his current HP. His current HP may go above his maximum HP this way."

I was wondering if there is a cap where his HP might stop going up. There certainly is one, probably some binary or hex value, anyone knows this?

I'll go do some test on hell to see just how high Leo can raise his life pool.

More on this later, if I can come to a conclusion...
Reply
#2
Ok, I'm back and done some testing, here are the results....

I took my clvl 40 tank mage on hell 3 times to kill Leoric with Holy Bolt spell. slvl 16, average damage of 53.5. I used Stone Curse to make him stay still, thus facilitating the counting of Holy Bolts shot at him. My mage also used Mana Shield with 850 mana aprox, but drank a Full mana Pot at 50 mana aprox when I let him hit me, so to facilitate calculations, each mana ball he drained me was of 800 mana points.

1. Killed Leoric on Hell without having him steal life from me.
Stated HP in JG: 963
Number of Holy Bolts needed: 20
Total Holy Bolt damage: 1070 aprox

2. Killed Leoric on Hell having him steal life from me. More precisely, 1600 points of mana, 2 mana balls.
Stated HP in JG: 963
Number of Holy Bolts needed: 68
Total Holy Bolt damage: 3638 aprox

3. Killed Leoric on Hell having him steal life from me. More precisely, 8000 points of mana, 10 mana balls.
Stated HP in JG: 963
Number of Holy Bolts needed: 251
Total Holy Bolt damage: 13428 aprox

So far, I can say that King Leoric can steal huge amounts of life, but my test hasn't found a cap to it yet. If someone is brave enough to go out there and have himself hacked and slashed by Leo for 100000 HP, go ahead, but this gets quite boring ;).

I guess it would be easier if one of you programmer/code reader went in there and somehow found the max value of Leo's potential life pool, but I for one am illeterate in that field....
Reply
#3
I don't recall the exact value, but it was well above practical test values.

I do know that monster hps are stored in 4 bytes. So, I speculate: If the game cannot store HP values in excess of this, the maximum would be FF FF FF FF (4,294,967,295). But that's just my best guess. Nits very welcome. :)

[o: *LEMMING* :o]
Reply
#4
Hehehe I remember talking with someone about this ages ago.

You get a god mode character and stick it infront of Leoric...leave it for a few days. We thought that either Leoric would reach his top hp and stay there, the game would crash, or there would be an overflow and he'd start at 1 hp again :)
"The axe? Aye, that's a good weapon, balanced against any foe. Look how it cleaves the air, and then, imagine a nice fat demon head in its path. Keep in mind, however, that it is slow to swing - but talk about dealing a heavy blow!"
Reply
#5
Exactly the kind of answer I was looking for! :)

Well... that'd sure make for one tough skelly King!! ;)

I remember once, facing Leoric with my BAR, at clvl 8, wielding a Spiked Club (might have been a War Hammer, been a while ;) ) and I actually defeated him, but I'd say it took me about 15 minutes if i recall, of occasionally connecting a blow, recieving a couple, going upstairs to restock my belt... but I did it. But I didn't know his life steal was a full 100%, which kinda explains why the battle lasted so long. Boy was I glad when a saw them bones scatter! And what did I get for all my efforts?? Some evil-juju claymore! GRRR!! Cronk mad at bone man!! :angry:
Reply
#6
Quote:I do know that monster hps are stored in 4 bytes. So, I speculate: If the game cannot store HP values in excess of this, the maximum would be FF FF FF FF (4,294,967,295).

While the value may be stored as an unsigned long int, this does not mean that every bit is used to hold relevent information.

Many routines in Diablo only use the 'x'-most insignificant bits of variables in routines. I know for certain that this is the case with monster hit points, as if you set this to a rediculously high value, monsters stll die very easily.

Though interestingly enough, if you use the hack to allow you to see monster hit points, the value you set will be displayed (though iirc, values over 0xf0ffffff display as 1).

Here's a .dat file that can be used to test this: (the new HP values are the block of f's, the first 8 being minimum hp, the second 8 being maximum. the order of least to most significant bits in an unsigned long int is as such - 10 32 54 76. Note - this only changes the monsters that always appear on Dlvl 1 )

Code:
start 1.09 Change Dlvl 1 Monster HP
497e60 0400000007000000 ffffffffffffffff
498060 0100000004000000 ffffffffffffffff
498260 0200000004000000 ffffffffffffffff
498460 0200000005000000 ffffffffffffffff
498660 0300000006000000 ffffffffffffffff
498a60 0300000006000000 ffffffffffffffff
end

start v1.09 View Monster HP and Resist
439FC4 68 00
43A030 0F8CF9000000 909090909090
end

start v1.09 Play v1.09 Off HD
1501867A 74 eb
end
"What contemptible scoundrel stole the cork from my lunch?"

-W.C. Fields
Reply
#7
The value should be stored as a signed int. I think D1 used 6 extra bits of precision for fractions, no? SO basically we have 2 billion divded by 64, so some 67 million or so. However, there is no cap, it will if it goes above that, "roll over" and turn negative, probably killing him. Call it a bug that there is no actual cap implemented.
There are three types of people in the world. Those who can count and those who can't.
Reply
#8
Quote:The value should be stored as a signed int.

I set the sign bit of both hit-point variables to 1... in theory, this should mean that the monsters had negative hit points (if the value is signed). However, they had extemely high hit points, indicating that the bit is not being used to store the sign.

The .dat segment I used to set monster HP to -1 (if the value IS signed):


Code:
start 1.09 Change Dlvl 1 Monster HP
497e60 0400000007000000 0100001001000010
498060 0100000004000000 0100001001000010
498260 0200000004000000 0100001001000010
498460 0200000005000000 0100001001000010
498660 0300000006000000 0100001001000010
498a60 0300000006000000 0100001001000010
end

And the result:

[Image: diablo.gif]
"What contemptible scoundrel stole the cork from my lunch?"

-W.C. Fields
Reply
#9
I think I remember a thread about fire damage bows stopping monster regeneration somewhere...
--Lang

Diabolic Psyche - the site with Diablo on the Brain!
Reply
#10
the Langolier,Sep 15 2003, 08:37 PM Wrote:I think I remember a thread about fire damage bows stopping monster regeneration somewhere...
Does the game see Leoric's life steal ability as regeneration?
Reply
#11
Quote: Does the game see Leoric's life steal ability as regeneration?

No.
"The axe? Aye, that's a good weapon, balanced against any foe. Look how it cleaves the air, and then, imagine a nice fat demon head in its path. Keep in mind, however, that it is slow to swing - but talk about dealing a heavy blow!"
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)