General SDK Snippets & Fixes: Difference between revisions
Jump to navigation
Jump to search
| Line 5: | Line 5: | ||
in hl2_dll\npc_zombie.cpp look for void CZombie::Spawn( void ) then find this line. | in hl2_dll\npc_zombie.cpp look for void CZombie::Spawn( void ) then find this line. | ||
m_fIsHeadless = false; | |||
m_fIsHeadless = false; | |||
ans simply change it to read this | ans simply change it to read this | ||
m_fIsHeadless = true; | |||
m_fIsHeadless = true; | |||
Now open hl2_dll\npc_BaseZombie.cpp and change this section to look like this. | Now open hl2_dll\npc_BaseZombie.cpp and change this section to look like this. | ||
<pre> | <pre> | ||
| Line 20: | Line 16: | ||
HeadcrabRelease_t CNPC_BaseZombie::ShouldReleaseHeadcrab( const CTakeDamageInfo &info, float flDamageThreshold ) | HeadcrabRelease_t CNPC_BaseZombie::ShouldReleaseHeadcrab( const CTakeDamageInfo &info, float flDamageThreshold ) | ||
{ | { | ||
if ( m_iHealth <= 0 ) | if ( m_iHealth <= 0 ) | ||
{ | { | ||
// If I was killed by a bullet... | // If I was killed by a bullet... | ||
if ( info.GetDamageType() & DMG_BULLET ) | if ( info.GetDamageType() & DMG_BULLET ) | ||
{ | { | ||
if( m_bHeadShot ) | if( m_bHeadShot ) | ||
{ | { | ||
if( flDamageThreshold > 0.25 ) | if( flDamageThreshold > 0.25 ) | ||
{ | { | ||
// Enough force to kill the crab. | // Enough force to kill the crab. | ||
//return RELEASE_RAGDOLL; | //return RELEASE_RAGDOLL; | ||
} | } | ||
} | } | ||
else | else | ||
{ | { | ||
// Killed by a shot to body or something. Crab is ok! | // Killed by a shot to body or something. Crab is ok! | ||
//return RELEASE_IMMEDIATE; | //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 ) ) | |||
if ( info | { | ||
{ | return RELEASE_RAGDOLL_SLICED_OFF; | ||
} | |||
} | } | ||
return RELEASE_NO; | |||
return | |||
} | } | ||
</pre> | </pre> | ||
=Working CS:S Muzzle Flashes without Model Editing= | =Working CS:S Muzzle Flashes without Model Editing= | ||
Revision as of 17:04, 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 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();
ClientEntityHandle_t hEntity = ClientEntityList().EntIndexToHandle( entId );
tempents->MuzzleFlash( attachOrigin, attachAngles, atoi( options ), hEntity, bFirstPerson );
*/
}
and insert the following code after the comment.
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, under the statement pParticle->m_vecVelocity.Init(); in FX_MuzzleFlash, place the following code.
C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer(); Vector velocity = pPlayer->GetLocalVelocity(); pParticle->m_vecVelocity += velocity;