mirror of
https://github.com/araxiaonline/TrinityCore2.git
synced 2026-06-20 14:51:34 -04:00
Core/Spells: Moved dungeon encounter crediting to scripts
This commit is contained in:
@@ -1824,6 +1824,21 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
( 72757, 'spell_pvp_trinket_wotf_shared_cd'),
|
||||
( 46221, 'spell_gen_animal_blood'),
|
||||
( 70769, 'spell_gen_divine_storm_cd_reset'),
|
||||
( 58630, 'spell_gen_dungeon_credit'),
|
||||
( 59046, 'spell_gen_dungeon_credit'),
|
||||
( 59450, 'spell_gen_dungeon_credit'),
|
||||
( 61863, 'spell_gen_dungeon_credit'),
|
||||
( 64899, 'spell_gen_dungeon_credit'),
|
||||
( 64985, 'spell_gen_dungeon_credit'),
|
||||
( 65074, 'spell_gen_dungeon_credit'),
|
||||
( 65195, 'spell_gen_dungeon_credit'),
|
||||
( 68184, 'spell_gen_dungeon_credit'),
|
||||
( 68572, 'spell_gen_dungeon_credit'),
|
||||
( 68574, 'spell_gen_dungeon_credit'),
|
||||
( 68663, 'spell_gen_dungeon_credit'),
|
||||
( 72706, 'spell_gen_dungeon_credit'),
|
||||
( 72830, 'spell_gen_dungeon_credit'),
|
||||
( 72959, 'spell_gen_dungeon_credit'),
|
||||
-- instances
|
||||
-- Black Temple
|
||||
( 41475, 'spell_boss_lady_malande_shield'),
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_gen_dungeon_credit';
|
||||
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
|
||||
(58630,'spell_gen_dungeon_credit'),
|
||||
(59046,'spell_gen_dungeon_credit'),
|
||||
(59450,'spell_gen_dungeon_credit'),
|
||||
(61863,'spell_gen_dungeon_credit'),
|
||||
(64899,'spell_gen_dungeon_credit'),
|
||||
(64985,'spell_gen_dungeon_credit'),
|
||||
(65074,'spell_gen_dungeon_credit'),
|
||||
(65195,'spell_gen_dungeon_credit'),
|
||||
(68184,'spell_gen_dungeon_credit'),
|
||||
(68572,'spell_gen_dungeon_credit'),
|
||||
(68574,'spell_gen_dungeon_credit'),
|
||||
(68663,'spell_gen_dungeon_credit'),
|
||||
(72706,'spell_gen_dungeon_credit'),
|
||||
(72830,'spell_gen_dungeon_credit'),
|
||||
(72959,'spell_gen_dungeon_credit');
|
||||
@@ -3725,10 +3725,6 @@ void Spell::finish(bool ok)
|
||||
m_caster->ToPlayer()->SetSpellModTakingSpell(this, false);
|
||||
}
|
||||
|
||||
if (m_caster->GetTypeId() == TYPEID_UNIT)
|
||||
if (InstanceScript* instance = m_caster->GetInstanceScript())
|
||||
instance->UpdateEncounterState(ENCOUNTER_CREDIT_CAST_SPELL, m_spellInfo->Id, m_caster);
|
||||
|
||||
// Stop Attack for some spells
|
||||
if (m_spellInfo->Attributes & SPELL_ATTR0_STOP_ATTACK_TARGET)
|
||||
m_caster->AttackStop();
|
||||
|
||||
@@ -705,6 +705,47 @@ class spell_gen_parachute_ic : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
class spell_gen_dungeon_credit : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_gen_dungeon_credit() : SpellScriptLoader("spell_gen_dungeon_credit") { }
|
||||
|
||||
class spell_gen_dungeon_credit_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_dungeon_credit_SpellScript);
|
||||
|
||||
bool Load()
|
||||
{
|
||||
_handled = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void CreditEncounter()
|
||||
{
|
||||
// This hook is executed for every target, make sure we only credit instance once
|
||||
if (_handled)
|
||||
return;
|
||||
|
||||
_handled = true;
|
||||
if (GetCaster()->GetTypeId() == TYPEID_UNIT)
|
||||
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
|
||||
instance->UpdateEncounterState(ENCOUNTER_CREDIT_CAST_SPELL, GetSpellInfo()->Id, GetCaster());
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
AfterHit += SpellHitFn(spell_gen_dungeon_credit_SpellScript::CreditEncounter);
|
||||
}
|
||||
|
||||
bool _handled;
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_gen_dungeon_credit_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_generic_spell_scripts()
|
||||
{
|
||||
new spell_gen_absorb0_hitlimit1();
|
||||
@@ -723,4 +764,5 @@ void AddSC_generic_spell_scripts()
|
||||
new spell_gen_divine_storm_cd_reset();
|
||||
new spell_gen_parachute_ic();
|
||||
new spell_gen_gunship_portal();
|
||||
new spell_gen_dungeon_credit();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user