summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Jackson <38561765+heyitsbench@users.noreply.github.com>2025-08-30 08:43:06 -0400
committerGitHub <noreply@github.com>2025-08-30 09:43:06 -0300
commitd9c99cd0156a4329250ae3fb419d923ca25b5df5 (patch)
tree762c7daa5e6403c5afa0ddcbfafe3430382394bc
parent445161d3b9d5276d1a63831e98c83015f39a9522 (diff)
fix(Scripts/Karazhan): Minor adjustments to Tenris Mirkblood. (#22753)
-rw-r--r--data/sql/updates/pending_db_world/mirkblood-spawntime.sql1
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_tenris_mirkblood.cpp15
2 files changed, 11 insertions, 5 deletions
diff --git a/data/sql/updates/pending_db_world/mirkblood-spawntime.sql b/data/sql/updates/pending_db_world/mirkblood-spawntime.sql
new file mode 100644
index 0000000000..a884c12887
--- /dev/null
+++ b/data/sql/updates/pending_db_world/mirkblood-spawntime.sql
@@ -0,0 +1 @@
+UPDATE `creature` SET `spawntimesecs` = 604800 WHERE `id1` = 28194;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_tenris_mirkblood.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_tenris_mirkblood.cpp
index 518a46055f..bed3364478 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_tenris_mirkblood.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_tenris_mirkblood.cpp
@@ -177,6 +177,9 @@ struct npc_sanguine_spirit : public ScriptedAI
me->SetReactState(REACT_AGGRESSIVE);
me->SetInCombatWithZone();
DoCastSelf(SPELL_SANGUINE_SPIRIT_AURA);
+ }).Schedule(30s, [this](TaskContext /*context*/)
+ {
+ me->DespawnOrUnsummon();
});
}
@@ -320,6 +323,7 @@ public:
events.Reset();
if (InstanceScript* instance = player->GetInstanceScript())
+ {
if (instance->GetBossState(DATA_MIRKBLOOD) != DONE)
{
opener = player;
@@ -327,8 +331,10 @@ public:
events.ScheduleEvent(EVENT_SAY, 1s);
events.ScheduleEvent(EVENT_FLAG, 5s);
- me->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
}
+ }
+
+ me->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
return true;
}
@@ -342,14 +348,13 @@ public:
switch (events.ExecuteEvent())
{
case EVENT_SAY:
- if (!mirkblood)
+ if (!mirkblood || !mirkblood->IsAlive())
return;
mirkblood->AI()->Talk(SAY_AGGRO, opener);
break;
case EVENT_FLAG:
- if (!mirkblood)
- return;
- mirkblood->SetImmuneToPC(false);
+ if (mirkblood)
+ mirkblood->SetImmuneToPC(false);
me->Delete();
break;
}