diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 77a9ff02627..22a3f2a7ba4 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -4734,6 +4734,9 @@ void Player::BuildPlayerRepop() // set and clear other SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_ANIM_TIER, UNIT_BYTE1_FLAG_ALWAYS_STAND); + + // OnPlayerRepop hook + sScriptMgr->OnPlayerRepop(this); } void Player::ResurrectPlayer(float restore_percent, bool applySickness) diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index b08d3d2ac09..c332087470c 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -2158,6 +2158,11 @@ void ScriptMgr::OnQuestStatusChange(Player* player, uint32 questId) FOREACH_SCRIPT(PlayerScript)->OnQuestStatusChange(player, questId); } +void ScriptMgr::OnPlayerRepop(Player* player) +{ + FOREACH_SCRIPT(PlayerScript)->OnPlayerRepop(player); +} + // Account void ScriptMgr::OnAccountLogin(uint32 accountId) { diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 0582398aefa..9a9e8712843 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -740,6 +740,9 @@ class TC_GAME_API PlayerScript : public UnitScript // Called after a player's quest status has been changed virtual void OnQuestStatusChange(Player* /*player*/, uint32 /*questId*/) { } + + // Called when a player presses release when he died + virtual void OnPlayerRepop(Player* /*player*/) { } }; class TC_GAME_API AccountScript : public ScriptObject @@ -1070,6 +1073,7 @@ class TC_GAME_API ScriptMgr void OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent, uint8 extendState); void OnPlayerUpdateZone(Player* player, uint32 newZone, uint32 newArea); void OnQuestStatusChange(Player* player, uint32 questId); + void OnPlayerRepop(Player* player); public: /* AccountScript */