10#include "Net/UnrealNetwork.h"
11#include "GameFramework/PlayerState.h"
12#include "Engine/World.h"
20 bAlwaysRelevant =
true;
23 PrimaryActorTick.bCanEverTick =
false;
32 Super::GetLifetimeReplicatedProps(OutLifetimeProps);
53 if (!HasAuthority() || !Player)
80void ASpeakStageActor::Multicast_NotifySpeakQuestStarted_Implementation(
const FString& PlayerName)
92 if (!HasAuthority() || !Player)
107 return PS->SpeakScenarioData.speak_quest_data.Num();
121 return PS->SpeakScenarioData.speak_quest_data[
CurrentStepIndex].GetQuestionMessage();
130 return PS->SpeakScenarioData.speak_quest_data.Num();
173 PS->SetSpeakQuestCompleted();
179 PC->Client_EndSpeakQuest();
193 if ( PlayerState ==
nullptr)
Declares the player-controlled character actor.
APlayerControl 선언에 대한 Doxygen 주석을 제공합니다.
YiSan 전반에서 사용하는 공용 인터페이스를 선언합니다.
#define PRINTLOG(fmt,...)
UDialogManager 클래스를 선언합니다.
int32 GetTotalQuestions() const
int32 GetTotalQuestionsCount()
bool IsMyTurn(class ALingoPlayerState *lingo_player_state)
void NotifyAnswerComplete(class ALingoPlayerState *Player)
플레이어 답변 완료 알림 (Server에서 호출됨)
int32 CurrentStepIndex
현재 진행 단계 (질문 인덱스)
virtual void GetLifetimeReplicatedProps(TArray< FLifetimeProperty > &OutLifetimeProps) const override
Replication 설정
void Multicast_NotifySpeakQuestStarted(const FString &PlayerName)
모든 클라이언트에게 SpeakQuest 시작 알림 전송 (Multicast RPC)
void EndStage()
현재 플레이어의 스테이지를 강제로 종료합니다.
void AdvanceStep()
다음 질문으로 진행합니다.
FString GetCurrentQuestion() const
FOnSpeakerChangedDelegate OnSpeakerChanged
현재 발화자가 변경될 때 호출되는 이벤트입니다.
void OnRep_CurrentSpeaker()
currentSpeaker 복제 알림
void StartStageForPlayer(class ALingoPlayerState *Player)
특정 플레이어에 대해 Speak Stage를 시작합니다.
TObjectPtr< class ALingoPlayerState > CurrentSpeaker
현재 발화 권한을 가진 플레이어. nullptr이면 스테이지가 비어있음을 의미.
static FString GetPlayerNameFromState(const class ALingoPlayerState *PlayerState)
PlayerState에서 PlayerControl을 통해 사용자 이름 가져오기