void WorldSession::HandleBattleGroundPlayerPositionsOpcode( WorldPacket &recv_data ) { if(!GetPlayer()->InBattleGround()) return; BattleGround* bg = sBattleGroundMgr.GetBattleGround(GetPlayer()->GetBattleGroundId()); if(!bg) return; std::list<Player*> ListToSend; for(std::list<Player*>::iterator i = bg->GetPlayersBegin(); i != bg->GetPlayersEnd(); ++i) { if((*i) != GetPlayer()) ListToSend.push_back(*i); } WorldPacket data(MSG_BATTLEGROUND_PLAYER_POSITIONS, (4+16*ListToSend.size()+1)); data << uint32(ListToSend.size()); for(std::list<Player*>::iterator itr=ListToSend.begin();itr!=ListToSend.end();++itr) { data << (uint64)(*itr)->GetGUID(); data << (float)(*itr)->GetPositionX(); data << (float)(*itr)->GetPositionY(); } data << uint8(0); SendPacket(&data); }