aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2022-01-22 19:03:53 +0200
committerGitHub <noreply@github.com>2022-01-22 19:03:53 +0200
commit7a4f1fd2016c14b8f518dbd9fdad0b92c4270ce4 (patch)
tree4c9d556b2ce06ab06838b5c22cd4d8618b9ffb26 /src/server/scripts/Spells
parentc0c12ad761845571f25bc0368a8c4bee7b361e3a (diff)
Scripts/Spells: Handle player talk in spell scripts pt 2 (#27640)
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 81140cd8e00..c6ea183a896 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -2726,6 +2726,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 sObjectMgr->GetBroadcastText(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);
@@ -4553,6 +4575,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");