From 2e3fec2d27ee9cccfc3e852a589f5c682f4d152c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 1 Apr 2023 13:51:07 +0800 Subject: [PATCH] 1 --- server/gameserver/airraid.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/server/gameserver/airraid.cc b/server/gameserver/airraid.cc index caa75aed..ea8f6a0a 100644 --- a/server/gameserver/airraid.cc +++ b/server/gameserver/airraid.cc @@ -5,6 +5,7 @@ #include "player.h" #include "obstacle.h" #include "roomobstacle.h" +#include "mapinstance.h" #include "mt/AirRaid.h" #include "mt/SafeArea.h" @@ -85,6 +86,24 @@ bool AirRaid::GenAirRaidPos(const mt::AirRaid* raid_meta, glm::vec3& center) } #endif } + { + glm::vec3 ref_point = center; + room_->map_instance->PtInHouse(center, ref_point); + room_->map_instance->Scale(ref_point); + glm::vec3 point; + bool ok = false; + for (int i = 0; i < 10; ++i) { + ok = room_->map_instance->FindNearestPoint(ref_point, 1.0f + 10 * i, point); + if (ok) { + break; + } + } + if (!ok) { + return false; + } + room_->map_instance->UnScale(point); + center = point; + } room_->frame_event.AddAirRaid(raid_meta->appear_time(), center, raid_meta->rad()); return true; }