From 1f785905d548257b56d83f180f3d8e94e8de0634 Mon Sep 17 00:00:00 2001 From: Pitcrawler Date: Sat, 8 Jun 2013 16:21:24 +0200 Subject: DB/Quests: Fix Danger! Explosives!, closes #6850 closes #9458 --- src/server/scripts/Spells/spell_generic.cpp | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/server/scripts/Spells') diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index c60f4f07821..f2b65c106ea 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -3562,6 +3562,47 @@ class spell_gen_orc_disguise : public SpellScriptLoader } }; +enum WhisperGulchYoggSaronWhisper +{ + SPELL_YOGG_SARON_WHISPER_DUMMY = 29072, + CREATURE_UNKNOWN_VOICE = 29881 +}; + +class spell_gen_whisper_gulch_yogg_saron_whisper : public SpellScriptLoader +{ + public: + spell_gen_whisper_gulch_yogg_saron_whisper() : SpellScriptLoader("spell_gen_whisper_gulch_yogg_saron_whisper") { } + + class spell_gen_whisper_gulch_yogg_saron_whisper_AuraScript : public AuraScript + { + PrepareAuraScript(spell_gen_whisper_gulch_yogg_saron_whisper_AuraScript); + + bool Validate(SpellInfo const* /*spellInfo*/) + { + if (!sSpellMgr->GetSpellInfo(SPELL_YOGG_SARON_WHISPER_DUMMY)) + return false; + return true; + } + + void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) + { + PreventDefaultAction(); + if (Unit* caster = GetCaster()) + caster->CastSpell(caster->FindNearestCreature(CREATURE_UNKNOWN_VOICE,100), SPELL_YOGG_SARON_WHISPER_DUMMY, true); + } + + void Register() + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_whisper_gulch_yogg_saron_whisper_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + } + }; + + AuraScript* GetAuraScript() const + { + return new spell_gen_whisper_gulch_yogg_saron_whisper_AuraScript(); + } +}; + void AddSC_generic_spell_scripts() { new spell_gen_absorb0_hitlimit1(); @@ -3642,4 +3683,5 @@ void AddSC_generic_spell_scripts() new spell_gen_replenishment(); new spell_gen_aura_service_uniform(); new spell_gen_orc_disguise(); + new spell_gen_whisper_gulch_yogg_saron_whisper(); } -- cgit v1.2.3 From 368e3c17a1b2ade2e4fc8e3e38c78678a4e1d927 Mon Sep 17 00:00:00 2001 From: Pitcrawler Date: Sat, 8 Jun 2013 19:30:40 +0200 Subject: Core/Scripts: Simplify spellscript from 1f785905d548257b56d83f180f3d8e94e8de0634 --- src/server/scripts/Spells/spell_generic.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/server/scripts/Spells') diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index f2b65c106ea..c591f3141ed 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -3564,8 +3564,7 @@ class spell_gen_orc_disguise : public SpellScriptLoader enum WhisperGulchYoggSaronWhisper { - SPELL_YOGG_SARON_WHISPER_DUMMY = 29072, - CREATURE_UNKNOWN_VOICE = 29881 + SPELL_YOGG_SARON_WHISPER_DUMMY = 29072 }; class spell_gen_whisper_gulch_yogg_saron_whisper : public SpellScriptLoader @@ -3587,8 +3586,7 @@ class spell_gen_whisper_gulch_yogg_saron_whisper : public SpellScriptLoader void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) { PreventDefaultAction(); - if (Unit* caster = GetCaster()) - caster->CastSpell(caster->FindNearestCreature(CREATURE_UNKNOWN_VOICE,100), SPELL_YOGG_SARON_WHISPER_DUMMY, true); + GetTarget()->CastSpell((Unit*)NULL, SPELL_YOGG_SARON_WHISPER_DUMMY, true); } void Register() -- cgit v1.2.3