aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2022-02-14 18:05:23 +0200
committerGitHub <noreply@github.com>2022-02-14 18:05:23 +0200
commitdb1e6f2588cab21f5556a1f8dc0af7d348f1bb95 (patch)
treee5d08335f73d227d46c52333f572d44fc6d54e36
parent85bdeed51e09bd34a796a39e192c6454567c4514 (diff)
Scripts/Spells: Script one more player talk (#27766)
-rw-r--r--sql/updates/world/3.3.5/2022_02_14_00_world.sql4
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp35
2 files changed, 39 insertions, 0 deletions
diff --git a/sql/updates/world/3.3.5/2022_02_14_00_world.sql b/sql/updates/world/3.3.5/2022_02_14_00_world.sql
new file mode 100644
index 00000000000..1316f6f5b7b
--- /dev/null
+++ b/sql/updates/world/3.3.5/2022_02_14_00_world.sql
@@ -0,0 +1,4 @@
+--
+DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_call_out_injured_soldier';
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(49550,'spell_call_out_injured_soldier');
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index f6805437942..5c0ce5876a2 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -777,6 +777,40 @@ class spell_moti_hourglass_cast_see_invis_on_master : public SpellScript
}
};
+/*######
+## Quest 12457: The Chain Gun And You
+######*/
+
+enum TheChainGunAndYou
+{
+ TEXT_CALL_OUT_1 = 27083,
+ TEXT_CALL_OUT_2 = 27084
+};
+
+// BasePoints of the dummy effect is ID of npc_text used to group texts, it's not implemented so texts are grouped manually. Same with 49556 but looks like it's not used
+// 49550 - Call Out Injured Soldier
+class spell_call_out_injured_soldier : public SpellScript
+{
+ PrepareSpellScript(spell_call_out_injured_soldier);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return sObjectMgr->GetBroadcastText(TEXT_CALL_OUT_1) && sObjectMgr->GetBroadcastText(TEXT_CALL_OUT_2);
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ if (Vehicle* vehicle = GetCaster()->GetVehicleKit())
+ if (Unit* passenger = vehicle->GetPassenger(0))
+ passenger->Unit::Say(RAND(TEXT_CALL_OUT_1, TEXT_CALL_OUT_2), passenger);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_call_out_injured_soldier::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_dragonblight()
{
new npc_commander_eligor_dawnbringer();
@@ -787,4 +821,5 @@ void AddSC_dragonblight()
RegisterSpellScript(spell_warsong_battle_standard);
RegisterSpellScript(spell_moti_mirror_image_script_effect);
RegisterSpellScript(spell_moti_hourglass_cast_see_invis_on_master);
+ RegisterSpellScript(spell_call_out_injured_soldier);
}