summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}