From 40bdf9fa7df2c16d02e3fd7f0cca11d926932e5c Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 12 May 2021 15:54:30 +0800 Subject: [PATCH] 1 --- server/gameserver/room.cc | 43 ++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index af58716..a65e711 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3795,16 +3795,35 @@ void Room::ShuaMon(const a8::Vec2& center, std::vector& airdrop_mon_list) if (hero_meta) { int team_id = 666; Creature* master = nullptr; - a8::Vec2 pos = center; - a8::Vec2 dir = center; - Hero* hero = CreateHero(master, - hero_meta, - pos, - dir, - team_id); - if (!hero) { - abort(); - } - } - } + for (int i = 0; i < 10; ++i) { + a8::Vec2 born_dir = center; + a8::Vec2 born_offset(10, 10); + born_offset.Rotate(born_dir.CalcAngle(a8::Vec2::UP)); + born_offset.Rotate(i * 0.5); + + a8::Vec2 hero_pos = center + born_offset; + a8::Vec2 dir = center; + + CircleCollider collider; + collider.pos = hero_pos; + collider.rad = hero_meta->i->radius(); + if (!map_service->CollisionDetection + ( + this, + false, + hero_pos, + &collider + )) { + Hero* hero = CreateHero(master, + hero_meta, + hero_pos, + dir, + team_id); + if (!hero) { + abort(); + } + } + }//end for i + }//end if + }//end for hero_id }