This formula works for all the 2 handers that I have tested. It should work up to level 80. As for it's implementation into C++, It should work, I have never worked with C++ before so if there is a better way to do it. Let me know. This would go in attack.cpp in zone. Any thoughts/input appreciated.
Code:
if (Weapon->Delay <=27)
return (BasicBonus + 1);
if (Weapon->Delay <=39)
return (BasicBonus + ((GetLevel()-27)/4));
if (Weapon->Delay <= 41)
return (BasicBonus + ((GetLevel()-27)/4) + 1);
if (Weapon->Delay >= 42)
if (GetLevel() > 54)
int levelint = 1;
if (GetLevel() > 56)
levelint += 1;
if (GetLevel() > 58)
levelint += 1;
if (GetLevel() > 59)
levelint += 1;
if (GetLevel() > 66)
levelint += 1;
if (GetLevel() > 71)
levelint += 1;
if (Weapon->Delay > 42)
delayint = 1;
if (Weapon->Delay >44)
delayint += 1;
return (((Weapon->Delay-37)/3) + ((GetLevel()-25)/ 5) + ((Weapon->Delay * (GetLevel()-50 + levelint))/40) + delayint + BasicBonus);