From c17a6c0a0e14f00952f798137873825eb4122ef8 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Sun, 1 Oct 2023 02:24:11 -0300 Subject: [PATCH] =?UTF-8?q?fix(Scripts/Karazhan):=20Fix=20Dorothee=20yell?= =?UTF-8?q?=20once=20Tito=20dies=20and=20clean=20up=20=E2=80=A6=20(#17395)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(Scripts/Karazhan): Fix Dorothee yell once Tito dies and clean up script * fix dorothee interrupt immunity --- .../rev_1696120539180026700.sql | 2 + .../EasternKingdoms/Karazhan/bosses_opera.cpp | 85 ++----------------- 2 files changed, 7 insertions(+), 80 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1696120539180026700.sql diff --git a/data/sql/updates/pending_db_world/rev_1696120539180026700.sql b/data/sql/updates/pending_db_world/rev_1696120539180026700.sql new file mode 100644 index 000000000..57a0a63b6 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1696120539180026700.sql @@ -0,0 +1,2 @@ +-- +UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`|33554432 WHERE `entry` = 17535; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 1c037f381..94e031126 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -231,20 +231,12 @@ struct boss_dorothee : public ScriptedAI me->DespawnOrUnsummon(); } - void AttackStart(Unit* who) override + void SummonedCreatureDies(Creature* creature, Unit* /*killer*/) override { - if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - return; - - ScriptedAI::AttackStart(who); - } - - void MoveInLineOfSight(Unit* who) override - { - if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - return; - - ScriptedAI::MoveInLineOfSight(who); + if (creature->GetEntry() == NPC_TITO) + { + Talk(SAY_DOROTHEE_TITO_DEATH); + } } void EnterEvadeMode(EvadeReason reason) override @@ -288,8 +280,6 @@ struct npc_tito : public ScriptedAI InstanceScript* instance; - void Reset() override { } - void JustEngagedWith(Unit* /*who*/) override { _scheduler.Schedule(10s, [this](TaskContext context) @@ -299,18 +289,6 @@ struct npc_tito : public ScriptedAI }); } - void JustDied(Unit* /*killer*/) override - { - if (Creature* Dorothee = instance->GetCreature(DATA_DOROTHEE)) - { - if (Dorothee->IsAlive()) - { - Talk(SAY_DOROTHEE_TITO_DEATH, Dorothee); - } - } - me->DespawnOrUnsummon(); - } - void UpdateAI(uint32 diff) override { if (!UpdateVictim()) @@ -351,17 +329,6 @@ struct boss_roar : public ScriptedAI } } - void Reset() override { } - - void MoveInLineOfSight(Unit* who) override - - { - if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - return; - - ScriptedAI::MoveInLineOfSight(who); - } - void EnterEvadeMode(EvadeReason reason) override { ScriptedAI::EnterEvadeMode(reason); @@ -373,14 +340,6 @@ struct boss_roar : public ScriptedAI } } - void AttackStart(Unit* who) override - { - if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - return; - - ScriptedAI::AttackStart(who); - } - void JustEngagedWith(Unit* /*who*/) override { Talk(SAY_ROAR_AGGRO); @@ -458,24 +417,6 @@ struct boss_strawman : public ScriptedAI } } - void Reset() override { } - - void AttackStart(Unit* who) override - { - if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - return; - - ScriptedAI::AttackStart(who); - } - - void MoveInLineOfSight(Unit* who) override - { - if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - return; - - ScriptedAI::MoveInLineOfSight(who); - } - void EnterEvadeMode(EvadeReason reason) override { ScriptedAI::EnterEvadeMode(reason); @@ -601,22 +542,6 @@ struct boss_tinhead : public ScriptedAI me->DespawnOrUnsummon(); } - void AttackStart(Unit* who) override - { - if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - return; - - ScriptedAI::AttackStart(who); - } - - void MoveInLineOfSight(Unit* who) override - { - if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) - return; - - ScriptedAI::MoveInLineOfSight(who); - } - void EnterEvadeMode(EvadeReason reason) override { ScriptedAI::EnterEvadeMode(reason);