diff options
author | Matan Shukry <matanshukry@gmail.com> | 2021-03-07 12:17:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-07 11:17:04 +0100 |
commit | c019d4f10c47612aea49a8b081f367df00ca7c97 (patch) | |
tree | b46ec5ffbe6dc74a05d04784d8541b8db93b6967 | |
parent | b4aa698acb88e1a74bc22d97279148a567b88cad (diff) |
Core/SAI: Don't require BaseObject when creating conversation from smart scripts (#26209)
-rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index ed45c8bfea8..05066012466 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -2365,18 +2365,17 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u } case SMART_ACTION_CREATE_CONVERSATION: { - if (WorldObject* baseObject = GetBaseObject()) + WorldObject* baseObject = GetBaseObject(); + + for (WorldObject* const target : targets) { - for (WorldObject* const target : targets) + if (Player* playerTarget = target->ToPlayer()) { - if (Player* playerTarget = target->ToPlayer()) - { - Conversation* conversation = Conversation::CreateConversation(e.action.conversation.id, playerTarget, - *playerTarget, { playerTarget->GetGUID() }, nullptr); - if (!conversation) - TC_LOG_WARN("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_TALK_CONVERSATION: id %u, baseObject %s, target %s - failed to create", - e.action.conversation.id, baseObject->GetName().c_str(), playerTarget->GetName().c_str()); - } + Conversation* conversation = Conversation::CreateConversation(e.action.conversation.id, playerTarget, + *playerTarget, { playerTarget->GetGUID() }, nullptr); + if (!conversation) + TC_LOG_WARN("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_CREATE_CONVERSATION: id %u, baseObject %s, target %s - failed to create conversation", + e.action.conversation.id, !baseObject ? "" : baseObject->GetName().c_str(), playerTarget->GetName().c_str()); } } |