Пример #1
0
void CSatchel::Throw( void )
{
	if ( m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] )
	{
		Vector vecSrc = m_pPlayer->pev->origin;

		Vector vecThrow = gpGlobals->v_forward * 274 + m_pPlayer->pev->velocity;

#ifndef CLIENT_DLL
		CBaseEntity *pSatchel = Create( "monster_satchel", vecSrc, Vector( 0, 0, 0), m_pPlayer->edict() );
		pSatchel->pev->velocity = vecThrow;
		pSatchel->pev->avelocity.y = 400;

		m_pPlayer->pev->viewmodel = MAKE_STRING("models/v_satchel_radio.mdl");
		m_pPlayer->pev->weaponmodel = MAKE_STRING("models/p_satchel_radio.mdl");
#else
		LoadVModel ( "models/v_satchel_radio.mdl", m_pPlayer );
#endif

		SendWeaponAnim( SATCHEL_RADIO_DRAW );

		// player "shoot" animation
		m_pPlayer->SetAnimation( PLAYER_ATTACK1 );

		m_chargeReady = 1;
		
		m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]--;

		m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 1.0;
		m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.5;
	}
}
Пример #2
0
void CPython::Holster( int skiplocal /* = 0 */ )
{
	if (m_fInZoom == TRUE) 
	{
		m_pPlayer->b_EstaEnZoom = FALSE;

		#ifndef CLIENT_DLL
				if (!FStringNull (v_model) )
				m_pPlayer->pev->viewmodel = v_model;
				else
				m_pPlayer->pev->viewmodel = MAKE_STRING("models/weapons/357/v_357.mdl");
		#else
				if (!FStringNull (v_model) )
				m_pPlayer->pev->viewmodel = v_model;
				else
				LoadVModel ( "models/weapons/357/v_357.mdl", m_pPlayer );
		#endif
		m_pPlayer->pev->fov = m_pPlayer->m_iFOV = 0; // 0 means reset to default fov
		m_fInZoom = FALSE;
	}

	m_fInReload = FALSE;// cancel any reload in progress.

//	if ( m_fInZoom )
//	{
//		SecondaryAttack();
//	}

	m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1.0;
	m_flTimeWeaponIdle = UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );
	SendWeaponAnim( PYTHON_IDLE1 );//PYTHON_HOLSTER
}
Пример #3
0
void CPython::SecondaryAttack()
{
	if (m_fInZoom == FALSE) //false
	{
		m_pPlayer->pev->fov = m_pPlayer->m_iFOV = 45;
		m_fInZoom = TRUE;//**ON**
		m_pPlayer->b_EstaEnZoom = TRUE;

		#ifndef CLIENT_DLL
			m_pPlayer->pev->viewmodel = MAKE_STRING("models/weapons/357/v_357_scope.mdl");
		#else
			LoadVModel ( "models/weapons/357/v_357_scope.mdl", m_pPlayer ); 
		#endif								

		UTIL_ScreenFade( m_pPlayer, Vector(0,0,0), 1, 0.1, 255, FFADE_IN); //fade to red 
		EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/zoom.wav", RANDOM_FLOAT(0.95, 1.0), ATTN_NORM, 0, 93 + RANDOM_LONG(0,0xF));   
	}
	else
	{
		m_pPlayer->b_EstaEnZoom = FALSE;

		m_pPlayer->pev->fov = m_pPlayer->m_iFOV = 0;
		m_fInZoom = FALSE;//**OFF**

		#ifndef CLIENT_DLL
				if (!FStringNull (v_model) )
				m_pPlayer->pev->viewmodel = v_model;
				else
				m_pPlayer->pev->viewmodel = MAKE_STRING("models/weapons/357/v_357.mdl");//model default
		#else
				if (!FStringNull (v_model) )
				m_pPlayer->pev->viewmodel = v_model;
				else
				LoadVModel ( "models/weapons/357/v_357.mdl", m_pPlayer );
		#endif

		EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/zoom.wav", RANDOM_FLOAT(0.95, 1.0), ATTN_NORM, 0, 93 + RANDOM_LONG(0,0xF));   
	}

//	pev->nextthink = UTIL_WeaponTimeBase() + 0.1;
	m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.5; 
}
Пример #4
0
void CSatchel::WeaponIdle( void )
{
	if ( m_flTimeWeaponIdle > UTIL_WeaponTimeBase() )
		return;

	switch( m_chargeReady )
	{
	case 0:
		SendWeaponAnim( SATCHEL_FIDGET1 );
		// use tripmine animations
		strcpy( m_pPlayer->m_szAnimExtention, "trip" );
		break;
	case 1:
		SendWeaponAnim( SATCHEL_RADIO_FIDGET1 );
		// use hivehand animations
		strcpy( m_pPlayer->m_szAnimExtention, "hive" );
		break;
	case 2:
		if ( !m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] )
		{
			m_chargeReady = 0;
			RetireWeapon();
			return;
		}

#ifndef CLIENT_DLL
		m_pPlayer->pev->viewmodel = MAKE_STRING("models/v_satchel.mdl");
		m_pPlayer->pev->weaponmodel = MAKE_STRING("models/p_satchel.mdl");
#else
		LoadVModel ( "models/v_satchel.mdl", m_pPlayer );
#endif

		SendWeaponAnim( SATCHEL_DRAW );

		// use tripmine animations
		strcpy( m_pPlayer->m_szAnimExtention, "trip" );

		m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.5;
		m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.5;
		m_chargeReady = 0;
		break;
	}
	m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );// how long till we do this again.
}
Пример #5
0
void CPython::Reload( void )
{
	if (m_fInZoom == TRUE) 
	{
		m_pPlayer->b_EstaEnZoom = FALSE;

		#ifndef CLIENT_DLL
				m_pPlayer->pev->viewmodel = MAKE_STRING("models/weapons/357/v_357.mdl");
		#else
				LoadVModel ( "models/weapons/357/v_357.mdl", m_pPlayer );
		#endif
		m_pPlayer->pev->fov = m_pPlayer->m_iFOV = 0; // 0 means reset to default fov
		m_fInZoom = FALSE;
	}

	int iResult;

	if (m_iClip == 0)
		iResult = DefaultReload( 7, PYTHON_RELOAD, 2.53 );
	else
		iResult = DefaultReload( 7, PYTHON_RELOAD, 2.2 );

	if (iResult)
	{
		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );
		m_pPlayer->SetAnimation( PLAYER_RELOAD ); 
			
		Vector vecSrc	 = m_pPlayer->GetGunPosition( );
		CBaseEntity *pEntity = Create( "item_clip_pistol", vecSrc, pev->angles );		
	}

