diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 39d647d..c873a40 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -360,8 +360,13 @@ bool Human::IsCollisionInMapService() if (!collider->owner->dead && TestCollision((ColliderComponent*)collider)) { if (last_collision_door != collider->owner) { Obstacle* obstacle = (Obstacle*)collider->owner; - if (!obstacle->dead && obstacle->meta->i->attack_type() == 1 && - obstacle->meta->i->drop() != 0) { + if (!obstacle->dead && + obstacle->meta->i->attack_type() == 1 && + obstacle->meta->i->drop() != 0 && + room->gas_data.gas_mode != GasInactive && + !a8::HasBitFlag(status, HS_Fly) && + !a8::HasBitFlag(status, HS_Jump) + ) { obstacle->health = 0; obstacle->dead = obstacle->health <= 0.01f; obstacle->dead_frameno = room->frame_no;