From 99de4872992adc1848785d50def8cdafd78f4169 Mon Sep 17 00:00:00 2001 From: Kingsmedia Date: Thu, 5 May 2022 14:29:21 +0200 Subject: [PATCH] 75 - Replicating the Hit Target --- Source/Blaster/Components/CombatComponent.cpp | 31 +++++-------------- Source/Blaster/Components/CombatComponent.h | 6 ++-- 2 files changed, 9 insertions(+), 28 deletions(-) diff --git a/Source/Blaster/Components/CombatComponent.cpp b/Source/Blaster/Components/CombatComponent.cpp index 97f315f..5f7bf29 100644 --- a/Source/Blaster/Components/CombatComponent.cpp +++ b/Source/Blaster/Components/CombatComponent.cpp @@ -70,7 +70,9 @@ void UCombatComponent::FireButtonPressed(bool bPressed) if (bFireButtonPressed) { - ServerFire(); + FHitResult HitResult; + TraceUnderCrosshairs(HitResult); + ServerFire(HitResult.ImpactPoint); } } @@ -103,46 +105,27 @@ void UCombatComponent::TraceUnderCrosshairs(FHitResult& TraceHitResult) End, ECollisionChannel::ECC_Visibility ); - if (!TraceHitResult.bBlockingHit) - { - TraceHitResult.ImpactPoint = End; - HitTarget = End; - } - else - { - HitTarget = TraceHitResult.ImpactPoint; - DrawDebugSphere( - GetWorld(), - TraceHitResult.ImpactPoint, - 12.f, - 12, - FColor::Red - ); - } } } -void UCombatComponent::ServerFire_Implementation() +void UCombatComponent::ServerFire_Implementation(const FVector_NetQuantize& TraceHitTarget) { - MulticastFire(); + MulticastFire(TraceHitTarget); } -void UCombatComponent::MulticastFire_Implementation() +void UCombatComponent::MulticastFire_Implementation(const FVector_NetQuantize& TraceHitTarget) { if (EquippedWeapon == nullptr) return; if (Character) { Character->PlayFireMontage(bAiming); - EquippedWeapon->Fire(HitTarget); + EquippedWeapon->Fire(TraceHitTarget); } } void UCombatComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) { Super::TickComponent(DeltaTime, TickType, ThisTickFunction); - - FHitResult HitResult; - TraceUnderCrosshairs(HitResult); } void UCombatComponent::EquipWeapon(AWeapon* WeaponToEquip) diff --git a/Source/Blaster/Components/CombatComponent.h b/Source/Blaster/Components/CombatComponent.h index f667313..a2a2a70 100644 --- a/Source/Blaster/Components/CombatComponent.h +++ b/Source/Blaster/Components/CombatComponent.h @@ -35,10 +35,10 @@ protected: void FireButtonPressed(bool bPressed); UFUNCTION(Server, Reliable) - void ServerFire(); + void ServerFire(const FVector_NetQuantize& TraceHitTarget); UFUNCTION(NetMulticast, Reliable) - void MulticastFire(); + void MulticastFire(const FVector_NetQuantize& TraceHitTarget); void TraceUnderCrosshairs(FHitResult& TraceHitResult); @@ -58,6 +58,4 @@ private: float AimWalkSpeed; bool bFireButtonPressed; - - FVector HitTarget; };