void Player::SendFriendlist() { FriendInfo info; uint32 size = (uint32)m_friendlist.size(); WorldPacket data(SMSG_FRIEND_LIST, (1+size*15)); // just can guess size data << uint32(7); // unk flag (0x1, 0x2, 0x4), 0x7 if it include ignore list data << uint32(size); for (FriendList::iterator itr = m_friendlist.begin(); itr != m_friendlist.end(); ++itr) { GetFriendInfo(*itr, info); sLog.outDetail( "WORLD: Adding Friend Guid: %u, Status:%u, Area:%u, Level:%u Class:%u", GUID_LOPART(*itr), info.Status, info.Area, info.Level, info.Class); data << uint64(*itr); data << uint32(info.Flags); // flag (0x1-friend?, 0x2-ignored?, 0x4-muted?) data << info.Note; // string note if (info.Flags & 1) // if IsFriend() { data << uint8(info.Status); // online/offline? if(info.Status) { data << uint32(info.Area); data << uint32(info.Level); data << uint32(info.Class); } } } GetSession()->SendPacket( &data ); sLog.outDebug( "WORLD: Sent (SMSG_FRIEND_LIST)" ); }