diff --git a/server/gameserver/framemaker.cc b/server/gameserver/framemaker.cc index 36a8b93..44e22a5 100644 --- a/server/gameserver/framemaker.cc +++ b/server/gameserver/framemaker.cc @@ -8,13 +8,6 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum) { cs::SMUpdate* msg = new cs::SMUpdate; { - if (hum->team_members) { - for (auto& itr : *hum->team_members) { - if (itr != hum) { - itr->FillMFTeamData(msg->add_team_data()); - } - } - } Room* room = hum->room; if (room->gas_data.gas_mode == GasJump) { cs::MFPlane* p = msg->mutable_plane(); diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 40530bf..35449bd 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -1215,6 +1215,14 @@ void Human::SendUpdateMsg() bool refreshed_view = false; std::set view_objects; for (Human* observer : observers_) { + msg->clear_team_data(); + if (observer->team_members) { + for (auto& itr : *observer->team_members) { + if (itr != observer) { + itr->FillMFTeamData(msg->add_team_data()); + } + } + } if (observer != this && !observer->follow_synced_active_player) { msg->set_active_player_id(entity_uniid); FillMFActivePlayerData(msg->mutable_active_player_data());