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