Fix player pain sound.

This commit is contained in:
Night Owl 2017-12-29 08:07:40 +05:00
parent c15514ea16
commit b7bf8d90fb
1 changed files with 23 additions and 34 deletions

View File

@ -415,18 +415,7 @@ void CBasePlayer::TraceAttack( entvars_t *pevAttacker, float flDamage, Vector ve
TraceBleed( flDamage, vecDir, ptr, bitsDamageType );
AddMultiDamage( pevAttacker, this, flDamage, bitsDamageType );
if( bitsDamageType & ( DMG_BLAST | DMG_SHOCK | DMG_SONIC | DMG_ENERGYBEAM ) )
{
float flRand = RANDOM_FLOAT( 0, 1 );
// Blast damage always trigger pain sounds.
if( bitsDamageType & DMG_BLAST )
flRand = 0;
//
// 25% chances playing damage location based pain sound.
//
if( flRand <= 0.25 )
if( flDamage >= pev->health * 0.333 )
{
switch( ptr->iHitgroup )
{
@ -448,11 +437,11 @@ void CBasePlayer::TraceAttack( entvars_t *pevAttacker, float flDamage, Vector ve
EMIT_SOUND( ENT( pev ), CHAN_VOICE, "player/pain/pain_leg.wav", 1, ATTN_NORM );
break;
default:
EMIT_SOUND( ENT( pev ), CHAN_VOICE, "player/pain/spout.wav", 1, ATTN_NORM );
break;
}
}
}
else
EMIT_SOUND( ENT( pev ), CHAN_VOICE, "player/pain/spout.wav", 1, ATTN_NORM );
}
}