All pastes #922369 Raw Edit

Mine

public text v1 · immutable
#922369 ·published 2008-02-28 19:27 UTC
rendered paste body
Index: src/game/Spell.cpp
===================================================================
--- src/game/Spell.cpp	(revision 5328)
+++ src/game/Spell.cpp	(working copy)
@@ -3417,13 +3417,16 @@
 
     //Check if the spell grants school or mechanic immunity.
     //We use bitmasks so the loop is done only once and not on every aura check below.
-    for(int i = 0;i < 3; i ++)
-    {
-        if(m_spellInfo->EffectApplyAuraName[i] == SPELL_AURA_SCHOOL_IMMUNITY)
-            school_immune |= m_spellInfo->EffectMiscValue[i];
-        else if(m_spellInfo->EffectApplyAuraName[i] == SPELL_AURA_MECHANIC_IMMUNITY)
-            mechanic_immune |= 1 << m_spellInfo->EffectMiscValue[i];
-    }
+	if ( m_spellInfo->AttributesEx & 0x8000LL )
+	{
+        for(int i = 0;i < 3; i ++)
+        {
+            if(m_spellInfo->EffectApplyAuraName[i] == SPELL_AURA_SCHOOL_IMMUNITY)
+                school_immune |= m_spellInfo->EffectMiscValue[i];
+            else if(m_spellInfo->EffectApplyAuraName[i] == SPELL_AURA_MECHANIC_IMMUNITY)
+                mechanic_immune |= 1 << m_spellInfo->EffectMiscValue[i];
+        }
+	}
     //immune movement impairement and loss of control
     if(m_spellInfo->Id==(uint32)42292)mechanic_immune=0x9967da6;
 
Index: src/game/SpellAuras.cpp
===================================================================
--- src/game/SpellAuras.cpp	(revision 5328)
+++ src/game/SpellAuras.cpp	(working copy)
@@ -2793,7 +2793,7 @@
     if(GetId()==42292)
         mechanic=0x9967da6;
 
-    if(apply)
+    if(apply && GetSpellProto()->AttributesEx & 0x8000LL)
     {
         Unit::AuraMap& Auras = m_target->GetAuras();
         for(Unit::AuraMap::iterator iter = Auras.begin(), next; iter != Auras.end(); iter = next)
@@ -2871,7 +2871,7 @@
 
 void Aura::HandleAuraModStateImmunity(bool apply, bool Real)
 {
-    if(apply && Real)
+    if(apply && Real && GetSpellProto()->AttributesEx & 0x8000LL)
     {
         Unit::AuraList const& auraList = m_target->GetAurasByType(AuraType(m_modifier.m_miscvalue));
         while(!auraList.empty())
@@ -2885,7 +2885,7 @@
 {
     m_target->ApplySpellImmune(GetId(),IMMUNITY_SCHOOL,m_modifier.m_miscvalue,apply);
 
-    if(Real && apply)
+    if(Real && apply && GetSpellProto()->AttributesEx & 0x8000LL)
     {
         if(IsPositiveSpell(GetId()))                        //Only positive immunity removes auras
         {