From 429fdf992d831427c11d047300da0151ed581c04 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 24 Oct 2025 11:55:24 +0200 Subject: Core/SAI: Support SMART_EVENT_FLAG_ACTIONLIST_WAITS in movement fall action --- src/server/game/AI/SmartScripts/SmartScript.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index e8cad28a4e8..ef87db7a692 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -2680,9 +2680,22 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u } case SMART_ACTION_FALL: { + std::shared_ptr> waitEvent = CreateTimedActionListWaitEventFor>(e, targets.size()); + for (WorldObject* target : targets) + { if (Unit* unitTarget = target->ToUnit()) - unitTarget->GetMotionMaster()->MoveFall(e.action.fall.pointId); + { + Optional> actionResultSetter; + if (waitEvent) + actionResultSetter = Scripting::v2::ActionResult::GetResultSetter({ waitEvent, &waitEvent->Results.emplace_back() }); + + unitTarget->GetMotionMaster()->MoveFall(e.action.fall.pointId, std::move(actionResultSetter)); + } + } + + if (waitEvent && !waitEvent->Results.empty()) + mTimedActionWaitEvent = std::move(waitEvent); break; } default: -- cgit v1.2.3