Core/Player: Wait for correct transaction on character creation

This commit is contained in:
Shauren authored and Ovahlord committed 2020-04-15 21:58:02 +02:00
1 parent df44e90fe6
commit ec6d64b9c6
3 files changed
+14 -6

No files matched your search

+9 -3
View File
@@ -19625,6 +19625,15 @@ bool Player::_LoadHomeBind(PreparedQueryResult result)
/*********************************************************/
void Player::SaveToDB(bool create /*=false*/)
{
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
SaveToDB(trans, create);
CharacterDatabase.CommitTransaction(trans);
}
void Player::SaveToDB(CharacterDatabaseTransaction trans, bool create /* = false */)
{
// delay auto save at any saves (manual, in code, or autosave)
m_nextSave = sWorld->getIntConfig(CONFIG_INTERVAL_SAVE);
@@ -19645,7 +19654,6 @@ void Player::SaveToDB(bool create /*=false*/)
if (!create)
sScriptMgr->OnPlayerSave(this);
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = nullptr;
uint8 index = 0;
@@ -19972,8 +19980,6 @@ void Player::SaveToDB(bool create /*=false*/)
if (m_session->isLogingOut() || !sWorld->getBoolConfig(CONFIG_STATS_SAVE_ONLY_ON_LOGOUT))
_SaveStats(trans);
CharacterDatabase.CommitTransaction(trans);
// save pet (hunter pet level and experience and all type pets health/mana).
if (Pet* pet = GetPet())
pet->SavePetToDB(PET_SAVE_CURRENT_STATE);