diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 3f9538a..a76f37f 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -3969,14 +3969,16 @@ void Room::AirRaid(int airraid_id) ); a8::Vec2 dir = a8::Vec2::UP; dir.Rotate(a8::RandAngle()); - a8::Vec2 pos = center + dir * (50 + rand() % 100);; - RoomObstacle* obstacle = room->CreateObstacle - ( - raid_meta->i->bomb_id(), - pos.x, - pos.y - ); - obstacle->Active(); + a8::Vec2 pos = center + dir * (50 + rand() % 100); + if (room->grid_service->CanAdd(pos.x, pos.y)) { + RoomObstacle* obstacle = room->CreateObstacle + ( + raid_meta->i->bomb_id(), + pos.x, + pos.y + ); + obstacle->Active(); + } }; Room* room = (Room*)param.sender.GetUserData(); if (room->IsGameOver()) {