diff options
-rw-r--r-- | sql/updates/world/2014_11_04_00_world.sql | 1 | ||||
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 4 |
3 files changed, 4 insertions, 3 deletions
diff --git a/sql/updates/world/2014_11_04_00_world.sql b/sql/updates/world/2014_11_04_00_world.sql new file mode 100644 index 00000000000..8fdd922f8f9 --- /dev/null +++ b/sql/updates/world/2014_11_04_00_world.sql @@ -0,0 +1 @@ +DELETE FROM `disables` WHERE `entry` IN (10185, 10296) AND `sourceType` = 4; diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 36918231fbb..5f6573ad1a6 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -780,7 +780,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (e.action.removeAura.charges) { if (Aura* aur = (*itr)->ToUnit()->GetAura(e.action.removeAura.spell)) - aur->ModCharges(-e.action.removeAura.charges, AURA_REMOVE_BY_EXPIRE); + aur->ModCharges(-static_cast<int32>(e.action.removeAura.charges), AURA_REMOVE_BY_EXPIRE); } else (*itr)->ToUnit()->RemoveAurasDueToSpell(e.action.removeAura.spell); diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 2462c6a9ac4..049f25d3fa3 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1217,8 +1217,8 @@ bool SpellInfo::CanPierceImmuneAura(SpellInfo const* aura) const bool SpellInfo::CanDispelAura(SpellInfo const* aura) const { - // These spells (like Mass Dispel) can dispell all auras - if (Attributes & SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY) + // These spells (like Mass Dispel) can dispell all auras, except death persistent ones (like Dungeon and Battleground Deserter) + if (Attributes & SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY && !aura->IsDeathPersistent()) return true; // These auras (like Divine Shield) can't be dispelled |