Jump to content

Revils

Members
  • Posts

    57
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Revils

  1. Mangos Version: 9105

    SD2 Version: 1506

    Database Name and Version : UDB 386

    How it SHOULD work:

    from a well know wiki

    If the difference between the mob's Defense Skill and your Weapon Skillis less than or equal to 10, then the formula for calculating your base miss rate against that mob is:

    with two-hander: 5% + (Defense Skill - Weapon Skill)*.04%

    with dual-wielding: 24% + (Defense Skill - Weapon Skill)*.04%

    If the difference between the mob's Defense Skill and your Weapon Skill is greater than 10:

    with two-hander: 6% + (Defense Skill - Weapon Skill - 10)*.4%

    with dual-wielding: 25% + (Defense Skill - Weapon Skill - 10)*.4%

    Applying these formulas gives the following base miss rate for a Level 80 character with a 400 Weapon Skill:

    v. Level 80 mob: 5.0% / dual-wield: 24%

    v. Level 81 mob: 5.5% / dual-wield: 24.5%

    v. Level 82 mob: 6.0% / dual-wield: 25% (level of most heroic bosses)

    v. Level 83 mob: 8.0% / dual-wield: 27% (level of raid bosses)

    How it DOES work:

    the miss chance is calculated differently resulting in a higher value

    in other words, for auto-attacks (white damage):

    on Unit::MeleeMissChanceCalc()

           if (isNormal || m_currentSpells[CURRENT_MELEE_SPELL])
               misschance = 5.0f;
           else
               misschance = 24.0f;
    .
    .
      int32 chance = pVictim->GetTypeId() == TYPEID_PLAYER ? 5 : 7;
    .
    .
       if(leveldif < 3)
           misschance += (leveldif - m_modHitChance);
       else
           misschance += ((leveldif - 2) * chance - m_modHitChance);

    against a boss level this will give 5%/24% + 7% = 12%/31% higher than expected 8%/27%

        // Modify miss chance from skill difference ( bonus from skills is 0.04% )
       int32 skillBonus = int32(GetWeaponSkillValue(attType,pVictim)) - int32(pVictim->GetDefenseSkillValue(this));
       misschance -= skillBonus * 0.04f;

    this gives an additional 0.6% miss chance

    Special attacks (yellow damage) are handled in Unit::MeleeSpellMissChance() and they are calculated in another different way while I would expect the same basic rule quoted from well know wiki

    on Unit::MeleeSpellMissChance()

        int32 lchance = pVictim->GetTypeId() == TYPEID_PLAYER ? 5 : 7;
       int32 leveldif = pVictim->getLevelForTarget(this) - getLevelForTarget(pVictim);
       if(leveldif < 3)
           HitChance = 95 - leveldif;
       else
           HitChance = 93 - (leveldif - 2) * lchance;
    .
    .        
       // Miss = 100 - hit
       float miss_chance= 100.0f - HitChance;
    .
    .    
       // bonus from skills is 0.04%
       miss_chance -= skillDiff * 0.04f;

  2. I think resilience should affect only damage from player so why not put a check just like on the comment below?

    @@ -6824,11 +6824,12 @@ void Aura::PeriodicTick()
                // send critical in hit info for threat calculation
                if (isCrit)
                {
                    cleanDamage.hitOutCome = MELEE_HIT_CRIT;
                    // Resilience - reduce crit damage
    -                pdamage -= m_target->GetSpellCritDamageReduction(pdamage);
    +                if (IS_PLAYER_GUID(m_caster_guid))
    +                    pdamage -= m_target->GetSpellCritDamageReduction(pdamage);
                }
    
                // only from players
                // FIXME: need use SpellDamageBonus instead?
                if (IS_PLAYER_GUID(m_caster_guid))

    or there's a check to prevent non player to crit at all?

    also, on 3.2.2. patch notes:

    "Resilience: No longer reduces the amount of damage done by damage-over-time spells, but instead reduces the amount of all damage done by players by the same proportion. In addition, the amount of resilience needed to reduce critical strike chance, critical strike damage and overall damage has been increased by 15%."

    so, this patch is it really necessary?

  3. In rewrited form patch added in [8368]. Anyway thank you for patch :)

    you forgot something in void Aura::HandleAuraDummy(bool apply, bool Real) :cool:

                // Improved Moonkin Form
               if(GetSpellProto()->SpellIconID == 2855)
               {
                   uint32 spell_id;
                   switch(GetId())
                   {
                       case 48384: spell_id = 50170;           //Rank 1
                       case 48395: spell_id = 50171;           //Rank 2
                       case 48396: spell_id = 50172;           //Rank 3
                       default:
                           sLog.outError("HandleAuraDummy: Not handled rank of IMF (Spell: %u)",GetId());
                           return;
                   }

    should be:

                // Improved Moonkin Form
               if(GetSpellProto()->SpellIconID == 2855)
               {
                   uint32 spell_id;
                   switch(GetId())
                   {
                       case 48384: spell_id = 50170;[b]break;[/b]//Rank 1
                       case 48395: spell_id = 50171;[b]break;[/b]//Rank 2
                       case 48396: spell_id = 50172;[b]break;[/b]//Rank 3
                       default:
                           sLog.outError("HandleAuraDummy: Not handled rank of IMF (Spell: %u)",GetId());
                           return;
                   }

×
×
  • 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