diff options
| author | Vincent Vanclef <rasmusostergaard@live.dk> | 2025-03-10 08:44:33 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-10 08:44:33 +0100 |
| commit | ffe03f6e14c4beafa95645ee40d27f36d0686fd6 (patch) | |
| tree | 5c54c949de6dd33993d502edfa2dab4aec06dd82 /src/server/game/Scripting/ScriptDefines | |
| parent | 4cdb315db1742879fc67b70f6db3a744de25714c (diff) | |
feat(Core/Entities): add OnPlayerCanGiveLevel script hook (#21666)
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 |
