From db9b4cf0c61ed6b738df5090bd6144e24415436f Mon Sep 17 00:00:00 2001 From: Anton Popovichenko Date: Fri, 14 Feb 2025 05:54:45 +0100 Subject: [PATCH] fix(Scripts/ICC): Fix crash in npc_darnavan when killer is nil. (#21438) --- .../boss_lady_deathwhisper.cpp | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp index dcc37e3ca..ef04e7e5b 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp @@ -1021,18 +1021,25 @@ public: void JustDied(Unit* killer) override { events.Reset(); - if (Player* owner = killer->GetCharmerOrOwnerPlayerOrPlayerItself()) + + if (!killer) + return; + + Player* owner = killer->GetCharmerOrOwnerPlayerOrPlayerItself(); + if (!owner) + return; + + Group* group = owner->GetGroup(); + if (!group) { - if (Group* group = owner->GetGroup()) - { - for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next()) - if (Player* member = itr->GetSource()) - if (member->IsInMap(owner)) - member->FailQuest(QUEST_DEPROGRAMMING); - } - else - owner->FailQuest(QUEST_DEPROGRAMMING); + owner->FailQuest(QUEST_DEPROGRAMMING); + return; } + + for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next()) + if (Player* member = itr->GetSource()) + if (member->IsInMap(owner)) + member->FailQuest(QUEST_DEPROGRAMMING); } void MovementInform(uint32 type, uint32 id) override