aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-04-24 14:35:38 +0200
committerShauren <shauren.trinity@gmail.com>2022-04-24 14:35:38 +0200
commitb8246d1ba76cabcd034b60b806505f1a5a87465f (patch)
treec35b0ef4354e04f59cb78875de0b97f8e5562329
parent5e90f188f80d217b95606caf745e82253f3a4d47 (diff)
Core/SAI: Support gameobject targets for SMART_ACTION_PLAY_ANIMKIT
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 9d1b5c98651..b1358be5772 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -2242,10 +2242,22 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
target->ToCreature()->SetMeleeAnimKitId(e.action.animKit.animKit);
else if (e.action.animKit.type == 3)
target->ToCreature()->SetMovementAnimKitId(e.action.animKit.animKit);
- else
+
+ TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_PLAY_ANIMKIT: target: %s (%s), AnimKit: %u, Type: %u",
+ target->GetName().c_str(), target->GetGUID().ToString().c_str(), e.action.animKit.animKit, e.action.animKit.type);
+ }
+ else if (IsGameObject(target))
+ {
+ switch (e.action.animKit.type)
{
- TC_LOG_ERROR("sql.sql", "SmartScript: Invalid type for SMART_ACTION_PLAY_ANIMKIT, skipping");
- break;
+ case 0:
+ target->ToGameObject()->SetAnimKitId(e.action.animKit.animKit, true);
+ break;
+ case 1:
+ target->ToGameObject()->SetAnimKitId(e.action.animKit.animKit, false);
+ break;
+ default:
+ break;
}
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_PLAY_ANIMKIT: target: %s (%s), AnimKit: %u, Type: %u",