diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index f68c17d..e9222f0 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -224,15 +224,23 @@ void Human::GetAabbBox(AabbCollider& aabb_box) void Human::FillMFTeamData(cs::MFTeamData* team_data) { - team_data->set_player_id(entity_uniid); - team_data->set_name(name); - TypeConvert::ToPb(pos, team_data->mutable_pos()); - TypeConvert::ToPb(attack_dir, team_data->mutable_dir()); - team_data->set_health(health); - team_data->set_max_health(GetMaxHP()); - team_data->set_disconnected(false); - team_data->set_dead(dead); - team_data->set_downed(downed); +#if 1 + { +#else + if (room->gas_data.gas_mode == GasJump || + room->frame_no - last_sync_teamdata_frameno_ > SERVER_FRAME_RATE * 2) { +#endif + last_sync_teamdata_frameno_ = room->frame_no; + team_data->set_player_id(entity_uniid); + team_data->set_name(name); + TypeConvert::ToPb(pos, team_data->mutable_pos()); + TypeConvert::ToPb(attack_dir, team_data->mutable_dir()); + team_data->set_health(health); + team_data->set_max_health(GetMaxHP()); + team_data->set_disconnected(false); + team_data->set_dead(dead); + team_data->set_downed(downed); + } } void Human::Shot(a8::Vec2& target_dir) diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 494fb34..53800f8 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -241,6 +241,7 @@ protected: long long recover_hp_frameno_ = 0; long long reflect_damage_frameno_ = 0; long long summon_hero_frameno_ = 0; + long long last_sync_teamdata_frameno_ = 0; a8::XTimerAttacher skill_xtimer_attacher_; bool leave_ = false; long long leave_frameno_ = 0;