Jump to content

lillecarl

Members
  • Posts

    893
  • Joined

  • Last visited

  • Donations

    0.00 GBP 

Posts posted by lillecarl

  1. I just had this thought, about DBC values. I remember i read a commit when we replaced a dbc value. I think this could be done in database way? Im not that smart/good with programming so i can come up with a general solution for this, but isnt it better to put those kinds of code to the database instead?

  2. void Player::UpdateDodgePercentage()
    {
       const float dodge_cap[MAX_CLASSES] =
       {
            88.129021f,  // Warrior
            88.129021f,  // Paladin
           145.560408f,  // Hunter
           145.560408f,  // Rogue
           150.375940f,  // Priest
            88.129021f,  // DK
           145.560408f,  // Shaman
           150.375940f,  // Mage
           150.375940f,  // Warlock
             0.0f,       // ??
           116.890707f   // Druid
       };
    
       float diminishing = 0.0f, nondiminishing = 0.0f;
       // Dodge from agility
       GetDodgeFromAgility(diminishing, nondiminishing);
       // Modify value from defense skill (only bonus from defense rating diminishes)
       nondiminishing += (GetSkillValue(SKILL_DEFENSE) - GetMaxSkillValueForLevel()) * 0.04f;
       diminishing += (int32(GetRatingBonusValue(CR_DEFENSE_SKILL))) * 0.04f;
       // Dodge from SPELL_AURA_MOD_DODGE_PERCENT aura
       nondiminishing += GetTotalAuraModifier(SPELL_AURA_MOD_DODGE_PERCENT);
       // Dodge from rating
       diminishing += GetRatingBonusValue(CR_DODGE);
       // apply diminishing formula to diminishing dodge chance
       uint32 pclass = getClass()-1;
       float value = nondiminishing + (diminishing * dodge_cap[pclass] /
                                       (diminishing + dodge_cap[pclass] * m_diminishing_k[pclass]));
       value = value < 0.0f ? 0.0f : value;
    
       if (value > 0.5f)
           value = 0.5f
    
       SetStatFloatValue(PLAYER_DODGE_PERCENTAGE, value);
    }
    

  3. edit void Player::UpdateDodgePercentage() to look like this:

    void Player::UpdateDodgePercentage()
    {
       // Dodge from agility
       float value = GetDodgeFromAgility();
       // Modify value from defense skill
       value += (int32(GetDefenseSkillValue()) - int32(GetMaxSkillValueForLevel())) * 0.04f;
       // Dodge from SPELL_AURA_MOD_DODGE_PERCENT aura
       value += GetTotalAuraModifier(SPELL_AURA_MOD_DODGE_PERCENT);
       // Dodge from rating
       value += GetRatingBonusValue(CR_DODGE);
       value = value < 0.0f ? 0.0f : value;
    
       if (value > 0.50f)
           value = 0.50f
    
       SetStatFloatValue(PLAYER_DODGE_PERCENTAGE, value);
    }
    

    edit this to fit your needs:

    if (value > 0.50f)

    value = 0.50f

    (0.50f = 50%)

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use