diff options
author | azazel <none@none> | 2010-08-06 23:03:43 +0600 |
---|---|---|
committer | azazel <none@none> | 2010-08-06 23:03:43 +0600 |
commit | 2562a4651f94e2dc40ccce108a2497c2c26bfff6 (patch) | |
tree | 65baee9a439e324c2761731817cac93fd1c4e698 | |
parent | b63a31f513db5274e85afc323d143292d8f3e88f (diff) |
Moved Pain and Suffering (47948) script effect to spell script.
--HG--
branch : trunk
-rw-r--r-- | sql/base/world_database.sql | 1 | ||||
-rw-r--r-- | sql/updates/9199_world_spell_script_names.sql | 2 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 19 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 28 |
4 files changed, 31 insertions, 19 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index 8e769eb010e..656f1ead05c 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -14731,6 +14731,7 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES ( 31231, 'spell_rog_cheat_death'), ( 51662, 'spell_rog_hunger_for_blood'), -- priest +( 47948, 'spell_pri_pain_and_suffering_proc'), (-47540, 'spell_pri_penance'), -- death knight -- shaman diff --git a/sql/updates/9199_world_spell_script_names.sql b/sql/updates/9199_world_spell_script_names.sql new file mode 100644 index 00000000000..0ba1b525fbc --- /dev/null +++ b/sql/updates/9199_world_spell_script_names.sql @@ -0,0 +1,2 @@ +DELETE FROM `spell_script_names` WHERE `spell_id`=47948 AND `ScriptName`='spell_pri_pain_and_suffering_proc'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES (47948, 'spell_pri_pain_and_suffering_proc');
\ No newline at end of file diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 9fd56495db3..a42501a8ac5 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -5928,25 +5928,6 @@ void Spell::EffectScriptEffect(uint32 effIndex) } break; } - case SPELLFAMILY_PRIEST: - { - switch(m_spellInfo->Id) - { - // Pain and Suffering - case 47948: - { - if (!unitTarget) - return; - // Refresh Shadow Word: Pain on target - if (AuraEffect * aur = unitTarget->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_PRIEST, 0x8000, 0, 0, m_caster->GetGUID())) - aur->GetBase()->RefreshDuration(); - return; - } - default: - break; - } - break; - } case SPELLFAMILY_HUNTER: { switch(m_spellInfo->Id) diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index c78efc15a22..8c2fffa9c5b 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -22,6 +22,7 @@ */ #include "ScriptPCH.h" +#include "SpellAuraEffects.h" enum PriestSpells { @@ -30,6 +31,28 @@ enum PriestSpells PRIEST_SPELL_PENANCE_R1_HEAL = 47757, }; +// 47948 Pain and Suffering (proc) +class spell_pri_pain_and_suffering_proc_SpellScript : public SpellScript +{ + void HandleEffectScriptEffect(SpellEffIndex effIndex) + { + // Refresh Shadow Word: Pain on target + if (Unit *unitTarget = GetHitUnit()) + if (AuraEffect* aur = unitTarget->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_PRIEST, 0x8000, 0, 0, GetCaster()->GetGUID())) + aur->GetBase()->RefreshDuration(); + } + + void Register() + { + EffectHandlers += EffectHandlerFn(spell_pri_pain_and_suffering_proc_SpellScript::HandleEffectScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + +SpellScript *GetSpellScript_spell_pri_pain_and_suffering_proc() +{ + return new spell_pri_pain_and_suffering_proc_SpellScript(); +} + class spell_pri_penance_SpellScript : public SpellScript { bool Validate(SpellEntry const * spellEntry) @@ -82,6 +105,11 @@ void AddSC_priest_spell_scripts() Script *newscript; newscript = new Script; + newscript->Name = "spell_pri_pain_and_suffering_proc"; + newscript->GetSpellScript = &GetSpellScript_spell_pri_pain_and_suffering_proc; + newscript->RegisterSelf(); + + newscript = new Script; newscript->Name = "spell_pri_penance"; newscript->GetSpellScript = &GetSpellScript_spell_pri_penance; newscript->RegisterSelf(); |