TrinityCore / TrinityCore

TrinityCore Open Source MMO Framework (master = 11.0.2.56513, 3.3.5 = 3.3.5a.12340, wotlk_classic = 3.4.3.54261, cata classic = 4.4.0.55262)
http://www.trinitycore.org
GNU General Public License v2.0
9.51k stars 6.04k forks source link

[ROGUE] Eviscerate #154

Closed click closed 8 years ago

click commented 13 years ago

What steps will reproduce the problem? 1.Place instant poison on both of your weapons (im using axes) 2.Hit your target with 2-3 sinister strikes 3.Use Eviscerate

What is the expected output? What do you see instead?

Eviscerate (mine is rank 4) should do 85-123 dmg with 2 combo points but it does alot less. About 66 dmg. Does normal dmg without poisons. Did 86 dmg

What revision of the Core are you using? On what operating system?

Core revision: Trinity Core 10767 Operating System: Ubuntu 10.04 x64

click commented 13 years ago

Author: davor1234 I copied the old ticket but the problem is still here in Core revision: Trinity Core 10969+

click commented 13 years ago

Author: rusfighter Formule in Spelleffect.cpp isnt right i think: {{{ damage += irand(int32(ap * combo * 0.03f), int32(ap * combo * 0.07f)); }}} It should be something like:

{{{ int Modifier = int32(ap * combo * 0.03); damage += irand(Modifier + /* base min dmg but how to find :S /, Modifier + / base max dmg but how to find :S */); }}}

According to wowwiki: http://www.wowwiki.com/Eviscerate According to wowhead: http://old.wowhead.com/spell=2098#modified-by

click commented 13 years ago

Author: dav

{{{ Item item = m_caster->ToPlayer()->GetWeaponForAttack(RANGED_ATTACK); if (item) { float dmg_min = item->GetProto()->Damage->DamageMin; float dmg_max = item->GetProto()->Damage->DamageMax; float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK); //damage += irand(int32(ap * combo * 0.03f), int32(ap * combo * 0.07f)); int Modifier = uint32(ap * combo \ 0.03); damage += irand(Modifier + dmg_min, Modifier + dmg_max); } }}}

It's ok ?

click commented 13 years ago

Author: rusfighter I dont know if the dmg_min and dmg_max is from weapon

click commented 13 years ago

Author: havenard Its physical damage, and as expected all physical damage is reduced sinse most targets have armor.

click commented 13 years ago

Author: davor1234 It has to do something with the poisons :S . When i remove the poisons from my weapons the dmg is correct,but if i put poisons on my weapons the dmg is lower

click commented 13 years ago

Author: ra3or

                Item *item = m_caster->ToPlayer()->GetWeaponForAttack(RANGED_ATTACK);

why RANGED_ATTACK ? Eviscerate is for Rogues and apply poison works on melee weapons, not ranged

click commented 13 years ago

Author: jubi There is nothing wrong with Eviscerate damage. Its just reduced by monters armor.

click commented 13 years ago

Author: hharry Im sure theres something wrong. Tested against a player with almost 0 armor, around 1% damage reduction when naked. According to dr damage these were the results. As you can see eviscerate is hitting way less.

http://img62.imageshack.us/i/evis.jpg/

click commented 13 years ago

Author: havenard That is not the Eviscerate code, this is the Eviscerate code: {{{#!C++ // Eviscerate else if ((m_spellInfo->SpellFamilyFlags[0] & 0x00020000) && m_caster->GetTypeId() == TYPEID_PLAYER) { if (uint32 combo = ((Player)m_caster)->GetComboPoints()) { float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK); damage += irand(int32(ap * combo * 0.03f), int32(ap * combo \ 0.07f));

        // Eviscerate and Envenom Bonus Damage (item set effect)
        if (m_caster->HasAura(37169))
            damage += combo*40;
    }
}

}}}

It calculates precisely what is indicated in the skill description.

So @hharry, considering 5 Combo Points and your 4039 Attack Power, your Eviscerate can hit 2455.85 to 3263.65. Given your build (Assassination) and your buffs, we can increase that by 6% because of talent [Find Weakness] so your Eviscerate can hit a raw Physical damage of 2603.201 to 3459.469, so hitting 2898 as in the screenshot is perfectly inside what should be expected.

click commented 13 years ago

Author: arxt i was testing eviscerate and got little bit confused with output, it seems that damage calculation is OK however reductions through resilience and armor look completely wrong, i saw full Wrathful rogues to nuke each other in muti/eviscerate build during cheapshot-kidneyshot on ofi realms, doing same thing on this revision means pulling AT BEST only a half of HP. I have done few researches through rogue movies on 3.3.5a patch on live ofi servers and i saw eviscerate hitting(not critting) for about 4000 damage (for wrathful rogue with about 4500AP) on cloth targets with about 1000 resilience, tryed out the same here and got ridiculous 1100 - 1500 damage hits.

click commented 13 years ago

Author: pinkpingpenguin Same here. Criting 1,5k with 5K PA (245- dagger MH) on shield bearers char (sham, warz, palz), even with poor 20% arpen i rly dont find this normal...

And like arxt, i was seeing many pvp movies too, and we are not playing the same game indeed :)

