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

[svn] Fix hunter's frozen trap, half duration when pvp.
Use vector to store linked spell information to support multiple effects.

Original author: megamage
Date: 2008-11-03 17:20:35-06:00

Files:
1 modified

Legend:

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

    r148 r157  
    10561056        ((Creature*)m_caster)->AI()->SpellHitTarget(unit, m_spellInfo); 
    10571057 
    1058     if(int32 spell_triggered = spellmgr.GetSpellLinked(m_spellInfo->Id, 1)) 
    1059     { 
    1060         if(spell_triggered > 0) 
    1061             unit->CastSpell(unit, spell_triggered, true, 0, 0, m_caster->GetGUID()); 
    1062         else 
    1063             unit->RemoveAurasDueToSpell(-spell_triggered); 
     1058    if(const std::vector<int32> *spell_triggered = spellmgr.GetSpellLinked(m_spellInfo->Id + 1000000)) 
     1059    { 
     1060        for(std::vector<int32>::const_iterator i = spell_triggered->begin(); i != spell_triggered->end(); ++i) 
     1061        { 
     1062            if(spell_triggered < 0) 
     1063                unit->RemoveAurasDueToSpell(-(*i)); 
     1064            else 
     1065                unit->CastSpell(unit, *i, true, 0, 0, m_caster->GetGUID()); 
     1066        } 
    10641067    } 
    10651068} 
     
    22532256    } 
    22542257 
    2255     if(int32 spell_triggered = spellmgr.GetSpellLinked(m_spellInfo->Id, 0)) 
    2256     { 
    2257         if(spell_triggered > 0) 
    2258             m_caster->CastSpell(m_targets.getUnitTarget() ? m_targets.getUnitTarget() : m_caster, spell_triggered, true); 
    2259         else 
    2260             m_caster->RemoveAurasDueToSpell(-spell_triggered); 
     2258    if(const std::vector<int32> *spell_triggered = spellmgr.GetSpellLinked(m_spellInfo->Id)) 
     2259    { 
     2260        for(std::vector<int32>::const_iterator i = spell_triggered->begin(); i != spell_triggered->end(); ++i) 
     2261        { 
     2262            if(spell_triggered < 0) 
     2263                m_caster->RemoveAurasDueToSpell(-(*i)); 
     2264            else 
     2265                m_caster->CastSpell(m_targets.getUnitTarget() ? m_targets.getUnitTarget() : m_caster, *i, true); 
     2266        } 
    22612267    } 
    22622268