Show
Ignore:
Timestamp:
11/19/08 13:47:00 (17 years ago)
Author:
yumileroy
Message:

[svn] Fix some aura_interrupt_flag to correctly remove auras.
Add interrupt_flag_unattackable. Source: mangos forum. Adapted by F636y623.
Add function CombatStart?().

Original author: megamage
Date: 2008-11-11 17:49:51-06:00

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/game/SpellAuras.cpp

    r207 r213  
    30723072        m_target->addUnitState(UNIT_STAT_DIED); 
    30733073        m_target->CombatStop(); 
     3074        m_target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_UNATTACKABLE); 
    30743075 
    30753076        // prevent interrupt message 
     
    32113212        { 
    32123213            // drop flag at stealth in bg 
    3213             if(((Player*)m_target)->InBattleGround()) 
    3214             { 
    3215                 if(BattleGround *bg = ((Player*)m_target)->GetBattleGround()) 
    3216                     bg->EventPlayerDroppedFlag((Player*)m_target); 
    3217             } 
     3214            m_target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_UNATTACKABLE); 
     3215 
    32183216            // remove player from the objective's active player count at stealth 
    32193217            if(OutdoorPvP * pvp = ((Player*)m_target)->GetOutdoorPvP()) 
     
    32993297        m_target->m_invisibilityMask |= (1 << m_modifier.m_miscvalue); 
    33003298 
     3299        m_target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_UNATTACKABLE); 
     3300 
    33013301        if(Real && m_target->GetTypeId()==TYPEID_PLAYER) 
    33023302        { 
     
    33063306            if(OutdoorPvP * pvp = ((Player*)m_target)->GetOutdoorPvP()) 
    33073307                pvp->HandlePlayerActivityChanged((Player*)m_target); 
    3308  
    3309             // drop flag at invisible in bg 
    3310             if(((Player*)m_target)->InBattleGround()) 
    3311                 if(BattleGround *bg = ((Player*)m_target)->GetBattleGround()) 
    3312                     bg->EventPlayerDroppedFlag((Player*)m_target); 
    33133308        } 
    33143309 
     
    38173812void Aura::HandleAuraModSchoolImmunity(bool apply, bool Real) 
    38183813{ 
     3814    if(apply && m_modifier.m_miscvalue == SPELL_SCHOOL_MASK_NORMAL) 
     3815        m_target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_UNATTACKABLE); 
     3816  
    38193817    m_target->ApplySpellImmune(GetId(),IMMUNITY_SCHOOL,m_modifier.m_miscvalue,apply); 
    38203818 
     
    53775375{ 
    53785376    if(Real && Apply) 
     5377    { 
    53795378        m_target->CombatStop(); 
     5379        m_target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_UNATTACKABLE); 
     5380    } 
    53805381 
    53815382    m_target->ApplyModFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE,Apply);