Hook for player data loading from db

This commit is contained in:
Yehonal
2017-03-25 12:42:48 +01:00
parent 945b35f5eb
commit 4fdaa4444e
3 changed files with 11 additions and 0 deletions

View File

@@ -17796,6 +17796,8 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
InitTaxiNodesForLevel();
InitRunes();
sScriptMgr->OnPlayerLoadFromDB(this);
// make sure the unit is considered out of combat for proper loading
ClearInCombat();

View File

@@ -1264,6 +1264,11 @@ void ScriptMgr::OnPlayerLogin(Player* player)
FOREACH_SCRIPT(PlayerScript)->OnLogin(player);
}
void ScriptMgr::OnPlayerLoadFromDB(Player* player)
{
FOREACH_SCRIPT(PlayerScript)->OnLoadFromDB(player);
}
void ScriptMgr::OnPlayerLogout(Player* player)
{
FOREACH_SCRIPT(PlayerScript)->OnLogout(player);

View File

@@ -813,6 +813,9 @@ class PlayerScript : public ScriptObject
// Called in Spell::Cast.
virtual void OnSpellCast(Player* /*player*/, Spell* /*spell*/, bool /*skipCheck*/) { }
// Called during data loading
virtual void OnLoadFromDB(Player* /*player*/) { };
// Called when a player logs in.
virtual void OnLogin(Player* /*player*/) { }
@@ -1189,6 +1192,7 @@ class ScriptMgr
void OnPlayerTextEmote(Player* player, uint32 textEmote, uint32 emoteNum, uint64 guid);
void OnPlayerSpellCast(Player* player, Spell* spell, bool skipCheck);
void OnPlayerLogin(Player* player);
void OnPlayerLoadFromDB(Player* player);
void OnPlayerLogout(Player* player);
void OnPlayerCreate(Player* player);
void OnPlayerDelete(uint64 guid);