aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortobmaps <spambot42@yandex.ru>2011-07-16 01:24:15 +0700
committertobmaps <spambot42@yandex.ru>2011-07-16 01:24:15 +0700
commit66b217991c4dc1020847d741fdc35896e3c39b49 (patch)
tree1dba8a65d97b1f7c9a286bb0fe06439a45241309 /src
parent8a112a5c1043f01bb60584f85619b6e8678f1c82 (diff)
Core/Spells: Fix Unstable Affliction
Closes #94 Closes #1244 Closes #1528
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp5
-rwxr-xr-xsrc/server/game/Spells/SpellMgr.cpp5
2 files changed, 9 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 55ccaf40468..ccb2b3d5bc7 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -3714,11 +3714,14 @@ void Unit::RemoveAurasDueToSpellByDispel(uint32 spellId, uint64 casterGUID, Unit
// Unstable Affliction (crash if before removeaura?)
if (aura->GetSpellProto()->SpellFamilyFlags[1] & 0x0100)
{
+ Unit* caster = aura->GetCaster();
+ if (!caster)
+ break;
if (AuraEffect const* aurEff = aura->GetEffect(EFFECT_0))
{
int32 damage = aurEff->GetAmount() * 9;
// backfire damage and silence
- dispeller->CastCustomSpell(dispeller, 31117, &damage, NULL, NULL, true, NULL, NULL, aura->GetCasterGUID());
+ caster->CastCustomSpell(dispeller, 31117, &damage, NULL, NULL, true, NULL, aurEff);
}
}
break;
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 69f76c51777..47f1e3c803d 100755
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -3942,6 +3942,11 @@ void SpellMgr::LoadSpellCustomAttr()
spellInfo->AttributesEx3 |= SPELL_ATTR3_CAN_PROC_WITH_TRIGGERED;
++count;
break;
+ case 31117: // Unstable Affliction
+ // this attribute currently makes spell to ignore resilience and absorbs
+ spellInfo->AttributesEx4 &= ~SPELL_ATTR4_FIXED_DAMAGE;
+ ++count;
+ break;
case 16007: // Draco-Incarcinatrix 900
// was 46, but effect is aura effect
spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_NEARBY_ENTRY;