Jump to content

Dispel magic,and Mass dispel


Auntie Mangos
 Share

Recommended Posts

  • 39 years later...

Hi friends

Mangos revision 8543

linux x64(little endian)

scriptdev 8443+

How it SHOULD work: Mass dispel, Can remove the paladin's bubles

How it DOES work: Mass dispel, doesn't remove paladin's bubles

How it SHOULD work: dispel magic, the must remove 2 efects dangerous for you,or remove 2 magic efect's from the oponent

How it DOES work: dispel magic: they only remove 1 efect dangeros for you,or remove 1 magic efect from the oponent.

:) thanks to read it

Link to comment
Share on other sites

It can remove effects that are normally undispellable, like the Paladin Divine Shield and the Mage Ice Block, as well as Banish some mobs use.

# Patch 2.2.0 (2007-09-25): Has a chance to be resisted when dispelling immunity effects. This will be displayed in the combat log. In addition, it will no longer cause rogues and druids in Cat Form to lose Stealth. The flashing area graphic has been removed.

# Patch 2.4 (2008-03-25): Increased the number of affected targets from 5 to 10.

:)

Link to comment
Share on other sites

no,Dispel magic cannot remove paladins buble,and Ice block,only can Mass dispel, and Mass dispel doesen't remove it, Normal dispel, only remove 1 buff or 1 debuff,and must remove 2 debuff or 2 buff.

dispell magic

How it should work: dispell magic cant remove imunity effects (paladin bubles, mage's ice block, ...)

How it works now: dispell magic is removing imunity effects (paladin bubles, mage's ice block, ...)

mass dispell:

How it should work: mass dispell removes also magic efects which are undispellable with dispell magic (paladin bubles, mage's ice block, ...)

How it works now: mass dispell does nothing

Link to comment
Share on other sites

no,Dispel magic cannot remove paladins buble,and Ice block,only can Mass dispel, and Mass dispel doesen't remove it, Normal dispel, only remove 1 buff or 1 debuff,and must remove 2 debuff or 2 buff.

I didn't say how it should work, I said how it's working now.

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

Dispel Magic can dispell immunity spell because of this piece of code in SpellMissInfo Unit::SpellHitResult()

       if (IsPositiveSpell(spell->Id))
           return SPELL_MISS_NONE;

Now I use this instead and problem solved

       if (IsPositiveSpell(spell->Id) && IsFriendlyTo(pVictim))
           return SPELL_MISS_NONE;

For Mass Dispel I used hacky way ( it includes pevious code )

// Mass Dispel bypass immunity
if( !( spell->Id == 32375 || spell->Id == 32592 || spell->Id == 39897 ) )
   {
       // Check for immune
       if (pVictim->IsImmunedToSpell(spell))
       {
           if( spell->Id == 64382 )
               pVictim->RemoveSpellsCausingAura(SPELL_AURA_MECHANIC_IMMUNITY);
           return SPELL_MISS_IMMUNE;
       }
       // All positive spells can`t miss
       // TODO: client not show miss log for this spells - so need find info for this in dbc and use it!
       if (IsPositiveSpell(spell->Id) && IsFriendlyTo(pVictim))
           return SPELL_MISS_NONE;

       // Check for immune
       if (pVictim->IsImmunedToDamage(GetSpellSchoolMask(spell)))
           return SPELL_MISS_IMMUNE;
   }
   else if (IsPositiveSpell(spell->Id) && IsFriendlyTo(pVictim))
       return SPELL_MISS_NONE;

Link to comment
Share on other sites

Good idea, but you forgot - dispel should be considered as negative spell if target isn't friendly. So dispel and mass dispel can be resisted. With your patch it never be resisted (because they still positive).

need something like

        case SPELL_EFFECT_DISPEL:
       {
           if (m_caster->IsFriendlyTo(pVictim))
               return true;
           else
               return false;
           break;
       }

in bool IsPositiveEffect (SpellMgr.cpp)

But this doesn't work because m_caster and pVictim isn't declared in SpellMgr.cpp

Link to comment
Share on other sites

Good idea, but you forgot - dispel should be considered as negative spell if target isn't friendly. So dispel and mass dispel can be resisted. With your patch it never be resisted (because they still positive).

need something like

        case SPELL_EFFECT_DISPEL:
       {
           if (m_caster->IsFriendlyTo(pVictim))
               return true;
           else
               return false;
           break;
       }

in bool IsPositiveEffect (SpellMgr.cpp)

But this doesn't work because m_caster and pVictim isn't declared in SpellMgr.cpp

They can miss and be resisted because I have this check

 if ( IsPositiveSpell(spell->Id) && IsFriendlyTo(pVictim) ) 

instead of classic one

 if ( IsPositiveSpell(spell->Id))

and later there is no friendly check

Link to comment
Share on other sites

  • 3 months later...
  • 3 weeks later...
  • 1 month later...
  • 1 month later...
  • 2 weeks later...

As far as i know the Mass dispel remove 1 magical benefical buff ( from enemy's) and 1 magical debuff (from allys) and in orther it dispels invulnerability spells like bubble and ice block instead of normal buffs like blessing or some other kind of buffs, and dispel only remove 2 magical buffs (from enemy's) and 2 debuffs (from allys) and it should not traspase the invulnerabilities and removes buffs like it does atm, and after dispel ur buffs it dispels ur invulnerability, is kidna annoying in PvP

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

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