From c8d6113fddc8fa4f948e0cd810a8fe8292e0b614 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 1 Apr 2023 20:48:36 +0800 Subject: [PATCH] 1 --- server/gameserver/incubator.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server/gameserver/incubator.cc b/server/gameserver/incubator.cc index ec69bd43..4f913669 100644 --- a/server/gameserver/incubator.cc +++ b/server/gameserver/incubator.cc @@ -8,6 +8,7 @@ #include "pbutils.h" #include "glmhelper.h" #include "mapinstance.h" +#include "bornpoint.h" #include "mt/Param.h" #include "mt/Map.h" @@ -249,6 +250,19 @@ Human* Incubator::ActiveAndroid(Human* hum) target = androids[0]; } else if (!hold_humans_.empty()) { target = hold_humans_[0]; + glm::vec3 center = glm::vec3(room->GetGasData().pos_new.x, 0.0f, room->GetGasData().pos_new.y); + glm::vec3 out_pt; + if (room->map_instance->GetNearestGrass(center, out_pt)) { + Global::Instance()->verify_set_pos = 1; + target->GetMutablePos().FromGlmVec3(out_pt); + Global::Instance()->verify_set_pos = 0; + } else { + Global::Instance()->verify_set_pos = 1; + target->GetMutablePos().FromGlmVec3(target->born_point->RandPoint().ToGlmVec3()); + Global::Instance()->verify_set_pos = 0; + } + room->EnableHuman(hum); + hold_humans_.erase(hold_humans_.begin()); } #ifdef DEBUG if (target) {