diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index 97dbefc..3ce10fd 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -226,6 +226,9 @@ void Bullet::ProcBomb() case IS_C4: { //c4 + if (block) { + delay_time = gun_meta->i->missiles_time(); + } ProcC4Bomb(c4_target, delay_time); } break; @@ -537,6 +540,7 @@ void Bullet::ProcC4Bomb(Car* target, int delay_time) } } } + task->explosion_range = GetExplosionRange(); task->gun_meta = gun_meta; task->meta = meta; task->atk = GetAtk(); diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index 9a68b63..28e3b4d 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -211,6 +211,7 @@ void RoomObstacle::SpecExplosion() [this, &target_list, &bomb_pos] (Creature* c, bool& stop) { if (master.Get()->team_id != c->team_id && + !c->dead && bomb_pos.Distance(c->GetPos()) < meta->i->damage_dia()) { target_list.insert(c); }