Jump to content

[fix][7476] Survival Instincts


Recommended Posts

Posted

2

1

2

1

2

1

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 478c1ae..242aa4c 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2314,6 +2314,26 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
                ((Player*)m_target)->AddSpellMod(m_spellmod, apply);
                return;
            }
+            //Druid, Survival Instincts
+            if(GetSpellProto()->SpellIconID == 3707 && GetSpellProto()->SpellVisual[0] == 2758)
+            {
+                if(!m_target)
+                    return;
+
+                if(m_target->m_form != FORM_CAT ||
+                   m_target->m_form != FORM_BEAR ||
+                   m_target->m_form != FORM_DIREBEAR)
+                   return;
+
+                if(apply)
+                {
+                   int32 bp0 = int32(m_target->GetMaxHealth() * m_modifier.m_amount / 100);
+                   m_target->CastCustomSpell(m_target, 50322, &bp0, NULL, NULL, true);
+                }
+                else if(!apply && m_removeMode != AURA_REMOVE_BY_DEFAULT)
+                  m_target-> RemoveAurasDueToSpell(50322);
+                return;
+            }
            break;
        }
        case SPELLFAMILY_HUNTER: 

Patchfile

Posted

Before anyone would ask what is this:

+                else if(!apply && m_removeMode != AURA_REMOVE_BY_DEFAULT)
+                  m_target-> RemoveAurasDueToSpell(50322);

This is required to remove the 'triggered' spell if the 'triggering' is removed with not default remove mode.

Posted

Tested with some revs up to 7460, it works almost properly. The only mistake is, this can be activated ony in cat/bear form, and your patch makes it usable in any form.

Posted

Form must be tested in CheckCast and exist specail check for feral forms: player->IsInFeralForm()

if(GetSpellProto()->SpellIconID == 3707 && GetSpellProto()->SpellVisual[0] == 2758)

Why this need if this not ranked single spell with dummy aura.

if(!m_target)

return;

This is impossible for aura, or big bug in another place, anyway check useless.

In fact i have already writed partly weeks ago patch. I will merge it with yuor version.

If this will work.

×
×
  • 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