From 8a08d4b487d9eb5ea30b0f2d44b9615104272b65 Mon Sep 17 00:00:00 2001 From: ssasin3801 Date: Tue, 24 Oct 2023 00:11:56 +0900 Subject: [PATCH 1/6] =?UTF-8?q?=EB=A7=B5=20=EA=B8=B0=EC=B4=88=ED=8B=80=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content/Maps/DevMap.umap | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content/Maps/DevMap.umap b/Content/Maps/DevMap.umap index bae0ed6..f35a078 100644 --- a/Content/Maps/DevMap.umap +++ b/Content/Maps/DevMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c3f62cb9b51532e3d85b3cc6ec7d1278a5f04df62f77849e61d67600dc3c0aaf -size 244002 +oid sha256:5fa5a30e0caab2240d4de882413baca8c6eb6a40ee4790a1e066a99d2b6c3ce2 +size 219204 From 053c56f37c7cd0eb440d584d0766ec3cc196a1ee Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Wed, 25 Oct 2023 02:40:51 +0900 Subject: [PATCH 2/6] =?UTF-8?q?=ED=98=B8-=EB=B0=8D=20=EA=B3=B5=EA=B2=A9=20?= =?UTF-8?q?=EB=B0=8F=20=EC=84=A0=ED=83=9D=20=EC=8B=9C=EC=8A=A4=ED=85=9C=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BP_DefaultPlayerCharacter.uasset | 4 +- .../Bp_DefaultplayerController.uasset | 4 +- Content/Blueprints/DefaultClass.uasset | 3 - .../UI/NameBar_UI/NameBar_UI.uasset | 4 +- Content/Character/Lb/BP_Lb.uasset | 4 +- Content/Character/Lb/BaseArrow.uasset | 4 +- .../Character/Monster/Knight/BP_Knignt.uasset | 4 +- Content/Effect/AliumQ/Knife1.uasset | 3 + Content/Effect/CC.uasset | 3 + Content/Effect/dust.uasset | 3 + Content/Effect/tnt.uasset | 3 + Content/Maps/DevMap.umap | 4 +- .../ApDamage.cpp => DamageType/APDamage.cpp} | 2 +- .../ApDamage.h => DamageType/APDamage.h} | 4 +- Source/Promether/DamageType/HomingAttack.cpp | 45 ++++++ Source/Promether/DamageType/HomingAttack.h | 30 ++++ Source/Promether/DefaultAIController.cpp | 33 +++++ Source/Promether/DefaultAIController.h | 21 +++ .../PlayerGeneric/DefaultPlayerCharacter.cpp | 132 ++++++++++-------- .../PlayerGeneric/DefaultPlayerCharacter.h | 15 +- .../PlayerGeneric/DefaultPlayerController.cpp | 88 ++++++------ .../PlayerGeneric/DefaultPlayerController.h | 4 +- .../PlayerGeneric/DefaultPlayerState.cpp | 37 ++++- .../PlayerGeneric/DefaultPlayerState.h | 26 +++- Source/Promether/PrometherEnum.h | 1 + 25 files changed, 347 insertions(+), 134 deletions(-) delete mode 100644 Content/Blueprints/DefaultClass.uasset create mode 100644 Content/Effect/AliumQ/Knife1.uasset create mode 100644 Content/Effect/CC.uasset create mode 100644 Content/Effect/dust.uasset create mode 100644 Content/Effect/tnt.uasset rename Source/Promether/{Private/DamageType/ApDamage.cpp => DamageType/APDamage.cpp} (71%) rename Source/Promether/{Public/DamageType/ApDamage.h => DamageType/APDamage.h} (71%) create mode 100644 Source/Promether/DamageType/HomingAttack.cpp create mode 100644 Source/Promether/DamageType/HomingAttack.h create mode 100644 Source/Promether/DefaultAIController.cpp create mode 100644 Source/Promether/DefaultAIController.h diff --git a/Content/Blueprints/BP_DefaultPlayerCharacter.uasset b/Content/Blueprints/BP_DefaultPlayerCharacter.uasset index a90b7f8..8b8a483 100644 --- a/Content/Blueprints/BP_DefaultPlayerCharacter.uasset +++ b/Content/Blueprints/BP_DefaultPlayerCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:76bef1350b78a2de3894e927a1e7f2ff7a52e4654c1d7415598e0b87b2cfa71d -size 143280 +oid sha256:e8c82415960d0b58adbb46faa76b95711bf913a53aab55b722faaf06b86922c0 +size 142183 diff --git a/Content/Blueprints/Bp_DefaultplayerController.uasset b/Content/Blueprints/Bp_DefaultplayerController.uasset index 0836b9f..2fe18a0 100644 --- a/Content/Blueprints/Bp_DefaultplayerController.uasset +++ b/Content/Blueprints/Bp_DefaultplayerController.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d0d423051a6f4d915aac51bc5d985a8dc9d8348989d42cec8599d4cdf75adc47 -size 40051 +oid sha256:a702d41d5005141962ad11a235ecb3f13398ef0b3c9630de3003610d8a600e62 +size 12861 diff --git a/Content/Blueprints/DefaultClass.uasset b/Content/Blueprints/DefaultClass.uasset deleted file mode 100644 index e1a4511..0000000 --- a/Content/Blueprints/DefaultClass.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4e8a0c4c04da4fc8856f04a18c5f5a97ec2d366bd739d928d1a2f43fd9dd9831 -size 12732 diff --git a/Content/Blueprints/UI/NameBar_UI/NameBar_UI.uasset b/Content/Blueprints/UI/NameBar_UI/NameBar_UI.uasset index 49ee2d1..bbe456e 100644 --- a/Content/Blueprints/UI/NameBar_UI/NameBar_UI.uasset +++ b/Content/Blueprints/UI/NameBar_UI/NameBar_UI.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0aa427e46f1151c85266dcc8175c349f2dba4971635ebb051b051005b61840bb -size 78485 +oid sha256:95ff3173214888843cc310bd0246f36ee5c3e72356588bc16792ec06b01ae6c8 +size 81747 diff --git a/Content/Character/Lb/BP_Lb.uasset b/Content/Character/Lb/BP_Lb.uasset index bc43cbc..1b62c08 100644 --- a/Content/Character/Lb/BP_Lb.uasset +++ b/Content/Character/Lb/BP_Lb.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6fa93d860707521412a2f3a6b3fee76d97c58f0156f0ee975a75e8dfab645e08 -size 265764 +oid sha256:16d4e7f5452d5488c98bc4e94b56349548b16a61f01ce0c00368e5995140de27 +size 252367 diff --git a/Content/Character/Lb/BaseArrow.uasset b/Content/Character/Lb/BaseArrow.uasset index 52cfa4f..3a2827a 100644 --- a/Content/Character/Lb/BaseArrow.uasset +++ b/Content/Character/Lb/BaseArrow.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:96e1888de2d20e53511527fb610e55c59b40f61a3aa4a9bea218147626e753e8 -size 109007 +oid sha256:ea4d2c8a04a158e685627b6e63d8fa7313be56de4843f685a712a220455f0abe +size 91881 diff --git a/Content/Character/Monster/Knight/BP_Knignt.uasset b/Content/Character/Monster/Knight/BP_Knignt.uasset index 346b2dd..6714f7f 100644 --- a/Content/Character/Monster/Knight/BP_Knignt.uasset +++ b/Content/Character/Monster/Knight/BP_Knignt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:25322dfc3f4a1072aa4244c6c2d45efd6c15b12d19abdbc720f1acc7525b5b36 -size 63703 +oid sha256:029169f9c794e0c6869f700a7635795faa0c50a018589e8e534d2b5a76ba83eb +size 65976 diff --git a/Content/Effect/AliumQ/Knife1.uasset b/Content/Effect/AliumQ/Knife1.uasset new file mode 100644 index 0000000..cd7de68 --- /dev/null +++ b/Content/Effect/AliumQ/Knife1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61e889e853480031a870a8627a4d6c4de77a541dda93b39aae022befbd2801db +size 295484 diff --git a/Content/Effect/CC.uasset b/Content/Effect/CC.uasset new file mode 100644 index 0000000..b034c8b --- /dev/null +++ b/Content/Effect/CC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e1f53ef1caf6952425675f5a542af654a8f61eb5aba7c18da678c6799a74fec +size 73954 diff --git a/Content/Effect/dust.uasset b/Content/Effect/dust.uasset new file mode 100644 index 0000000..72b4cf0 --- /dev/null +++ b/Content/Effect/dust.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce231ed8a4ee66c55e32527d3b35b9c75e7617f1d349a9ad72737b33ea36c99d +size 47039 diff --git a/Content/Effect/tnt.uasset b/Content/Effect/tnt.uasset new file mode 100644 index 0000000..08fabdb --- /dev/null +++ b/Content/Effect/tnt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f509cf5e1734fb8eb06305bf48506f5e7ee993ce3663071c57c1cf3294081777 +size 20120 diff --git a/Content/Maps/DevMap.umap b/Content/Maps/DevMap.umap index 952e43e..a5d345e 100644 --- a/Content/Maps/DevMap.umap +++ b/Content/Maps/DevMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:255fdaf829cf0a99ff91e2261f5f1f2a57dbb538ffac5acdcc7d58de9eb0d76b -size 179055 +oid sha256:2c428dbf2880f96f770e8809675a3cd8b28f1106e572dc4d6db45061e46fccc1 +size 179947 diff --git a/Source/Promether/Private/DamageType/ApDamage.cpp b/Source/Promether/DamageType/APDamage.cpp similarity index 71% rename from Source/Promether/Private/DamageType/ApDamage.cpp rename to Source/Promether/DamageType/APDamage.cpp index 186bc18..7029a18 100644 --- a/Source/Promether/Private/DamageType/ApDamage.cpp +++ b/Source/Promether/DamageType/APDamage.cpp @@ -1,5 +1,5 @@ // Fill out your copyright notice in the Description page of Project Settings. -#include "DamageType/ApDamage.h" +#include "APDamage.h" diff --git a/Source/Promether/Public/DamageType/ApDamage.h b/Source/Promether/DamageType/APDamage.h similarity index 71% rename from Source/Promether/Public/DamageType/ApDamage.h rename to Source/Promether/DamageType/APDamage.h index b8a6718..81ed8f7 100644 --- a/Source/Promether/Public/DamageType/ApDamage.h +++ b/Source/Promether/DamageType/APDamage.h @@ -4,13 +4,13 @@ #include "CoreMinimal.h" #include "GameFramework/DamageType.h" -#include "ApDamage.generated.h" +#include "APDamage.generated.h" /** * */ UCLASS() -class PROMETHER_API UApDamage : public UDamageType +class PROMETHER_API UAPDamage : public UDamageType { GENERATED_BODY() diff --git a/Source/Promether/DamageType/HomingAttack.cpp b/Source/Promether/DamageType/HomingAttack.cpp new file mode 100644 index 0000000..9948809 --- /dev/null +++ b/Source/Promether/DamageType/HomingAttack.cpp @@ -0,0 +1,45 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "HomingAttack.h" +#include "../PlayerGeneric/DefaultPlayerCharacter.h" +#include "../PlayerGeneric/DefaultPlayerState.h" +#include "Kismet/KismetMathLibrary.h" + +// Sets default values +AHomingAttack::AHomingAttack() +{ + // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. + PrimaryActorTick.bCanEverTick = true; + ProjectileMovement = CreateDefaultSubobject(TEXT("ProjectileMovement")); + ProjectileMovement->InitialSpeed = 200; + ProjectileMovement->MaxSpeed = 200; + ProjectileMovement->ProjectileGravityScale = 0; + ProjectileMovement->bIsHomingProjectile = true; + ProjectileMovement->HomingAccelerationMagnitude = 200; + ProjectileMovement->Velocity = { 0, 0, 0 }; + ProjectileMovement->bRotationFollowsVelocity = true; +} + +// Called when the game starts or when spawned +void AHomingAttack::BeginPlay() +{ + Super::BeginPlay(); + + ADefaultPlayerState* State = Cast(GetOwner())->GetPlayerState(); + if (!State) return; + if (!State->GetCurrentAttackTarget()) + { + UE_LOG(LogTemp, Error, TEXT("No Target")); + return; + } + + ProjectileMovement->HomingTargetComponent = State->GetCurrentAttackTarget()->GetRootComponent(); +} + +// Called every frame +void AHomingAttack::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); +} + diff --git a/Source/Promether/DamageType/HomingAttack.h b/Source/Promether/DamageType/HomingAttack.h new file mode 100644 index 0000000..c9f0d07 --- /dev/null +++ b/Source/Promether/DamageType/HomingAttack.h @@ -0,0 +1,30 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "GameFramework/ProjectileMovementComponent.h" +#include "HomingAttack.generated.h" + +UCLASS() +class PROMETHER_API AHomingAttack : public AActor +{ + GENERATED_BODY() + +public: + // Sets default values for this actor's properties + AHomingAttack(); + +protected: + // Called when the game starts or when spawned + virtual void BeginPlay() override; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + UProjectileMovementComponent* ProjectileMovement; + +public: + // Called every frame + virtual void Tick(float DeltaTime) override; + +}; diff --git a/Source/Promether/DefaultAIController.cpp b/Source/Promether/DefaultAIController.cpp new file mode 100644 index 0000000..5f680d8 --- /dev/null +++ b/Source/Promether/DefaultAIController.cpp @@ -0,0 +1,33 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "DefaultAIController.h" +#include "PlayerGeneric/DefaultPlayerState.h" +#include "PlayerGeneric/DefaultPlayerCharacter.h" + +ADefaultAIController::ADefaultAIController() +{ + bWantsPlayerState = true; +} + +void ADefaultAIController::OnPossess(APawn* aPawn) +{ + //debug + FString MyName = aPawn->GetName(); + + ADefaultPlayerState* MyPlayerState = GetPlayerState(); + if (!MyPlayerState) return; + + ADefaultPlayerCharacter* ControlledPawn = Cast(aPawn); + if (!ControlledPawn) return; + + ControlledPawn->SetPlayerState(MyPlayerState); + + TArray DefaultStatsValue; + TArray CooldownDurationValue; + + ControlledPawn->DefaultStats.GenerateValueArray(DefaultStatsValue); + ControlledPawn->CooldownDuration.GenerateValueArray(CooldownDurationValue); + + MyPlayerState->InitPlayerStats(DefaultStatsValue, CooldownDurationValue); +} \ No newline at end of file diff --git a/Source/Promether/DefaultAIController.h b/Source/Promether/DefaultAIController.h new file mode 100644 index 0000000..96b9d01 --- /dev/null +++ b/Source/Promether/DefaultAIController.h @@ -0,0 +1,21 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "AIController.h" +#include "DefaultAIController.generated.h" + +/** + * + */ +UCLASS() +class PROMETHER_API ADefaultAIController : public AAIController +{ + GENERATED_BODY() + +public: + ADefaultAIController(); + void OnPossess(APawn* aPawn) override; + +}; diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp index d77f526..b29cbfa 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp @@ -3,8 +3,10 @@ #include "DefaultPlayerCharacter.h" #include "DefaultPlayerState.h" +#include "../DefaultAIController.h" #include "Engine/DamageEvents.h" #include "Kismet/GameplayStatics.h" +#include "Components/CapsuleComponent.h" ADefaultPlayerCharacter::ADefaultPlayerCharacter() { @@ -13,6 +15,9 @@ ADefaultPlayerCharacter::ADefaultPlayerCharacter() SetCanBeDamaged(true); bUseControllerRotationYaw = false; + AIControllerClass = ADefaultAIController::StaticClass(); + AutoPossessAI = EAutoPossessAI::PlacedInWorldOrSpawned; + CameraSpringArm = CreateDefaultSubobject(TEXT("SpringArm")); CameraSpringArm->SetRelativeLocationAndRotation(FVector(0.0f, 0.0f, 0.0f), FRotator(-45.0f, 0.0f, 0.0f)); CameraSpringArm->SetAbsolute(false, true, true); @@ -49,14 +54,13 @@ void ADefaultPlayerCharacter::Tick(float DeltaTime) */ } - - void ADefaultPlayerCharacter::Attack_Implementation() { - NetMulticast_Attack(); + Client_Attack(); + BP_Attack(); } -void ADefaultPlayerCharacter::NetMulticast_Attack_Implementation() +void ADefaultPlayerCharacter::Client_Attack_Implementation() { BP_Attack(); } @@ -65,68 +69,62 @@ float ADefaultPlayerCharacter::TakeDamage_Implementation(float DamageAmount, str { float ReturnValue = Super::TakeDamage(DamageAmount, DamageEvent, EventInstigator, DamageCauser); - if (HasAuthority()) + ADefaultPlayerState* State = GetPlayerState(); + if (!State) return ReturnValue; + + if (!Cast(DamageCauser)) return ReturnValue; + + ADefaultPlayerState* AttackerState = Cast(DamageCauser)->GetPlayerState(); + if (!AttackerState) return ReturnValue; + + float ADDamageMultiplier = 0; + float APDamageMultiplier = 0; + + if (State->Stats[(uint8)EStats::Armor] >= 0) + ADDamageMultiplier = 100 / (100 + State->Stats[(uint8)EStats::Armor]); + else + ADDamageMultiplier = 2 - 100 / (100 - State->Stats[(uint8)EStats::Armor]); + + if (State->Stats[(uint8)EStats::MagicResistance] >= 0) + APDamageMultiplier = 100 / (100 + State->Stats[(uint8)EStats::MagicResistance]); + else + APDamageMultiplier = 2 - 100 / (100 - State->Stats[(uint8)EStats::MagicResistance]); + + + UE_LOG(LogTemp, Warning, TEXT("%s : ADDamageMultiplier : %f CalculatedDamage : %f"), *DamageCauser->GetName(), ADDamageMultiplier, DamageAmount * ADDamageMultiplier); + UE_LOG(LogTemp, Warning, TEXT("%s : APDamageMultiplier : %f CalculatedDamage : %f"), *DamageCauser->GetName(), APDamageMultiplier, DamageAmount * APDamageMultiplier); + + float UpdatedHealth = 0; + + if (Cast(DamageEvent.DamageTypeClass->GetDefaultObject())) { - UE_LOG(LogTemp, Warning, TEXT("TakeDamage Called On Server")); + UE_LOG(LogTemp, Warning, TEXT("DamageType : BaseAttack")); + + UpdatedHealth = State->Stats[(uint8)EStats::Health] - AttackerState->Stats[(uint8)EStats::AttackDamage] * ADDamageMultiplier; + } + else if (Cast(DamageEvent.DamageTypeClass->GetDefaultObject())) + { + UE_LOG(LogTemp, Warning, TEXT("DamageType : APDamage")); + + UpdatedHealth = State->Stats[(uint8)EStats::Health] - AttackerState->Stats[(uint8)EStats::AbilityPower] * APDamageMultiplier; + } + + if (UpdatedHealth < 0 || UpdatedHealth < 0.1 ) + { + State->Stats[(uint8)EStats::Health] = 0; + Server_PerformDead(); + Client_PerformDead(); } else { - UE_LOG(LogTemp, Warning, TEXT("TakeDamage Called On Client")); + State->Stats[(uint8)EStats::Health] = UpdatedHealth; } - if (HasAuthority()) - { - if (ADefaultPlayerState* MyState = this->GetInstigatorController()->GetPlayerState()) - { - if (ADefaultPlayerState* EventInstigatorState = EventInstigator->GetPlayerState()) - { - float ADDamageMultiplier = 0; - float APDamageMultiplier = 0; + UE_LOG(LogTemp, Warning, TEXT("Current Health : %f"), State->Stats[(uint8)EStats::Health]); - if (MyState->Stats[(uint8)EStats::Armor] >= 0) - ADDamageMultiplier = 100 / (100 + MyState->Stats[(uint8)EStats::Armor]); - else - ADDamageMultiplier = 2 - 100 / (100 - MyState->Stats[(uint8)EStats::Armor]); - - if (MyState->Stats[(uint8)EStats::MagicResistance] >= 0) - APDamageMultiplier = 100 / (100 + MyState->Stats[(uint8)EStats::MagicResistance]); - else - APDamageMultiplier = 2 - 100 / (100 - MyState->Stats[(uint8)EStats::MagicResistance]); - - - UE_LOG(LogTemp, Warning, TEXT("%s : ADDamageMultiplier : %f CalculatedDamage : %f"), *DamageCauser->GetName(), ADDamageMultiplier, DamageAmount * ADDamageMultiplier); - UE_LOG(LogTemp, Warning, TEXT("%s : APDamageMultiplier : %f CalculatedDamage : %f"), *DamageCauser->GetName(), APDamageMultiplier, DamageAmount * APDamageMultiplier); - - if (Cast(DamageEvent.DamageTypeClass->GetDefaultObject())) - { - UE_LOG(LogTemp, Warning, TEXT("DamageType : BaseAttack")); - - float UpdatedHealth = MyState->Stats[(uint8)EStats::Health] - EventInstigatorState->Stats[(uint8)EStats::AttackDamage] * ADDamageMultiplier; - if (UpdatedHealth < 0) - { - MyState->Stats[(uint8)EStats::Health] = 0; - } - else - { - MyState->Stats[(uint8)EStats::Health] = UpdatedHealth; - } - - UE_LOG(LogTemp, Warning, TEXT("Current Health : %f"), MyState->Stats[(uint8)EStats::Health]); - } - - } - } - - return ReturnValue; - } - else - { - return -1.0f; - } + return ReturnValue; } - - void ADefaultPlayerCharacter::Skill1_Implementation() { NetMulticast_Skill1(); @@ -206,3 +204,23 @@ void ADefaultPlayerCharacter::NetMulticast_Skill7_Implementation() { BP_Skill7(); } + +void ADefaultPlayerCharacter::PerformDead() +{ + ADefaultPlayerState* State = GetPlayerState(); + if (!State) return; + + State->SetState(ECharacterState::Dead); + GetCapsuleComponent()->SetGenerateOverlapEvents(false); + GetCapsuleComponent()->SetCollisionEnabled(ECollisionEnabled::NoCollision); +} + +void ADefaultPlayerCharacter::Server_PerformDead_Implementation() +{ + PerformDead(); +} + +void ADefaultPlayerCharacter::Client_PerformDead_Implementation() +{ + PerformDead(); +} diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h index 0aac52a..b5773d2 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h +++ b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h @@ -22,12 +22,13 @@ public: virtual void Tick(float DeltaTime) override; UFUNCTION(BlueprintCallable, Server, Reliable) - void Attack(); + void Attack(); //Override me UFUNCTION(BlueprintImplementableEvent) - void BP_Attack(); - UFUNCTION(NetMulticast, Reliable) - void NetMulticast_Attack(); + void BP_Attack(); + UFUNCTION(Client, Reliable) + void Client_Attack(); + UFUNCTION(BlueprintNativeEvent) float TakeDamage( float Damage, struct FDamageEvent const& DamageEvent, @@ -35,7 +36,13 @@ public: AActor* DamageCauser ) override; + void PerformDead(); + UFUNCTION(Client, Reliable) + void Client_PerformDead(); + + UFUNCTION(Server, Reliable) + void Server_PerformDead(); UFUNCTION(BlueprintCallable, Server, Reliable) diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp index 0cc4b57..a5c9f98 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp @@ -105,7 +105,7 @@ void ADefaultPlayerController::Server_SpawnPlayerCamera_Implementation() void ADefaultPlayerController::SetACharacterOutlineColor(ACharacter* Target, bool Visible) { - if (HasAuthority()) return; + if (!Target) return; ADefaultPlayerState* State = Target->GetPlayerState(); if (!State) @@ -405,47 +405,50 @@ void ADefaultPlayerController::Bomb() void ADefaultPlayerController::ObjectSelect() { + ADefaultPlayerState* State = GetPlayerState(); + if (!State) return; + FHitResult HitResult; TArray> ObjectTypes; - ObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_WorldStatic)); ObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_Pawn)); GetHitResultUnderCursorForObjects(ObjectTypes, true, HitResult); ACharacter* HitObject = Cast(HitResult.GetActor()); - if (!HitObject) return; - UE_LOG(LogTemp, Warning, TEXT("%s"), *HitObject->GetName()); - SetACharacterOutlineColor(HitObject, true); + if (!HitObject) + { + SetACharacterOutlineColor(Cast(State->GetPreviousAttackTarget()), false); + State->SetPreviousAttackTarget(nullptr); + State->SetCurrentAttackTarget(nullptr); + return; + } + + if (State->GetPreviousAttackTarget() != HitResult.GetActor()) + { + SetACharacterOutlineColor(Cast(State->GetPreviousAttackTarget()), false); + + State->SetPreviousAttackTarget(HitResult.GetActor()); + State->SetCurrentAttackTarget(HitResult.GetActor()); + + SetACharacterOutlineColor(HitObject, true); + } + + UE_LOG(LogTemp, Warning, TEXT("%s"), *State->GetCurrentAttackTarget()->GetName()); + + FString Name = HitResult.GetActor()->GetName(); + APlayerState* TargetState = Cast(HitResult.GetActor())->GetPlayerState(); } - void ADefaultPlayerController::Move() { EndAttack(); - FHitResult HitResult; - TArray> ObjectTypes; - ObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_WorldStatic)); - ObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_Pawn)); - - GetHitResultUnderCursorForObjects(ObjectTypes, true, HitResult); - ACharacter* HitCharacter = Cast(HitResult.GetActor()); //¿ÀºêÁ§Æ®¸¦ °¡Á®¿Í HitCharactor¿¡ ÀúÀå<<ÃßÈÄ Àû ij¸¯ÅÍÀ϶§¸¸ ÀúÀåÀ¸·Î º¯°æÇؾßÇÔ - HitTarget = HitResult.GetActor(); - - UE_LOG(LogTemp, Warning, TEXT("%s"), *HitResult.GetActor()->GetName()); - - if (HitResult.GetActor() != GetPawn()) //Áö±ÝÀº HitObject°¡ nullÀÌ ¾Æ´Ò °æ¿ì Attack()À» ½ÇÇàÇÏ´Â ÄÚµåÁö¸¸, HitObject°¡ Àû ij¸¯ÅÍÀÏ ¶§ ½ÇÇàÀ¸·Î º¯°æÇؾßÇÔ + ObjectSelect(); + + if (GetPlayerState()->GetCurrentAttackTarget() != GetPawn() && + Cast(GetPlayerState()->GetCurrentAttackTarget())) //º»ÀÎÀÌ ¾Æ´Ï°í °ø°ÝÀÌ °¡´ÉÇÑ ´ë»ó(ÀûÀÌµç ¾Æ±ºÀ̵ç)ÀÏ ¶§ { - if (!GetPlayerState()->Stats[(uint8)EStats::Attackable] == 0) - return; - if (!HitCharacter) - { - FVector Destination = GetMouseHitLocation(); - GetPlayerState()->SetState(ECharacterState::Moving); - SimpleMoveToLocation(this, Destination); - this->MoveToLocation(Destination); - return; - } + if (!GetPlayerState()->Stats[(uint8)EStats::Attackable] == 0) return; BeginAttack(); //HitObject¸¦ ´ë»óÀ¸·Î BeginAttack ½ÇÇà } else @@ -500,7 +503,10 @@ void ADefaultPlayerController::Multicast_StopMove_Implementation() FVector ADefaultPlayerController::GetMouseHitLocation() { FHitResult HitResult; - GetHitResultUnderCursor(ECollisionChannel::ECC_Visibility, true, HitResult); + TArray> ObjectTypes; + ObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_WorldStatic)); + + GetHitResultUnderCursorForObjects(ObjectTypes, true, HitResult); HitResult.Location.Z = 0; //UE_LOG(LogTemp, Warning, TEXT("Client%d MoveTo : (%f, %f)"), GPlayInEditorID, HitResult.Location.X, HitResult.Location.Y); @@ -629,39 +635,36 @@ void ADefaultPlayerController::OnMoveCompleted(FAIRequestID RequestID, const FPa GetPlayerState()->SetState(ECharacterState::Idle); } -FTimerHandle TimerHandle; - void ADefaultPlayerController::BeginAttack() { - GetWorldTimerManager().SetTimer(TimerHandle, this, &ADefaultPlayerController::RepeatedAttack, 0.1f, true); + GetWorldTimerManager().SetTimer(TimerHandle, this, &ADefaultPlayerController::RepeatedAttack, 0.1f, true); } void ADefaultPlayerController::EndAttack() { - GetWorldTimerManager().ClearTimer(TimerHandle); } void ADefaultPlayerController::RepeatedAttack() { - if (!GetPlayerState()->Stats[(uint8)EStats::Attackable] == 0) - return; Attack(); } - - void ADefaultPlayerController::Attack() { - + if (!GetPlayerState()->Stats[(uint8)EStats::Attackable] == 0) + return; + float MinDistance = GetPlayerState()->Stats[(uint8)EStats:: AttackRange]; - FVector Destination = HitTarget->GetActorLocation(); // HitObjectÀÇ À§Ä¡¸¦ ¸ñÀûÁö·Î ¼³Á¤ + + if (!GetPlayerState()->GetCurrentAttackTarget()) return; + + FVector Destination = GetPlayerState()->GetCurrentAttackTarget()->GetActorLocation(); // HitObjectÀÇ À§Ä¡¸¦ ¸ñÀûÁö·Î ¼³Á¤ if (FVector::Dist(Destination, GetPawn()->GetActorLocation()) <= MinDistance) { if ((GetPlayerState()->CooldownDuration[(uint8)CooldownType::Attack] != 0)) return; - FVector Location = GetPawn()->GetActorLocation(); Location.X = 0; @@ -671,7 +674,6 @@ void ADefaultPlayerController::Attack() Multicast_SetRotation(Destination); Server_SetRotation(Destination); - UE_LOG(LogTemp, Warning, TEXT("Attack")); GetPlayerState()->SetState(ECharacterState::Attack); @@ -681,12 +683,8 @@ void ADefaultPlayerController::Attack() { GetPlayerState()->SetState(ECharacterState::Moving); SimpleMoveToLocation(this, Destination); - - - this->MoveToLocation(Destination); } - SetTarget(); } void ADefaultPlayerController::MoveToLocation_Implementation(FVector Location) diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerController.h b/Source/Promether/PlayerGeneric/DefaultPlayerController.h index eb66315..711ffdd 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerController.h +++ b/Source/Promether/PlayerGeneric/DefaultPlayerController.h @@ -77,9 +77,7 @@ public: UPROPERTY(BlueprintReadWrite) float MouseClickInterval; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "My Actor") - AActor* HitTarget; - + FTimerHandle TimerHandle; private: UPROPERTY(EditAnywhere, Category = "Input") diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp index 1159af6..2ab440b 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp @@ -22,8 +22,10 @@ void ADefaultPlayerState::GetLifetimeReplicatedProps(TArray& DOREPLIFETIME(ADefaultPlayerState, State); DOREPLIFETIME(ADefaultPlayerState, AttackType); - //DOREPLIFETIME(ADefaultPlayerState, StatusEffectObject); DOREPLIFETIME(ADefaultPlayerState, PlayerCamera); + + DOREPLIFETIME(ADefaultPlayerState, CurrentAttackTarget); + DOREPLIFETIME(ADefaultPlayerState, PreviousAttackTarget); } void ADefaultPlayerState::InitPlayerStats_Implementation(const TArray& StatsValue, const TArray& CooldownDurationValue) @@ -33,7 +35,6 @@ void ADefaultPlayerState::InitPlayerStats_Implementation(const TArray& St CooldownDuration.Append(CooldownDurationValue); MaxCooldownDuration.Append(CooldownDurationValue); - for (float Value : StatsValue) { UE_LOG(LogTemp, Warning, TEXT("Values: %f"), Value); @@ -64,3 +65,35 @@ int32 ADefaultPlayerState::GetCharacterLevel() const { return int32(); } + +void ADefaultPlayerState::SetCurrentAttackTarget(AActor* Target) +{ + Server_SetCurrentAttackTarget(Target); + Client_SetCurrentAttackTarget(Target); +} + +void ADefaultPlayerState::Server_SetCurrentAttackTarget_Implementation(AActor* Target) +{ + CurrentAttackTarget = Target; +} + +void ADefaultPlayerState::Client_SetCurrentAttackTarget_Implementation(AActor* Target) +{ + CurrentAttackTarget = Target; +} + +void ADefaultPlayerState::SetPreviousAttackTarget(AActor* Target) +{ + Server_SetPreviousAttackTarget(Target); + Client_SetPreviousAttackTarget(Target); +} + +void ADefaultPlayerState::Server_SetPreviousAttackTarget_Implementation(AActor* Target) +{ + PreviousAttackTarget = Target; +} + +void ADefaultPlayerState::Client_SetPreviousAttackTarget_Implementation(AActor* Target) +{ + PreviousAttackTarget = Target; +} diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerState.h b/Source/Promether/PlayerGeneric/DefaultPlayerState.h index 117cc17..a37ea68 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerState.h +++ b/Source/Promether/PlayerGeneric/DefaultPlayerState.h @@ -62,6 +62,23 @@ public: UFUNCTION(BlueprintCallable) int32 GetCharacterLevel() const; + + UFUNCTION(BlueprintCallable) + AActor* GetCurrentAttackTarget() const { return CurrentAttackTarget; }; + UFUNCTION(BlueprintCallable) + AActor* GetPreviousAttackTarget() const { return PreviousAttackTarget; }; + + void SetCurrentAttackTarget(AActor* Target); + UFUNCTION(Server, Reliable) + void Server_SetCurrentAttackTarget(AActor* Target); + UFUNCTION(Client, Reliable) + void Client_SetCurrentAttackTarget(AActor* Target); + + void SetPreviousAttackTarget(AActor* Target); + UFUNCTION(Server, Reliable) + void Server_SetPreviousAttackTarget(AActor* Target); + UFUNCTION(Client, Reliable) + void Client_SetPreviousAttackTarget(AActor* Target); UPROPERTY(Replicated, Transient, EditAnywhere, BlueprintReadWrite) TArray Stats; @@ -73,6 +90,7 @@ public: UPROPERTY(Replicated, Transient, BlueprintReadWrite) TArray MaxCooldownDuration; + private: UPROPERTY(Replicated, Transient) UClass* CharacterBPRef; @@ -84,9 +102,11 @@ private: UPROPERTY(Replicated, Transient) CooldownType AttackType; - //UPROPERTY(Replicated, Transient) - //TMap StatusEffectObject; - UPROPERTY(Replicated, Transient) AActor* PlayerCamera; + + UPROPERTY(Replicated, Transient) + AActor* CurrentAttackTarget; + UPROPERTY(Replicated, Transient) + AActor* PreviousAttackTarget; }; diff --git a/Source/Promether/PrometherEnum.h b/Source/Promether/PrometherEnum.h index 610758b..4fa82db 100644 --- a/Source/Promether/PrometherEnum.h +++ b/Source/Promether/PrometherEnum.h @@ -2,6 +2,7 @@ #include "CoreMinimal.h" #include "DamageType/BaseAttack.h" +#include "DamageType/APDamage.h" UENUM(BlueprintType) enum class CharacterType : uint8 From 56c68e85d032a58d07d710fed3fb14719672a0d6 Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Mon, 30 Oct 2023 01:08:42 +0900 Subject: [PATCH 3/6] =?UTF-8?q?=EC=87=BC=EC=BC=80=EC=9D=B4=EC=8A=A4?= =?UTF-8?q?=EC=9A=A9=20=EC=A4=91=EA=B0=84=20=EA=B2=B0=EA=B3=BC=EB=AC=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content/Character/Lb/BP_Lb.uasset | 4 ++-- Content/Character/Lb/BaseArrow.uasset | 4 ++-- Content/Character/Lb/EskillBuff.uasset | 4 ++-- Content/Maps/DevMap.umap | 4 ++-- Source/Promether/PlayerGeneric/DefaultPlayerState.cpp | 2 ++ 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Content/Character/Lb/BP_Lb.uasset b/Content/Character/Lb/BP_Lb.uasset index 1b62c08..85c7d89 100644 --- a/Content/Character/Lb/BP_Lb.uasset +++ b/Content/Character/Lb/BP_Lb.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:16d4e7f5452d5488c98bc4e94b56349548b16a61f01ce0c00368e5995140de27 -size 252367 +oid sha256:a9f46ee03c3d995fda51c08af0e34786ec6b28aee17084b663f80133d3ce5ca3 +size 253092 diff --git a/Content/Character/Lb/BaseArrow.uasset b/Content/Character/Lb/BaseArrow.uasset index 3a2827a..c186582 100644 --- a/Content/Character/Lb/BaseArrow.uasset +++ b/Content/Character/Lb/BaseArrow.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ea4d2c8a04a158e685627b6e63d8fa7313be56de4843f685a712a220455f0abe -size 91881 +oid sha256:e5bc4ed8926ea90e98dc27a6bf0768f7f2f6dc4a344a85c132e6427331c979a3 +size 90927 diff --git a/Content/Character/Lb/EskillBuff.uasset b/Content/Character/Lb/EskillBuff.uasset index 4ee7c33..14bdcd7 100644 --- a/Content/Character/Lb/EskillBuff.uasset +++ b/Content/Character/Lb/EskillBuff.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d10fea60f675537a077865e12c7f5bdab7d7a58751471eb7271b7f72e91bdb31 -size 93517 +oid sha256:ec25c825890b0efb1689d3fea38b149f89e4c6cece1ecb78257cce7b7db187c5 +size 89613 diff --git a/Content/Maps/DevMap.umap b/Content/Maps/DevMap.umap index f35a078..4e5bf2b 100644 --- a/Content/Maps/DevMap.umap +++ b/Content/Maps/DevMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5fa5a30e0caab2240d4de882413baca8c6eb6a40ee4790a1e066a99d2b6c3ce2 -size 219204 +oid sha256:3abc8a2a6efd5ecf12bf2f1df8ee42262a13dde8a18b77675ee51059206fe151 +size 154995 diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp index 2ab440b..5e96ac2 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerState.cpp @@ -6,6 +6,8 @@ ADefaultPlayerState::ADefaultPlayerState() CharacterBPRef = nullptr;; Team = TeamType::Null; State = ECharacterState::Idle; + + NetUpdateFrequency = 100.0f; } void ADefaultPlayerState::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const From 1cd43f452763e68b98003e91783ee8e418c09a11 Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Thu, 9 Nov 2023 22:51:12 +0900 Subject: [PATCH 4/6] =?UTF-8?q?=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Blueprints/BP_DefaultPlayerCharacter.uasset | 4 ++-- Content/Blueprints/UI/NameBar_UI/NameBar_UI.uasset | 4 ++-- Content/Character/Allium/BP_Allium.uasset | 4 ++-- Content/Character/Lb/BP_Lb.uasset | 4 ++-- Content/Character/Lb/BaseArrow.uasset | 3 --- Content/Character/Lb/Effect/T_H_A.uasset | 2 +- Content/Character/Lb/Effect/T_H_E.uasset | 2 +- Content/Character/Lb/Effect/T_H_Q_Burn.uasset | 2 +- Content/Character/Lb/Effect/T_H_Q_shoot.uasset | 2 +- Content/Character/Lb/Effect/T_H_R_Boom.uasset | 2 +- Content/Character/Lb/Effect/T_H_R_Shoot.uasset | 2 +- Content/Character/Lb/LB_BaseAttack.uasset | 3 +++ .../Character/Monster/Knight/BP_HolyKnight.uasset | 3 +++ Content/Character/Monster/Knight/BP_Knignt.uasset | 4 ++-- .../Knight/Skeleton/Monster_Knight_Skeleton.uasset | 4 ++-- Content/Effect/LB/Sound/T_H_W.uasset | 3 +++ Content/Maps/DevMap.umap | 4 ++-- .../PlayerGeneric/DefaultPlayerCharacter.cpp | 4 ++-- .../PlayerGeneric/DefaultPlayerController.cpp | 14 ++++++-------- 19 files changed, 37 insertions(+), 33 deletions(-) delete mode 100644 Content/Character/Lb/BaseArrow.uasset create mode 100644 Content/Character/Lb/LB_BaseAttack.uasset create mode 100644 Content/Character/Monster/Knight/BP_HolyKnight.uasset create mode 100644 Content/Effect/LB/Sound/T_H_W.uasset diff --git a/Content/Blueprints/BP_DefaultPlayerCharacter.uasset b/Content/Blueprints/BP_DefaultPlayerCharacter.uasset index 8b8a483..719fac5 100644 --- a/Content/Blueprints/BP_DefaultPlayerCharacter.uasset +++ b/Content/Blueprints/BP_DefaultPlayerCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e8c82415960d0b58adbb46faa76b95711bf913a53aab55b722faaf06b86922c0 -size 142183 +oid sha256:0ba767ac11dbc05df5b4d23da7c7748826c7b8c1a4c537be9c7120690715602f +size 39211 diff --git a/Content/Blueprints/UI/NameBar_UI/NameBar_UI.uasset b/Content/Blueprints/UI/NameBar_UI/NameBar_UI.uasset index eeb8015..05319a5 100644 --- a/Content/Blueprints/UI/NameBar_UI/NameBar_UI.uasset +++ b/Content/Blueprints/UI/NameBar_UI/NameBar_UI.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a893a2c6aa823f8a61795b9d46256f6b8ac741b35b93e38f2ae1f802db2ff70a -size 105394 +oid sha256:e0df2b6c49929989479f6d9f199bd88e5227e8c75f5580bae305d52100f3cfb6 +size 110755 diff --git a/Content/Character/Allium/BP_Allium.uasset b/Content/Character/Allium/BP_Allium.uasset index 5fa6294..1864549 100644 --- a/Content/Character/Allium/BP_Allium.uasset +++ b/Content/Character/Allium/BP_Allium.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5b8f6469924c0030147d25ec9a7b526d8d21386e0d15bd8106e878e4e3297685 -size 162823 +oid sha256:2bd7f7781c5a7d07ef706792570948cbb88e2567a026eae194bee103ceb9f006 +size 159593 diff --git a/Content/Character/Lb/BP_Lb.uasset b/Content/Character/Lb/BP_Lb.uasset index 2f2e96f..d01f1c0 100644 --- a/Content/Character/Lb/BP_Lb.uasset +++ b/Content/Character/Lb/BP_Lb.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45b867877174e3067dd3bb6bd2bbd9f8eb5bfcbcc86762849c4cadff5a962de1 -size 402953 +oid sha256:ae855b9d9dd483142acd12798ccf69d801e0fec08511387b9bd7514e266f2439 +size 386232 diff --git a/Content/Character/Lb/BaseArrow.uasset b/Content/Character/Lb/BaseArrow.uasset deleted file mode 100644 index c186582..0000000 --- a/Content/Character/Lb/BaseArrow.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e5bc4ed8926ea90e98dc27a6bf0768f7f2f6dc4a344a85c132e6427331c979a3 -size 90927 diff --git a/Content/Character/Lb/Effect/T_H_A.uasset b/Content/Character/Lb/Effect/T_H_A.uasset index 03ccaa2..d452b5b 100644 --- a/Content/Character/Lb/Effect/T_H_A.uasset +++ b/Content/Character/Lb/Effect/T_H_A.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f81e83f1e265fdbcaa46e21a2afaad000524eba7852080e81ca6a3098fe4e9d +oid sha256:9114706929ca6c61f7565df07f74a8446516adb6d79ac0e5c4b8042b40386f6b size 56472 diff --git a/Content/Character/Lb/Effect/T_H_E.uasset b/Content/Character/Lb/Effect/T_H_E.uasset index 2a0d129..95be2f8 100644 --- a/Content/Character/Lb/Effect/T_H_E.uasset +++ b/Content/Character/Lb/Effect/T_H_E.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f46fd8bcdbcadcba98a676241d44e122579ad94ceb6c84d9f5b311953f57cc0 +oid sha256:9147b4fc193ff4c0cb176a30a2ae8d3f1febc32bdfebee9d7e71e45c8ce724fd size 130227 diff --git a/Content/Character/Lb/Effect/T_H_Q_Burn.uasset b/Content/Character/Lb/Effect/T_H_Q_Burn.uasset index c3232c9..633bbf7 100644 --- a/Content/Character/Lb/Effect/T_H_Q_Burn.uasset +++ b/Content/Character/Lb/Effect/T_H_Q_Burn.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c83fd1490746d5089ed64696f0b629fececf307225ba8fcddfd096ab84035fe8 +oid sha256:86e3b49ccbc32b31539b6debb3e0cbb56aead0981e37249b3ba00e4426cbf56c size 250968 diff --git a/Content/Character/Lb/Effect/T_H_Q_shoot.uasset b/Content/Character/Lb/Effect/T_H_Q_shoot.uasset index eb40e93..87be17c 100644 --- a/Content/Character/Lb/Effect/T_H_Q_shoot.uasset +++ b/Content/Character/Lb/Effect/T_H_Q_shoot.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0d682c1953b0f46e64869278d8953b727150718a956711ef97ab9c36710a74e9 +oid sha256:84621d972511a74b9853b90295b78b9702bcb15f1a6482e136bac3c4213ef66f size 116772 diff --git a/Content/Character/Lb/Effect/T_H_R_Boom.uasset b/Content/Character/Lb/Effect/T_H_R_Boom.uasset index 6343c61..0d380b8 100644 --- a/Content/Character/Lb/Effect/T_H_R_Boom.uasset +++ b/Content/Character/Lb/Effect/T_H_R_Boom.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:61e978c7e05f707135bb5ea07d85fb8c310a9bd0ec03f6a72f7b2230a64ca3c8 +oid sha256:cfecf3bd70a789aead194b5a9ccdba1b890ae5a18cf96e54e5764682641a456d size 682182 diff --git a/Content/Character/Lb/Effect/T_H_R_Shoot.uasset b/Content/Character/Lb/Effect/T_H_R_Shoot.uasset index 997a6c4..6818cfd 100644 --- a/Content/Character/Lb/Effect/T_H_R_Shoot.uasset +++ b/Content/Character/Lb/Effect/T_H_R_Shoot.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e3409949d4a3a7084aec57e85db3731f77e3bcb680e10fe232aaf6493a7ba14 +oid sha256:b4d49e149ae8cab68d9768a619ff88939f98c6f9aa1d5abaf19447744e7f5516 size 537995 diff --git a/Content/Character/Lb/LB_BaseAttack.uasset b/Content/Character/Lb/LB_BaseAttack.uasset new file mode 100644 index 0000000..9ee1bc3 --- /dev/null +++ b/Content/Character/Lb/LB_BaseAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb91254e86e6ac20ad34c528cbf43e6c3661864da03b5f98b916d148571db2d7 +size 87549 diff --git a/Content/Character/Monster/Knight/BP_HolyKnight.uasset b/Content/Character/Monster/Knight/BP_HolyKnight.uasset new file mode 100644 index 0000000..004c740 --- /dev/null +++ b/Content/Character/Monster/Knight/BP_HolyKnight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15f44646eab1954278e67f322d59dea5d9d29683794ea99df30ccc9a56d3ba3e +size 67565 diff --git a/Content/Character/Monster/Knight/BP_Knignt.uasset b/Content/Character/Monster/Knight/BP_Knignt.uasset index 6714f7f..2b14da5 100644 --- a/Content/Character/Monster/Knight/BP_Knignt.uasset +++ b/Content/Character/Monster/Knight/BP_Knignt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:029169f9c794e0c6869f700a7635795faa0c50a018589e8e534d2b5a76ba83eb -size 65976 +oid sha256:b4bfa577d662c0fe0be1ae068f23585fdd3c6cbdfa98c888da4582ca6309bf52 +size 25882 diff --git a/Content/Character/Monster/Knight/Skeleton/Monster_Knight_Skeleton.uasset b/Content/Character/Monster/Knight/Skeleton/Monster_Knight_Skeleton.uasset index 46ab280..739cea1 100644 --- a/Content/Character/Monster/Knight/Skeleton/Monster_Knight_Skeleton.uasset +++ b/Content/Character/Monster/Knight/Skeleton/Monster_Knight_Skeleton.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:55cc7568aebae0510e7afd20897e7cc0240aa4a309a9751abbc731923939977a -size 15194 +oid sha256:4a15315a43fdf529b19224a2fc8f935ecdc3543d285bd8b9a7de06acd6093bcf +size 16401 diff --git a/Content/Effect/LB/Sound/T_H_W.uasset b/Content/Effect/LB/Sound/T_H_W.uasset new file mode 100644 index 0000000..2589109 --- /dev/null +++ b/Content/Effect/LB/Sound/T_H_W.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94ca14fd8515c9681fd744412411cd1d6b89a546f3bcd494783090b90a714a66 +size 508580 diff --git a/Content/Maps/DevMap.umap b/Content/Maps/DevMap.umap index aa9f3d4..4dcc723 100644 --- a/Content/Maps/DevMap.umap +++ b/Content/Maps/DevMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6d4f0f8460e8ae5a3b871bc7c9512d0566e3f46537280fd81f4151d5ff71c0c2 -size 179457 +oid sha256:c2e649be8ca3babb4e2a908b5965225c65383a37914975ac9c0a0acb6da1f793 +size 183451 diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp index b29cbfa..755a7c6 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp @@ -100,13 +100,13 @@ float ADefaultPlayerCharacter::TakeDamage_Implementation(float DamageAmount, str { UE_LOG(LogTemp, Warning, TEXT("DamageType : BaseAttack")); - UpdatedHealth = State->Stats[(uint8)EStats::Health] - AttackerState->Stats[(uint8)EStats::AttackDamage] * ADDamageMultiplier; + UpdatedHealth = State->Stats[(uint8)EStats::Health] - DamageAmount * ADDamageMultiplier; } else if (Cast(DamageEvent.DamageTypeClass->GetDefaultObject())) { UE_LOG(LogTemp, Warning, TEXT("DamageType : APDamage")); - UpdatedHealth = State->Stats[(uint8)EStats::Health] - AttackerState->Stats[(uint8)EStats::AbilityPower] * APDamageMultiplier; + UpdatedHealth = State->Stats[(uint8)EStats::Health] - DamageAmount * APDamageMultiplier; } if (UpdatedHealth < 0 || UpdatedHealth < 0.1 ) diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp index ea57948..055582b 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerController.cpp @@ -331,22 +331,22 @@ void ADefaultPlayerController::Skill3() void ADefaultPlayerController::Skill4Triggered() { - if (GetPlayerState()->Stats[(uint8)EStats::charging] == 1)//������ 1(false)�� �� + if (GetPlayerState()->Stats[(uint8)EStats::charging] == 1) { if (!GetPlayerState()->Stats[(uint8)EStats::Skillusable] == 0) return; if (!(GetPlayerState()->Stats[(uint8)EStats::Mana] >= GetPlayerState()->Stats[(uint8)EStats::Skill4Cost])) return; GetPlayerState()->Stats[(uint8)EStats::Mana] -= GetPlayerState()->Stats[(uint8)EStats::Skill4Cost]; - GetPlayerState()->Stats[(uint8)EStats::charging] = 0;// ��ġ�� ����ϰ� charge�� true(0)�� ���� + GetPlayerState()->Stats[(uint8)EStats::charging] = 0; } - else if (GetPlayerState()->Stats[(uint8)EStats::charging] == 2) //������ 2(never)�� �� + else if (GetPlayerState()->Stats[(uint8)EStats::charging] == 2) { if (!GetPlayerState()->Stats[(uint8)EStats::Skillusable] == 0) return; if (!(GetPlayerState()->Stats[(uint8)EStats::Mana] >= GetPlayerState()->Stats[(uint8)EStats::Skill4Cost])) return; - GetPlayerState()->Stats[(uint8)EStats::Mana] -= GetPlayerState()->Stats[(uint8)EStats::Skill4Cost]; // �׳� ��ġ ��길 ���� + GetPlayerState()->Stats[(uint8)EStats::Mana] -= GetPlayerState()->Stats[(uint8)EStats::Skill4Cost]; } EndAttack(); GetPlayerState()->Stats[(uint8)EStats::Attackable] = 1; @@ -446,10 +446,10 @@ void ADefaultPlayerController::Move() ObjectSelect(); if (GetPlayerState()->GetCurrentAttackTarget() != GetPawn() && - Cast(GetPlayerState()->GetCurrentAttackTarget())) //������ �ƴϰ� ������ ������ ���(���̵� �Ʊ��̵�)�� �� + Cast(GetPlayerState()->GetCurrentAttackTarget())) { if (!GetPlayerState()->Stats[(uint8)EStats::Attackable] == 0) return; - BeginAttack(); //HitObject�� ������� BeginAttack ���� + BeginAttack(); } else { @@ -469,8 +469,6 @@ void ADefaultPlayerController::Multicast_SetRotation_Implementation(FVector Mous Location.Z = 0; FRotator NewRotation = (MouseHitLocation - Location).Rotation(); - - // ���� X���� �����ϰ� �ʹٸ� �Ʒ��� ���� �ش� ���� �����մϴ�. NewRotation.Pitch = 0; From 8e4677250e03afcc10000d49cb51da7cb5b91c49 Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Fri, 10 Nov 2023 00:22:09 +0900 Subject: [PATCH 5/6] =?UTF-8?q?=ED=8F=89=ED=83=80=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content/Character/Lb/BP_Lb.uasset | 4 ++-- Content/Character/Lb/Effect/T_H_A.uasset | 2 +- Content/Character/Lb/Effect/T_H_E.uasset | 2 +- Content/Character/Lb/Effect/T_H_Q_Burn.uasset | 2 +- Content/Character/Lb/Effect/T_H_Q_shoot.uasset | 2 +- Content/Character/Lb/Effect/T_H_R_Boom.uasset | 2 +- Content/Character/Lb/Effect/T_H_R_Shoot.uasset | 2 +- Content/Character/Lb/LB_BaseAttack.uasset | 4 ++-- Content/Character/Monster/Knight/BP_HolyKnight.uasset | 4 ++-- Content/Character/Monster/Knight/BP_Knignt.uasset | 4 ++-- Content/Character/Monster/Knight/BP_Spear.uasset | 3 +++ Content/Character/Riana/BP_Riana.uasset | 4 ++-- Content/Effect/LB/Sound/T_H_W.uasset | 2 +- Content/Maps/DevMap.umap | 4 ++-- Source/Promether/DamageType/HomingAttack.cpp | 3 ++- Source/Promether/DamageType/HomingAttack.h | 3 +++ Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp | 4 ++-- Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h | 4 ++-- 18 files changed, 31 insertions(+), 24 deletions(-) create mode 100644 Content/Character/Monster/Knight/BP_Spear.uasset diff --git a/Content/Character/Lb/BP_Lb.uasset b/Content/Character/Lb/BP_Lb.uasset index d01f1c0..b38f9a7 100644 --- a/Content/Character/Lb/BP_Lb.uasset +++ b/Content/Character/Lb/BP_Lb.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ae855b9d9dd483142acd12798ccf69d801e0fec08511387b9bd7514e266f2439 -size 386232 +oid sha256:405fa64140f1db07fe4846ff16e0605e48e7fa6d99a7e19b6cf1eacc3ff31606 +size 384731 diff --git a/Content/Character/Lb/Effect/T_H_A.uasset b/Content/Character/Lb/Effect/T_H_A.uasset index d452b5b..1d6473b 100644 --- a/Content/Character/Lb/Effect/T_H_A.uasset +++ b/Content/Character/Lb/Effect/T_H_A.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9114706929ca6c61f7565df07f74a8446516adb6d79ac0e5c4b8042b40386f6b +oid sha256:b112ad2775a4b88fce326ca92c917862f929f7888d0deb0134df60e8b1483b97 size 56472 diff --git a/Content/Character/Lb/Effect/T_H_E.uasset b/Content/Character/Lb/Effect/T_H_E.uasset index 95be2f8..7995a44 100644 --- a/Content/Character/Lb/Effect/T_H_E.uasset +++ b/Content/Character/Lb/Effect/T_H_E.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9147b4fc193ff4c0cb176a30a2ae8d3f1febc32bdfebee9d7e71e45c8ce724fd +oid sha256:0ee28e8a893a9292ed773f1c1fe3b6a9faf16cd3da1509dbf59ac76959ae52f0 size 130227 diff --git a/Content/Character/Lb/Effect/T_H_Q_Burn.uasset b/Content/Character/Lb/Effect/T_H_Q_Burn.uasset index 633bbf7..dfce2e1 100644 --- a/Content/Character/Lb/Effect/T_H_Q_Burn.uasset +++ b/Content/Character/Lb/Effect/T_H_Q_Burn.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:86e3b49ccbc32b31539b6debb3e0cbb56aead0981e37249b3ba00e4426cbf56c +oid sha256:c5ca870e555af208475b59362c086b178302c0fbc86ad4588d4cdb1bbc0fd0fe size 250968 diff --git a/Content/Character/Lb/Effect/T_H_Q_shoot.uasset b/Content/Character/Lb/Effect/T_H_Q_shoot.uasset index 87be17c..feebed9 100644 --- a/Content/Character/Lb/Effect/T_H_Q_shoot.uasset +++ b/Content/Character/Lb/Effect/T_H_Q_shoot.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:84621d972511a74b9853b90295b78b9702bcb15f1a6482e136bac3c4213ef66f +oid sha256:a78638f20da7095eabd8f7affc624ff63503b2abb176bce7be99bbea850d1360 size 116772 diff --git a/Content/Character/Lb/Effect/T_H_R_Boom.uasset b/Content/Character/Lb/Effect/T_H_R_Boom.uasset index 0d380b8..7635caf 100644 --- a/Content/Character/Lb/Effect/T_H_R_Boom.uasset +++ b/Content/Character/Lb/Effect/T_H_R_Boom.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cfecf3bd70a789aead194b5a9ccdba1b890ae5a18cf96e54e5764682641a456d +oid sha256:dfe895df99726e2428967738c5ab530b87af29bf7af5c35ef646692bae92bc1e size 682182 diff --git a/Content/Character/Lb/Effect/T_H_R_Shoot.uasset b/Content/Character/Lb/Effect/T_H_R_Shoot.uasset index 6818cfd..f113ebf 100644 --- a/Content/Character/Lb/Effect/T_H_R_Shoot.uasset +++ b/Content/Character/Lb/Effect/T_H_R_Shoot.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b4d49e149ae8cab68d9768a619ff88939f98c6f9aa1d5abaf19447744e7f5516 +oid sha256:9cd74bf56b73dde55472eeab867dc85a18bfd621560675eaeed5f4e7ba84209f size 537995 diff --git a/Content/Character/Lb/LB_BaseAttack.uasset b/Content/Character/Lb/LB_BaseAttack.uasset index 9ee1bc3..6ca241b 100644 --- a/Content/Character/Lb/LB_BaseAttack.uasset +++ b/Content/Character/Lb/LB_BaseAttack.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bb91254e86e6ac20ad34c528cbf43e6c3661864da03b5f98b916d148571db2d7 -size 87549 +oid sha256:d419f43da436ee05cb4260fa371e1563195511239ccd3d7eef3e4f2ddaf5bef6 +size 95714 diff --git a/Content/Character/Monster/Knight/BP_HolyKnight.uasset b/Content/Character/Monster/Knight/BP_HolyKnight.uasset index 004c740..19b84fe 100644 --- a/Content/Character/Monster/Knight/BP_HolyKnight.uasset +++ b/Content/Character/Monster/Knight/BP_HolyKnight.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:15f44646eab1954278e67f322d59dea5d9d29683794ea99df30ccc9a56d3ba3e -size 67565 +oid sha256:0ae180ebbd9b0f7e57d5add5bebeb11d0e6cdc577fe0acb2b846dad0fd4486b0 +size 71242 diff --git a/Content/Character/Monster/Knight/BP_Knignt.uasset b/Content/Character/Monster/Knight/BP_Knignt.uasset index 2b14da5..f06ed4b 100644 --- a/Content/Character/Monster/Knight/BP_Knignt.uasset +++ b/Content/Character/Monster/Knight/BP_Knignt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b4bfa577d662c0fe0be1ae068f23585fdd3c6cbdfa98c888da4582ca6309bf52 -size 25882 +oid sha256:8e491fc22d201d812f36fa28d36709371273eec9a73d66d2bb86c5f1ce663d26 +size 25898 diff --git a/Content/Character/Monster/Knight/BP_Spear.uasset b/Content/Character/Monster/Knight/BP_Spear.uasset new file mode 100644 index 0000000..e619e37 --- /dev/null +++ b/Content/Character/Monster/Knight/BP_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:785b423d2501aa0a4952d0d27ed3ea16526de7f77f131396cf2dd26134f9b8f9 +size 55626 diff --git a/Content/Character/Riana/BP_Riana.uasset b/Content/Character/Riana/BP_Riana.uasset index 6938360..528aa16 100644 --- a/Content/Character/Riana/BP_Riana.uasset +++ b/Content/Character/Riana/BP_Riana.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c484c3539bde1614235fc8a2262d923166c8050e030bed85a5a6368434f73b53 -size 36354 +oid sha256:4b1b899ecd2853722d5289a70a938ba5a9a0e6748ac5b15cd95b6e47dc3b9422 +size 36497 diff --git a/Content/Effect/LB/Sound/T_H_W.uasset b/Content/Effect/LB/Sound/T_H_W.uasset index 2589109..4508c04 100644 --- a/Content/Effect/LB/Sound/T_H_W.uasset +++ b/Content/Effect/LB/Sound/T_H_W.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:94ca14fd8515c9681fd744412411cd1d6b89a546f3bcd494783090b90a714a66 +oid sha256:4526c62252ea1d87451fc4bccbf76e31ea7800768b9ea27b0d02b2d953b42a6e size 508580 diff --git a/Content/Maps/DevMap.umap b/Content/Maps/DevMap.umap index 4dcc723..0dfbabf 100644 --- a/Content/Maps/DevMap.umap +++ b/Content/Maps/DevMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c2e649be8ca3babb4e2a908b5965225c65383a37914975ac9c0a0acb6da1f793 -size 183451 +oid sha256:b0133ef8d2da9b63185377b36bb06b4d000ee86c3c6b5c78769d878f932c7be9 +size 187130 diff --git a/Source/Promether/DamageType/HomingAttack.cpp b/Source/Promether/DamageType/HomingAttack.cpp index 9948809..cf70434 100644 --- a/Source/Promether/DamageType/HomingAttack.cpp +++ b/Source/Promether/DamageType/HomingAttack.cpp @@ -34,7 +34,8 @@ void AHomingAttack::BeginPlay() return; } - ProjectileMovement->HomingTargetComponent = State->GetCurrentAttackTarget()->GetRootComponent(); + Target = State->GetCurrentAttackTarget(); + ProjectileMovement->HomingTargetComponent = Target->GetRootComponent(); } // Called every frame diff --git a/Source/Promether/DamageType/HomingAttack.h b/Source/Promether/DamageType/HomingAttack.h index c9f0d07..eaa9202 100644 --- a/Source/Promether/DamageType/HomingAttack.h +++ b/Source/Promether/DamageType/HomingAttack.h @@ -23,6 +23,9 @@ protected: UPROPERTY(EditAnywhere, BlueprintReadWrite) UProjectileMovementComponent* ProjectileMovement; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + AActor* Target; + public: // Called every frame virtual void Tick(float DeltaTime) override; diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp index 755a7c6..b14c3fb 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp +++ b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.cpp @@ -56,11 +56,11 @@ void ADefaultPlayerCharacter::Tick(float DeltaTime) void ADefaultPlayerCharacter::Attack_Implementation() { - Client_Attack(); + NetMulticast_Attack(); BP_Attack(); } -void ADefaultPlayerCharacter::Client_Attack_Implementation() +void ADefaultPlayerCharacter::NetMulticast_Attack_Implementation() { BP_Attack(); } diff --git a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h index b5773d2..a1adc08 100644 --- a/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h +++ b/Source/Promether/PlayerGeneric/DefaultPlayerCharacter.h @@ -26,8 +26,8 @@ public: //Override me UFUNCTION(BlueprintImplementableEvent) void BP_Attack(); - UFUNCTION(Client, Reliable) - void Client_Attack(); + UFUNCTION(NetMulticast, Reliable) + void NetMulticast_Attack(); UFUNCTION(BlueprintNativeEvent) float TakeDamage( float Damage, From db63221d3d5b8f97197d17e31ca0b43ed1240a50 Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Tue, 14 Nov 2023 01:00:29 +0900 Subject: [PATCH 6/6] =?UTF-8?q?=EB=A8=B8=EC=A7=80=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content/Blueprints/BP_DefaultPlayerCharacter.uasset | 4 ++-- Content/Character/Allium/Alium_Q.uasset | 4 ++-- Content/Character/Allium/Animation/ABP_Allium.uasset | 4 ++-- Content/Character/Allium/BP_Allium.uasset | 4 ++-- Content/Character/Lb/BP_Lb.uasset | 4 ++-- Content/Character/Lb/BaseArrow.uasset | 4 ++-- Content/Character/Lb/Effect/T_H_A.uasset | 3 --- Content/Character/Lb/Effect/T_H_E.uasset | 3 --- Content/Character/Lb/Effect/T_H_Q_Burn.uasset | 3 --- Content/Character/Lb/Effect/T_H_Q_shoot.uasset | 3 --- Content/Character/Lb/Effect/T_H_R_Boom.uasset | 3 --- Content/Character/Lb/Effect/T_H_R_Shoot.uasset | 3 --- Content/Character/Lb/LB_BaseAttack.uasset | 3 --- Content/Character/Lb/LB_Q_Arrow.uasset | 4 ++-- Content/Character/Lb/sound/T_H_A.uasset | 3 --- Content/Character/Lb/sound/T_H_E.uasset | 3 --- Content/Character/Lb/sound/T_H_Q_Burn.uasset | 3 --- Content/Character/Lb/sound/T_H_Q_shoot.uasset | 3 --- Content/Character/Lb/sound/T_H_R_Boom.uasset | 3 --- Content/Character/Lb/sound/T_H_R_Shoot.uasset | 3 --- Content/Character/Monster/Knight/BP_Knignt.uasset | 4 ++-- Content/Character/Riana/BP_Riana.uasset | 4 ++-- Content/Effect/AliumQ/Knife1.uasset | 3 --- Content/Effect/CC.uasset | 3 --- Content/Effect/ETC/Hit_Nomal.uasset | 4 ++-- Content/Effect/LB/Sound/T_H_W.uasset | 3 --- Content/Effect/dust.uasset | 3 --- .../Effect/particle_test/Content/Cursor/Untitled-1.uasset | 3 --- Content/Effect/tnt.uasset | 3 --- Content/Maps/DevMap.umap | 4 ++-- Source/Promether/DamageType/HomingAttack.cpp | 7 ++++--- Source/Promether/GameModeBase/Deathmatch.cpp | 2 +- 32 files changed, 27 insertions(+), 83 deletions(-) delete mode 100644 Content/Character/Lb/Effect/T_H_A.uasset delete mode 100644 Content/Character/Lb/Effect/T_H_E.uasset delete mode 100644 Content/Character/Lb/Effect/T_H_Q_Burn.uasset delete mode 100644 Content/Character/Lb/Effect/T_H_Q_shoot.uasset delete mode 100644 Content/Character/Lb/Effect/T_H_R_Boom.uasset delete mode 100644 Content/Character/Lb/Effect/T_H_R_Shoot.uasset delete mode 100644 Content/Character/Lb/LB_BaseAttack.uasset delete mode 100644 Content/Character/Lb/sound/T_H_A.uasset delete mode 100644 Content/Character/Lb/sound/T_H_E.uasset delete mode 100644 Content/Character/Lb/sound/T_H_Q_Burn.uasset delete mode 100644 Content/Character/Lb/sound/T_H_Q_shoot.uasset delete mode 100644 Content/Character/Lb/sound/T_H_R_Boom.uasset delete mode 100644 Content/Character/Lb/sound/T_H_R_Shoot.uasset delete mode 100644 Content/Effect/AliumQ/Knife1.uasset delete mode 100644 Content/Effect/CC.uasset delete mode 100644 Content/Effect/LB/Sound/T_H_W.uasset delete mode 100644 Content/Effect/dust.uasset delete mode 100644 Content/Effect/particle_test/Content/Cursor/Untitled-1.uasset delete mode 100644 Content/Effect/tnt.uasset diff --git a/Content/Blueprints/BP_DefaultPlayerCharacter.uasset b/Content/Blueprints/BP_DefaultPlayerCharacter.uasset index e7677fc..71bf8ea 100644 --- a/Content/Blueprints/BP_DefaultPlayerCharacter.uasset +++ b/Content/Blueprints/BP_DefaultPlayerCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e168c1d918f01109b4e696f17435306d9a92ae422a4b0fa14d5df7306e874e51 -size 150369 +oid sha256:1a760f33857abf7a9c973298ff9d934dae107b421d1f0eebf50a9c995c41425b +size 147147 diff --git a/Content/Character/Allium/Alium_Q.uasset b/Content/Character/Allium/Alium_Q.uasset index 500b1b8..df6fc39 100644 --- a/Content/Character/Allium/Alium_Q.uasset +++ b/Content/Character/Allium/Alium_Q.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f87efd665635b197d7539eb84b3af44e7bbd49b44cf16b064202b6ddb98195e6 -size 174779 +oid sha256:b1db0f5e39e4d320a168f824b5d4200c506214dbce935ef99d4503535ac392b8 +size 175065 diff --git a/Content/Character/Allium/Animation/ABP_Allium.uasset b/Content/Character/Allium/Animation/ABP_Allium.uasset index f16db0a..24876a7 100644 --- a/Content/Character/Allium/Animation/ABP_Allium.uasset +++ b/Content/Character/Allium/Animation/ABP_Allium.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5f2e6b884188dbc9492b89c93ccaa4bcc38f64dd55b6814b88dc8247b41f373 -size 311396 +oid sha256:e50dde475d24abff95d5c3cb082b61c97a08ade22dac210b32104447ad5d069f +size 311029 diff --git a/Content/Character/Allium/BP_Allium.uasset b/Content/Character/Allium/BP_Allium.uasset index a4bd235..77208a8 100644 --- a/Content/Character/Allium/BP_Allium.uasset +++ b/Content/Character/Allium/BP_Allium.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f803534a39fc1b5e88658ff97b5d44a381f50ea8639d13c526fe2f4d63896221 -size 427940 +oid sha256:4abe4c8244b4d339d5cf5a7780f3624cc0a93b7dea664bf28b9dd54149091ad1 +size 434066 diff --git a/Content/Character/Lb/BP_Lb.uasset b/Content/Character/Lb/BP_Lb.uasset index 741a864..ea54857 100644 --- a/Content/Character/Lb/BP_Lb.uasset +++ b/Content/Character/Lb/BP_Lb.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1b048c4e8e8151d2508f801618ac6498733710db325cb5a8369f247b3b89f7e6 -size 411075 +oid sha256:5f2710dba726be43ec6aa657b78e64c04994f74957e89cb0dfa2b06bec4bf1ea +size 411719 diff --git a/Content/Character/Lb/BaseArrow.uasset b/Content/Character/Lb/BaseArrow.uasset index e429625..63c659c 100644 --- a/Content/Character/Lb/BaseArrow.uasset +++ b/Content/Character/Lb/BaseArrow.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c3acb4ae3753750e1faaf13646b4fcc7614d6f4351c307f8ccb85479dc16ba48 -size 239209 +oid sha256:5757793046b6c9799196b88682251317dc987f7ec724d850a39a47976f200793 +size 275921 diff --git a/Content/Character/Lb/Effect/T_H_A.uasset b/Content/Character/Lb/Effect/T_H_A.uasset deleted file mode 100644 index 1d6473b..0000000 --- a/Content/Character/Lb/Effect/T_H_A.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b112ad2775a4b88fce326ca92c917862f929f7888d0deb0134df60e8b1483b97 -size 56472 diff --git a/Content/Character/Lb/Effect/T_H_E.uasset b/Content/Character/Lb/Effect/T_H_E.uasset deleted file mode 100644 index 7995a44..0000000 --- a/Content/Character/Lb/Effect/T_H_E.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ee28e8a893a9292ed773f1c1fe3b6a9faf16cd3da1509dbf59ac76959ae52f0 -size 130227 diff --git a/Content/Character/Lb/Effect/T_H_Q_Burn.uasset b/Content/Character/Lb/Effect/T_H_Q_Burn.uasset deleted file mode 100644 index dfce2e1..0000000 --- a/Content/Character/Lb/Effect/T_H_Q_Burn.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c5ca870e555af208475b59362c086b178302c0fbc86ad4588d4cdb1bbc0fd0fe -size 250968 diff --git a/Content/Character/Lb/Effect/T_H_Q_shoot.uasset b/Content/Character/Lb/Effect/T_H_Q_shoot.uasset deleted file mode 100644 index feebed9..0000000 --- a/Content/Character/Lb/Effect/T_H_Q_shoot.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a78638f20da7095eabd8f7affc624ff63503b2abb176bce7be99bbea850d1360 -size 116772 diff --git a/Content/Character/Lb/Effect/T_H_R_Boom.uasset b/Content/Character/Lb/Effect/T_H_R_Boom.uasset deleted file mode 100644 index 7635caf..0000000 --- a/Content/Character/Lb/Effect/T_H_R_Boom.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dfe895df99726e2428967738c5ab530b87af29bf7af5c35ef646692bae92bc1e -size 682182 diff --git a/Content/Character/Lb/Effect/T_H_R_Shoot.uasset b/Content/Character/Lb/Effect/T_H_R_Shoot.uasset deleted file mode 100644 index f113ebf..0000000 --- a/Content/Character/Lb/Effect/T_H_R_Shoot.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9cd74bf56b73dde55472eeab867dc85a18bfd621560675eaeed5f4e7ba84209f -size 537995 diff --git a/Content/Character/Lb/LB_BaseAttack.uasset b/Content/Character/Lb/LB_BaseAttack.uasset deleted file mode 100644 index 6ca241b..0000000 --- a/Content/Character/Lb/LB_BaseAttack.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d419f43da436ee05cb4260fa371e1563195511239ccd3d7eef3e4f2ddaf5bef6 -size 95714 diff --git a/Content/Character/Lb/LB_Q_Arrow.uasset b/Content/Character/Lb/LB_Q_Arrow.uasset index 78ac326..91dab59 100644 --- a/Content/Character/Lb/LB_Q_Arrow.uasset +++ b/Content/Character/Lb/LB_Q_Arrow.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:88036e86848fff2d6195e918b487cdc024dcf9c51fb8c84eb7403c4eb588d630 -size 170348 +oid sha256:b9b9ed770c2a0c5abd4c8bb707344a1131d18c831ff391d07f4dd4ed5de7753f +size 200239 diff --git a/Content/Character/Lb/sound/T_H_A.uasset b/Content/Character/Lb/sound/T_H_A.uasset deleted file mode 100644 index a49d832..0000000 --- a/Content/Character/Lb/sound/T_H_A.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5586f0c63780a6b61e3fc9f226ad95a4fcd321a71237313f89bd0ea0600bf5b5 -size 56514 diff --git a/Content/Character/Lb/sound/T_H_E.uasset b/Content/Character/Lb/sound/T_H_E.uasset deleted file mode 100644 index 28e5f19..0000000 --- a/Content/Character/Lb/sound/T_H_E.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f9935c56be74508dcc770bcc888f8b4b9c589a8d31762119528d81b02518e0c5 -size 130225 diff --git a/Content/Character/Lb/sound/T_H_Q_Burn.uasset b/Content/Character/Lb/sound/T_H_Q_Burn.uasset deleted file mode 100644 index 4d287c3..0000000 --- a/Content/Character/Lb/sound/T_H_Q_Burn.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9ff27ee63800abfd54cfc59f3309cefad0a652ef11e064e9d8e2882f76023f18 -size 251009 diff --git a/Content/Character/Lb/sound/T_H_Q_shoot.uasset b/Content/Character/Lb/sound/T_H_Q_shoot.uasset deleted file mode 100644 index e4dd6f4..0000000 --- a/Content/Character/Lb/sound/T_H_Q_shoot.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3160f0255d0f497da93468182a85f0f9241b97fc5de89231cdd0129b73055fbb -size 116814 diff --git a/Content/Character/Lb/sound/T_H_R_Boom.uasset b/Content/Character/Lb/sound/T_H_R_Boom.uasset deleted file mode 100644 index 1863d10..0000000 --- a/Content/Character/Lb/sound/T_H_R_Boom.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fd150f877afdcec824f5f8638dcbc506e4a93fa167a39e30274e6be26b10df37 -size 682224 diff --git a/Content/Character/Lb/sound/T_H_R_Shoot.uasset b/Content/Character/Lb/sound/T_H_R_Shoot.uasset deleted file mode 100644 index ed21d94..0000000 --- a/Content/Character/Lb/sound/T_H_R_Shoot.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:328e6cce6dd428f683b94eb9f527558b57851ae8e96842c78bbacb82c463e137 -size 537993 diff --git a/Content/Character/Monster/Knight/BP_Knignt.uasset b/Content/Character/Monster/Knight/BP_Knignt.uasset index f06ed4b..90b2e92 100644 --- a/Content/Character/Monster/Knight/BP_Knignt.uasset +++ b/Content/Character/Monster/Knight/BP_Knignt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e491fc22d201d812f36fa28d36709371273eec9a73d66d2bb86c5f1ce663d26 -size 25898 +oid sha256:8ac3ac5acab72816e3ac2450cb666ac21cb9600d115957dc41c3ed78c3985588 +size 25886 diff --git a/Content/Character/Riana/BP_Riana.uasset b/Content/Character/Riana/BP_Riana.uasset index 9f33c31..b997190 100644 --- a/Content/Character/Riana/BP_Riana.uasset +++ b/Content/Character/Riana/BP_Riana.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ec58f28eba10b40515b006ddc6d28020ebd92ef641f13d6f6624b42356d58532 -size 36945 +oid sha256:56c4599656ef2992ff3e59d26adfd38bdce53ddded397b7671a4cdf4726f10c4 +size 37446 diff --git a/Content/Effect/AliumQ/Knife1.uasset b/Content/Effect/AliumQ/Knife1.uasset deleted file mode 100644 index cd7de68..0000000 --- a/Content/Effect/AliumQ/Knife1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:61e889e853480031a870a8627a4d6c4de77a541dda93b39aae022befbd2801db -size 295484 diff --git a/Content/Effect/CC.uasset b/Content/Effect/CC.uasset deleted file mode 100644 index b034c8b..0000000 --- a/Content/Effect/CC.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e1f53ef1caf6952425675f5a542af654a8f61eb5aba7c18da678c6799a74fec -size 73954 diff --git a/Content/Effect/ETC/Hit_Nomal.uasset b/Content/Effect/ETC/Hit_Nomal.uasset index a3d3e40..a193a3c 100644 --- a/Content/Effect/ETC/Hit_Nomal.uasset +++ b/Content/Effect/ETC/Hit_Nomal.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:377e657ed78b7e160b2ef5584f567fd59aafebc13ce03474b7fab674a7daf0f1 -size 23009 +oid sha256:bfa84589c2b268acfda8e0113a8974c1b3f2df9699b5637ead1d7767b6280939 +size 23415 diff --git a/Content/Effect/LB/Sound/T_H_W.uasset b/Content/Effect/LB/Sound/T_H_W.uasset deleted file mode 100644 index 4508c04..0000000 --- a/Content/Effect/LB/Sound/T_H_W.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4526c62252ea1d87451fc4bccbf76e31ea7800768b9ea27b0d02b2d953b42a6e -size 508580 diff --git a/Content/Effect/dust.uasset b/Content/Effect/dust.uasset deleted file mode 100644 index 72b4cf0..0000000 --- a/Content/Effect/dust.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce231ed8a4ee66c55e32527d3b35b9c75e7617f1d349a9ad72737b33ea36c99d -size 47039 diff --git a/Content/Effect/particle_test/Content/Cursor/Untitled-1.uasset b/Content/Effect/particle_test/Content/Cursor/Untitled-1.uasset deleted file mode 100644 index cd1b268..0000000 --- a/Content/Effect/particle_test/Content/Cursor/Untitled-1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4c0951bf44434b34a1dffd0b79d0488f54814bbb2bb8fc98c461e2711964807a -size 18543 diff --git a/Content/Effect/tnt.uasset b/Content/Effect/tnt.uasset deleted file mode 100644 index 08fabdb..0000000 --- a/Content/Effect/tnt.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f509cf5e1734fb8eb06305bf48506f5e7ee993ce3663071c57c1cf3294081777 -size 20120 diff --git a/Content/Maps/DevMap.umap b/Content/Maps/DevMap.umap index 2acd716..3aa4eb0 100644 --- a/Content/Maps/DevMap.umap +++ b/Content/Maps/DevMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b191642ee0361ce3ac071af00afe325979ec480ca17a8dbcb7295cf58138169 -size 179728 +oid sha256:9d3f1fd3ead967bc9e5d347e9c43f478c8d17749652ed17386f041ee55025ca6 +size 180534 diff --git a/Source/Promether/DamageType/HomingAttack.cpp b/Source/Promether/DamageType/HomingAttack.cpp index cf70434..e089a66 100644 --- a/Source/Promether/DamageType/HomingAttack.cpp +++ b/Source/Promether/DamageType/HomingAttack.cpp @@ -12,11 +12,11 @@ AHomingAttack::AHomingAttack() // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. PrimaryActorTick.bCanEverTick = true; ProjectileMovement = CreateDefaultSubobject(TEXT("ProjectileMovement")); - ProjectileMovement->InitialSpeed = 200; - ProjectileMovement->MaxSpeed = 200; + ProjectileMovement->InitialSpeed = 0; + ProjectileMovement->MaxSpeed = 1000; ProjectileMovement->ProjectileGravityScale = 0; ProjectileMovement->bIsHomingProjectile = true; - ProjectileMovement->HomingAccelerationMagnitude = 200; + ProjectileMovement->HomingAccelerationMagnitude = 10000; ProjectileMovement->Velocity = { 0, 0, 0 }; ProjectileMovement->bRotationFollowsVelocity = true; } @@ -31,6 +31,7 @@ void AHomingAttack::BeginPlay() if (!State->GetCurrentAttackTarget()) { UE_LOG(LogTemp, Error, TEXT("No Target")); + Destroy(); return; } diff --git a/Source/Promether/GameModeBase/Deathmatch.cpp b/Source/Promether/GameModeBase/Deathmatch.cpp index 8c6ea7e..db8175f 100644 --- a/Source/Promether/GameModeBase/Deathmatch.cpp +++ b/Source/Promether/GameModeBase/Deathmatch.cpp @@ -133,7 +133,7 @@ FString ADeathmatch::InitNewPlayer(APlayerController* NewPlayerController, const //DebugPerpose if (Type == CharacterType::Lukriel) { - Type = CharacterType::Allium; + Type = CharacterType::Lb; } if (Team == TeamType::Null) {