Created
December 13, 2010 02:09
-
-
Save Emtec/738573 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/src/game/Player.cpp b/src/game/Player.cpp | |
| index 9bc810f..5240e3d 100644 | |
| --- a/src/game/Player.cpp | |
| +++ b/src/game/Player.cpp | |
| @@ -4310,6 +4310,11 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe | |
| // Get guids of character's pets, will deleted in transaction | |
| QueryResult *resultPets = CharacterDatabase.PQuery("SELECT id FROM character_pet WHERE owner = '%u'", lowguid); | |
| + | |
| + // delete char from friends list when selected chars is online (non existing - error) | |
| + QueryResult *resultFriend = CharacterDatabase.PQuery("SELECT guid FROM character_social as social" | |
| + "LEFT JOIN characters as char ON(char.guid = social.guid) WHERE social.friend = '%u'", lowguid); | |
| + | |
| // NOW we can finally clear other DB data related to character | |
| CharacterDatabase.BeginTransaction(); | |
| if (resultPets) | |
| @@ -4323,6 +4328,23 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe | |
| delete resultPets; | |
| } | |
| + if (resultFriend) | |
| + { | |
| + do | |
| + { | |
| + Field* fieldsFriend = resultFriend->Fetch(); | |
| + if(Player* sFriend = sObjectAccessor.FindPlayer(fieldsFriend[0].GetUInt32())) | |
| + { | |
| + if(sFriend -> IsInWorld()) | |
| + { | |
| + sFriend->GetSocial()->RemoveFromSocialList(lowguid, false); | |
| + sSocialMgr.SendFriendStatus(sFriend, FRIEND_REMOVED, lowguid, false); | |
| + } | |
| + } | |
| + } while (resultFriend->NextRow()); | |
| + delete resultFriend; | |
| + } | |
| + | |
| CharacterDatabase.PExecute("DELETE FROM characters WHERE guid = '%u'", lowguid); | |
| CharacterDatabase.PExecute("DELETE FROM character_account_data WHERE guid = '%u'", lowguid); | |
| CharacterDatabase.PExecute("DELETE FROM character_declinedname WHERE guid = '%u'", lowguid); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment