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; } }
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 }
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; }
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. }
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; }*/ }