diff --git a/server/gameserver/framemaker.cc b/server/gameserver/framemaker.cc index 8973e526..9df61e5d 100644 --- a/server/gameserver/framemaker.cc +++ b/server/gameserver/framemaker.cc @@ -320,6 +320,9 @@ void FrameMaker::SerializeShots(cs::SMUpdate* msg, Room* room, Human* hum, Frame if (idx < room->frame_event_data->shots_.size()) { auto& tuple = room->frame_event_data->shots_[idx]; if (std::get<0>(tuple).Get() && hum->CanSee(std::get<0>(tuple).Get())) { + if (std::get<0>(tuple).Get()->IsPlayer()) { + a8::XPrintf("player shot\n", {}); + } *msg->add_shots() = std::get<1>(tuple); } else { #ifdef DEBUG1 diff --git a/server/gameserver/mt/Map.cc b/server/gameserver/mt/Map.cc index 7547dc07..f177214f 100644 --- a/server/gameserver/mt/Map.cc +++ b/server/gameserver/mt/Map.cc @@ -128,6 +128,7 @@ namespace mt } collider_info = MapCollider::GetByName(map_collider()); LoadWorldObjects(); + PostProcess(); } void Map::Init2() @@ -289,4 +290,30 @@ namespace mt return sampling_pos_; } + void Map::PostProcess() + { + if (!is_moba()) { + return; + } + std::vector del_ids; + std::vector> born_points; + int idx = 0; + for (auto& obj : _world_objects) { + if (obj->object_type == WorldObjectType_e::kBoxType) { + if (obj->object_id == 80012) { + born_points.push_back(obj); + del_ids.push_back(idx); + } + } + ++idx; + } + std::sort(del_ids.begin(), del_ids.end(), + [] (int a, int b) { + return a > b; + }); + for (auto idx : del_ids) { + _world_objects.erase(_world_objects.begin() + idx); + } + } + } diff --git a/server/gameserver/mt/Map.h b/server/gameserver/mt/Map.h index 2c6ef159..d1d74d49 100644 --- a/server/gameserver/mt/Map.h +++ b/server/gameserver/mt/Map.h @@ -54,6 +54,7 @@ namespace mt glm::vec3 sampling_pos_; void LoadWorldObjects(); + void PostProcess(); }; }