From d69f61d7ab91f5beeeda0e2e79d9cc016a370b12 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Thu, 4 Sep 2025 06:19:25 -0300 Subject: [PATCH] fix(Core/SAI): Fix crash in SMART_TARGET_OWNER_OR_SUMMONER (#22789) --- src/server/game/AI/SmartScripts/SmartScript.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index e0a6f4fb8..c980f4f70 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -3834,19 +3834,20 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, { targets.clear(); - if (owner->ToCreature()) + if (IsCreature(owner)) { if (Unit* base = ObjectAccessor::GetUnit(*owner, owner->ToCreature()->GetCharmerOrOwnerGUID())) - { targets.push_back(base); - } } - else + else if (IsGameObject(owner)) { if (Unit* base = ObjectAccessor::GetUnit(*owner, owner->ToGameObject()->GetOwnerGUID())) - { targets.push_back(base); - } + } + else if (IsPlayer(owner)) + { + if (Unit* base = owner->ToPlayer()->GetCharmerOrOwner()) + targets.push_back(base); } } }