Jump to content

[patch]Remove Immunity Effect for Shattering Throw


Recommended Posts

Posted

I will test it today and give you feedback

Added:

It doesn't work for me, maybe because my sources is modified a bit in immune part...

Added:

I've found why patch doesn't work with my sources :) after fix i will feedback

Added:

Patch work as should. Thanks

Posted

RemoveAurasDueToMechanic can be also used for removing snare mechanic at using charge if warbbringer is skilled works also correctly i will post patch if i added correct 262 handling for making warbringer and juggernaut finally work

Posted
RemoveAurasDueToMechanic can be also used for removing snare mechanic at using charge if warbbringer is skilled works also correctly i will post patch if i added correct 262 handling for making warbringer and juggernaut finally work

Any results?

Posted
for making warbringer and juggernaut finally work

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index ff6d791..a25b38d 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -1011,13 +1011,18 @@ void Aura::_AddAura()
        }
    }

-    if (IsNeedVisibleSlot(caster))
+    // Test hack of set slot and aura update of Warbringer and Juggernaut 
+    if (IsNeedVisibleSlot(caster) || ((m_spellProto->Id == 57499 || m_spellProto->Id == 64976) && m_spellProto->EffectApplyAuraName[GetEffIndex()] == SPELL_AURA_262))
    {
        SetAuraSlot( slot );
        if(slot < MAX_AURAS)                        // slot found send data to client
        {
            SetAura(false);
-            SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE));
+            // Send new auraFlags 
+            if ((m_spellProto->Id == 57499 || m_spellProto->Id == 64976) && m_spellProto->EffectApplyAuraName[GetEffIndex()] == SPELL_AURA_262) 
+                SetAuraFlags((7) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE)); 
+            else 
+                SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE));
            SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL));
            SendAuraUpdate(false);
        }

Author: MaS0n from getmangos.ru

Posted

ok thx i did not test it yet but looks proper should not have any spamm effect for spells using 262

what about this patch? any chance for implementation to 0.15 ? :D

Posted

maybe something is at wrong place or you got to add ignore immunity for triggered spell but for me it worked without this

try on clean mangos core with many patches applied it can happen that some parts were added at wrong places - note this is acutally written for rev 85xx

Posted

yes thats why you got to add the triggered effect to ignore immunity spells in code i will update patch later - sry i missed that part... was wondering why it did not work for you @ gamemaster =)

  • 2 weeks later...
Posted
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index ff6d791..a25b38d 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -1011,13 +1011,18 @@ void Aura::_AddAura()
        }
    }

-    if (IsNeedVisibleSlot(caster))
+    // Test hack of set slot and aura update of Warbringer and Juggernaut 
+    if (IsNeedVisibleSlot(caster) || ((m_spellProto->Id == 57499 || m_spellProto->Id == 64976) && m_spellProto->EffectApplyAuraName[GetEffIndex()] == SPELL_AURA_262))
    {
        SetAuraSlot( slot );
        if(slot < MAX_AURAS)                        // slot found send data to client
        {
            SetAura(false);
-            SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE));
+            // Send new auraFlags 
+            if ((m_spellProto->Id == 57499 || m_spellProto->Id == 64976) && m_spellProto->EffectApplyAuraName[GetEffIndex()] == SPELL_AURA_262) 
+                SetAuraFlags((7) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE)); 
+            else 
+                SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE));
            SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL));
            SendAuraUpdate(false);
        }

Author: MaS0n from getmangos.ru

work for me:)

Posted

Patch for Shattering throw doesn't work anymore. Spell 64380 can't remove immunity effects from target and spell 64382 does too small damage (i think second problem should be fixed by other way)

tested on 8780 rev

In file spelleffects.cpp

First can be fixed by replacing

unitTarget->RemoveAurasDueToMechanic(1<<MECHANIC_IMMUNE_SHIELD);

to

unitTarget->RemoveAurasDueToMechanic(1<<(MECHANIC_IMMUNE_SHIELD-1));

Second by add

                // Shattering Throw ${$m1+$AP*.50}
               else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0040000000000000))
                   damage+= uint32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.5f);

under

                // Heroic Throw ${$m1+$AP*.50}
               else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000000100000000))
                   damage+= uint32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.5f);

Working patch is here http://paste2.org/p/503679

  • 1 month later...
Posted

the trainable spell seems to be 64382 (damage), and it doesnt have SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY like 64380 (script effect)

didnt test yet, but if 64382 its the spell casted by client then 64380 needs to be added as precast spell to remove immunity so the dmg part can land

  • 3 weeks later...
Posted
Fixed in hackish form in my repo, but you need to use both patches (17 and this) or apply it manually http://github.com/insider42/mangos/commit/3851daef08ccf708ddc87f0e30c0ee55c15a35cc

anyway spell won't remove immunities if you add precast spell. I just allowed spell 64382 to remove immunity effects and it works.

Hackish bug 70% good :) It removes Divine Shield & Hand of Protection rank 1,2,3 but doesn't remove the Ice Block from mage. Any ideea?

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use