All pastes #516096 Raw Edit

SteveUK

public cpp v1 · immutable
#516096 ·published 2007-05-28 15:00 UTC
rendered paste body
//=========================================================// TraceAttack//=========================================================void CBasePlayer::TraceAttack( const CTakeDamageInfo &inputInfo, const Vector &vecDir, trace_t *ptr ){	if ( m_takedamage )	{		CTakeDamageInfo info = inputInfo;		// --------------------------------------------------		//  If an NPC check if friendly fire is disallowed		// --------------------------------------------------		CAI_BaseNPC *pNPC = info.GetAttacker()->MyNPCPointer();		if ( pNPC && (pNPC->CapabilitiesGet() & bits_CAP_NO_HIT_PLAYER) && pNPC->IRelationType( this ) != D_HT )		{			return;		}		// Prevent team damage here so blood doesn't appear		if ( info.GetAttacker()->IsPlayer() )		{			if ( !g_pGameRules->FPlayerCanTakeDamage( this, info.GetAttacker() ) )				return;		}		SetLastHitGroup( ptr->hitgroup );				switch ( ptr->hitgroup )		{		case HITGROUP_GENERIC:			break;		case HITGROUP_HEAD:			info.ScaleDamage( sk_player_head.GetFloat() );			break;		case HITGROUP_CHEST:			info.ScaleDamage( sk_player_chest.GetFloat() );			break;		case HITGROUP_STOMACH:			info.ScaleDamage( sk_player_stomach.GetFloat() );			break;		case HITGROUP_LEFTARM:		case HITGROUP_RIGHTARM:			info.ScaleDamage( sk_player_arm.GetFloat() );			break;		case HITGROUP_LEFTLEG:		case HITGROUP_RIGHTLEG:			info.ScaleDamage( sk_player_leg.GetFloat() );			break;		default:			break;		}		SpawnBlood(ptr->endpos, vecDir, BloodColor(), info.GetDamage());// a little surface blood.		TraceBleed( info.GetDamage(), vecDir, ptr, info.GetDamageType() );		AddMultiDamage( info, this );	}}