diff options
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index c511f318309..d007bf3e7ff 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -21395,13 +21395,14 @@ void Player::_SaveSpells(CharacterDatabaseTransaction& trans) if (itr->second->state == PLAYERSPELL_REMOVED) { delete itr->second; - m_spells.erase(itr++); + itr = m_spells.erase(itr); + continue; } - else - { + + if (itr->second->state != PLAYERSPELL_TEMPORARY) itr->second->state = PLAYERSPELL_UNCHANGED; - ++itr; - } + + ++itr; } } |