From 19a3caa5ebd87c4cb689fc8bf2e3fddb26527a14 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Tue, 14 Dec 2021 19:53:46 -0300 Subject: [PATCH] fix(Core/Scripts): Fix bool script hooks not executing code (#9699) * fix(Core/Scripts): Fix bool script hooks not executing code * warnings --- .../ScriptDefines/CreatureScript.cpp | 46 +++++++++++++----- .../ScriptDefines/GameObjectScript.cpp | 47 ++++++++++++++----- 2 files changed, 67 insertions(+), 26 deletions(-) diff --git a/src/server/game/Scripting/ScriptDefines/CreatureScript.cpp b/src/server/game/Scripting/ScriptDefines/CreatureScript.cpp index e4e54c7dc..94106e706 100644 --- a/src/server/game/Scripting/ScriptDefines/CreatureScript.cpp +++ b/src/server/game/Scripting/ScriptDefines/CreatureScript.cpp @@ -31,12 +31,16 @@ bool ScriptMgr::OnGossipHello(Player* player, Creature* creature) if (ret && *ret) { + if (auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId())) + { + ClearGossipMenuFor(player); + return tempScript->OnGossipHello(player, creature); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId()); - ClearGossipMenuFor(player); - return tempScript ? tempScript->OnGossipHello(player, creature) : false; + return false; } bool ScriptMgr::OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) @@ -51,11 +55,15 @@ bool ScriptMgr::OnGossipSelect(Player* player, Creature* creature, uint32 sender if (ret && *ret) { + if (auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId())) + { + return tempScript->OnGossipSelect(player, creature, sender, action); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId()); - return tempScript ? tempScript->OnGossipSelect(player, creature, sender, action) : false; + return false; } bool ScriptMgr::OnGossipSelectCode(Player* player, Creature* creature, uint32 sender, uint32 action, const char* code) @@ -71,11 +79,15 @@ bool ScriptMgr::OnGossipSelectCode(Player* player, Creature* creature, uint32 se if (ret && *ret) { + if (auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId())) + { + return tempScript->OnGossipSelectCode(player, creature, sender, action, code); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId()); - return tempScript ? tempScript->OnGossipSelectCode(player, creature, sender, action, code) : false; + return false; } bool ScriptMgr::OnQuestAccept(Player* player, Creature* creature, Quest const* quest) @@ -91,12 +103,16 @@ bool ScriptMgr::OnQuestAccept(Player* player, Creature* creature, Quest const* q if (ret && *ret) { + if (auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId())) + { + ClearGossipMenuFor(player); + return tempScript->OnQuestAccept(player, creature, quest); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId()); - ClearGossipMenuFor(player); - return tempScript ? tempScript->OnQuestAccept(player, creature, quest) : false; + return false; } bool ScriptMgr::OnQuestSelect(Player* player, Creature* creature, Quest const* quest) @@ -134,12 +150,16 @@ bool ScriptMgr::OnQuestReward(Player* player, Creature* creature, Quest const* q if (ret && *ret) { + if (auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId())) + { + ClearGossipMenuFor(player); + return tempScript->OnQuestReward(player, creature, quest, opt); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(creature->GetScriptId()); - ClearGossipMenuFor(player); - return tempScript ? tempScript->OnQuestReward(player, creature, quest, opt) : false; + return false; } uint32 ScriptMgr::GetDialogStatus(Player* player, Creature* creature) diff --git a/src/server/game/Scripting/ScriptDefines/GameObjectScript.cpp b/src/server/game/Scripting/ScriptDefines/GameObjectScript.cpp index abf62eb58..952e159a2 100644 --- a/src/server/game/Scripting/ScriptDefines/GameObjectScript.cpp +++ b/src/server/game/Scripting/ScriptDefines/GameObjectScript.cpp @@ -31,12 +31,16 @@ bool ScriptMgr::OnGossipHello(Player* player, GameObject* go) if (ret && *ret) { + if (auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId())) + { + ClearGossipMenuFor(player); + return tempScript->OnGossipHello(player, go); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId()); - ClearGossipMenuFor(player); - return tempScript ? tempScript->OnGossipHello(player, go) : false; + return false; } bool ScriptMgr::OnGossipSelect(Player* player, GameObject* go, uint32 sender, uint32 action) @@ -51,11 +55,15 @@ bool ScriptMgr::OnGossipSelect(Player* player, GameObject* go, uint32 sender, ui if (ret && *ret) { + if (auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId())) + { + return tempScript->OnGossipSelect(player, go, sender, action); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId()); - return tempScript ? tempScript->OnGossipSelect(player, go, sender, action) : false; + return false; } bool ScriptMgr::OnGossipSelectCode(Player* player, GameObject* go, uint32 sender, uint32 action, const char* code) @@ -71,11 +79,15 @@ bool ScriptMgr::OnGossipSelectCode(Player* player, GameObject* go, uint32 sender if (ret && *ret) { + if (auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId())) + { + return tempScript->OnGossipSelectCode(player, go, sender, action, code); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId()); - return tempScript ? tempScript->OnGossipSelectCode(player, go, sender, action, code) : false; + return false; } bool ScriptMgr::OnQuestAccept(Player* player, GameObject* go, Quest const* quest) @@ -91,12 +103,16 @@ bool ScriptMgr::OnQuestAccept(Player* player, GameObject* go, Quest const* quest if (ret && *ret) { + if (auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId())) + { + ClearGossipMenuFor(player); + return tempScript->OnQuestAccept(player, go, quest); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId()); - ClearGossipMenuFor(player); - return tempScript ? tempScript->OnQuestAccept(player, go, quest) : false; + return false; } bool ScriptMgr::OnQuestReward(Player* player, GameObject* go, Quest const* quest, uint32 opt) @@ -112,12 +128,17 @@ bool ScriptMgr::OnQuestReward(Player* player, GameObject* go, Quest const* quest if (ret && *ret) { + ClearGossipMenuFor(player); + + if (auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId())) + { + return tempScript->OnQuestReward(player, go, quest, opt); + } + return true; } - auto tempScript = ScriptRegistry::GetScriptById(go->GetScriptId()); - ClearGossipMenuFor(player); - return tempScript ? tempScript->OnQuestReward(player, go, quest, opt) : false; + return false; } uint32 ScriptMgr::GetDialogStatus(Player* player, GameObject* go)