평타알고리즘 최종(반복 사이클만 설정하면 끝)
This commit is contained in:
BIN
Content/Character/BP_Folder/BP_DefaultPlayerCharacter.uasset
(Stored with Git LFS)
BIN
Content/Character/BP_Folder/BP_DefaultPlayerCharacter.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Character/Lb/Animation/Treasure_Attack1_Anim.uasset
(Stored with Git LFS)
BIN
Content/Character/Lb/Animation/Treasure_Attack1_Anim.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Character/Lb/BP_Lb.uasset
(Stored with Git LFS)
BIN
Content/Character/Lb/BP_Lb.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Maps/DevMap.umap
(Stored with Git LFS)
BIN
Content/Maps/DevMap.umap
(Stored with Git LFS)
Binary file not shown.
@@ -249,6 +249,7 @@ void ADefaultPlayerController::Skill1()
|
||||
if (!(GetPlayerState<ADefaultPlayerState>()->Stats[(uint8)EStats::Mana] >= GetPlayerState<ADefaultPlayerState>()->Stats[(uint8)EStats::Skill1Cost]))
|
||||
return;
|
||||
|
||||
ACharacter* HitObject = nullptr;
|
||||
FVector Location = GetPawn()->GetActorLocation();
|
||||
Location.Z = 0;
|
||||
|
||||
@@ -268,6 +269,7 @@ void ADefaultPlayerController::Skill2()
|
||||
if (!(GetPlayerState<ADefaultPlayerState>()->Stats[(uint8)EStats::Mana] >= GetPlayerState<ADefaultPlayerState>()->Stats[(uint8)EStats::Skill2Cost]))
|
||||
return;
|
||||
|
||||
ACharacter* HitObject = nullptr;
|
||||
FVector Location = GetPawn()->GetActorLocation();
|
||||
Location.Z = 0;
|
||||
|
||||
@@ -287,6 +289,7 @@ void ADefaultPlayerController::Skill3()
|
||||
if (!(GetPlayerState<ADefaultPlayerState>()->Stats[(uint8)EStats::Mana] >= GetPlayerState<ADefaultPlayerState>()->Stats[(uint8)EStats::Skill3Cost]))
|
||||
return;
|
||||
|
||||
ACharacter* HitObject = nullptr;
|
||||
FVector Location = GetPawn()->GetActorLocation();
|
||||
Location.Z = 0;
|
||||
|
||||
@@ -306,6 +309,7 @@ void ADefaultPlayerController::Skill4Triggered()
|
||||
if (!(GetPlayerState<ADefaultPlayerState>()->Stats[(uint8)EStats::Mana] >= GetPlayerState<ADefaultPlayerState>()->Stats[(uint8)EStats::Skill4Cost]))
|
||||
return;
|
||||
|
||||
ACharacter* HitObject = nullptr;
|
||||
FVector Location = GetPawn()->GetActorLocation();
|
||||
Location.Z = 0;
|
||||
|
||||
@@ -380,11 +384,12 @@ void ADefaultPlayerController::Move()
|
||||
ObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_Pawn));
|
||||
|
||||
GetHitResultUnderCursorForObjects(ObjectTypes, true, HitResult);
|
||||
ACharacter* HitObject = Cast<ACharacter>(HitResult.GetActor());
|
||||
ACharacter* HitObject = Cast<ACharacter>(HitResult.GetActor()); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HitCharactor<6F><72> <20><><EFBFBD><EFBFBD><<<3C><><EFBFBD><EFBFBD> <20><> ij<><C4B3><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><CFB6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
|
||||
|
||||
if (HitObject != nullptr)
|
||||
if (HitObject != nullptr) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> HitObject<63><74> null<6C><6C> <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD> Attack()<29><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>, HitObject<63><74> <20><> ij<><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
|
||||
{
|
||||
Attack(HitObject);
|
||||
|
||||
Attack(HitObject); //HitObject<63><74> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Attack <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -566,12 +571,12 @@ void ADefaultPlayerController::OnMoveCompleted(FAIRequestID RequestID, const FPa
|
||||
|
||||
void ADefaultPlayerController::Attack(ACharacter* HitObject)
|
||||
{
|
||||
//<2F>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
||||
float MinDistance = 1000.0f; // <20>ּ<EFBFBD> <20>Ÿ<EFBFBD>(<28>ӽ<EFBFBD> : <20><><EFBFBD>Ŀ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD> <20>ƿð<C6BF>)
|
||||
|
||||
float MinDistance = GetPlayerState<ADefaultPlayerState>()->Stats[(uint8)EStats:: AttackRange];
|
||||
FVector Destination = HitObject->GetActorLocation(); // HitObject<63><74> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
if (FVector::Dist(Destination, GetPawn()->GetActorLocation()) <= MinDistance)
|
||||
{
|
||||
if ((GetPlayerState<ADefaultPlayerState>()->CooldownDuration[(uint8)CooldownType::Attack] == 0))
|
||||
{
|
||||
FVector Location = GetPawn()->GetActorLocation();
|
||||
Location.Z = 0;
|
||||
@@ -587,10 +592,31 @@ void ADefaultPlayerController::Attack(ACharacter* HitObject)
|
||||
GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Attack);
|
||||
}
|
||||
else
|
||||
{
|
||||
FVector Location = GetPawn()->GetActorLocation();
|
||||
Location.Z = 0;
|
||||
|
||||
Server_StopMove();
|
||||
Multicast_StopMove();
|
||||
|
||||
Multicast_SetRotation(GetMouseHitLocation());
|
||||
Server_SetRotation(GetMouseHitLocation());
|
||||
|
||||
UE_LOG(LogTemp, Warning, TEXT("Attack"));
|
||||
GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Idle);
|
||||
GetPlayerState<ADefaultPlayerState>()->SetAttackType(CooldownType::Attack);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
GetPlayerState<ADefaultPlayerState>()->SetState(ECharacterState::Moving);
|
||||
SimpleMoveToLocation(this, Destination);
|
||||
|
||||
Destination = HitObject->GetActorLocation(); // HitObject<63><74> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
this->MoveToLocation(Destination);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user