diff options
author | Spp <none@none> | 2010-05-08 01:58:47 +0200 |
---|---|---|
committer | Spp <none@none> | 2010-05-08 01:58:47 +0200 |
commit | d6df19cd9948ff6d108f88e0d8c77bdbda5922ab (patch) | |
tree | c5ebf7fc17c69aebad723a0190902f524a41fd2d /src/game/Player.cpp | |
parent | 0d06050eb409c2b14dff199379ad89551bcdd93f (diff) |
Add GUID to groups
--HG--
branch : trunk
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r-- | src/game/Player.cpp | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 4a39401c956..f95f42a4e22 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -4215,15 +4215,12 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC LeaveAllArenaTeams(playerguid); // the player was uninvited already on logout so just remove from group - QueryResult_AutoPtr resultGroup = CharacterDatabase.PQuery("SELECT leaderGuid FROM group_member WHERE memberGuid='%u'", guid); + QueryResult_AutoPtr resultGroup = CharacterDatabase.PQuery("SELECT guid FROM group_member WHERE memberGuid=%u", guid); if (resultGroup) { - uint64 leaderGuid = MAKE_NEW_GUID((*resultGroup)[0].GetUInt32(), 0, HIGHGUID_PLAYER); - Group* group = objmgr.GetGroupByLeader(leaderGuid); - if (group) - { + uint64 guid = MAKE_NEW_GUID((*resultGroup)[0].GetUInt32(), 0, HIGHGUID_GROUP); + if (Group* group = objmgr.GetGroupByGUID(guid)) RemoveFromGroup(group, playerguid); - } } // remove signs from petitions (also remove petitions if owner); @@ -4329,10 +4326,6 @@ void Player::DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmC CharacterDatabase.PExecute("DELETE FROM character_gifts WHERE guid = '%u'",guid); CharacterDatabase.PExecute("DELETE FROM character_homebind WHERE guid = '%u'",guid); CharacterDatabase.PExecute("DELETE FROM character_instance WHERE guid = '%u'",guid); - CharacterDatabase.PExecute("DELETE FROM group_instance WHERE leaderGuid = '%u'",guid); - CharacterDatabase.PExecute("DELETE FROM groups WHERE leaderGuid = '%u'",guid); - CharacterDatabase.PExecute("DELETE FROM group_member WHERE leaderGuid = '%u' OR memberGuid = '%u'",guid,guid); - CharacterDatabase.PExecute("DELETE FROM groups WHERE leaderGuid = '%u'",guid); CharacterDatabase.PExecute("DELETE FROM character_inventory WHERE guid = '%u'",guid); CharacterDatabase.PExecute("DELETE FROM character_queststatus WHERE guid = '%u'",guid); CharacterDatabase.PExecute("DELETE FROM character_reputation WHERE guid = '%u'",guid); @@ -16962,11 +16955,11 @@ void Player::_LoadSpells(QueryResult_AutoPtr result) void Player::_LoadGroup(QueryResult_AutoPtr result) { - //QueryResult *result = CharacterDatabase.PQuery("SELECT leaderGuid FROM group_member WHERE memberGuid='%u'", GetGUIDLow()); + //QueryResult *result = CharacterDatabase.PQuery("SELECT guid FROM group_member WHERE memberGuid=%u", GetGUIDLow()); if (result) { - uint64 leaderGuid = MAKE_NEW_GUID((*result)[0].GetUInt32(), 0, HIGHGUID_PLAYER); - if (Group* group = objmgr.GetGroupByLeader(leaderGuid)) + uint64 guid = MAKE_NEW_GUID((*result)[0].GetUInt32(), 0, HIGHGUID_GROUP); + if (Group* group = objmgr.GetGroupByGUID(guid)) { uint8 subgroup = group->GetMemberGroup(GetGUID()); SetGroup(group, subgroup); @@ -17029,7 +17022,7 @@ void Player::_LoadBoundInstances(QueryResult_AutoPtr result) if (!perm && group) { - sLog.outError("_LoadBoundInstances: player %s(%d) is in group %d but has a non-permanent character bind to map %d,%d,%d", GetName(), GetGUIDLow(), GUID_LOPART(group->GetLeaderGUID()), mapId, instanceId, difficulty); + sLog.outError("_LoadBoundInstances: player %s(%d) is in group %d but has a non-permanent character bind to map %d,%d,%d", GetName(), GetGUIDLow(), GUID_LOPART(group->GetGUID()), mapId, instanceId, difficulty); CharacterDatabase.PExecute("DELETE FROM character_instance WHERE guid = '%d' AND instance = '%d'", GetGUIDLow(), instanceId); continue; } |