click commented 13 years ago

Author: tehmarto Last time I checked on mangos. It was reducing first the base damage (damage value) from the armor, and after that reducing the total damage (base damage from ability + the bonus added from combos) again from armor.

click commented 13 years ago

Author: gedraf I confirm this, something is wrong. It seems that the instant poison dot is not applied.

Studioworks commented 13 years ago

The AP coefficient for Eviscerate is 0.03% from AP. Unforfortunately, it's coeff for 1 combo point. With other more combo points, it's 0.06, 0.09, 0.12, 0.15 And there is no way in DB to count with combo points. :(

sergeev commented 13 years ago

Solution is not found ? :(

Anonimo17 commented 13 years ago

What are you talking about? It's written right there what lines to replace and in what file.

zangeff commented 13 years ago

https://github.com/TrinityCore/TrinityCore/issues/2879

DDuarte commented 13 years ago

2879

Studioworks commented 13 years ago

So bad tickets can't be merged... :(

Azora2211 commented 11 years ago

Its still buggy!

ariel- commented 9 years ago

Propose re-opening of this issue. Apparently it was stealth-fixed in some patch, and the DBC data is wrong. Having a variable-AP scaling is weird, as maybe you can have a crit that has less AP than a normal hit and does less damage overall.

I think the real scaling is 0.07 of AP per combo point fixed scaling.

Sources: DrDamage v1.7.8_release : Rogue.lua lines 357-372:

        [GetSpellInfo(2098)] = {
            ["Name"] = "Eviscerate",
            [0] = { ComboPoints = true, --[[APBonus = { 0.03, 0.06, 0.09, 0.12, 0.15 },--]] APBonus = { 0.07, 0.14, 0.21, 0.28, 0.35 } },
            [1] = { 6, 10, PerCombo = 5 },
            [2] = { 14, 22, PerCombo = 11 },
            [3] = { 25, 39, PerCombo = 19 },
            [4] = { 41, 61, PerCombo = 31 },
            [5] = { 60, 90, PerCombo = 45 },
            [6] = { 93, 137, PerCombo = 71 },
            [7] = { 144, 212, PerCombo = 110 },
            [8] = { 199, 295, PerCombo = 151 },
            [9] = { 224, 332, PerCombo = 170 },
            [10] = { 245, 365, PerCombo = 185 },
            [11] = { 405, 613, PerCombo = 301 },
            [12] = { 497, 751, PerCombo = 370 },
        },

Aldriana's Combat Spreadsheet v1.5.2 "Calcs" hidden sheet, 972 row "N pt Eviscerate Base Damage":

=(254+(370+0,07*B790)*B486)*(1+0,2/3*ImpEvis+0,03*Aggression)

Where 254 is average base damage of Rank 12 Eviscerate (ID - 48668) Effect 0: Id 2 (SPELL_EFFECT_SCHOOL_DAMAGE) BasePoints = 127 to 382 + combo * 370,00

( 127 + 381) / 2 = 254

370 is combo multiplier B790 is AP B486 is N combos ("Optimal Evis Size", calculated as 5)

The other multiplier term factors in talents Improved Eviscerate and Aggression to add to total calculated damage.

After this analysis, I think the true formula should be

                else if (m_spellInfo->SpellFamilyFlags[0] & 0x00020000)
                {
                    if (Player* player = m_caster->ToPlayer())
                    {
                        if (uint32 combo = player->GetComboPoints())
                        {
                            float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
                            damage += int32(ap * combo * 0.07f);

                            // Eviscerate and Envenom Bonus Damage (item set effect)
                            if (m_caster->HasAura(37169))
                                damage += combo*40;
                        }
                    }
                }
BahDumbBugs commented 8 years ago

This is 3.x, right?

ghost commented 8 years ago

Yes, otherwise it would be labeled [4.3.4] a few years ago, to keep it separate from master / 3.3.5.

BahDumbBugs commented 8 years ago

Thanks, just wanted to make sure I read it all right.