Jump to content

[FIX][8985] Shaman's Hex break


Auntie Mangos

Recommended Posts

What bug does the patch fix? What features does the patch add?

Let damage break spell 51514 and similar effects, as expected.

For which repository revision was the patch created?

7795+

Is there a thread in the bug report section or at lighthouse?

If yes, please add a link to the thread.

http://getmangos.eu/community/viewtopic.php?id=7833

Who has been writing this patch?

Me

http://github.com/dragonshard/mangos/commit/fec673c38f4888c64170cabe96dbd7f6523838d9

Note:

This patch also fix the bug (no idea if it was report, sorry) that some transform auras were removed if you take damage when you're confused by a 3rd part spell.

Example: Use Orb of Deception, cast on youself spells like blind or similar, and take damage. Yuo're instantly demorphed.

@Devs:

One more thing. It's right that at level 80 (watching at the formulas in Unit::RemoveSpellbyDamageTaken) you have to do only 1850+ damage to break a spell effect or it should be reviewed?

Link to comment
Share on other sites

  • 39 years later...
  • 4 weeks later...
How can i apply this patch using git.

Am trying to use

git pull git://github.com/dragonshard/mangos.git fec673c38f4888c64170cabe96dbd7f6523838d9

since i can't find the correct format.

You should use git cherry-pick <hash> to take a single commit from a repository ;)

Link to comment
Share on other sites

  • 4 months later...

That patch make shadow priest's spell "Dispersion" to be removed with chance when someone attacks you

Fixed

diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 23c0cac..5733001 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -749,9 +749,15 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa
                ((Creature*)pVictim)->AI()->AttackedBy(this);
        }

-        // polymorphed and other negative transformed cases
-        if(pVictim->getTransForm() && pVictim->hasUnitState(UNIT_STAT_CONFUSED))
-            pVictim->RemoveAurasDueToSpell(pVictim->getTransForm());
+        // polymorphed, hex and other negative transformed cases
+        uint32 morphspell = pVictim->getTransForm();
+        if(morphspell && !IsPositiveSpell(morphspell))
+        {
+            if (IsSpellHaveAura(sSpellStore.LookupEntry(morphspell), SPELL_AURA_MOD_CONFUSE))
+                pVictim->RemoveAurasDueToSpell(morphspell);
+            else if (IsSpellHaveAura(sSpellStore.LookupEntry(morphspell), SPELL_AURA_MOD_PACIFY_SILENCE))
+                pVictim->RemoveSpellbyDamageTaken(SPELL_AURA_MOD_PACIFY_SILENCE, damage);
+        }

        if(damagetype == DIRECT_DAMAGE || damagetype == SPELL_DIRECT_DAMAGE)
        {

Link to comment
Share on other sites

only morphs, it doesn't actually keep the target from attacking me.

diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 3bf098f..9210653 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -5920,9 +5920,6 @@ void Aura::HandleAuraUntrackable(bool apply, bool /*Real*/)

void Aura::HandleAuraModPacify(bool apply, bool /*Real*/)
{
-    if(m_target->GetTypeId() != TYPEID_PLAYER)
-        return;
-
    if(apply)
        m_target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
    else

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...
Guest
This topic is now closed to further replies.
×
×
  • 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