diff options
author | Ellie <ellie1337@gmail.com> | 2013-01-02 15:46:31 -0800 |
---|---|---|
committer | Ellie <ellie1337@gmail.com> | 2013-01-02 17:03:57 -0800 |
commit | c2e610cde79d6c97a77370f44cd7940319fad9bf (patch) | |
tree | 4e9a552f2f52520990508e51ae846c82f1093a2f /src | |
parent | c6ed15f826d4fccc3db85bc5be6d7b82a6d5e08b (diff) |
Core/Scripting: Created a hook for when a player is about to be saved.
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 4 |
3 files changed, 11 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 986eeb8e275..801530eb9f1 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1753,7 +1753,8 @@ void Player::Update(uint32 p_time) { if (p_time >= m_nextSave) { - // m_nextSave reseted in SaveToDB call + // m_nextSave reset in SaveToDB call + sScriptMgr->OnPlayerSave(this); SaveToDB(); sLog->outDebug(LOG_FILTER_PLAYER, "Player '%s' (GUID: %u) saved", GetName().c_str(), GetGUIDLow()); } diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 6a5bccc743c..cae8ea9d2d5 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -1241,6 +1241,11 @@ void ScriptMgr::OnPlayerDelete(uint64 guid) FOREACH_SCRIPT(PlayerScript)->OnDelete(guid); } +void ScriptMgr::OnPlayerSave(Player* player) +{ + FOREACH_SCRIPT(PlayerScript)->OnSave(player); +} + void ScriptMgr::OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent) { FOREACH_SCRIPT(PlayerScript)->OnBindToInstance(player, difficulty, mapid, permanent); diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index bf032b84379..d58b9a3ec32 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -746,6 +746,9 @@ class PlayerScript : public UnitScript // Called when a player is deleted. virtual void OnDelete(uint64 /*guid*/) { } + // Called whe is a player is about to be saved. + virtual void OnSave(Player* /*player*/) { } + // Called when a player is bound to an instance virtual void OnBindToInstance(Player* /*player*/, Difficulty /*difficulty*/, uint32 /*mapId*/, bool /*permanent*/) { } @@ -1022,6 +1025,7 @@ class ScriptMgr void OnPlayerLogout(Player* player); void OnPlayerCreate(Player* player); void OnPlayerDelete(uint64 guid); + void OnPlayerSave(Player* player); void OnPlayerBindToInstance(Player* player, Difficulty difficulty, uint32 mapid, bool permanent); void OnPlayerUpdateZone(Player* player, uint32 newZone, uint32 newArea); |