From d907cf5e2fddf780fc7e2d730f339d59d5dba423 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 17 Apr 2024 20:53:18 +0800 Subject: [PATCH] 1 --- server/gameserver/bornpoint.cc | 14 ++++++++++++++ server/gameserver/bornpoint.h | 1 + server/gameserver/room.cc | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/server/gameserver/bornpoint.cc b/server/gameserver/bornpoint.cc index dbe05678..caf27e8d 100644 --- a/server/gameserver/bornpoint.cc +++ b/server/gameserver/bornpoint.cc @@ -60,3 +60,17 @@ Position BornPoint::GetSrcPoint(Room* room) const } return pos; } + +Position BornPoint::NewRandPoint(Room* room, int min_radius, int max_radius) const +{ + Position pos; + if (wo_meta) { + pos.FromGlmVec3(wo_meta->pos); + glm::vec3 dir = GlmHelper::UP; + GlmHelper::RotateY(dir, glm::radians((float)(rand() % 360))); + pos.AddGlmVec3(dir * (float)a8::RandEx(min_radius, max_radius)); + } else { + A8_ABORT(); + } + return pos; +} diff --git a/server/gameserver/bornpoint.h b/server/gameserver/bornpoint.h index def41314..e74c36e5 100644 --- a/server/gameserver/bornpoint.h +++ b/server/gameserver/bornpoint.h @@ -16,4 +16,5 @@ struct BornPoint int GetNum(); Position RandPoint(Room* room) const; Position GetSrcPoint(Room* room) const; + Position NewRandPoint(Room* room, int min_radius, int max_radius) const; }; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index bd0ef721..8142f7ca 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3184,7 +3184,7 @@ void Room::OnBattleStart() } App::Instance()->verify_set_pos = 1; hum->SetBornPoint(point); - hum->SetPos(hum->GetBornPoint()->RandPoint(hum->room)); + hum->SetPos(hum->GetBornPoint()->NewRandPoint(hum->room, 10, 100)); App::Instance()->verify_set_pos = 0; return true; });