Core/Spells: Implement SPELL_EFFECT_CREATE_AREATRIGGER (effect #179)

This commit is contained in:
Shocker
2013-05-26 04:47:10 +03:00
parent f976c730a0
commit 1315306cfc
2 changed files with 22 additions and 1 deletions

View File

@@ -341,6 +341,7 @@ class Spell
void EffectRechargeManaGem(SpellEffIndex effIndex);
void EffectGiveCurrency(SpellEffIndex effIndex);
void EffectResurrectWithAura(SpellEffIndex effIndex);
void EffectCreateAreaTrigger(SpellEffIndex effIndex);
typedef std::set<Aura*> UsedSpellMods;

View File

@@ -67,6 +67,7 @@
#include "Guild.h"
#include "GuildMgr.h"
#include "ReputationMgr.h"
#include "AreaTrigger.h"
pEffect SpellEffects[TOTAL_SPELL_EFFECTS]=
{
@@ -249,7 +250,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]=
&Spell::EffectNULL, //176 SPELL_EFFECT_176
&Spell::EffectNULL, //177 SPELL_EFFECT_177
&Spell::EffectUnused, //178 SPELL_EFFECT_178 unused
&Spell::EffectNULL, //179 SPELL_EFFECT_CREATE_AREATRIGGER
&Spell::EffectCreateAreaTrigger, //179 SPELL_EFFECT_CREATE_AREATRIGGER
&Spell::EffectUnused, //180 SPELL_EFFECT_180 unused
&Spell::EffectUnused, //181 SPELL_EFFECT_181 unused
&Spell::EffectNULL, //182 SPELL_EFFECT_182
@@ -5894,3 +5895,22 @@ void Spell::EffectResurrectWithAura(SpellEffIndex effIndex)
target->SetResurrectRequestData(m_caster, health, mana, resurrectAura);
SendResurrectRequest(target);
}
void Spell::EffectCreateAreaTrigger(SpellEffIndex effIndex)
{
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT)
return;
Position pos;
if (!m_targets.HasDst())
GetCaster()->GetPosition(&pos);
else
destTarget->GetPosition(&pos);
// trigger entry/miscvalue relation is currently unknown, for now use MiscValue as trigger entry
uint32 triggerEntry = GetSpellInfo()->Effects[effIndex].MiscValue;
AreaTrigger * areaTrigger = new AreaTrigger;
if (!areaTrigger->CreateAreaTrigger(sObjectMgr->GenerateLowGuid(HIGHGUID_AREATRIGGER), triggerEntry, GetCaster(), GetSpellInfo(), pos))
delete areaTrigger;
}