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.
This commit is contained in:
@@ -2354,6 +2354,7 @@ void ScriptMgr::OnSceneTrigger(Player* player, uint32 sceneInstanceID, SceneTemp
|
|||||||
ASSERT(player);
|
ASSERT(player);
|
||||||
ASSERT(sceneTemplate);
|
ASSERT(sceneTemplate);
|
||||||
|
|
||||||
|
FOREACH_SCRIPT(PlayerScript)->OnSceneTriggerEvent(player, sceneInstanceID, triggerName);
|
||||||
GET_SCRIPT(SceneScript, sceneTemplate->ScriptId, tmpscript);
|
GET_SCRIPT(SceneScript, sceneTemplate->ScriptId, tmpscript);
|
||||||
tmpscript->OnSceneTriggerEvent(player, sceneInstanceID, sceneTemplate, triggerName);
|
tmpscript->OnSceneTriggerEvent(player, sceneInstanceID, sceneTemplate, triggerName);
|
||||||
}
|
}
|
||||||
@@ -2363,6 +2364,7 @@ void ScriptMgr::OnSceneCancel(Player* player, uint32 sceneInstanceID, SceneTempl
|
|||||||
ASSERT(player);
|
ASSERT(player);
|
||||||
ASSERT(sceneTemplate);
|
ASSERT(sceneTemplate);
|
||||||
|
|
||||||
|
FOREACH_SCRIPT(PlayerScript)->OnSceneCancel(player, sceneInstanceID);
|
||||||
GET_SCRIPT(SceneScript, sceneTemplate->ScriptId, tmpscript);
|
GET_SCRIPT(SceneScript, sceneTemplate->ScriptId, tmpscript);
|
||||||
tmpscript->OnSceneCancel(player, sceneInstanceID, sceneTemplate);
|
tmpscript->OnSceneCancel(player, sceneInstanceID, sceneTemplate);
|
||||||
}
|
}
|
||||||
@@ -2372,6 +2374,7 @@ void ScriptMgr::OnSceneComplete(Player* player, uint32 sceneInstanceID, SceneTem
|
|||||||
ASSERT(player);
|
ASSERT(player);
|
||||||
ASSERT(sceneTemplate);
|
ASSERT(sceneTemplate);
|
||||||
|
|
||||||
|
FOREACH_SCRIPT(PlayerScript)->OnSceneComplete(player, sceneInstanceID);
|
||||||
GET_SCRIPT(SceneScript, sceneTemplate->ScriptId, tmpscript);
|
GET_SCRIPT(SceneScript, sceneTemplate->ScriptId, tmpscript);
|
||||||
tmpscript->OnSceneComplete(player, sceneInstanceID, sceneTemplate);
|
tmpscript->OnSceneComplete(player, sceneInstanceID, sceneTemplate);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user