aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2022-01-22 19:03:53 +0200
committerShauren <shauren.trinity@gmail.com>2022-03-25 23:42:43 +0100
commit8be723788dff8ccdd6d7f870d34dec83d348cdcd (patch)
treeda3ea8471ef94ff99c66db2cafb26b2fec5affe1 /src
parent4a65cf25acd046297a16c3a7e4b25b8b87c6ef06 (diff)
Scripts/Spells: Handle player talk in spell scripts pt 2 (#27640)
(cherry picked from commit 7a4f1fd2016c14b8f518dbd9fdad0b92c4270ce4)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/zone_sholazar_basin.cpp57
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp23
2 files changed, 23 insertions, 57 deletions
diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
index bfbe806410a..6b27c99cac1 100644
--- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
@@ -188,8 +188,6 @@ class spell_q12688_detonate_2 : public SpellScript
## npc_jungle_punch_target
#####*/
-#define SAY_OFFER "Care to try Grimbooze Thunderbrew's new jungle punch?"
-
enum JunglePunch
{
SPELL_OFFER = 51962,
@@ -357,7 +355,6 @@ public:
continue;
player->KilledMonsterCredit(me->GetEntry());
- player->Say(SAY_OFFER, LANG_UNIVERSAL);
sayStep = 1;
break;
}
@@ -626,59 +623,6 @@ public:
}
};
-/*######
-## Quest Dreadsaber Mastery: Stalking the Prey (12550)
-######*/
-
-enum ShangoTracks
-{
- SPELL_CORRECT_TRACKS = 52160,
- SPELL_INCORRECT_TRACKS = 52163,
- SAY_CORRECT_TRACKS = 28634,
- SAY_INCORRECT_TRACKS = 28635
-};
-
-// 52160 - Correct Tracks
-// 52163 - Incorrect Tracks
-class spell_shango_tracks : public SpellScriptLoader
-{
-public:
- spell_shango_tracks() : SpellScriptLoader("spell_shango_tracks") { }
-
- class spell_shango_tracks_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_shango_tracks_SpellScript);
-
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- if (Unit* target = GetHitUnit())
- {
- switch (GetSpellInfo()->Id)
- {
- case SPELL_CORRECT_TRACKS:
- target->Say(SAY_CORRECT_TRACKS, target);
- break;
- case SPELL_INCORRECT_TRACKS:
- target->Say(SAY_INCORRECT_TRACKS, target);
- break;
- default:
- break;
- }
- }
- }
-
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_shango_tracks_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
-
- SpellScript* GetSpellScript() const override
- {
- return new spell_shango_tracks_SpellScript();
- }
-};
-
enum ReturnedSevenfold
{
SPELL_FREYAS_WARD = 51845,
@@ -727,6 +671,5 @@ void AddSC_sholazar_basin()
new spell_q12620_the_lifewarden_wrath();
new spell_q12589_shoot_rjr();
new npc_haiphoon();
- new spell_shango_tracks();
RegisterSpellScript(spell_q12611_deathbolt);
}
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 251fb95b0a9..288b513384a 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -2497,6 +2497,28 @@ class spell_gen_prevent_emotes : public AuraScript
}
};
+class spell_gen_player_say : public SpellScript
+{
+ PrepareSpellScript(spell_gen_player_say);
+
+ bool Validate(SpellInfo const* spellInfo) override
+ {
+ return sBroadcastTextStore.HasRecord(uint32(spellInfo->GetEffect(EFFECT_0).CalcValue()));
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ // Note: target here is always player; caster here is gameobject, creature or player (self cast)
+ if (Unit* target = GetHitUnit())
+ target->Unit::Say(uint32(GetEffectValue()), target);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_player_say::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
class spell_gen_proc_below_pct_damaged : public AuraScript
{
PrepareAuraScript(spell_gen_proc_below_pct_damaged);
@@ -4843,6 +4865,7 @@ void AddSC_generic_spell_scripts()
RegisterSpellScript(spell_gen_orc_disguise);
RegisterSpellScript(spell_gen_paralytic_poison);
RegisterSpellScript(spell_gen_prevent_emotes);
+ RegisterSpellScript(spell_gen_player_say);
RegisterSpellScriptWithArgs(spell_gen_proc_below_pct_damaged, "spell_item_soul_harvesters_charm");
RegisterSpellScriptWithArgs(spell_gen_proc_below_pct_damaged, "spell_item_commendation_of_kaelthas");
RegisterSpellScriptWithArgs(spell_gen_proc_below_pct_damaged, "spell_item_corpse_tongue_coin");