General SDK Snippets & Fixes: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 61: | Line 61: | ||
Open weapon_crossbow.cpp | Open weapon_crossbow.cpp | ||
After : | In <code>CCrossbowBolt::BoltTouch( CBaseEntity *pOther )</code> After : | ||
<pre> | <pre> | ||
if ( pOther->GetCollisionGroup() == COLLISION_GROUP_BREAKABLE_GLASS ) | if ( pOther->GetCollisionGroup() == COLLISION_GROUP_BREAKABLE_GLASS ) |
Revision as of 04:02, 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
In CCrossbowBolt::BoltTouch( CBaseEntity *pOther )
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; }