Question about a Vampirc Touch Fix.

Hey Folks,

I am not any kind of coder or anything else, I’m just a bored guy, who plays on a private wow server, which core is based on your trinity System.

Before i post any calculation to Vampiric Touch, i just one ask if i am at the right place.

I just want to report a bug about the Dispel Damage, who is dealed by vt (= vampiric touch). Atm it is too low, i don’t now where actually the Problem is, but it should deal at least 4times more damage than now.

So my Question is, can i post my calculations here and anyone of you look at this and maybe fix it? Or should i post it anywhere else?

Thanks for Answers, Meneldor

post OS, Rev, and Database Rev.?

issue tracker

[CODE]diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp

index ef609c4…3462c78 100755

— a/src/server/game/Spells/Auras/SpellAuraEffects.cpp

+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp

@@ -5972,13 +5972,17 @@ void AuraEffect::HandleAuraDummy(AuraApplication const * aurApp, uint8 mode, boo

                 break;

             case SPELLFAMILY_PRIEST:

                 // Vampiric Touch
  •                if (m_spellProto->SpellFamilyFlags[1] & 0x0400 && aurApp->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL)
    
  •                if (m_spellProto->SpellFamilyFlags[1] & 0x400 && aurApp->GetEffectMask() == 0)
    
                   {
    
  •                    if (AuraEffect const * aurEff = GetBase()->GetEffect(1))
    
  •                    if (aurApp->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL)
    
                       {
    
  •                        int32 damage = aurEff->GetAmount()*4;
    
  •                        // backfire damage
    
  •                        target->CastCustomSpell(target, 64085, &damage, NULL, NULL, true, NULL, NULL,GetCasterGUID());
    
  •                        if (AuraEffect const * aurEff = GetBase()->GetEffect(1))
    
  •                        {
    
  •                            // backfire damage
    
  •                            int32 damage = aurEff->GetAmount() * 8;
    
  •                            int32 dispelDamage = caster->SpellDamageBonus(caster, m_spellProto, damage, SPELL_DIRECT_DAMAGE);
    
  •                            target->CastCustomSpell(target, 64085, &dispelDamage, NULL, NULL, true, NULL, NULL,GetCasterGUID());
    
  •                        }
    
                       }
    
                   }
    
                   break;[/CODE]
    

sql part

[CODE]DELETE FROM spell_bonus_data WHERE entry = 64085;

INSERT INTO spell_bonus_data VALUES

(64085, 1.2, 0, 0, 0, “Vampiric Touch (Dispel”);[/CODE]

you can test this patch

So I don’t know how to read this or get any information out of this.

But at first, thanks for the answers.

What it is the actuall spellcoeff u use for vt dispel, cuz there is a common mistake, that dispel gets only 1.2 spellcoeff, but it is actual plus 1.2 at the 2.0 spellcoeff from vt already. Cuz i used the rule of three.

The vt normal damage is 850 and the normal vt dispel damage is 1360 at highes rank ( but u can get it with every rank), so “1.6 * vtnormaldamage = vtnormaldispeldamage” so we have a relation. The spellcoeff for the normal vt ist 200% or 40% per dot. so now the calculation ( sm = spellmight)

(vtdispeldamage/vtonetickdamage) = (120%/40%)

vt got 5 ticks so =>

(vtdispeldamage/(vtwholedotdamage/5)) = 3

vtdispeldamage = (3/5)*vtwholedotdamage

vtdispeldamage = 0.6*vtwholedotdamage

=>

1.2 * sm + vtnormaldispeldamage = 0.6 * (2 * sm + vtnormaldamage)

1.2 * sm + vtnormaldispeldamage = 1.2sm + 0.6 vtnormaldamage

vtnormaldispeldamage = 0.6 vtnormaldamage

now we use the relation from above : vtnormaldispeldamage = 1.6 vtnormaldamage

1.6vtnormaldamage = 0.6 vtnormaldamage

1.6 = 0.6 thats a conflict

u have to use 320% as spellcoeff vor vt dispell, so its 200% spellcoeff on vt base and if it got dispell it adds 120%, so you go 320% at dispel( if u put 320% in the place where 120% is, you see that this would come to an solution).

and if i understand :

"DELETE FROM spell_bonus_data WHERE entry = 64085;

INSERT INTO spell_bonus_data VALUES

(64085, 1.2, 0, 0, 0, “Vampiric Touch (Dispel”);"

correct the code is only using 1.2 spellcoeff instead of 3.2 or am i wrong here? Thats why the vt dispel damage is so low, normale with the absorb of resilience it should be over 10k with s8 endgear, so above 3k sm, but u only get aroud 3k.

I hope someone could help me, cuz of this bug there is no dispelprotection for shadowpriest and you get raped by dispellteams.

What makes you certain that dispell/dot coefficient ratio should be tha same as dispell/dot base damage ratio?

Spell coefficient is how much damage that scales with the casters amount of spellpower, you can’t calculate the spell coefficient out of the blue like that, you need to compare the damage with different amounts of spell power. That can’t be done properly now since retail have moved on to cataclysm, if you don’t have any former research.

— Canned message start —

The topic did not belong to the section it was posted in and was moved to Code Development.

— Canned message end —