분류 전체보기

    [UE5] json으로 레벨별 데미지 구현

    [UE5] json으로 레벨별 데미지 구현

    * 태그에 맞는 수정자값 설정- 태그추가struct FAuraGameplayTags{public: ... FGameplayTag Damage;void FAuraGameplayTags::InitializeNativeGameplayTags(){ ... GameplayTags.Damage = UGameplayTagsManager::Get().AddNativeGameplayTag( FName("Damage"), FString("Damage") );- 태그에맞는, 수정자설정void UAuraProjectileSpell::SpawnProjectile(const FVector& ProjectileTargetLocation){ ... //GE_Dama..

    [UE5] 데미지계산용 Meta 속성추가 // 데미지 계산하는 방법

    [UE5] 데미지계산용 Meta 속성추가 // 데미지 계산하는 방법

    * 데미지 계산하는 방법GE에서 직접계산하는게 아님meta속성, AS에 의해 아래 사항을 고려해서 최종데미지를 결정하고체력을 변화시키는 방식 * 현재 데미지 문제점 *  AS에 Meta속성추가, 구현서버에 복제할필요없이Local에서만 사용할거임UPROPERTY(BlueprintReadOnly, Category = "Meta Attributes") //복제안함FGameplayAttributeData IncomingDamage;ATTRIBUTE_ACCESSORS(UAuraAttributeSet, IncomingDamage);void UAuraAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data){ ... ..

    리트코드 3. 반복되는 문자가 없는 가장 긴 부분 문자열 c++ // 슬라이딩 윈도우

    리트코드 3. 반복되는 문자가 없는 가장 긴 부분 문자열 c++ // 슬라이딩 윈도우

    https://leetcode.com/problems/longest-substring-without-repeating-characters/description/* 의사코드1. map에 해당문자의 등장횟수기록2. 해당문자가 2회이상등장 -> 등장횟수가1이 될때까지 l을 우측으로 조정3. 모든 중복문자없는 부분문자열을 탐색하면서 그때의 최대값을 ret에 저장함* 전체코드class Solution {public: int lengthOfLongestSubstring(string s) { unordered_map m; //m[a]=2, a의 등장횟수가2임 int r=0,l=0,n=s.size(), ret=0; while(r1){ //2회이상인경우, 1회가되도록 조정해야함..

    리트코드 2. 두개의숫자추가 c++ // stoi 주의점, 노드 begin 저장방법, 두 링크드리스트 덧셈방법

    리트코드 2. 두개의숫자추가 c++ // stoi 주의점, 노드 begin 저장방법, 두 링크드리스트 덧셈방법

    https://leetcode.com/problems/add-two-numbers/description/ * stoi 주의점21억( 2,147,483,647 )== 문자열로 10자리만 벗어나도 out of range 가뜸-> stoll을 사용할것 ( 9,223,372,036,854,775,807)-한계 : 20자리이상은 불가능함.-> 숫자계산으로 구현해야함. 문자열꼼수 안통해 * 기존코드숫자를 문자열로 바꾸면서 덧셈하고해당 숫자를 다시 노드로 바꿈- 문제 : stoi 에서 stoll로 해도 ll의 범위도 벗어나버림/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * List..

    리트코드 57 삽입간격 c++ // 구현, 라인스위핑은 케이스 분류하라

    리트코드 57 삽입간격 c++ // 구현, 라인스위핑은 케이스 분류하라

    https://leetcode.com/problems/insert-interval/description/1. 의사코드이때, 핵심은 new를 탐색완료한것중 제일 우측의 간격으로 유지하는 점이다. 2. 전체코드class Solution {public: vector> insert(vector>& intervals, vector& newInterval) { vector> ret; //new에는 현재 탐색완료한 간격중 제일 우측의 간격이 들어있다. for(auto interval : intervals){ if(interval[1]시간복잡도 : O(N) 추정

    [UE5] 적타입에 대해 만든 엑셀(data) 적용

    [UE5] 적타입에 대해 만든 엑셀(data) 적용

    * DA를 어디에 저장?게임모드가 적절 : 모든캐릭터가 DA 필요한건 아님, DA 1개만 저장할수 있음class AURA_API AAuraGameModeBase : public AGameModeBase{ GENERATED_BODY()protected: virtual void BeginPlay() override; UPROPERTY(EditDefaultsOnly,Category="Character Class Defaults") TObjectPtr CharacterClassInfo; }; - 속성을 적용시키는 함수구현클래스 정보가져와서 DA 가져와서각 캐릭터클래스(전사,원소술사, 레인저)에 맞는 주요,보조, vital 속성을 적용시킴void UAuraAbilitySystemLibr..

    [UE5] RPG 캐릭터 종류 설계, 레벨별 속성값 설정

    [UE5] RPG 캐릭터 종류 설계, 레벨별 속성값 설정

    * 캐릭정보 DA 만들기설계에 맞춰 구현// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Engine/DataAsset.h"#include "CharacterClassInfo.generated.h"class UGameplayEffect;UENUM(BlueprintType) enum class ECharacterClass : uint8 //캐릭구분용{ Elementalist, //0 Warrior, //1 Ranger //2};USTRUCT(BlueprintType)struct FCharacterClassDefaultIn..