diff --git a/src/gs-entbase/server/func_breakable.cpp b/src/gs-entbase/server/func_breakable.cpp index 0d8af486..3b220a69 100755 --- a/src/gs-entbase/server/func_breakable.cpp +++ b/src/gs-entbase/server/func_breakable.cpp @@ -165,7 +165,8 @@ void func_breakable::Death(int body) void func_breakable::Trigger(void) { - func_breakable::Death(0); + if (health > 0) + func_breakable::Death(0); } /*void func_breakable::PressureDeath(void) diff --git a/src/server/valve/damage.c b/src/server/valve/damage.c index ef4019b8..50de385c 100644 --- a/src/server/valve/damage.c +++ b/src/server/valve/damage.c @@ -40,6 +40,11 @@ Damage_Apply(entity t, entity c, float dmg, int w, int type) return; } + /* already dead, please avoid recursion */ + if (t.health <= 0) { + return; + } + /* skip armor */ if not (type & DMG_SKIP_ARMOR) if (t.armor && dmg > 0) {