From f1228baf094e79e3b8df0b76b1b23cda3b560240 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 20 Jun 2023 18:57:06 +0800 Subject: [PATCH] 1 --- server/gameserver/room.cc | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 4a3063cc..f21c31b7 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3377,4 +3377,39 @@ void Room::GMFastForward() while (GetGasData().new_area_meta->GetSmallRingCount() >= 4) { ForwardGasRing(1); } + TraversePlayerList + ( + [this] (Player* hum) + { + glm::vec3 point = glm::vec3(GetGasData().new_area_meta->GetLastArea()->x1(), + 6.0f, + GetGasData().new_area_meta->GetLastArea()->y1()); + { + glm::vec3 center = hum->GetPos().ToGlmVec3(); + map_instance->Scale(center); + glm::vec3 point; + bool ok = false; + for (int i = 0; i < 10; ++i) { + ok = map_instance->FindConnectableNearestPoint(center, 1.0f + 10 * i, point); + if (ok) { + break; + } + } + if (ok) { + map_instance->UnScale(point); + hum->GetMutablePos().FromGlmVec3(point); + grid_service->MoveCreature(hum); + } + } + }); + xtimer.SetTimeoutEx + ( + 1, + [this] (int event, const a8::Args* args) + { + if (a8::TIMER_EXEC_EVENT == event) { + GetIncubator()->ShowHand(); + } + }, + &xtimer_attacher_); }