diff --git a/server/gameserver/airdrop.cc b/server/gameserver/airdrop.cc index 2dea6147..501489f0 100644 --- a/server/gameserver/airdrop.cc +++ b/server/gameserver/airdrop.cc @@ -61,7 +61,20 @@ void AirDrop::Exec(int appear_time, int box_id, int airdrop_id) #endif const mt::MapThing* thing_meta = mt::MapThing::GetById(box_id); if (thing_meta && thing_meta->type() == 2) { + glm::vec3 random_pt; + if (!room_->RandomSafeAreaPoint(random_pt)) { + return; + } glm::vec3 box_pos; + if (!room_->FindWalkablePointWithOutHouse + ( + random_pt, + 10, + 10, + box_pos + )) { + return; + } room_->frame_event.AddAirDrop(appear_time, box_id, box_pos); room_->xtimer.SetTimeoutEx (SERVER_FRAME_RATE * appear_time / 1000.f,