General SDK Snippets & Fixes: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 57: | Line 57: | ||
Vector velocity = pPlayer->GetLocalVelocity(); | Vector velocity = pPlayer->GetLocalVelocity(); | ||
pParticle->m_vecVelocity += velocity; | pParticle->m_vecVelocity += velocity; | ||
=Crossbow Bolt going through glass (func_breakable)= | |||
Open weapon_crossbow.cpp | |||
After : | |||
<pre> | |||
if ( pOther->GetCollisionGroup() == COLLISION_GROUP_BREAKABLE_GLASS ) | |||
return; | |||
</pre> | |||
Insert the following code : | |||
<pre> | |||
if(Q_strcmp(pOther->GetClassname(), "func_breakable") == 0) | |||
{ | |||
CBreakable* pOtherEntity = static_cast<CBreakable*> (pOther); | |||
if(pOtherEntity->GetMaterialType() == 0) | |||
return; | |||
} | |||
</pre> | |||
[[Category:Snippets]] | [[Category:Snippets]] |
Revision as of 03:59, 8 November 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 ) { return ( m_iHealth <= 0 && m_fIsTorso && IsChopped( info ) )?RELEASE_RAGDOLL_SLICED_OFF: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;
Crossbow Bolt going through glass (func_breakable)
Open weapon_crossbow.cpp
After :
if ( pOther->GetCollisionGroup() == COLLISION_GROUP_BREAKABLE_GLASS ) return;
Insert the following code :
if(Q_strcmp(pOther->GetClassname(), "func_breakable") == 0) { CBreakable* pOtherEntity = static_cast<CBreakable*> (pOther); if(pOtherEntity->GetMaterialType() == 0) return; }