//--------------------------------------------------------------------- bool CWeapon::OnActionSpecial(EntityId actorId, const ActionId& actionId, int activationMode, float value) { CPlayer* pOwnerPlayer = GetOwnerPlayer(); if (pOwnerPlayer && !pOwnerPlayer->CanMelee()) return true; if(gEnv->bMultiplayer && AreAnyItemFlagsSet(eIF_Transitioning)) //Ignore the transition from attachments menu and melee immediately { ClearItemFlags( eIF_Transitioning ); } if (gEnv->bMultiplayer && !g_pGameCVars->pl_boostedMelee_allowInMP) { if (activationMode == eAAM_OnPress) { if (CanMeleeAttack()) { if (PreMeleeAttack()) MeleeAttack(); } else { CCCPOINT(Melee_PressedButMeleeNotAllowed); } } } else { if (activationMode == eAAM_OnPress) { if(CanMeleeAttack()) { if (pOwnerPlayer) { if (PreMeleeAttack()) { BoostMelee(false); MeleeAttack(); } } } else { CCCPOINT(Melee_PressedButMeleeNotAllowed); } } } return true; }
void CNPC_Infected::HandleAnimEvent( animevent_t *pEvent ) { int nEvent = pEvent->Event(); if ( nEvent == AE_FOOTSTEP_RIGHT ) { EmitSound( "Zombie.FootstepLeft", pEvent->eventtime ); return; } if ( nEvent == AE_FOOTSTEP_LEFT ) { EmitSound( "Zombie.FootstepRight", pEvent->eventtime ); return; } if ( pEvent->Event() == AE_ATTACK_HIT ) { MeleeAttack( INFECTED_MELEE1_RANGE, sk_infected_swipe_damage.GetFloat(), QAngle( 20.0f, 0.0f, -12.0f ), Vector( -250.0f, 1.0f, 1.0f ) ); return; } BaseClass::HandleAnimEvent( pEvent ); }
//========================================================= //========================================================= void CAP_PlayerInfected::HandleAnimEvent( animevent_t *pEvent ) { if ( pEvent->Event() == AE_ATTACK_HIT ) { EmitSound( "Infected.Attack.Male" ); MeleeAttack(); return; } BaseClass::HandleAnimEvent( pEvent ); }
// Melee Attack Start void AWeapon::PreMeleeAttack() { BP_PreMeleeAttack(); if (bShooting || bMeleeAttacking)return; bMeleeAttacking = true; // Reset After Delay FTimerHandle MyHandle; ThePlayer->GetWorldTimerManager().SetTimer(MyHandle, this, &AWeapon::ResetMeleeAttack, MeleeAttackSpeed, false); // Set Anim State if (ThePlayer)ThePlayer->ServerSetAnimID(EAnimState::Melee_Attack); // Call Actual Event MeleeAttack(); }
//----------------------------------------------------------------------------- // Purpose: // Input: // Output: //----------------------------------------------------------------------------- void CASW_Boomer::HandleAnimEvent( animevent_t *pEvent ) { //softcopy: ignite/explode marine by boomer melee attack if ( GetActivity() == ACT_MELEE_ATTACK1 ) { float damage = MAX(3.0f, ASWGameRules()->ModifyAlienDamageBySkillLevel(asw_boomer_melee_min_damage.GetFloat())); MeleeAttack(ASW_BOOMER_MELEE_RANGE, damage); } int nEvent = pEvent->Event(); if ( nEvent == AE_BOOMER_INFLATED ) { m_bInflated = true; return; } BaseClass::HandleAnimEvent( pEvent ); }
//----------------------------------------------------------------------------- // Purpose: // Input : *pEvent - //----------------------------------------------------------------------------- void CNPC_Bug_Warrior::HandleAnimEvent( animevent_t *pEvent ) { switch ( pEvent->event ) { case BUG_WARRIOR_AE_MELEE_HIT1: MeleeAttack( BUG_WARRIOR_MELEE1_RANGE, npc_bug_warrior_swipe_damage.GetFloat(), QAngle( 20.0f, 0.0f, 0.0f ), Vector( -350.0f, 1.0f, 1.0f ) ); return; break; case BUG_WARRIOR_AE_MELEE_SOUND1: { EmitSound( "NPC_Bug_Warrior.AttackSingle" ); return; } break; } BaseClass::HandleAnimEvent( pEvent ); }
//--------------------------------------------------------------------- bool CWeapon::OnActionSpecial(EntityId actorId, const ActionId& actionId, int activationMode, float value) { if (activationMode == eAAM_OnPress) { if(m_weaponRaised) { RaiseWeapon(false,true); } COffHand * offHandWeapon = NULL; bool isOffHandSelected = false; GetOffHandInfo(this,isOffHandSelected,&offHandWeapon); if (CanMeleeAttack() && (!isOffHandSelected || (offHandWeapon->GetOffHandState()&(eOHS_HOLDING_NPC|eOHS_TRANSITIONING)))) MeleeAttack(); } return true; }
//--------------------------------------------------------------------- bool CWeapon::OnActionSpecial(EntityId actorId, const ActionId& actionId, int activationMode, float value) { if (activationMode == eAAM_OnPress) { if(m_weaponRaised) RaiseWeapon(false,true); CActor* pOwnerActor = GetOwnerActor(); if (pOwnerActor && g_pGameCVars->dt_enable) { CPlayer *pPlayer = static_cast<CPlayer*>(pOwnerActor); pPlayer->GetNanoSuit()->Tap(eNA_Melee); } COffHand * offHandWeapon = NULL; bool isOffHandSelected = false; GetOffHandInfo(this,isOffHandSelected,&offHandWeapon); if (CanMeleeAttack() && (!isOffHandSelected || (offHandWeapon->GetOffHandState()&(eOHS_HOLDING_NPC|eOHS_TRANSITIONING)))) MeleeAttack(); } return true; }
void CWeaponDODBase::Punch( void ) { MeleeAttack( 60, MELEE_DMG_FIST | MELEE_DMG_SECONDARYATTACK, 0.2f, 0.4f ); }
void CASW_Simple_Alien::HandleAnimEvent( animevent_t *pEvent ) { int nEvent = pEvent->Event(); if ( nEvent == AE_DRONE_WALK_FOOTSTEP ) { return; } if ( nEvent == AE_DRONE_FOOTSTEP_SOFT ) { return; } if ( nEvent == AE_DRONE_FOOTSTEP_HEAVY ) { return; } if ( nEvent == AE_DRONE_MELEE_HIT1 ) { MeleeAttack( ASW_DRONE_MELEE1_RANGE, ASWGameRules()->ModifyAlienDamageBySkillLevel(GetDamage()), QAngle( 20.0f, 0.0f, -12.0f ), Vector( -250.0f, 1.0f, 1.0f ) ); return; } if ( nEvent == AE_DRONE_MELEE_HIT2 ) { MeleeAttack( ASW_DRONE_MELEE1_RANGE, ASWGameRules()->ModifyAlienDamageBySkillLevel(GetDamage()), QAngle( 20.0f, 0.0f, 0.0f ), Vector( -350.0f, 1.0f, 1.0f ) ); return; } if ( nEvent == AE_DRONE_MELEE1_SOUND ) { AttackSound(); return; } if ( nEvent == AE_DRONE_MELEE2_SOUND ) { AttackSound(); return; } if ( nEvent == AE_DRONE_MOUTH_BLEED ) { Vector vecOrigin, vecDir; if (GetAttachment( LookupAttachment("mouth") , vecOrigin, &vecDir )) UTIL_ASW_BloodDrips( vecOrigin+vecDir*3, vecDir, BLOOD_COLOR_RED, 6 ); return; } if ( nEvent == AE_DRONE_ALERT_SOUND ) { EmitSound( "ASW_Drone.Alert" ); return; } if ( nEvent == AE_DRONE_SHADOW_ON) { RemoveEffects( EF_NOSHADOW ); return; } BaseClass::HandleAnimEvent( pEvent ); }