From f5da282ce0c41686230110771f3aeef2f3fe7b37 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 1 Apr 2023 15:04:32 +0800 Subject: [PATCH] 1 --- server/gameserver/airdrop.cc | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/server/gameserver/airdrop.cc b/server/gameserver/airdrop.cc index 58f9968e..5259a472 100644 --- a/server/gameserver/airdrop.cc +++ b/server/gameserver/airdrop.cc @@ -6,10 +6,12 @@ #include "room.h" #include "roomobstacle.h" #include "hero.h" +#include "mapinstance.h" #include "mt/AirDrop.h" #include "mt/MapThing.h" #include "mt/Hero.h" +#include "mt/Map.h" AirDrop::AirDrop(Room* room) { @@ -93,8 +95,21 @@ void AirDrop::ShuaMon(const glm::vec3& center, const std::vector& airdrop_m const mt::Hero* hero_meta = mt::Hero::GetById(hero_id); if (hero_meta) { int team_id = 666; - glm::vec3 pos; - glm::vec3 dir; + glm::vec3 ref_point = center; + glm::vec3 point; + glm::vec3 pos = center; + room_->map_instance->Scale(ref_point); + if (room_->map_instance->FindRandomPointAroundCircle + ( + center, + 80 * room_->GetMapMeta()->scale(), + point + )) { + room_->map_instance->UnScale(point); + pos = point; + } + glm::vec3 dir = GlmHelper::UP; + GlmHelper::RotateY(dir, a8::RandAngle()); Hero* hero = room_->CreateHero(nullptr, hero_meta, pos,