[7469] Allow scripting aura spell triggering in case not existed spell. Author: VladimirMangos
--HG-- branch : trunk
This commit is contained in:
+10
-14
@@ -43,6 +43,7 @@
|
||||
#include "OutdoorPvP.h"
|
||||
#include "OutdoorPvPMgr.h"
|
||||
#include "CreatureAI.h"
|
||||
#include "ScriptCalls.h"
|
||||
#include "Util.h"
|
||||
#include "GridNotifiers.h"
|
||||
#include "GridNotifiersImpl.h"
|
||||
@@ -1310,7 +1311,7 @@ void Aura::TriggerSpell()
|
||||
caster->ModifyPower( POWER_MANA, mana );
|
||||
caster->SendEnergizeSpellLog(caster, 23493, mana, POWER_MANA);
|
||||
}
|
||||
break;
|
||||
return;
|
||||
}
|
||||
// // Stoneclaw Totem Passive TEST
|
||||
// case 23792: break;
|
||||
@@ -1389,8 +1390,6 @@ void Aura::TriggerSpell()
|
||||
// case 28522: break;
|
||||
// // Silithyst
|
||||
// case 29519: break;
|
||||
// // Inoculate Nestlewood Owlkin
|
||||
case 29528: trigger_spell_id = 28713; break;
|
||||
// // Overload
|
||||
// case 29768: break;
|
||||
// // Return Fire
|
||||
@@ -1432,7 +1431,6 @@ void Aura::TriggerSpell()
|
||||
creature->SetHealth(0); // just for nice GM-mode view
|
||||
}
|
||||
return;
|
||||
break;
|
||||
}
|
||||
// Quake
|
||||
case 30576: trigger_spell_id = 30571; break;
|
||||
@@ -1826,13 +1824,9 @@ void Aura::TriggerSpell()
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// Reget trigger spell proto
|
||||
triggeredSpellInfo = sSpellStore.LookupEntry(trigger_spell_id);
|
||||
if(triggeredSpellInfo == NULL)
|
||||
{
|
||||
sLog.outError("Aura::TriggerSpell: Spell %u have 0 in EffectTriggered[%d], not handled custom case?",GetId(),GetEffIndex());
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1884,17 +1878,19 @@ void Aura::TriggerSpell()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!caster->GetSpellMaxRangeForTarget(m_target,sSpellRangeStore.LookupEntry(triggeredSpellInfo->rangeIndex)))
|
||||
target = m_target; //for druid dispel poison
|
||||
m_target->CastSpell(target, triggeredSpellInfo, true, 0, this, GetCasterGUID());
|
||||
|
||||
if(triggeredSpellInfo)
|
||||
m_target->CastSpell(target, triggeredSpellInfo, true, 0, this, GetCasterGUID());
|
||||
else if(target->GetTypeId()!=TYPEID_UNIT || !Script->EffectDummyCreature(caster, GetId(), GetEffIndex(), (Creature*)target))
|
||||
sLog.outError("Aura::TriggerSpell: Spell %u have 0 in EffectTriggered[%d], not handled custom case?",GetId(),GetEffIndex());
|
||||
}
|
||||
|
||||
Unit* Aura::GetTriggerTarget() const
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*m_target,
|
||||
/*m_target->GetTypeId()==TYPEID_PLAYER ?
|
||||
((Player*)m_target)->GetSelection() :*/
|
||||
m_target->GetUInt64Value(UNIT_FIELD_TARGET));
|
||||
Unit* target = ObjectAccessor::GetUnit(*m_target, m_target->GetUInt64Value(UNIT_FIELD_TARGET));
|
||||
return target ? target : m_target;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user