void ArenaTeam::Roster(WorldPacket & data) { data.Initialize(SMSG_ARENA_TEAM_ROSTER); data.reserve(m_memberCount * 81 + 9); data << m_id; data << m_memberCount; data << GetPlayersPerTeam(); for(uint32 i = 0; i < m_memberCount; ++i) { PlayerInfo* info = m_members[i].Info; // TODO : burlex figure out why this became null if( info != NULL ) { data << uint64(info->guid); data << uint8( (info->m_loggedInPlayer != NULL) ? 1 : 0 ); data << info->name; data << uint32( m_members[i].Info->guid == m_leader ? 0 : 1); // Unk data << uint8( info->lastLevel ); data << uint8( info->cl ); data << m_members[i].Played_ThisWeek; data << m_members[i].Won_ThisWeek; data << m_members[i].Played_ThisSeason; data << m_members[i].Won_ThisSeason; data << m_stat_rating; // (actually personal rating here /shrug) } } }
void ArenaTeam::Roster(WorldPacket & data) { data.Initialize(SMSG_ARENA_TEAM_ROSTER); data.reserve(m_memberCount * 81 + 9); data << m_id; data << uint8(0); //3.0.8, played? Specifies whether we are sending 2 extra floats for each member data << m_memberCount; data << GetPlayersPerTeam(); for(uint32 i = 0; i < m_memberCount; ++i) { PlayerInfo* info = m_members[i].Info; // TODO : burlex figure out why this became null if( info != NULL ) { data << uint64(info->guid); data << uint8( (info->m_loggedInPlayer != NULL) ? 1 : 0 ); data << info->name; data << uint32( m_members[i].Info->guid == m_leader ? 0 : 1); // Unk data << uint8( info->lastLevel ); data << uint8( info->cl ); data << m_members[i].Played_ThisWeek; data << m_members[i].Won_ThisWeek; data << m_members[i].Played_ThisSeason; data << m_members[i].Won_ThisSeason; data << m_members[i].PersonalRating; // if uint8 flag at the beginning is not 0, 2 unknown floats are expected here } } }
void ArenaTeam::Roster(WorldPacket & data) { /* 13329 {SERVER} Packet: (0xAC5E) SMSG_ARENA_TEAM_ROSTER PacketSize = 56 TimeStamp = 22277707 A2 69 74 00 00 01 00 00 00 05 00 00 00 43 E7 38 03 00 00 00 01 01 47 75 6E 62 6F 6F 74 00 00 00 00 00 55 level 03 class 00 00 00 00 Played_ThisWeek 00 00 00 00 Won_ThisWeek 00 00 00 00 Played_ThisSeason 00 00 00 00 Won_ThisSeason 00 00 00 00 PersonalRating 14333 {SERVER} Packet: (0xA276) SMSG_ARENA_TEAM_ROSTER PacketSize = 95 TimeStamp = 2996061 6B 22 79 00 00 02 00 00 00 02 00 00 00 8F DC 38 03 00 00 00 01 01 48 6F 6C 6F 77 00 00 00 00 00 55 09 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 E9 D7 38 03 00 00 00 01 01 55 64 72 65 61 00 01 00 00 00 55 08 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 */ data.Initialize(SMSG_ARENA_TEAM_ROSTER); data.reserve(m_memberCount * 81 + 9); data << m_id; data << uint8(0); // 3.0.8 data << m_memberCount; data << GetPlayersPerTeam(); for(uint32 i = 0; i < m_memberCount; ++i) { PlayerInfo* info = m_members[i].Info; // TODO : burlex figure out why this became null if( info != NULL ) { data << uint64(info->guid); data << uint8( (info->m_loggedInPlayer != NULL) ? 1 : 0 ); data << info->name; data << uint32( m_members[i].Info->guid == m_leader ? 0 : 1); // Unk data << uint8( info->lastLevel ); data << uint8( info->_class ); data << m_members[i].Played_ThisWeek; data << m_members[i].Won_ThisWeek; data << m_members[i].Played_ThisSeason; data << m_members[i].Won_ThisSeason; data << m_members[i].PersonalRating; } } }