diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index 4de1627..342c005 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -395,7 +395,11 @@ void Bullet::Check(float distance) std::set colliders; room->map_service->GetColliders(room, GetX(), GetY(), colliders); for (ColliderComponent* collider : colliders) { - if (collider->owner->IsEntityType(ET_Obstacle)) { + if (collider->owner->IsEntityType(ET_Dummy)) { + if (TestCollision(room, collider)) { + objects.insert(collider->owner); + } + } else if (collider->owner->IsEntityType(ET_Obstacle)) { Obstacle* obstacle = (Obstacle*)collider->owner; if (gun_meta->i->is_penetrate_thing() && hit_objects_.find(obstacle->GetUniId()) != hit_objects_.end()) { diff --git a/server/gameserver/dummyentity.cc b/server/gameserver/dummyentity.cc index a4be227..2beac82 100644 --- a/server/gameserver/dummyentity.cc +++ b/server/gameserver/dummyentity.cc @@ -50,3 +50,13 @@ void DummyEntity::Initialize() } } } + +void DummyEntity::OnBulletHit(Bullet* bullet) +{ + +} + +void DummyEntity::OnExplosionHit(Explosion* explosion) +{ + +} diff --git a/server/gameserver/dummyentity.h b/server/gameserver/dummyentity.h index 38c2096..b42d88c 100644 --- a/server/gameserver/dummyentity.h +++ b/server/gameserver/dummyentity.h @@ -15,4 +15,7 @@ class DummyEntity : public Entity std::list* blocks = nullptr; virtual void Initialize() override; + virtual void OnBulletHit(Bullet* bullet) override; + virtual void OnExplosionHit(Explosion* explosion) override; + };