Core: dispatch scene events to PlayerScripts too
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s

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.
This commit is contained in:
devbox
2026-08-23 18:53:22 +10:00
parent c7a4bf966e
commit 371e06dab9
+3
View File
@@ -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);
}