diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp index 19489e9c282..72cf5b860c0 100644 --- a/src/game/server/player.cpp +++ b/src/game/server/player.cpp @@ -5533,6 +5533,10 @@ void CBasePlayer::Spawn( void ) } m_weaponFiredTimer.Invalidate(); + +#ifdef MAPBASE + m_bInTriggerFall = false; +#endif } void CBasePlayer::Activate( void ) diff --git a/src/game/server/tf/tf_player.cpp b/src/game/server/tf/tf_player.cpp index c53932be16c..cc2961679c2 100644 --- a/src/game/server/tf/tf_player.cpp +++ b/src/game/server/tf/tf_player.cpp @@ -9222,6 +9222,13 @@ int CTFPlayer::OnTakeDamage( const CTakeDamageInfo &inputInfo ) { bAllowDamage = true; } +#ifdef MAPBASE + else if ( info.GetDamageType() & DMG_FALL && m_bInTriggerFall ) + { + // trigger_fall should always kill + bAllowDamage = true; + } +#endif if ( !TFGameRules()->ApplyOnDamageModifyRules( info, this, bAllowDamage ) ) { diff --git a/src/game/shared/tf/tf_gamerules.cpp b/src/game/shared/tf/tf_gamerules.cpp index ce28340f10d..5183ea893b7 100644 --- a/src/game/shared/tf/tf_gamerules.cpp +++ b/src/game/shared/tf/tf_gamerules.cpp @@ -13333,6 +13333,14 @@ float CTFGameRules::FlPlayerFallDamage( CBasePlayer *pPlayer ) if ( !pTFPlayer ) return 0; +#ifdef MAPBASE + // trigger_fall overrides all fall damage conditions + if ( pTFPlayer->m_bInTriggerFall ) + { + return pPlayer->GetMaxHealth(); + } +#endif + // Karts don't take fall damage if ( pTFPlayer->m_Shared.InCond( TF_COND_HALLOWEEN_KART ) ) {