/*
//	SHOTGUN_MAX_CLIP
	if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0 || m_iClip == PYTHON_MAX_CLIP)
		return;

	// don't reload until recoil is done
	if (m_flNextPrimaryAttack > UTIL_WeaponTimeBase())
		return;

	// check to see if we're ready to reload
	if (m_fInSpecialReload == 0)
	{
		//SendWeaponAnim( PYTHON_RELOAD_HAS_0 );
		
		 if (m_iClip == 0)
        SendWeaponAnim( PYTHON_RELOAD_HAS_0 );
		 else if (m_iClip == 1)
			SendWeaponAnim( PYTHON_RELOAD_HAS_1 );
		 else if (m_iClip == 2)
			SendWeaponAnim( PYTHON_RELOAD_HAS_2 );
		 else if (m_iClip == 3)
			SendWeaponAnim( PYTHON_RELOAD_HAS_3 );
		 else if (m_iClip == 4)
			SendWeaponAnim( PYTHON_RELOAD_HAS_4 );
		 else if (m_iClip == 5)
			SendWeaponAnim( PYTHON_RELOAD_HAS_5 );

		m_fInSpecialReload = 1;
		//0.6
		m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 2.6;
		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 2.6;
		m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 1.0;
		m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 1.0;
		return;
	}
	else if (m_fInSpecialReload == 1)
	{
		if (m_flTimeWeaponIdle > UTIL_WeaponTimeBase())
			return;
		// was waiting for gun to move to side
		m_fInSpecialReload = 2;

		if (RANDOM_LONG(0,1))
			EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/357/357_reload-1.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f));
		else
			EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/357/357_reload-2.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f));

	//	SendWeaponAnim( PYTHON_RELOAD_INSERT_6 );
		
		if (m_iClip == 0)
        SendWeaponAnim( PYTHON_RELOAD_INSERT_1 );
		 else if (m_iClip == 1)
			SendWeaponAnim( PYTHON_RELOAD_INSERT_2 );
		 else if (m_iClip == 2)
			SendWeaponAnim( PYTHON_RELOAD_INSERT_3 );
		 else if (m_iClip == 3)
			SendWeaponAnim( PYTHON_RELOAD_INSERT_4 );
		 else if (m_iClip == 4)
			SendWeaponAnim( PYTHON_RELOAD_INSERT_5 );
		 else if (m_iClip == 5)
			SendWeaponAnim( PYTHON_RELOAD_INSERT_6 );

		m_pPlayer->SetAnimation( PLAYER_RELOAD ); 

		m_flNextReload = UTIL_WeaponTimeBase() + 0.5;
		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.5;
	}
	else
	{
		// Add them to the clip
		m_iClip += 1;
		m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] -= 1;
		m_fInSpecialReload = 1;
	}*/
}