Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ROGUE] Eviscerate #154

Closed
click opened this issue May 16, 2011 · 23 comments
Closed

[ROGUE] Eviscerate #154

click opened this issue May 16, 2011 · 23 comments

Comments

@click
Copy link
Contributor

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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

@click
Copy link
Contributor Author

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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

@click
Copy link
Contributor Author

click commented May 16, 2011

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

@click
Copy link
Contributor Author

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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

@click
Copy link
Contributor Author

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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
Copy link
Contributor Author

click commented May 16, 2011

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

@Studioworks
Copy link
Contributor

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
Copy link

sergeev commented Jun 21, 2011

Solution is not found ? :(

@Anonimo17
Copy link

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

@zangeff
Copy link

zangeff commented Sep 3, 2011

#2879

@DDuarte
Copy link
Contributor

DDuarte commented Sep 3, 2011

#2879

@DDuarte DDuarte closed this as completed Sep 3, 2011
@Studioworks
Copy link
Contributor

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

@Azora2211
Copy link

Its still buggy!

@ariel-
Copy link
Contributor

ariel- commented Jul 18, 2015

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;
                        }
                    }
                }

@Aokromes Aokromes reopened this Jan 12, 2016
@BahDumbBugs
Copy link

This is 3.x, right?

@ghost
Copy link

ghost commented Jan 25, 2016

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

@BahDumbBugs
Copy link

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

ike3 pushed a commit to ike3/mangosbot that referenced this issue Apr 10, 2022
Co-authored-by: AndyBe <andreas.benzler@gmail.com>
leewheel pushed a commit to leewheel/TrinityCoreLeewheelTest that referenced this issue May 3, 2024
1 Core/Scripts: Added basic types for async script actions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants