General SDK Snippets & Fixes: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
 
Line 1: Line 1:
__FORCETOC__
=Remove Head Crab=
=Remove Head Crab=
How to Remove HeadCrab from zombie
How to Remove HeadCrab from zombie
Line 53: Line 55:
}  
}  
</pre>
</pre>
=Working CS:S Muzzle Flashes without Model Editing=
In c_baseanimating.cpp, at line 3024 (after the big ass switch statement), comment out the code so it looks like this
<pre>
//if ( iAttachment != -1 && m_Attachments.Count() > iAttachment )
{
//GetAttachment( iAttachment+1, attachOrigin, attachAngles );
//int entId = render->GetViewEntity();
//tempents->MuzzleFlash( attachOrigin, attachAngles, atoi( options ), entId, bFirstPerson );
</pre>
and place the following below it. (be sure not to comment out the ending brakets and final breaks)
<pre>
if ( iAttachment != -1 && m_Attachments.Count() > iAttachment )
{
if ( input->CAM_IsThirdPerson() )
{
C_BaseCombatWeapon *pWeapon = GetActiveWeapon();
pWeapon->GetAttachment( iAttachment+1, attachOrigin, attachAngles );
}
else
{
C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
CBaseViewModel *vm = pPlayer->GetViewModel();
vm->GetAttachment( iAttachment+1, attachOrigin, attachAngles );
engine->GetViewAngles( attachAngles );
}
g_pEffects->MuzzleFlash( attachOrigin, attachAngles, 1.0, MUZZLEFLASH_TYPE_DEFAULT );
}
</pre>
Go to fx.cpp, line 227 (under the statement "pParticle->m_vecVelocity.Init();"), place the following code.
<pre>
C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
Vector velocity = pPlayer->GetLocalVelocity();
pParticle->m_vecVelocity += velocity;
</pre>
There you go, working muzzle flashes for CS:S weapons in HL2




[[Category:Snippets]]
[[Category:Snippets]]

Revision as of 14:59, 25 May 2007


Remove Head Crab

How to Remove HeadCrab from zombie

in hl2_dll\npc_zombie.cpp look for void CZombie::Spawn( void ) then find this line.

m_fIsHeadless = false;

ans simply change it to read this

m_fIsHeadless = true;

Now open hl2_dll\npc_BaseZombie.cpp and change this section to look like this.

//-----------------------------------------------------------------------------
// Purpose: A zombie has taken damage. Determine whether he release his headcrab.
// Output : YES, IMMEDIATE, or SCHEDULED (see HeadcrabRelease_t)
//-----------------------------------------------------------------------------
HeadcrabRelease_t CNPC_BaseZombie::ShouldReleaseHeadcrab( const CTakeDamageInfo &info, float flDamageThreshold )
{
if ( m_iHealth <= 0 )
{
// If I was killed by a bullet...
if ( info.GetDamageType() & DMG_BULLET )
{
if( m_bHeadShot )
{
if( flDamageThreshold > 0.25 )
{
// Enough force to kill the crab.
//return RELEASE_RAGDOLL;
}
}
else
{
// Killed by a shot to body or something. Crab is ok!
//return RELEASE_IMMEDIATE;
}
}

// If I was killed by an explosion, release the crab.
if ( info.GetDamageType() & DMG_BLAST )
{
//return RELEASE_RAGDOLL;
}

if ( m_fIsTorso && IsChopped( info ) )
{
return RELEASE_RAGDOLL_SLICED_OFF;
}
}

return RELEASE_NO;
} 


Working CS:S Muzzle Flashes without Model Editing

In c_baseanimating.cpp, at line 3024 (after the big ass switch statement), comment out the code so it looks like this


//if ( iAttachment != -1 && m_Attachments.Count() > iAttachment )

{

//GetAttachment( iAttachment+1, attachOrigin, attachAngles );

//int entId = render->GetViewEntity();

//tempents->MuzzleFlash( attachOrigin, attachAngles, atoi( options ), entId, bFirstPerson );

and place the following below it. (be sure not to comment out the ending brakets and final breaks)


if ( iAttachment != -1 && m_Attachments.Count() > iAttachment )
{
if ( input->CAM_IsThirdPerson() )
{
C_BaseCombatWeapon *pWeapon = GetActiveWeapon();
pWeapon->GetAttachment( iAttachment+1, attachOrigin, attachAngles );
}
else
{
C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
CBaseViewModel *vm = pPlayer->GetViewModel();
vm->GetAttachment( iAttachment+1, attachOrigin, attachAngles );
engine->GetViewAngles( attachAngles );
}
g_pEffects->MuzzleFlash( attachOrigin, attachAngles, 1.0, MUZZLEFLASH_TYPE_DEFAULT );
}

Go to fx.cpp, line 227 (under the statement "pParticle->m_vecVelocity.Init();"), place the following code.


C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer();
Vector velocity = pPlayer->GetLocalVelocity();
pParticle->m_vecVelocity += velocity;

There you go, working muzzle flashes for CS:S weapons in HL2