diff options
| author | megamage <none@none> | 2009-05-23 01:43:46 -0500 |
|---|---|---|
| committer | megamage <none@none> | 2009-05-23 01:43:46 -0500 |
| commit | ec24442af402d7ace4e74bb9ce5e36db89656f79 (patch) | |
| tree | 62ac885dc8336d7ab8b6db3316ba133592cde2fa /src/game | |
| parent | a417e71e15b88f39f53c80d84031bffde95971a2 (diff) | |
*Fix rock shards spell for archavon script.
--HG--
branch : trunk
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/Spell.cpp | 2 | ||||
| -rw-r--r-- | src/game/SpellEffects.cpp | 20 | ||||
| -rw-r--r-- | src/game/SpellMgr.cpp | 4 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 0ea03caad51..98439997306 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2044,6 +2044,8 @@ void Spell::SetTargetMap(uint32 i, uint32 cur) case TARGET_DEST_CHANNEL: if(m_originalCaster->m_currentSpells[CURRENT_CHANNELED_SPELL]->m_targets.HasDst()) m_targets = m_originalCaster->m_currentSpells[CURRENT_CHANNELED_SPELL]->m_targets; + else if(Unit* target = m_originalCaster->m_currentSpells[CURRENT_CHANNELED_SPELL]->m_targets.getUnitTarget()) + m_targets.setDestination(target); else sLog.outError( "SPELL: cannot find channel spell destination for spell ID %u", m_spellInfo->Id ); break; diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 696071dec97..89e53ed566b 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4933,6 +4933,26 @@ void Spell::EffectScriptEffect(uint32 effIndex) return; } + case 58941: // Rock Shards + if(unitTarget && m_originalCaster) + { + for(uint32 i = 0; i < 5; ++i) + { + m_originalCaster->CastSpell(unitTarget, 58689, true); + m_originalCaster->CastSpell(unitTarget, 58692, true); + } + if(m_originalCaster->GetMap()->IsHeroic()) + { + m_originalCaster->CastSpell(unitTarget, 60883, true); + m_originalCaster->CastSpell(unitTarget, 60884, true); + } + else + { + m_originalCaster->CastSpell(unitTarget, 58695, true); + m_originalCaster->CastSpell(unitTarget, 58696, true); + } + } + return; case 59317: // Teleporting if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) return; diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index c09bec5d013..2737cbef54b 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -3161,6 +3161,10 @@ void SpellMgr::LoadSpellCustomAttr() case TARGET_TYPE_DEST_TARGET: spellInfo->Targets |= TARGET_FLAG_UNIT; break; + //case TARGET_TYPE_AREA_DST: + //case TARGET_TYPE_DEST_DEST: + // spellInfo->Targets |= TARGET_FLAG_DEST_LOCATION; + // break; } } |
