07-18-2005, 10:50 PM
chippydip,Jul 18 2005, 10:04 AM Wrote:-clip-
Now, if we try and renormalize, like you did, we get:
3.28 / 1.25 = 2.624 healing per damage
if we redefine 1 damage = 1 aggro, then 1 healing = 0.38 aggro
-clip-
[right][snapback]83686[/snapback][/right]
Messy, messy numbers here. But one is almost a 'magic number'. Keep in mind that even on server they are going to need to go for execution speed and data storage efficiency as they did in Diablo2. This means that most factors are going to be tracked internally in powers of 2 and you want to find the lowest practical factor to be your base hate increment; better to have all else be multipling or adding factors instead of dividing or subtracting for speed efficiency.
Now the magic number is X.624 or almost exactly X and 5/8. Considering the methods that apparently used for generating the base data and that you are working with only the digested form of that data, this should be close enough to see some of what may be going on behind the curtain. It appears that they are tracking fractional amounts using a 1/8 scale as opposed to Diablo2's 1/256 scale of tracking fractional amounts (the game could be using a finer scale for some things, but this is the best tha can be seen from this set of data). This 1/8 scale also makes it easier for the game to incrementally track some of the dot effects that do not readily break down to pure consistent integers across the intire spread of the effect.
With the view of it being a 1/8 scale we get instead of
2.624 healing per damage
a more integer amount of
21 healing per 8 damage
and this
1 damage = 1 aggro, then 1 healing = 0.38 aggro
would instead be
1 damage => 1 aggro and 1 healing => 3/8 aggro
with the calculation to get that level being
(healing*3)with a bitshift left of 3.
This can be an odd way of looking at for many readers here, but it can actually work out rather efficently for the way the code handles and tracks this sort of thing. What would work out even better though is to define the base factor as being 1 hate and then apply factors such as this to damage and healing:
physical damage *8
healing *3
In an example then this method a warrior in battle stance and just using a normal weapon swing that does 100 damage, would make his hate=100*8=800.
A healer (no talents to modify hate) would then need to do an amount of healing that exceeded that 800 hate to pull the aggro off the warrior. This then would be 800/3=266 +1 to exceed.
Similar modifications would need to be done to those 'hidden hate values'. Some of the unusal ones like 41 would then be 328 on this scale, making them closer to a 325 value that may look more reasonable than some odd number like 41.
I will let some of you hash this over some to see if it starts making some of the information fit better and giving values more in the way a human would end up assigning them to a skill.