diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index 218e7d9..dde4f86 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -362,12 +362,18 @@ void Bullet::Check(float distance) if (c != sender.Get() && !c->dead && TestCollision(room, &aabb_box)) { if (meta->i->_inventory_slot() == IS_C4) { if (!c->IsHuman()) { - ++c_hit_num; objects.insert(c); + if (gun_meta->i->ispenetrate()) { + ++c_hit_num; + hit_objects_.insert(c->GetUniId()); + } } } else { - ++c_hit_num; objects.insert(c); + if (gun_meta->i->ispenetrate()) { + ++c_hit_num; + hit_objects_.insert(c->GetUniId()); + } } } } @@ -385,8 +391,11 @@ void Bullet::Check(float distance) } if (!obstacle->CanThroughable(this)) { if (TestCollision(room, collider)) { - ++t_hit_num; objects.insert(collider->owner); + if (gun_meta->i->is_penetrate_thing()) { + ++t_hit_num; + hit_objects_.insert(collider->owner->GetUniId()); + } } } }