From f41cfa9185e5fc3d702645b868242bf0feae86d7 Mon Sep 17 00:00:00 2001 From: Treeston Date: Fri, 2 Aug 2019 21:26:32 +0200 Subject: [PATCH] Core/SmartAI: SmartAI creatures no longer process health-based hooks after death. --- src/server/game/AI/SmartScripts/SmartAI.cpp | 7 +++++++ src/server/game/Entities/Creature/Creature.cpp | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index c18473a0fec..680a2b86c56 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -343,6 +343,13 @@ void SmartAI::UpdatePath(uint32 diff) void SmartAI::UpdateAI(uint32 diff) { + if (!me->IsAlive()) + { + if (IsEngaged()) + EngagementOver(); + return; + } + CheckConditions(diff); GetScript()->OnUpdate(diff); UpdatePath(diff); diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 807ebf275bb..17f1309d372 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2330,7 +2330,7 @@ void Creature::CallAssistance() void Creature::CallForHelp(float radius) { - if (radius <= 0.0f || !IsEngaged() || IsPet() || IsCharmed()) + if (radius <= 0.0f || !IsEngaged() || !IsAlive() || IsPet() || IsCharmed()) return; Unit* target = GetThreatManager().GetCurrentVictim(); @@ -2341,7 +2341,7 @@ void Creature::CallForHelp(float radius) if (!target) { - TC_LOG_ERROR("entities.unit", "Creature %u (%s) is engaged without threat list", GetEntry(), GetName().c_str()); + TC_LOG_ERROR("entities.unit", "Creature %u (%s) trying to call for help without being in combat.", GetEntry(), GetName().c_str()); return; }