[/Script/Silla.SLGameModeBase] //Silla 를 사용하는 클래스를 지정
StartEpisode=-1 //값을 지정.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "SLGameModeBase.generated.h"
UCLASS(**config = Silla**) //config를 사용할 클래스를 지정.
class SILLA_API ASLGameModeBase : public AGameModeBase
{
GENERATED_BODY()
public:
ASLGameModeBase();
virtual void RestartPlayer(AController* NewPlayer);
virtual void StartPlay() override;
public:
UPROPERTY(**config**, BlueprintReadOnly)
int32 **StartEpisode** = -1;
};
#include "SLGameModeBase.h"
#include "Manager/SLUIManager.h"
#include "Manager/SLQuestManager.h"
#include "Manager/SLCheatManager.h"
ASLGameModeBase::ASLGameModeBase()
{
}
void ASLGameModeBase::RestartPlayer(AController* NewPlayer)
{
Super::RestartPlayer(NewPlayer);
// 퀘스트 포인터 수집
if (USLQuestManager* QuestManager = USLQuestManager::GetInstance(this))
{
QuestManager->InitSaveQuestData();
}
// 위젯 테이블 데이터로 위젯 생성
if (USLUIManager* UIManager = USLUIManager::GetInstance(this))
{
UIManager->InitCraetWidgetsFromTable();
}
}
void ASLGameModeBase::StartPlay()
{
// [임시]시작시 애피소드 적용을 위해 위치 이동
switch (StartEpisode)
{
case 0: // 문무왕
USLCheatManager::MoveIndex(this, 11);
break;
case 1: // 진성여왕
USLCheatManager::MoveIndex(this, 12);
break;
case 2: // 천관녀와 김유신
USLCheatManager::MoveIndex(this, 13);
break;
case 3: // 축신
USLCheatManager::MoveIndex(this, 14);
break;
}
Super::StartPlay();
}
DefaultGame.ini
[Staging]
+DisallowedConfigFiles=Silla/Config/DefaultSilla.ini
Staging : 패킹할 때 포함할지 여부를 정해줌.