192 - Shotgun Score Request
This commit is contained in:
parent
067c83583c
commit
87d05490a5
|
@ -36,6 +36,34 @@ void ULagCompensationComponent::ServerScoreRequest_Implementation(ABlasterCharac
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ULagCompensationComponent::ShotgunServerScoreRequest_Implementation(const TArray<ABlasterCharacter*>& HitCharacters, const FVector_NetQuantize& TraceStart,
|
||||||
|
const TArray<FVector_NetQuantize>& HitLocations, float HitTime, AWeapon* DamageCauser)
|
||||||
|
{
|
||||||
|
FShotgunServerSideRewindResult Confirm = ShotgunServerSideRewind(HitCharacters, TraceStart, HitLocations, HitTime);
|
||||||
|
|
||||||
|
for (auto& HitCharacter : HitCharacters)
|
||||||
|
{
|
||||||
|
if (HitCharacter == nullptr || Character == nullptr || HitCharacter->GetPrimaryWeapon() == nullptr) continue;
|
||||||
|
float TotalDamage = 0.f;
|
||||||
|
if (Confirm.Headshots.Contains(HitCharacter))
|
||||||
|
{
|
||||||
|
TotalDamage += Confirm.Headshots[HitCharacter] * Character->GetPrimaryWeapon()->GetDamage();
|
||||||
|
}
|
||||||
|
if (Confirm.BodyShots.Contains(HitCharacter))
|
||||||
|
{
|
||||||
|
TotalDamage += Confirm.BodyShots[HitCharacter] * Character->GetPrimaryWeapon()->GetDamage();
|
||||||
|
}
|
||||||
|
|
||||||
|
UGameplayStatics::ApplyDamage(
|
||||||
|
HitCharacter,
|
||||||
|
TotalDamage,
|
||||||
|
Character->Controller,
|
||||||
|
Character->GetPrimaryWeapon(),
|
||||||
|
UDamageType::StaticClass()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ULagCompensationComponent::SaveFramePackage()
|
void ULagCompensationComponent::SaveFramePackage()
|
||||||
{
|
{
|
||||||
if (Character == nullptr || !Character->HasAuthority()) return;
|
if (Character == nullptr || !Character->HasAuthority()) return;
|
||||||
|
|
|
@ -87,6 +87,22 @@ public:
|
||||||
AWeapon* DamageCauser
|
AWeapon* DamageCauser
|
||||||
);
|
);
|
||||||
|
|
||||||
|
UFUNCTION(Server, Reliable)
|
||||||
|
void ShotgunServerScoreRequest(
|
||||||
|
const TArray<ABlasterCharacter*>& HitCharacters,
|
||||||
|
const FVector_NetQuantize& TraceStart,
|
||||||
|
const TArray<FVector_NetQuantize>& HitLocations,
|
||||||
|
float HitTime,
|
||||||
|
AWeapon* DamageCauser
|
||||||
|
);
|
||||||
|
|
||||||
|
FShotgunServerSideRewindResult ShotgunServerSideRewind(
|
||||||
|
const TArray<ABlasterCharacter*>& HitCharacters,
|
||||||
|
const FVector_NetQuantize& TraceStart,
|
||||||
|
const TArray<FVector_NetQuantize>& HitLocations,
|
||||||
|
float HitTime
|
||||||
|
);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void BeginPlay() override;
|
virtual void BeginPlay() override;
|
||||||
void SaveFramePackage();
|
void SaveFramePackage();
|
||||||
|
@ -106,12 +122,6 @@ protected:
|
||||||
|
|
||||||
// Shotgun related stuff
|
// Shotgun related stuff
|
||||||
|
|
||||||
FShotgunServerSideRewindResult ShotgunServerSideRewind(
|
|
||||||
const TArray<ABlasterCharacter*>& HitCharacters,
|
|
||||||
const FVector_NetQuantize& TraceStart,
|
|
||||||
const TArray<FVector_NetQuantize>& HitLocations,
|
|
||||||
float HitTime
|
|
||||||
);
|
|
||||||
FShotgunServerSideRewindResult ShotgunConfirmHit(
|
FShotgunServerSideRewindResult ShotgunConfirmHit(
|
||||||
const TArray<FFramePackage>& FramePackages,
|
const TArray<FFramePackage>& FramePackages,
|
||||||
const FVector_NetQuantize& TraceStart,
|
const FVector_NetQuantize& TraceStart,
|
||||||
|
|
Loading…
Reference in New Issue