Abaixando sua arma enquanto correndo
< Pt-br
		
		
		
		Jump to navigation
		Jump to search
		Este artigo fornece uma implementação básica de abaixamento de armas durante a corrida e prevenção de disparos de armas ao fazê-lo.
O Codigo
BASECOMBATWEAPON_SHARED.CPP
Aperta CRTL+F e procure para essa parte:
void CBaseCombatWeapon::ItemPostFrame( void )
Em seguida, copie e cole isto acima:
void CBaseCombatWeapon::ProcessAnimationEvents(void)
{
	CBasePlayer *pOwner = ToBasePlayer( GetOwner() );
	if (!pOwner)
		return;
	if ( !m_bWeaponIsLowered && (pOwner->m_nButtons & IN_SPEED ) )
	{
		m_bWeaponIsLowered = true;
		SendWeaponAnim( ACT_VM_IDLE_LOWERED );
		m_flNextPrimaryAttack = gpGlobals->curtime + GetViewModelSequenceDuration();
	        m_flNextSecondaryAttack = m_flNextPrimaryAttack;
	}
	else if ( m_bWeaponIsLowered && !(pOwner->m_nButtons & IN_SPEED ) )
	{
		m_bWeaponIsLowered = false;
		SendWeaponAnim( ACT_VM_IDLE );
		m_flNextPrimaryAttack = gpGlobals->curtime + GetViewModelSequenceDuration();
 	        m_flNextSecondaryAttack = m_flNextPrimaryAttack;
	}
	if ( m_bWeaponIsLowered )
	{
		if ( gpGlobals->curtime > m_flNextPrimaryAttack )
		{
			SendWeaponAnim( ACT_VM_IDLE_LOWERED );
			m_flNextPrimaryAttack = gpGlobals->curtime + GetViewModelSequenceDuration();
			m_flNextSecondaryAttack = m_flNextPrimaryAttack;
		}
	}
}
Agora, para garantir que nosso código seja chamado, adicionamos ProcessAnimationEvents(); aqui:
void CBaseCombatWeapon::ItemPostFrame( void )
{
     //Adicione isso abaixo da verificação do acessador pOwner.
      ProcessAnimationEvents();
}
BASECOMBATWEAPON_SHARED.H
Adicione essas declarações em public na linha 211 abaixo bool IsViewModelSequenceFinished( void ); // Retorna se a animação atual do viewmodel foi finalizada:
	virtual void            ProcessAnimationEvents(void);
	bool                    m_bWeaponIsLowered;
Fim
Agora quando você correr sua arma deve abaixar!
