summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoriThorgrim <125808072+iThorgrim@users.noreply.github.com>2025-08-21 00:31:00 +0200
committerGitHub <noreply@github.com>2025-08-20 19:31:00 -0300
commit413178662ae43db09f23b6a1c69f75eba36b91d9 (patch)
tree2e78d5f5499abc61c4a10c53f6b0127554efc92f /src
parentd4713356a095f0f1c26f33252ed698b2ee910c80 (diff)
fix(Core/SAI): GameObject smart_script based on GUID (#22710)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScriptMgr.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
index 0040e0bd31..9185f77acc 100644
--- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
@@ -202,10 +202,29 @@ void SmartAIMgr::LoadSmartAIFromDB()
}
else
{
- if (!sObjectMgr->GetCreatureData(uint32(std::abs(temp.entryOrGuid))))
+ switch (source_type)
{
- LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: Creature guid ({}) does not exist, skipped loading.", uint32(std::abs(temp.entryOrGuid)));
- continue;
+ case SMART_SCRIPT_TYPE_CREATURE:
+ {
+ if (!sObjectMgr->GetCreatureData(uint32(std::abs(temp.entryOrGuid))))
+ {
+ LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: Creature guid ({}) does not exist, skipped loading.", uint32(std::abs(temp.entryOrGuid)));
+ continue;
+ }
+ break;
+ }
+ case SMART_SCRIPT_TYPE_GAMEOBJECT:
+ {
+ if (!sObjectMgr->GetGameObjectData(uint32(std::abs(temp.entryOrGuid))))
+ {
+ LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: GameObject guid ({}) does not exist, skipped loading.", uint32(temp.entryOrGuid));
+ continue;
+ }
+ break;
+ }
+ default:
+ LOG_ERROR("sql.sql", "SmartAIMgr::LoadSmartAIFromDB: not yet implemented source_type {}", (uint32)source_type);
+ continue;
}
}