EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Server Code Submissions (https://www.eqemulator.org/forums/forumdisplay.php?f=669)
-   -   2 Hand Damage Bonus (https://www.eqemulator.org/forums/showthread.php?t=26200)

renoofturks1 09-17-2008 06:31 PM

This is a working tested version. It isn't perfect yet, but, this works for level 60+ accurately, and becomes less and less accurate as level decreases. Weapon's under 42 delay is still off, but closer. I'll work on it some more but if anyone cares to try it, or use it.

zone/attack.cpp - Replacing lines 1935 through 1971
Code:

int Mob::GetWeaponDamageBonus(const Item_Struct* Weapon)
{
        // Kaiyodo - Calculate the damage bonus for a weapon on the main hand
        if (GetLevel() < 28)
                return(0);
       
        // Check we're on of the classes that gets a damage bonus
        if (!IsWarriorClass())
                return 0;
       
        int BasicBonus = ((GetLevel() - 25) / 3);
       
        if(!Weapon)
                return(BasicBonus);
       
        // If we have no weapon, or only a single handed weapon, just return the default
        // damage bonus of (Level - 25) / 3
        //if (Weapon->ItemClass == ItemClassCommon)
                //return BasicBonus;
       
        if ((Weapon->ItemType == ItemType1HS) || (Weapon->ItemType == ItemTypePierce) || (Weapon->ItemType == ItemType1HB))
                return BasicBonus;

                if (Weapon->Delay <= 27)
                        return (BasicBonus + 1);
                if (Weapon->Delay <= 39)
                        return (BasicBonus + ((GetLevel()-25) / 5));
                if (Weapon->Delay <= 41)
                        return (BasicBonus + ((GetLevel()-25) / 5) + 1);
                if (Weapon->Delay >= 42)
                {
                        int levelint = 0;
                        int delayint = 0;
                        if (GetLevel() > 54)
                                levelint++;
                        if (GetLevel() > 56)
                                levelint++;
                        if (GetLevel() > 56)
                                levelint++;
                        if (GetLevel() > 58)
                                levelint++;
                        if (GetLevel() > 59)
                                levelint++;
                        if (GetLevel() > 66)
                                levelint++;
                        if (GetLevel() > 71)
                                levelint++;
                        if (Weapon->Delay > 42)
                                delayint++;
                        if (Weapon->Delay > 44)
                                delayint++;
                        return (((Weapon->Delay-37)/3) + ((GetLevel()-25)/5) + ((Weapon->Delay * ((GetLevel()-50) + levelint))/40) + BasicBonus);
                        }
}


renoofturks1 09-21-2008 06:49 PM

Final version coming soon.....


All times are GMT -4. The time now is 03:44 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.