diff --git a/server/gameserver/obstacle.cc b/server/gameserver/obstacle.cc index 2097c5c..bb8426e 100644 --- a/server/gameserver/obstacle.cc +++ b/server/gameserver/obstacle.cc @@ -558,6 +558,10 @@ void Obstacle::OnBulletHit(Bullet* bullet) if (!IsDead(bullet->room) && Attackable() && !IsTerminatorAirDropBox(bullet->room)) { + if (meta->receive_special_damage_type != 0 && + ((bullet->gun_meta->special_damage_type & meta->receive_special_damage_type) == 0)) { + return; + } float dmg = bullet->GetAtk() * (1 + bullet->sender.Get()->GetAttrRate(kHAT_Atk)) + bullet->sender.Get()->GetAttrAbs(kHAT_Atk); float def = 0;