From 371e06dab903a9b7c66b0b6e4dff534fac69b333 Mon Sep 17 00:00:00 2001 From: devbox Date: Sun, 23 Aug 2026 18:53:22 +1000 Subject: [PATCH] Core: dispatch scene events to PlayerScripts too ScriptMgr::OnSceneTrigger/Cancel/Complete only called the bound SceneScript (via scene_template.ScriptName). The Thordekk Exiles Reach ride (and other scene-driven content) registers its handlers as PlayerScript hooks (OnSceneTriggerEvent/OnSceneComplete/OnSceneCancel), so 'Trampling Time' and 'Big Kill Credit' never fired -> the Giant Boar trample never cast and the cadaver kill credit never granted. Add the FOREACH_SCRIPT(PlayerScript) dispatch to all three. --- src/server/game/Scripting/ScriptMgr.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index affe6ad09..ffbb19da0 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -2354,6 +2354,7 @@ void ScriptMgr::OnSceneTrigger(Player* player, uint32 sceneInstanceID, SceneTemp ASSERT(player); ASSERT(sceneTemplate); + FOREACH_SCRIPT(PlayerScript)->OnSceneTriggerEvent(player, sceneInstanceID, triggerName); GET_SCRIPT(SceneScript, sceneTemplate->ScriptId, tmpscript); tmpscript->OnSceneTriggerEvent(player, sceneInstanceID, sceneTemplate, triggerName); } @@ -2363,6 +2364,7 @@ void ScriptMgr::OnSceneCancel(Player* player, uint32 sceneInstanceID, SceneTempl ASSERT(player); ASSERT(sceneTemplate); + FOREACH_SCRIPT(PlayerScript)->OnSceneCancel(player, sceneInstanceID); GET_SCRIPT(SceneScript, sceneTemplate->ScriptId, tmpscript); tmpscript->OnSceneCancel(player, sceneInstanceID, sceneTemplate); } @@ -2372,6 +2374,7 @@ void ScriptMgr::OnSceneComplete(Player* player, uint32 sceneInstanceID, SceneTem ASSERT(player); ASSERT(sceneTemplate); + FOREACH_SCRIPT(PlayerScript)->OnSceneComplete(player, sceneInstanceID); GET_SCRIPT(SceneScript, sceneTemplate->ScriptId, tmpscript); tmpscript->OnSceneComplete(player, sceneInstanceID, sceneTemplate); }