by Shillingworth » Sun Apr 17, 2011 3:32 am
I'll elaborate a bit on what I meant. Heroic Strength raises the cap, which means more Strength that is usable. Given that there are two immutable components for melee damage: strength and skill rating, they definitely affect the damage amounts and sit at the core of the algorithm.
You can see the evidence of this in game by parsing out your damage table. Go out to some constant undead, meaning there is little to no differences in individual mob levels and only one type present. Fight against them for a couple hours with only simple buffs that affect your HP/AC, regen, and attack speed (don't contaminate the parse with stat buffs). Run through with a parser that can separate damage amounts, or do it by hand in notepad (think I used Yalp, maybe it was another similar parser). You should find 20 unique normal damage amounts, 20 unique critical damage amounts, and 20 unique slay damage amounts. After finding the lowest common denominator in each group (normal, critical, and slay) then applying it to reduce them, you should find those tables are identical. The denominator in each group is the multiplier being applied to your damage table. Increasing your strength raises those values in the table but it does not raise the multiplier, this is significant because if the multiplier is 2 (just as example) a change of 1 becomes a change of 2 in the final value.
Now back when I worked at that stuff, I was woefully bored. It was during DoD with those mobs that like to CH themselves endlessly, so the parses I took were very consistent since I could blindly swing my sword for hours on end and not kill one. Against varied mobs you would have to allow for variances in damage amount, which could take a lot of extra work to group up (the numbers in one group are spread somewhat evenly from minimum to maximum).
Never really got into doing this for all level ranges, it was time consuming enough doing it for a single level. But I suspect the damage table is uniform across every level and likely every class, with only a difference of addition/multiplication. Would not surprise me at all to hear it's a static array that's been in the game's code base since weapons were introduced with a programmer macro that takes index, offset, and multiplier as it's parameters.