//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponCrossbow::DoLoadEffect() { SetSkin(BOLT_SKIN_GLOW); CBasePlayer *pOwner = ToBasePlayer( GetOwner() ); if ( !pOwner ) return; CEffectData data; data.m_nAttachmentIndex = 1; #ifdef GAME_DLL data.m_nEntIndex = entindex(); CPASFilter filter(data.m_vOrigin); filter.RemoveRecipient(pOwner); te->DispatchEffect(filter, 0.0, data.m_vOrigin, "CrossbowLoad", data); #else CBaseViewModel *pViewModel = pOwner->GetViewModel(); if ( pViewModel != NULL ) { if ( ::input->CAM_IsThirdPerson() ) data.m_hEntity = pViewModel->GetRefEHandle(); else data.m_hEntity = GetRefEHandle(); DispatchEffect("CrossbowLoad", data); } #endif //Tony; switched this up, always attach it to the weapon, not the view model!! #ifndef CLIENT_DLL CSprite *pBlast = CSprite::SpriteCreate( CROSSBOW_GLOW_SPRITE2, GetAbsOrigin(), false ); if ( pBlast ) { pBlast->SetAttachment(this, 1); pBlast->SetTransparency(kRenderTransAdd, 255, 255, 255, 255, kRenderFxNone ); pBlast->SetBrightness(128); pBlast->SetScale(0.2f); pBlast->FadeOutFromSpawn(); } #endif }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponCrossbow::DoLoadEffect( void ) { SetSkin( BOLT_SKIN_GLOW ); CBasePlayer *pOwner = ToBasePlayer( GetOwner() ); if ( pOwner == NULL ) return; //Tony; change this up a bit; on the server, dispatch an effect but don't send it to the client who fires //on the client, create an effect either in the view model, or on the world model if first person. CEffectData data; data.m_nAttachmentIndex = 1; data.m_vOrigin = pOwner->GetAbsOrigin(); CPASFilter filter( data.m_vOrigin ); #ifdef GAME_DLL filter.RemoveRecipient( pOwner ); data.m_nEntIndex = entindex(); #else CBaseViewModel *pViewModel = pOwner->GetViewModel(); if ( ShouldDrawUsingViewModel() && pViewModel != NULL ) data.m_hEntity = pViewModel->GetRefEHandle(); else data.m_hEntity = GetRefEHandle(); #endif DispatchEffect( "CrossbowLoad", data, filter ); #ifndef CLIENT_DLL CSprite *pBlast = CSprite::SpriteCreate( CROSSBOW_GLOW_SPRITE2, GetAbsOrigin(), false ); if ( pBlast ) { pBlast->SetAttachment( this, 1 ); pBlast->SetTransparency( kRenderTransAdd, 255, 255, 255, 255, kRenderFxNone ); pBlast->SetBrightness( 128 ); pBlast->SetScale( 0.2f ); pBlast->FadeOutFromSpawn(); } #endif }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CWeaponGrapple::DoLoadEffect(void) { SetSkin(BOLT_SKIN_GLOW); CBasePlayer *pOwner = ToBasePlayer(GetOwner()); if (pOwner == NULL) return; CBaseViewModel *pViewModel = pOwner->GetViewModel(); if (pViewModel == NULL) return; CEffectData data; #ifdef CLIENT_DLL data.m_hEntity = pViewModel->GetRefEHandle(); #else data.m_nEntIndex = pViewModel->entindex(); #endif data.m_nAttachmentIndex = 1; DispatchEffect("CrossbowLoad", data); #ifndef CLIENT_DLL CSprite *pBlast = CSprite::SpriteCreate(CROSSBOW_GLOW_SPRITE2, GetAbsOrigin(), false); if (pBlast) { pBlast->SetAttachment(pOwner->GetViewModel(), 1); pBlast->SetTransparency(kRenderTransAdd, 255, 255, 255, 255, kRenderFxNone); pBlast->SetBrightness(128); pBlast->SetScale(0.2f); pBlast->FadeOutFromSpawn(); } #endif }