daily pastebin goal
44%
SHARE
TWEET

Appled's Patch for Arcemu Community

a guest Jun 9th, 2012 30 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. diff --git a/src/arcemu-world/HackFixes.cpp b/src/arcemu-world/HackFixes.cpp
  2. index a521460..fc1bb08 100644
  3. --- a/src/arcemu-world/HackFixes.cpp
  4. +++ b/src/arcemu-world/HackFixes.cpp
  5. @@ -2305,35 +2392,96 @@ void ApplyNormalFixes()
  6.         if(sp != NULL)
  7.                 sp->noproc = true;
  8.  
  9. +       //Paladin - Avenging Wrath marker - Is forced debuff
  10. +       sp = CheckAndReturnSpellEntry(61987);
  11. +       if(sp != NULL)
  12. +       {
  13. +               sp->c_is_flags = SPELL_FLAG_IS_FORCEDDEBUFF;
  14. +               sp->Attributes = ATTRIBUTES_IGNORE_INVULNERABILITY;
  15. +       }
  16. +
  17.         //Paladin - Forbearance - Is forced debuff
  18.         sp = CheckAndReturnSpellEntry(25771);
  19.         if(sp != NULL)
  20. -               sp->c_is_flags |= SPELL_FLAG_IS_FORCEDDEBUFF;
  21. +       {
  22. +               sp->c_is_flags = SPELL_FLAG_IS_FORCEDDEBUFF;
  23. +               sp->Attributes = ATTRIBUTES_IGNORE_INVULNERABILITY;
  24. +       }
  25.  
  26.         //Divine Protection
  27.         sp = CheckAndReturnSpellEntry(498);
  28. @@ -3356,11 +3505,12 @@ void ApplyNormalFixes()
  29.                 sp->EffectApplyAuraName[0] = SPELL_AURA_PROC_TRIGGER_SPELL;
  30.                 sp->EffectTriggerSpell[0] = 33619; //!! WRONG spell, we will make direct dmg here
  31.         }
  32. -       // Weakened Soul - Is forced debuff
  33. +       // Weakened Soul - is debuff
  34.         sp = CheckAndReturnSpellEntry(6788);
  35.         if(sp != NULL)
  36.         {
  37.                 sp->c_is_flags = SPELL_FLAG_IS_FORCEDDEBUFF;
  38. +               sp->Attributes = ATTRIBUTES_IGNORE_INVULNERABILITY;
  39.         }
  40.  
  41.         // Penance
  42. @@ -3510,10 +3660,13 @@ void ApplyNormalFixes()
  43.         if(sp != NULL)
  44.                 sp->casterAuraSpellNot = 57724; //sated debuff
  45.  
  46. -       //Sated
  47. +       // Sated - is debuff
  48.         sp = CheckAndReturnSpellEntry(57724);
  49.         if(sp != NULL)
  50. -               sp->c_is_flags |= SPELL_FLAG_IS_FORCEDDEBUFF;
  51. +       {
  52. +               sp->c_is_flags = SPELL_FLAG_IS_FORCEDDEBUFF;
  53. +               sp->Attributes = ATTRIBUTES_IGNORE_INVULNERABILITY;
  54. +       }
  55.  
  56.         /**********************************************************
  57.          *      Heroism
  58. @@ -3523,10 +3676,13 @@ void ApplyNormalFixes()
  59.         if(sp != NULL)
  60.                 sp->casterAuraSpellNot = 57723; //sated debuff
  61.  
  62. -       //Sated
  63. +       // Sated - is debuff
  64.         sp = CheckAndReturnSpellEntry(57723);
  65.         if(sp != NULL)
  66. -               sp->c_is_flags |= SPELL_FLAG_IS_FORCEDDEBUFF;
  67. +       {
  68. +               sp->c_is_flags = SPELL_FLAG_IS_FORCEDDEBUFF;
  69. +               sp->Attributes = ATTRIBUTES_IGNORE_INVULNERABILITY;
  70. +       }
  71.  
  72.         /**********************************************************
  73.          *      Lightning Overload
  74. @@ -4345,10 +4501,13 @@ void ApplyNormalFixes()
  75.         if(sp != NULL)
  76.                 sp->EffectImplicitTargetA[0] = EFF_TARGET_DYNAMIC_OBJECT;
  77.  
  78. -       // Hypothermia: undispellable
  79. +       // Hypothermia - forced debuff
  80.         sp = CheckAndReturnSpellEntry(41425);
  81.         if(sp != NULL)
  82. +       {
  83.                 sp->c_is_flags = SPELL_FLAG_IS_FORCEDDEBUFF;
  84. +               sp->Attributes = ATTRIBUTES_IGNORE_INVULNERABILITY;
  85. +       }
  86.  
  87.         // Mage - Permafrost Rank 1
  88.         sp = CheckAndReturnSpellEntry(11175);
  89. @@ -6964,6 +7130,14 @@ void ApplyNormalFixes()
  90.                 sp->procChance = 100;
  91.         }
  92.  
  93. +       // Recently Bandaged - is debuff
  94. +       sp = CheckAndReturnSpellEntry(11196);
  95. +       if(sp != NULL)
  96. +       {
  97. +               sp->c_is_flags = SPELL_FLAG_IS_FORCEDDEBUFF;
  98. +               sp->Attributes = ATTRIBUTES_IGNORE_INVULNERABILITY;
  99. +       }
  100. +
  101.         sp = CheckAndReturnSpellEntry(44856);           // Bash'ir Phasing Device
  102.         if(sp != NULL)
  103.                 sp->AuraInterruptFlags = AURA_INTERRUPT_ON_LEAVE_AREA;
  104. diff --git a/src/arcemu-world/Unit.cpp b/src/arcemu-world/Unit.cpp
  105. index f84f196..553cb60 100644
  106. --- a/src/arcemu-world/Unit.cpp
  107. +++ b/src/arcemu-world/Unit.cpp
  108. @@ -2526,6 +2516,13 @@ uint32 Unit::HandleProc(uint32 flag, Unit* victim, SpellEntry* CastingSpell, boo
  109.                                                                         continue;
  110.                                                         }
  111.                                                         break;
  112. +                                               case 53489:
  113. +                                               case 59578: // The Art of War (Paladin talent) should disappear only from flash of light or exorcism
  114. +                                                       {
  115. +                                                               if(CastingSpell->NameHash != SPELL_HASH_FLASH_OF_LIGHT || CastingSpell->NameHash != SPELL_HASH_EXORCISM)
  116. +                                                                       continue;
  117. +                                                       }
  118. +                                                       break;
  119.                                                 case 65156: // Juggernaut
  120.                                                         {
  121.                                                                 if(CastingSpell->NameHash != SPELL_HASH_MORTAL_STRIKE &&
  122. @@ -4286,7 +4283,9 @@ void Unit::AddAura(Aura* aur)
  123.                 }
  124.         }
  125.  
  126. -       if(aur->GetSpellProto()->School && SchoolImmunityList[aur->GetSpellProto()->School])
  127. +       if(aur->GetSpellProto()->School && SchoolImmunityList[aur->GetSpellProto()->School]
  128. +       && !aur->IsPositive() && aur->GetSpellProto()->Attributes && aur->GetSpellProto()->Attributes != ATTRIBUTES_IGNORE_INVULNERABILITY)
  129. +       // basically if aura is not positive and aura does not have ignore invulnerability flag, delete aura
  130.         {
  131.                 delete aur;
  132.                 return;
  133. @@ -8098,13 +8109,9 @@ bool Unit::IsCriticalDamageForSpell(Object* victim, SpellEntry* spell)
  134.         // HACK!!!
  135.         Aura* fs = NULL;
  136.         if(victim->IsUnit()
  137.                 && spell->NameHash == SPELL_HASH_LAVA_BURST
  138.                 && ( fs = TO< Unit* >(victim)->FindAuraByNameHash(SPELL_HASH_FLAME_SHOCK) ) != NULL)
  139. -       {
  140.                 result = true;
  141. -               if( !HasAura(55447) )   // Glyph of Flame Shock
  142. -                       fs->Remove();
  143. -       }
  144.  
  145.         return result;
  146.  }
  147. diff --git a/src/arcemu-world/Spell.cpp b/src/arcemu-world/Spell.cpp
  148. index 821e3ae..2cf22ff 100644
  149. --- a/src/arcemu-world/Spell.cpp
  150. +++ b/src/arcemu-world/Spell.cpp
  151. @@ -2881,16 +2881,12 @@ void Spell::HandleAddAura(uint64 guid)
  152.  
  153.         uint32 spellid = 0;
  154.  
  155.         if((GetProto()->MechanicsType == MECHANIC_INVULNARABLE && GetProto()->Id != 25771) || GetProto()->Id == 31884)     // Cast spell Forbearance
  156.         {
  157.                 if(GetProto()->Id != 31884)
  158.                         spellid = 25771;
  159.  
  160. -               if(Target->IsPlayer())
  161. -               {
  162. -                       sEventMgr.AddEvent(TO< Player* >(Target), &Player::AvengingWrath, EVENT_PLAYER_AVENGING_WRATH, 30000, 1, EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);
  163. -                       TO< Player* >(Target)->mAvengingWrath = false;
  164. -               }
  165. +               p_caster->CastSpell(unitTarget, 61987, true);
  166.         }
  167.         else if(GetProto()->MechanicsType == MECHANIC_HEALING && GetProto()->Id != 11196)  // Cast spell Recently Bandaged
  168.                 spellid = 11196;
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top