diff options
Diffstat (limited to 'src/server/game/Scripting/ScriptDefines')
| -rw-r--r-- | src/server/game/Scripting/ScriptDefines/PlayerScript.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptDefines/PlayerScript.h | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp b/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp index 99ef82868f..2e9b78b3e6 100644 --- a/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp +++ b/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp @@ -915,6 +915,11 @@ bool ScriptMgr::OnPlayerCanResurrect(Player* player) CALL_ENABLED_BOOLEAN_HOOKS(PlayerScript, PLAYERHOOK_CAN_RESURRECT, !script->OnPlayerCanResurrect(player)); } +bool ScriptMgr::OnPlayerCanGiveLevel(Player* player, uint8 newLevel) +{ + CALL_ENABLED_BOOLEAN_HOOKS(PlayerScript, PLAYERHOOK_ON_CAN_GIVE_LEVEL, !script->OnPlayerCanGiveLevel(player, newLevel)); +} + PlayerScript::PlayerScript(const char* name, std::vector<uint16> enabledHooks) : ScriptObject(name, PLAYERHOOK_END) { diff --git a/src/server/game/Scripting/ScriptDefines/PlayerScript.h b/src/server/game/Scripting/ScriptDefines/PlayerScript.h index cf2242d5f0..d813934e24 100644 --- a/src/server/game/Scripting/ScriptDefines/PlayerScript.h +++ b/src/server/game/Scripting/ScriptDefines/PlayerScript.h @@ -208,6 +208,7 @@ enum PlayerHook PLAYERHOOK_ON_BEFORE_UPDATE_SKILL, PLAYERHOOK_ON_UPDATE_SKILL, PLAYERHOOK_CAN_RESURRECT, + PLAYERHOOK_ON_CAN_GIVE_LEVEL, PLAYERHOOK_END }; @@ -782,6 +783,16 @@ public: * @return true if player is authorized to resurect */ virtual bool OnPlayerCanResurrect(Player* /*player*/) { return true; } + + /** + * @brief This hook is called, to cancel the normal level up flow + * + * @param player Contains information about the Player + * @param newLevel The new level the player is about to be given + * + * @return true if player is allowed to gain the new level + */ + virtual bool OnPlayerCanGiveLevel(Player* /*player*/, uint8 /*newLevel*/) { return true; } }; #endif |
