Posts: 472
Threads: 12
Joined: Feb 2003
02-27-2003, 08:49 PM
(This post was last modified: 02-27-2003, 09:36 PM by Baajikiil.)
My necro was recently playing in a public Hell diff game, and he encountered the life overflow bug. It was a 5 player game in Hell diff, and he has lvl 27 in golem mastery.
As I understand it, this bug occurs when a minion's(or player's) life exceeds a certain value. The bar under their portrait extends across the whole screen, and they have effectively negative life. The next blow kills them, whether it's 1000 damage, or only 1. IIRC there is an interesting screenshot of this bug in the STSI archive.
I am wondering, does anyone know the values that cause this bug? 20k+ life? more? The skill screen lists my golem at over 6k hp, and with scaling from players, it could be quite high. I'm curious if I have destroyed my ability to have a golem in high player count games. Maybe I should have layed off the Golem mastery...
I do have a screenshot of the life bar extending across the screen, if it is necessary. I tried it with both iron and fire golem, both had the overflow.
EDIT: Ooops I see now that the STSI is about a different bug, perhaps related. It shows off the bug that occurred when using lifetap on phys immunes. I think that that one was fixed.
I have no idea about this negative Golem life bug... The bar across the screen looked the same though.
Posts: 742
Threads: 21
Joined: Feb 2003
Hail Baajikiil,
I do not know the exact value, but was someone using Oak Sage in the game? If so, that would probably be what tipped you over the edge: I thought it was safe to have a high Golem Mastery.
May the wind pick up your heels and your sword strike true.
Posts: 472
Threads: 12
Joined: Feb 2003
Quote:Hail Baajikiil,
I do not know the exact value, but was someone using Oak Sage in the game? If so, that would probably be what tipped you over the edge: I thought it was safe to have a high Golem Mastery.
Heeey now, I didn't think of that! I bet there was a druid or 2 around. It was a big game, and we were all together. That makes sense.
One question though: Does Oak modify the golem's base life(around 6k) or does it modify the total from more than 1 player? Looking at BO's effects, it seems that it affects overall life(a minion such as a valk's life is cut in half, even in big player games). Wow. that means the golem may be around 40k+ life :) Perhaps too much to handle.
Thanks for the tip :)
Posts: 1,201
Threads: 22
Joined: Feb 2003
A disscussion can be found here.
http://www.theamazonbasin.com/d2/forums/in...=35&t=19053&hl=
It appears that the bug will happen when the base_life*(1+Life_Bonus)>32767. The base_life is the amount adjusted by the player count in the game and the Life_Bonus is the total from all sources (Golem Mastery, Battle Orders, Oak Sage, Valkyrie inherent skill bonus, etc.). I was able to achieve the bug effect in a test mod game by just using a highly effective Battle Orders and a 2-player base life Clay Golem with Golem Mastery. Duplicated it again with a Valkyrie with a modded high +life bonus. But I did not try to pin down the exact point that this starts to happen.
Posts: 472
Threads: 12
Joined: Feb 2003
Thanks for clearing that up, I knew it must have happened to other people. I just have never seen it before, for I rarely use necros.
Posts: 190
Threads: 48
Joined: Feb 2003
Welcome back, Elric.
"Before you criticize someone, walk a mile in their shoes. At least you'll be a mile away from them and you'll have their shoes." ~?
Stonemaul - Sneakybast, 51 Rogue
Terenas - Sneaksmccoy, 1 Rogue
Sword of Omens, give me sight beyond sight!
Posts: 983
Threads: 113
Joined: Feb 2003
Ruvanal,Feb 27 2003, 11:06 PM Wrote:A disscussion can be found here.
http://www.theamazonbasin.com/d2/forums/in...=35&t=19053&hl=
It appears that the bug will happen when the base_life*(1+Life_Bonus)>32767. The base_life is the amount adjusted by the player count in the game and the Life_Bonus is the total from all sources (Golem Mastery, Battle Orders, Oak Sage, Valkyrie inherent skill bonus, etc.). I was able to achieve the bug effect in a test mod game by just using a highly effective Battle Orders and a 2-player base life Clay Golem with Golem Mastery. Duplicated it again with a Valkyrie with a modded high +life bonus. But I did not try to pin down the exact point that this starts to happen. Don't have time to read all that thread, plus not having a calculator here.
For all practical purposes, the values of life and damage is stored in signed 4 byte values. Remember though to multiply the values by 256 for exatra precision.
Many calcs (like taking a percentage) will work by multiplying by 100 and then dividing. The problem with Static Filed was exactly due to that. To get ammount to reduce, it took the life (allready multiplied by 256), multiplied it by a further 100 before dividing by 33 (or whatever the percentage was) to get the ammount of life to remove. Those multiplications then drow the value above the 2^31 value seting the sign bit (or even rolling over even more into a low positive value). If it is that, the ammount should be the 32k multiplied by about 2.6 so arround 72k or so. No idea if that is the actual value though. But in 8 player games it certainly is much easier to get there.
Will come back and do some more calcs and read that other thread if needed :)
There are three types of people in the world. Those who can count and those who can't.
Posts: 1,201
Threads: 22
Joined: Feb 2003
I had not participated in the thread that I had linked to in my earlier post prior to this. But I will be doing so soon. I had viewed what they were discussing with some interest as it had been more detailed than the typical "Wow, i had may high level iron golem killed in one blow in a game... What happened????" that I would typically find on other forums. In the Amazon Basin thread though it seemed as though there was some detail that every one was forgetting, including myself. It was...
Quote:Jarulf:
Many calcs (like taking a percentage) will work by multiplying by 100 and then dividing.
This was the missing point.
By starting from here and doing some testing of various conditions, the problem is when
base_life*(100+Life_Bonus)>=2^23 (=8388608)
Where base_life is the base life of the monster/minion adjusted for the player count in the game. And where the Life_Bonus is the total of all the sources (Golem Mastery, Battle Orders, Oak Sage, Valkyrie inherent skill bonus, etc.). The Life_Bonus value is not a fraction, but the full integer value that would be used before the total was divided by 100 to get the "correct" new life value.
This is causing the the most significant bit to be 'set' and since this is a signed integer variable, 'setting ' this bit makes the life value negative befre the division by 100. Once the minion is hit a check against the current life (negative) will cause the minion to die.
|