From 62b560e3bf11d8c097031a962998ebe445d35b45 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 25 Jun 2021 16:57:13 +0800 Subject: [PATCH] =?UTF-8?q?4.=E7=A9=BA=E8=A2=AD=EF=BC=8C=E6=8C=82=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/roomobstacle.cc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index af8a9ec..5034479 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -183,14 +183,16 @@ void RoomObstacle::SpecExplosion() bomb_born_offset.Rotate(a8::RandAngle()); bomb_born_offset = bomb_born_offset * a8::RandEx(1, std::max(2, meta->i->explosion_float())); a8::Vec2 bomb_pos = GetPos() + bomb_born_offset; - Explosion explosion; - explosion.IndifferenceAttack( - room, - bomb_pos, - meta->i->damage_dia(), - meta->i->explosion_effect(), - meta->i->damage() - ); + if (room->grid_service->CanAdd(bomb_pos.x, bomb_pos.y)) { + Explosion explosion; + explosion.IndifferenceAttack( + room, + bomb_pos, + meta->i->damage_dia(), + meta->i->explosion_effect(), + meta->i->damage() + ); + } } if (explosion_times_ >= meta->i->explosion_times()) { room->xtimer.DeleteTimer(room->xtimer.GetRunningTimer());