UDN
Search public documentation:
GametypeTechnicalGuideKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UE3 홈 > 게임플레이 프로그래밍 > 게임타입 테크니컬 가이드
게임타입 테크니컬 가이드
문서 변경내역: Jeff Wilson 작성. 홍성진 번역.
개요
GameInfo 클래스
GameInfo
클래스는 언리얼의 모든 게임타입에 대한 베이스 클래스입니다. 맵이 로드될 때마다 적합한 GameInfo
클래스의 인스턴스가 새로 생성되어 게임타입으로 할당됩니다. 특정 레벨에 대한 게임타입이 어떻게 설정되는지에 대한 세부 정보는 게임 수명주기 부분을 참고하시기 바랍니다.
GameInfo 프로퍼티
Arbitration 중재- bUsingArbitration 중재 사용? - 참이면 게임은 중재를 사용합니다.
- bHasArbitratedHandshakeBegun 중재 핸드셰이크 시작됨? - 참이면 중재 핸드셰이크가 발생한 것입니다. 핸드셰이크가 시작되면 새 연결은 거부됩니다.
- bNeedsEndGameHandshake 게임끝 핸드셰이크 필요? - 참이면 게임 종료시 핸드셰이크를 수행해야 합니다.
- bHasEndGameHandshakeBegun 게임끝 핸드셰이크 시작됨? - 참이면 게임끝 핸드셰이크가 시작된 것입니다.
- bIsEndGameHandshakeComplete 게임끝 핸드세이크 완료됨? - 참이면 게임끝 핸드셰이크가 완료된 것입니다.
- ArbitrationHandshakeTimeout 중재 핸드셰이크 타임아웃 - 전역설정. 클라이언트가 중재 핸드셰이킹을 하기 위한 기한으로, 지나면 추방됩니다.
- PendingArbitrationPCs 계류중인 중재 PC - 게임이 핸드셰이크를 수행할 대상으로써 대기중인
PlayerControllers
배열입니다. - ArbitrationPCs 중재 PC - 게임이 핸드셰이크를 수행한
PlayerControllers
배열로, 온라인 서브시스템으로 쓰여진 중재 데이터의 마무리를 요청합니다.
- [Min/Max]TimeMargin [최소/최대] 시간 한도 - 클라이언트 시간이 서버 시간에서 이 정도 전/후에 있다면 스피드 핵 검출이 발동되지 않습니다.
- TimeMarginSlack 시간 한도 휴지기 - 클라이언트 시간이 서버 시간과 다를 때 이 정도의 휴지기를 가진 후에 스피드 핵 검출이 발동됩니다.
- bIsStandbyCheckingEnabled 스탠바이 검사 켜짐? - 참이면 게임은 스탠바이 치트 검사를 수행합니다.
- bIsStandbyCheckingOn 스탠바이 검사중? - 참이면 스탠바이 치트 검사중입니다.
- bHasStandbyCheatTriggered 스탠바이 치트 발동됨? - 참이면 스탠바이 치트가 검출된 것입니다.
- Standby[Rx/Tx]CheatTime 스탠바이 [Rx/Tx] 치트 시간 - 치트 코드 발동 전에 패킷/승인을 받지 않는 기간.
- BadPingThreshold 악성 핑 한계 - 이보다 핑이 높으면 지연 패킷 또는 전송 연결이 악성인 서버로 간주합니다.
- PercentMissingFor[Rx/Tx]Standby [Rx/Tx] 스탠바이용 분실 퍼센트 - 분실 패킷/승인 데이터가 되도록 허용된 클라이언트의 퍼센트로, 넘어가면 스탠바이 코드가 발동됩니다.
- PercentForBadPing 악성 핑용 퍼센트 - 악성 핑 값에 허용된 클라이언트의 퍼센트로, 넘어가면 스탠파이 코드가 발동됩니다.
- JoinInProgressStandbyWaitTime 참가절차중 대기 시간 - 스탠바이 문제에 대한 연결을 검사하기까지 대기할 기간입니다.
- PlayerControllerClass - 게임타입에 새 플레이어가 로그인했을 때 사용할
PlayerController
클래스입니다. - DefaultPawnClass - 게임타입에 새 플레이어가 로그인했을 때 사용할
Pawn
클래스입니다. - HUDType - 게임타입에 HUD 용으로 사용할
HUD
클래스입니다. - PlayerReplicationInfoClass - 게임타입에 새 플레이어가 로그인했을 때 사용할
PlayerReplicationInfo
클래스입니다. - GameReplicationInfoClass - 게임타입에 사용할
GameReplicationInfo
클래스입니다. - OnlineSub - 게임타입이 사용할
OnlinSubsystem
인스턴스로, 플랫폼 레이어의 서비스와 통신할 때 사용합니다. - GameInterface - 온라인 게임을 만들고 검색하고 없앨 때 게임타입이 사용하는
OnlineGameInterface
인스턴스입니다. - OnlineStatsWriteClass - 클라이언트로 전송하기 위해 그 상태를 생성하고 담기 위해 사용할
OnlineStatsWrite
클래스입니다. - OnlineGameSettingsClass - 온라인 서비스로 전용 서버를 등록할 때 사용할
OnlineGameSettings
클래스입니다. - DeathMessageClass - 플레이어가 죽을 때 메시지를 표시하는 데 사용할
LocalMessage
클래스입니다. - GameMessageClass - 게임플레이 이벤트 관련 메시지 표시에 사용할
GameMessage
클래스입니다. - AccessControlClass - 게임타입에 사용할
AccessControl
클래스입니다. - AccessControl - 플레이어가 게임에 들어가고/거나 관리자가 될 수 있을지를 제어하는
AccessControl
인스턴스입니다. - BroadcastHandlerClass - 게임타입에 사용할
BroadcastHandler
클래스입니다. - BroadcastHandler - 게임타입에 메시지 표시용으로 사용할
BroadcastHandler
인스턴스입니다. - AutoTestManagerClass - 게임타입에 사용할
AutoTestManager
클래스입니다. - MyAutoTestManager - 자동화 테스팅 관리에 사용할
AutoTestManager
인스턴스입니다. 명령줄을 통해 요청되었을 때만 존재합니다.
- bRestartLevel 레벨 재시작? - 참이면 플레이어가 죽을때 레벨을 재시작해야 합니다.
- bTeamGame 팀 게임? - 참이면 게임이 팀 게임으로, 즉 플레이어가 둘 이상의 팀으로 나뉘어 있음을 뜻합니다. 베이스
GameInfo
내에 팀을 만들기 위한 로직이 내장되어 있지는 않습니다. 단지 게임에 팀이 있음을 나타낼 뿐입니다. - bGameEnded 게임 종료됨? - 참이면 게임 종료 조건이 만족된 것입니다.
EndGame()
에 의해 설정됩니다. - bOverTime 오버 타임? - 참이면 게임이 오버타임 중입니다.
EndGame()
가 호출은 되었으나 일부 조건이 충족되지 않아서CheckEndGame()
이 거짓을 반환할 때 발생하는 경우입니다. - bDelayedStart 지연 시작? - 참이면 플레이어가 참가하는 즉시 게임이 시작되지 않습니다.
- bWaitingToStartMatch 경기 시작 대기? - 게임이
PendingMatch
상태이면, 게임 시작 대기중이면 참입니다. - bChangeLevels 레벨 변경? - GLOBALCONFIG. 참이면 게임이 재시작될 때 새 맵이 로딩됩니다.
- bAlreadyChanged 이미 변경됨? -
bChangeLevels=TRUE
이고 게임이 재시작될 때 새 맵의 로딩 프로세스가 시작되면 참입니다. - bGameRestarted 게임 재시작됨? - 게임이 재시작되면 참입니다.
- bLevelChange 레벨 변경? - 레벨 변천이 (
ProcessServerTravel()
를 통해) 진행중이면 참입니다. - GameDifficulty 게임 난이도 - GLOBALCONFIG. 게임의 난이도 변경자입니다. 극히 게임-전용이므로 이 것의 적용은 서브클래스에서 해야 합니다.
- GoreLevel 고어 레벨 - GLOBALCONFIG. 표시할 고어의 양입니다. 값이
0
이면 보통의 고어 양이며, 값이 커지면 줄어듭니다. - GameSpeed 게임 속도 - 게임 시간용 스케일 인수입니다.
WorldInfo.TimeDilation
를 설정하는 데 사용됩니다. - MaxSpectators 최대 관람자 - GLOBALCONFIG. 서버으 게임타입에 허용되는 최대 플레이어 수입니다.
- MaxSpectatorsAllowed 최대 허용 관람자 - 게임타입에 허용되는 관람자의 최대 수입니다.
MaxSpectators
는 환경설정에서 설정되어 변경될 수 있기에 상식적인 값으로 제한하기 위해 사용됩니다. - NumSpectators 관람자 수 - 게임에 현재 있는 관람자 수입니다.
- MaxPlayers 최대 플레이어 - GLOBALCONFIG. 서버의 게임타입에 허용되는 최대 플레이어 수입니다.
- MaxPlayersAllowed 최대 허용 플레이어 - 게임타입에 허용되는 최대 플레이어 수입니다.
MaxPlayers
는 환경설정에서 설정되어 변경될 수 있기에 상식적인 값으로 제한하기 위해 사용됩니다. - NumPlayers 플레이어 수 - 게임에 현재 인간이 제어하는 플레이어 수입니다.
- NumBots 봇 수 - 게임에 현재 AI가 제어하는 플레이어의 수입니다.
- NumTravellingPlayers 이동중인 플레이어 수 - 예전 맵에서 아직도 이동중인 플레이어의 수입니다.
- CurrentID 현재 ID -
PlayerID
를 생성하면서 각PlayerReplicationInfo
에다 고유PlayerID
를 할당하기 위해 사용되는 현재 ID 입니다. - DefaultPlayerName 디폴트 플레이어 이름 - 현지화됨. 게임타입에 대한 플레이어에 이름을 할당할 때 사용할 디폴트 이름 접두사입니다.
- GameName 게임 이름 - 현지화됨. 게임타입에 표시할 이름입니다.
- FearCostFalloff FearCost 감쇠 -
bDoFearCostFalloff=true
일 때,NavigationPoints
에 대한FearCost
를 시간에 따라 얼마나 빨리 감쇠시킬지를 결정합니다. - bDoFearCostFalloff FeatCost 감쇠시킬지? - 참이면
NavigationPoints
에 대한FearCost
가 시간에 따라 감쇠됩니다. - GoalScore 목표 점수 - 플레이어가 경기를 끝내기 위해 필요한 "점수"입니다. 많은 게임에서 일종의 점수같은 것을 기록하여 일정한 점수를 획득하면 게임을 종료시키기는 하지만, 점수란 임의적인 개념입니다.
- MaxLives 최대 생명 - 플레이어에게 매치당 허용된 최대 생명 횟수입니다.
- TimeLimit 시간 제한 - 단일 매치에 허용된 기간입니다.
- GameInfoClassAliases GameInfo 클래스 별칭 - 게임타입에 대한 짧은 이름을 풀 클래스명으로 매핑시키는
GameClassShortName
구조체의 배열입니다. - DefaultGameType 디폴트 게임타입 - CONFIG. 별달리 (게임타입 클래스로의 전체 경로를 지정하는 문자열 형태로) 지정된 게임타입이 없을 때 사용할 기본 게임타입입니다.
- DefaultMapPrefixes 디폴트 맵 접두사 - CONFIG. 레벨 이름의 접두사를 특정 게임타입에 매핑시키는
GameTypePrefix
구조체 배열입니다. 지정된 게임타입이 없을 때 사용할 게임타입을 정하는 데 사용됩니다.DefaultGameType
을 덮어씁니다. 자세한 것은 게임타입 접두사 부분 참고. - CustomMapPrefixes 커스텀 맵 접두사 - CONFIG. 레벨 이름의 접두사를 특정 게임타입에 매핑시키는
GameTypePrefix
구조체의 배열입니다. 지정된 게임타입이 없을 때 사용할 게임타입을 정하는 데 사용됩니다.DefaultGameType
을 덮어씁니다. 자세한 것은 게임타입 접두사 부분을 확인하시기 바랍니다. - bRequiresPushToTalk 푸시-투-토크 필요? - 참이면 이 게임타입은 푸시-투-토크 상태로 음성 통신됩니다. 아니면 음성 통신은 항상 열려 있습니다.
- BaseMutator 베이스 뮤테이터 - 게임타입에 적용된 첫
Mutator
로의 참조입니다.
- InactivePRIArray 비활성PRI 배열 - 게임을 떠난 플레이어의
PlayerReplicationInfos
배열입니다. 그 플레이어가 재접속할 때를 대비해 저장됩니다. - bKickLiveIdlers 살아있는 빈둥쟁이 추방? - GLOBALCONFIG. 참이면
Pawn
을 가진PlayerControllers
가 빈둥거리면(idle) 게임에서 추방될 수 있습니다. - MaxIdleTime 최대 빈둥 시간 - 이 기간 이상으로 빈둥거린 플레이어를 추방할 수 있습니다.
- LeaderboarId 리더보드 ID - 스킬/점수용 통계를 쓸 리더보드의 ID입니다.
- ArbitratedLeaderBoardId 중재된 리더보드 ID - 스킬/점수용 통계를 쓸 중재된 리더보드의 ID입니다.
- bUseSeamlessTravel 심리스 트래블 사용? - 참이면 백그라운드로 로드하고 클라이언트의 접속을 끊지 않는
SeamlessTravel()
을 사용하여 맵 이동을 처리합니다. - CoverReplicatorBase 커버 리플리케이터 베이스 - 전용 서버가 등록을 시작할 때 적용할 URL 옵션 문자열입니다.
- bHasNetworkError 네트워크 에러 있는지? - 서버의 맵 이동을 방해하는 치명적인 네트워크 에러가 발생하면 참입니다.
- ServerOptions 서버 옵션 - 전용 서버가 등록을 시작할 때 적용할 URL 옵션 문자열입니다.
- AdjustNetSpeed 넷 속도 조절 - 리슨 서버용 넷 속도를 동적으로 관리하기 위해 현재 사용하는 조절된 넷 속도입니다.
- LastNetSpeedUpdateTime 지난 넷 속도 업데이트 시간 - 클라이언트가 들어오거나 나가서 지난 번 서버에 대한 넷 속도가 업데이트된 시간입니다.
- TotalNetBandwidth 총 넷 대역폭 - GLOBALCONFIG. 리슨 서버에 사용가능한 대역폭의 총량으로, 넷 연결마다 동적으로 분할됩니다.
- [Min/Max]DynamicBandwidth [최소/최대] 동적 대역폭 - 연결마다 동적으로 설정되는 최소/최대 대역폭 량입니다.
- bPauseable 일시정지 가능? - 참이면 온라인 플레이시 플레이어가 게임을 일시정지시킬 수 있습니다. 1인용 게임일 때는 언제든지 멈출 수 있습니다.
- bAdminCanPause 관리자가 일시정지 가능? - 참이면 온라인 플레이시 관리자가 게임을 일시정지시킬 수 있습니다.
- Pausers - 게임을 재개시킬 수 있는지 결정하기 위해
ClearPause()
내에서 검사되는 delegate 배열입니다.
- bFixedPlayerStart 플레이어 시작점 고정? - 참이면 게임은 프로파일링 일관성을 위해 동일한 스폰 지점을 사용합니다.
GameInfo
에는 그런 함수성이 없습니다. 서브클래스에서 스폰 지점을 선택하는 로직에 추가되어야 합니다. - CauseEventCommand 이벤트 명령 유발 - 맵 URL 로 게임에 전달된 콘솔 이벤트를 담습니다. 보통 자동 비행 시작 등 테스팅에 사용됩니다.
GameInfo
에는 이 명령을 실행시키는 함수성이 없습니다. 서브클래스에 추가되어야 합니다. - BugLocString Bug 위치 문자열 - 맵 URL 로 게임에 전달된 BugIt 위치 문자열을 담습니다.
- BugRotString Bug 회전 문자열 - 맵 URL 로 게임에 전달된 BugIt 회전 문자열을 담습니다.
GameInfo 함수
Game 게임- OnEngineHasLoaded 엔진 로드 완료시 - 시동시 엔진이 로드될 때 네이티브 코드에서 호출되는 이벤트입니다. 새 맵(에 따른 게임타입)이 로드될 때마다가 아닌 , 게임이 처음 시작될 때만 딱 한 번 호출됩니다.
- GetSupportedGameTypes [InFilename] [OutGameType] [bCheckExt] 지원 게임타입 구하기 - 주어진 맵 이름에 대한
GameTypePrefix
구조체를 구합니다. 자세한 것은 게임타입 접두사 부분 참고- InFilename - 게임타입을 구할 맵 이름입니다.
- OutGameType - Out. 주어진 맵에 연결된
GameTypePrefix
구조체를 출력합니다. - bCheckExt - 옵션. 참이면 맵 이름 파일 확장자를 검사하여 사용가능한 맵 파일인지 확인합니다.
- GetMapCommonPackageName [InFilename] [OutCommonPackageName] 맵 공용 패키지 이름 구하기 - 주어진 맵 파일명에 대해 (있다면) 공용 패키지의 이름을 구합니다. 있으면 참을 반환합니다. 맵에 대한
GameTypePrefix
가 없거나GameTypePrefix
가 공용 패키지를 사용하지 않는다면 거짓을 반환합니다. 자세한 것은 공용 패키지 부분 참고.- InFilename - 공용 패키지 이름을 구할 맵 이름입니다.
- OutCommonPackageName - Out. 공용 패키지의 이름을 출력합니다.
- GetDefaultGameClassPath [MapName] [Options] [Portal] 디폴트 게임 클래스 경로 구하기 - 지정된 맵과 옵션에 사용할 최적
GameInfo
클래스로의 전체 경로를 반환합니다. 쿠킹된 패키지 등을 미리 로드하는 데 사용되므로 예비를 포함할 필요가 없습니다. 나중에SetGameType()
가 희망 클래스를 실제로 찾아/로드하기 위해 호출될 것이기 때문입니다.- MapName - 디폴트 게임타입을 구할 맵 이름입니다.
- Options - 있다면 맵에 대한 URL 에서의 옵션 문자열입니다.
- Portal - 있다면 플레이어를 보낼 목적지 포탈 이름입니다.
- SetGameType [MapName] [Options] [Portal] 게임타입 설정 - 지정된 맵과 지정된 옵션으로 게임에 스폰시킬 GameInfo 클래스를 반환합니다. 이 함수는 바라는 클래스를 찾을 수 없는 경우의 예비를 포함해야 합니다.
- MapName - 게임타입을 구할 맵 이름입니다.
- Options - 있다면 맵에 대한 URL 에서의 옵션 문자열입니다.
- Portal - 있다면 플레이어를 보낼 목적지 포탈 이름입니다.
- InitGame [Options] [ErrorMessage] 게임 초기화 - 파라미터 초기화 및 게임타입에 대한 헬퍼 클래스 스폰을 위해 다른 스크립트 실행 전 엔진에 의해 호출됩니다.
- Options - 있다면 맵에 대한 URL 에서의 옵션 문자열입니다.
- ErrorMessage - Out. 게임타입 초기화 도중 발생한 에러 메시지를 출력합니다.
- StartMatch 경기 시작 - 모든 액터에 경기가 시작되고 있고 플레이어에 대한
Pawn
을 스폰한다 알립니다. - Reset 리셋 - 게임타입을 초기 상태로 리셋시킵니다. 다른 모든
Actor
가 리셋된 이후 호출됩니다. - ShouldReset [ActorToReset] 리셋해야할지 - 주어진
Actor
가 리셋 가능한지를 결정합니다. 주어진Actor
가 게임 재시작 도중 거기서Reset()
을 호출하게 해야하면 참을 반환하고,GameInfo
가 수동으로 리셋하거나 액터에 리셋이 필요없는 경우 거짓을 반환합니다.- ActorToReset - 리셋시킬
Actor
입니다.
- ActorToReset - 리셋시킬
- ResetLevel 레벨 리셋 - 모든
Controller
, 다음엔 모든Actor
, 다음엔GameInfo
에서Reset()
을 호출하여 레벨을 리셋합니다. - RestartGame 게임 재시작 -
bChangeLevels=TRUE
인 경우 맵을 바꾸거나 현재 맵을 다시 로드하여 게임을 재시작합니다. - EndGame [Winner] [Reason] - 게임 종료 처리를 수행합니다. 게임 조건이 충족되었을 때 호출되어야 합니다.
- Winner - 게임을 이긴 플레이어의
PlayerReplicationInfo
입니다. - Reason - 게임이 종료되는 이유를 나타내는
String
입니다. 예를 들어 "TimeLimit", "LastMan", "DungeonComplete" 등입니다.
- Winner - 게임을 이긴 플레이어의
- CheckEndGame [Winner] [Reason] 게임 종료 검사 - 주어진 이유에 따라 게임을 정말 끝내야 할지 검사하기 위해
EndGame()
에서 호출됩니다. 부가 게임-전용 변경을 위해서는 서브클래스에서 이를 덮어써야 합니다.- Winner - 게임을 이긴 플레이어의
PlayerReplicationInfo
입니다. - Reason - 게임이 종료되는 이유를 나타내는
String
입니다. 예를 들어 "TimeLimit", "LastMan", "DungeonComplete" 등입니다.
- Winner - 게임을 이긴 플레이어의
- CheckModifiedEndGame [Winner] [Reason] 변경된 게임 종료 검사 - 게임 종료 조건의 변경 허용을 위해
CheckEndGame()
에서 호출됩니다. 디폴트로 모든Mutator
에서CheckEndGame()
을 호출합니다.- Winner - 게임을 이긴 플레이어의
PlayerReplicationInfo
입니다. - Reason - 게임이 종료되는 이유를 나타내는
String
입니다. 예를 들어 "TimeLimit", "LastMan", "DungeonComplete" 등입니다.
- Winner - 게임을 이긴 플레이어의
- PerformEndGameHandling 게임 종료 처리 수행 - 온라인 플레이어에 대한 게임 종료 처리를 수행합니다.
- GameEnding 게임 종료중 - 게임타입에 게임이 종료중이라 알리고자 엔진에 의해 호출됩니다. 즉 어플리케이션 종료중이거나 새 맵 로딩중이란 뜻입니다.
- PreExit 종료전 - 엔진이 종료중임을 게임에 알리고자 엔진에 의해 호출됩니다.
- MatchIsInProgress 경기 진행중인지 - 경기가 현재 진행중인지를 반환합니다.
- GameEventsPoll 게임 이벤트 투표 - 주기적으로 커스텀 게임 로깅용 통계 코드의 도입점으로 활용되는 함수 토막입니다. 로깅이 시작될 때
GameplayeStatsWriter
의Poll()
타이머에 의해 주기적으로 호출됩니다. 커스텀 통계 로깅을 추가하려면 서브클래스에서 이를 덮어써야 합니다. - EndLogging [Reason] 로깅 종료 - 통계 로깅 중지용 함수 토막입니다. 통계 로깅 중지를 위한 로직을 추가하려면 서브클래스에서 이를 덮어써야 합니다.
- Reason - 로깅을 종료하기 위한 이유를 나타내는
String
입니다.
- Reason - 로깅을 종료하기 위한 이유를 나타내는
- ProcessServerTravel [URL] [bAbsolute] 서버 이동 처리 - 서버를 새 레벨로 점프시키는 작업을 처리합니다.
- URL - 이동할 맵의
URL
입니다. - bAbsolute - 참이면 절대 이동이, 거짓이면 상대 이동이 사용됩니다.
- URL - 이동할 맵의
- ProcessClientTravel [URL] [NextMapGuid] [bSeamless] [bAbsolute] 클라이언트 이동 처리 - 모든 라이언트에게 지정된 URL 로 이동하라고 알립니다.
- URL - 이동할 맵의
URL
입니다. - NextMapGuid - 다음 맵 서버 버전의 GUID 입니다.
- bSeamless - 참이면 심리스 이동이 사용됩니다.
- bAbsolute - 참이면 절대 이동이, 거짓이면 상대 이동이 사용됩니다.
- URL - 이동할 맵의
- SendPlayer [aPlayer] [URL] - 플레이어를 주어진 URL 로 보냅니다.
- aPlayer - 새로운
URL
로 보낼 플레이어의PlayerController
입니다. - URL - 이동할 맵의
URL
입니다.
- aPlayer - 새로운
- GetNextMap - 플레이어들이 다음 게임 용으로 이동해야 할 맵을 반환하는 함수 토막입니다. 게임에 맵 사이클이 있어야 하면 서브클래스에서 이를 덮어써야 합니다.
- GetTravelType - 어떤 유형의 이동을 사용해야할 지 결정합니다. 절대 이동은 참, 상대 이동은 거짓을 반환합니다.
- PreCommitMapChange [PreviousMapName] [NextMapName] -
CommitMapChange()
로 기존 레벨을 언로드하기 전에 엔진에 의해 호출되는 이벤트 토막입니다.- PreviousMapName - 언로드할 맵 이름입니다.
- NextMapName - 로드되고 있는 맵 이름입니다.
- PostCommitMapChange 맵 변경 승인 이후 -
CommitMapChange()
로 기존 레벨 언로드 및 새 레벨 로드 이후 엔진에 의해 호출되는 이벤트 토막입니다. - GetSeamlessTravelActorList [bToEntry] [ActorList] 심리스 이동 액터 목록 구하기 - 심리스 레벨 전환 도중 새 레벨 속으로 옮겨야 하는 액터 목록을 구하기 위해 서버상의 엔진에 의해 호출됩니다.
PlayerController
,Role < ROLE_Authority
Actor
, 목록에 있는Actor
내부의 non-Actor, 예로 목록의Object.Outer =
Actor= 는 여기에 포함되었는가 여부에 관계 없이 자동으로 옮겨집니다. PersistentLevel 에 있는 동적인 (bStatic and bNoDelete) 액터만 옮겨야 합니다 (여기에는 게임플레이 도중 스폰된 모든 액터가 포함됩니다.) 중간에 액터가 바뀔 수 있기에 전환 양쪽 부분에서 호출해야 합니다. (플레이어가 게임에 들어오거나 나갔을 수 있습니다.)- bToEntry - 참이면 서버는 예전 레벨 -> entry 로 이동중입니다. 거짓이면 서버는 entry -> 새 레벨로 이동중입니다.
- ActorList - Out. 옮길
Actor
배열을 출력합니다.
- PostSeamlessTravel 심리스 이동 이후 - 심리스 레벨 전환이 완료된 이후 새
GameInfo
상의 엔진에 의해 호출됩니다. 보통 게임에 이미 있어Login()
을 호출하지 않아도 되는 플레이어를 재초기화시키고자 할 때 사용합니다. - HandleSeamlessTravelPlayer [C] 심리스 이동 플레이어 처리 - 심리스 레벨 전환을 통해 남아있는 플레이어의 재초기화를 처리합니다.
PostSeamlessTravel()
및 서버 이후에 로딩을 마친 플레이어의 엔진에서 호출됩니다.- C - 처리할 플레이어의
Controller
입니다.
- C - 처리할 플레이어의
- SetSeamlessTravelViewTarget [PC] 심리스 이동 뷰타겟 설정 - 심리스 레벨 전환을 통해 남아있는 플레이어에 대한
ViewTarget
을 설정합니다.- PC -
ViewTarget
에 대해 설정할PlayerController
입니다.
- PC -
- PreLogin [Options] [Address] [ErrorMessage] 로그인 전 - 서버에 참가하는 플레이어를 받거나 거부합니다.
- Options - 있다면 맵에 대한 URL 에서의 옵션 문자열입니다.
- Address - 연결하는 플레이어의 IP 주소입니다.
- ErrorMessage - Out. 실패한 로그인 에러 메시지를 출력합니다. 여기
String
이 비어있지 않으면 로그인이 실패했단 뜻입니다.
- Login [Portal] [Options] [UniqueID] [ErrorMessage] 로그인 - 플레이어를 로그인시키고 그에 대한
PlayerController
를 스폰시킵니다. 스폰된PlayerController
를 반환합니다.- Portal - 있다면 플레이어를 보낼 목적지 포털 이름입니다.
- Options - 있다면 맵에 대한 URL 에서의 옵션 문자열입니다.
- UniqueID - 로그인하는 플레이어에 대한
UniqueNetID
입니다. - ErrorMessage - Out. 실패한 로그인 에러 메시지를 출력합니다. 여기
String
이 비어있지 않으면 로그인이 실패했단 뜻입니다.
- PostLogin [NewPlayer] 로그인 이후 - 플레이어가 로그인에 성공한 이후 플레이어 셋업을 처리하고자 엔진에 의해 호출됩니다.
- NewPlayer - 로그인한 플레이어의
PlayerController
입니다.
- NewPlayer - 로그인한 플레이어의
- Logout [Exiting] 로그아웃 - 게임에서 플레이어를 제거하여 소멸시킬 때
Controller
에서 호출됩니다.- Exiting - 게임을 나가는 플레이어의
Controller
입니다.
- Exiting - 게임을 나가는 플레이어의
- SpawnDefaultPawnFor [NewPlayer] [StartSpot] 디폴트 폰 스폰 -
DefaultPawnClass
를 사용하여 주어진Controller
에 대한Pawn
을 스폰시키고 반환합니다.- NewPlayer -
Pawn
을 스폰시킬 플레이어의Controller
입니다. - StartSpot -
Pawn
을 스폰시킬NavigationPoint
입니다.
- NewPlayer -
- GetDefaultPlayerClass [C] 디폴트 플레이어 클래스 구하기 - 주어진
Controller
에 사용할 디폴트Pawn
클래스를 반환합니다.- C -
Pawn
클래스를 구할Controller
입니다.
- C -
- StartHumans 인간 시작 -
RestartPlayer()
호출로 인간 제어 플레이어를 시작합니다. - StartBots 봇 시작 -
RestartPlayer()
호출로 AI 제어 플레이어를 시작합니다. - RestartPlayer [NewPlayer] 플레이어 재시작 - 시작 지점을 찾아,
Pawn
을 스폰하고, 플레이어에 대한 디폴트 인벤토리를 추가하는 등 (인간이나 AI) 플레이어를 재시작합니다.- NewPlayer - 재시작할 플레이어의
Controller
입니다.
- NewPlayer - 재시작할 플레이어의
- GenericPlayerInitialization [C] 범용 플레이어 초기화 - 트래블 메서드
PostLogin()
및HandleSeamlessTravelPlayer()
간에 공유되는 플레이어 초기화 전부를 처리합니다.- C - 초기화시킬 플레이어의
Controller
입니다.
- C - 초기화시킬 플레이어의
- UnregisterPlayer [PC] 플레이어 등록해제 - 플레이어가 게임을 나갈 때 네임드 세션에서 제거합니다.
- PC - 게임을 나가는 플레이어의
PlayerController
입니다.
- PC - 게임을 나가는 플레이어의
- AtCapacity [bSpectator] 정원이 찼는지 - 게임 정원이 가득 찼는지 아닌지를 반환합니다.
- bSpectator - 참이면 게임 관람자 자리가 가득 찼는지 반환합니다. 거짓이면 게임이 플레이어 자리가 가득 찼는지 반환합니다.
- GetNumPlayers 플레이어 수 구하기 - 게임 내 플레이어의 수를 반환합니다.
- GetNextplayerID 다음 플레이어 ID 구하기 - 참가하는 플레이어에 사용할 다음 ID를 반환합니다.
- SetPlayerDefaults [PlayerPawn] 플레이어 디폴트 설정 - 특정 플레이어
Pawn
프로퍼티를 디폴트 값으로 리셋시킵니다.RestartPlayer()
에서 호출됩니다.- PlayerPawn - 프로퍼티를 리셋시킬
Pawn
입니다.
- PlayerPawn - 프로퍼티를 리셋시킬
- CanSpectate [Viewer] [ViewTarget] 관람 가능 - 주어진
PlayerReplicationInfo
의 시점에서 주어진PlayerController
의 관람이 허용되는지를 반환합니다.- Viewer - 관람자의
PlayerController
입니다. - ViewTarget - 관람할
PlayerReplicationInfo
입니다.
- Viewer - 관람자의
- ChangeName [Other] [S] [bNameChange] 이름 변경 - 주어진 플레이어의 이름을 지정된 이름으로 변경합니다.
- Other - 플레이어의
Controller
입니다. - S - 플레이어에게 지어 줄 이름입니다.
- bNameChange - 미사용.
- Other - 플레이어의
- ChangeTeam [Other] [N] [bNewTeam] 팀 변경 - 주어진 플레이어의 팀을 지정된 팀으로 변경합니다.
- Other - 플레이어의
Controller
입니다. - N - 플레이어가 속하게 될 팀 번호입니다.
- bNewteam - 미사용.
- Other - 플레이어의
- PickTeam [Current] [C] 팀 고르기 - 플레이어가 속하게 될 실제 팀 번호를 반환합니다.
- Current - 플레이어가 속하게 될 임시 팀 번호입니다.
- C - 플레이어의
Controller
입니다.
- PlayerCanRestartGame [aPlayer] 플레이어가 게임 재시작 가능 - 플레이어가 게임을 재시작시킬 수 있는지 여부를 반환합니다.
- aPlayer - 재시작을 요청하는 플레이어의
PlayerController
입니다.
- aPlayer - 재시작을 요청하는 플레이어의
- PlayerCanRestart [aPlayer] 플레이어가 재시작 가능 - 주어진 플레이어의 재시작이 허용되었는지를 반환합니다.
- aPlayer - 재시작을 요청하는 플레이어의
PlayerController
입니다.
- aPlayer - 재시작을 요청하는 플레이어의
- SwapPlayerControllers [OldPC] [NewPC] 플레이어 콘트롤러 스왑 - 심리스 이동시 뷰포트/연결의
PlayerController
를 맞바꾸며, 새 게임타입의Controller
클래스는 기존 것과 다릅니다.- OldPC - 기존 게임타입에서 플레이어에 대한
PlayerController
입니다. - NewPC - 새 게임타입에서 플레이어에 대한
PlayerController
입니다.
- OldPC - 기존 게임타입에서 플레이어에 대한
- DoNavFearCostFalloff Nav FearCost 감쇠 수행 -
bDoFearCostFalloff=true
일 때 내비게이션 포인트 fear cost 감쇠를 업데이트합니다.GameInfo
의Timer()
에서 호출됩니다. - NotifyNavigationChanged [N] 내비게이션 변경 알림 - 내비게이션 포인트가 막히거나 풀려서 월드의 AI에 루트를 업데이트하라고 알릴 수 있도록 게임타입에 알리는 함수 토막입니다.
- N - 변경된
NavigationPoint
입니다.
- N - 변경된
- ShouldSpawnAtStartSpot [Player] 시작 지점에서 스폰? - 주어진 플레이어의
StartSpot
프로퍼티를 그Pawn
에 대한 스폰 위치로 사용할지 여부를 반환합니다.- Player - 플레이어의
Controller
입니다.
- Player - 플레이어의
- FindPlayerStart [Player] [InTeam] [IncomingName] 플레이어 시작 찾기 - 이 플레이어의 시작 위치로 최적인
NavigationPoint
를 반환합니다.PlayerStart
등급은RatePlayerStart()
로 매깁니다.- Player - 플레이어의
Controller
입니다. - InTeam - 옵션. 플레이어가 속한 팀 번호입니다.
- IncomingName - 옵션. 시작 위치로 사용할 텔레포터의 태그를 지정합니다.
- Player - 플레이어의
- ChoosePlayerStart [Player] [InTeam] 플레이어 시작 선택 - 주어진 플레이어가 시작할 최적의
PlayerStart
를 반환합니다.PlayerStart
등급은RatePlayerStart()
로 매깁니다.- Player - 플레이어의
Controller
입니다. - InTeam - 옵션. 플레이어가 속한 팀 번호입니다.
- Player - 플레이어의
- RatePlayerStart [P] [Team] [Player] 플레이어 시작 등급 - 주어진 플레이어와 팀에 대해 주어진
PlayerStart
가 얼마나 바람직한지 등급을 반환합니다.- P - 등급을 구할
PlayerStart
입니다. - Team - 플레이어가 속한 팀 번호입니다.
- Player - 플레이어의
Controller
입니다.
- P - 등급을 구할
- ShouldRespawn [Other] 리스폰해야할지? - 주어진
PickupFactory
를 리스폰해야할지 여부를 반환합니다. 디폴트로 아이템은 멀티플레이 게임에서만 리스폰 허용됩니다.- Other - 리스폰시킬 아이템의
PickupFactory
입니다.
- Other - 리스폰시킬 아이템의
- AddDefaultInventory [P] 디폴트 인벤토리 추가 - 주어진
Pawn
에 대한 디폴트 인벤토리를 (Pawn::AddDefaultInventory()
를 통해) 스폰시킵니다.RestartPlayer()
에서, 그리고Pawn
을 스폰하는ActorFactory
에서도 호출합니다.- P - 디폴트 인벤토리를 줄
Pawn
입니다.
- P - 디폴트 인벤토리를 줄
- PickupQuery [Other] [ItemClass] [Pickup] 픽업 질의 - 주어진 플레이어가 주어진 아이템을 집을 수 있는지 여부를 반환합니다.
Pawn
이 아이템을 집으려 할 때PickupFactory
또는DroppedPickup
에 의해 호출됩니다.- Other - 아이템을 집으려 하는
Pawn
입니다. - ItemClass - 아이템의
Inventory
클래스입니다. - Pickup - 아이템을 포함하는
Actor
, 예로PickupFactory
입니다.
- Other - 아이템을 집으려 하는
- DiscardInventory [Other] [Killer] 인벤토리 버리기 - 플레이어가 죽은 이후 인벤토리를 없애거나 버립니다.
- Other - 죽은 플레이어의
Controller
입니다. - Killer - 옵션. 죽은 플레이어를 죽인 플레이어가 있다면 그
Controller
입니다.
- Other - 죽은 플레이어의
- BroadcastDeathMessage [Killer] [Other] [damageType] 죽음 메시지 방송 - 한 플레이어가 (
Killer
) 다른 플레이어를 (Other
) 죽일 때DeathMessageClass
에서 메시지를 출력합니다.BroadcastLocalized()
를 호출합니다.- Killer - 다른 플레이어를 죽인 플레이어의
Controller
입니다. (플레이어가 죽인게 아니면)None
, (자살같은)Other
도 가능합니다. - Other - 죽은 플레이어의
Controller
입니다. - damageType - 플레이어를 죽게 만든
DamageType
입니다.
- Killer - 다른 플레이어를 죽인 플레이어의
- Broadcast [Sender] [Msg] [Type] 방송 - 게임의 모든 플레이어에게 주어진 메시지를 표시합니다.
- Sender - 메시지 초기화를 담당하는
Actor
입니다. - Msg - 표시할 메시지를 나타내는
String
입니다. - Type - 옵션. 전송되는 메시지의 부가 "유형"을 제공하기 위해 사용 가능한
Name
입니다.
- Sender - 메시지 초기화를 담당하는
- BroadcastTeam [Sender] [Msg] [Type] 팀 방송 - 발신자와 같은 팀의 플레이어 전부에게 주어진 메시지를 표시합니다.
- Sender - 메시지 초기화를 담당하는
Actor
입니다. - Msg - 표시할 메시지를 나타내는
String
입니다. - Type - 옵션. 전송되는 메시지의 부가 "유형"을 제공하기 위해 사용 가능한
Name
입니다.
- Sender - 메시지 초기화를 담당하는
- BroadcastLocalized [Sender] [Message] [Switch] [RelatedPRI_1] [RelatedPRI_2] [OptionalObject] 현지화된 방송 - 게임 내 모든 플레이어에게 현지화된 메시지를 표시합니다.
- Sender - 메시지 초기화를 담당하는
Actor
입니다. - Message - 메시지를 구하는 데 사용할
LocalMessage
클래스입니다. - Switch - 옵션. 표시할 메시지 인덱스입니다.
- RelatedPRI_1 - 옵션. 메시지에 표시되는 정보를 구하는 데 사용 가능한
PlayerReplicationInfo
입니다. - RelatedPRI_2 - 옵션. 메시지에 표시되는 정보를 구하는 데 사용 가능한
PlayerReplicationInfo
입니다. - OptionalObject - 옵션. 메시지 표시에 사용 가능한
Object
입니다. 예를 들어LocalMessage
클래스의 디폴트 행위는 이를Class
오브젝트로 간주하여, 표시할 (BroadcastDeathMessage
에 사용되는) 메시지를 얻기 위해 거기서GetLocalString()
을 호출하는 것입니다.
- Sender - 메시지 초기화를 담당하는
- BroadcastLocalizedTeam [TeamIndex] [Sender] [Message] [Switch] [RelatedPRI_1] [RelatedPRI_2] [OptionalObject] 현지화된 팀 방송 - 주어진 팀의 모든 플레이어에 현지화된 메시지를 표시합니다.
- TeamIndex - 메시지를 표시할 팀 번호입니다.
- Sender - 메시지 초기화를 담당하는
Actor
입니다. - Message - 메시지를 얻어올
LocalMessage
클래스입니다. - Switch - 옵션. 표시할 메시지 인덱스입니다.
- RelatedPRI_1 - 옵션. 메시지에 표시되는 정보를 구하는 데 사용 가능한
PlayerReplicationInfo
입니다. - RelatedPRI_2 - 옵션. 메시지에 표시되는 정보를 구하는 데 사용 가능한
PlayerReplicationInfo
입니다. - OptionalObject - 옵션. 메시지를 표시하는 데 사용할 수 있는
Object
입니다. 예를 들어LocalMessage
클래스의 기본 행위는 이를Class
오브젝트로 간주하여 표시할 (BroadcastDeathMessage
에 사용되는) 메시지를 얻기 위해 거기서GetLocalString()
을 호출하는 것입니다.
- KickIdler [PC] 빈둥쟁이 추방 -
AccessControl::KickPlayer()
를 통해 주어진 플레이어를 제거합니다.- PC - 추방할 플레이어의
PlayerController
입니다.
- PC - 추방할 플레이어의
- Kick [S] - 게임에서 주어진 플레이어를 제거합니다.
- S - 제거할 플레이어를 지정하는
String
입니다. 플레이어의PlayerName
또는PlayerID
가 되어야 합니다.
- S - 제거할 플레이어를 지정하는
- ForceKickPlayer [PC] [KickReason] 플레이어 강제 추방 - 관리자 상태와 무관하게 주어진 플레이어를 게임에서 제거합니다.
- PC - 추방할 플레이어의
PlayerController
입니다. - KickReason - 제거되는 플레이어에 해당하는 이유를 나타내는
String
입니다.
- PC - 추방할 플레이어의
- KickBan [S] 영구추방 - 주어진 플레이어를 게임에서 영구추방시켜, 재입장을 거부합니다.
- S - 제거될 플레이어를 지정하는
String
입니다. 플레이어의PlayerName
또는PlayerID
여야 합니다.
- S - 제거될 플레이어를 지정하는
- InitGameReplicationInfo 게임 리플리케이션 정보 초기화 - 게임에 대한
GameReplicationInfo
를 초기화시킵니다. - StartOnlineGame 온라인 게임 시작 - 온라인 시스템에 게임을 시작하고 콜백을 대기하도록 하기 위해
StartMatch()
에서 호출됩니다. 연결된 각 클라이언트에게 그 세션을 진행중인 것으로 마크하라 일러줍니다. - OnStartOnlineGameComplete [SessionName] [bWasSuccessful] StartOnlineGame 완료시 - 온라인 시스템이 게임 시작 절차를 완료했을 때 호출됩니다.
- SessionName - 세션의
Name
입니다. - bWasSuccessful - 참이면 온라인 시스템은 게임 시작 절차를 성공적으로 완수한 것이며, 클라이언트가 등록될 것입니다.
- SessionName - 세션의
- EndOnlineGame 온라인 게임 종료 - 온라인 시스템에 게임을 종료하고 모든 클라이언트에게도 같은 작업을 하라 일러주기 위해
PerformEndGameHandling()
에서 호출됩니다. - GetNetworkNumber 네트워크 번호 구하기 - 호스트 기계의 IP 주소를 반환합니다.
- RequiresPassword 패스워드 필요 - 게임에 참가하려면 암호가 필요한지 여부를 반환합니다.
- ReplicateStreamingStatus [PC] 스트리밍 상태 리플리케이트 - 주어진
PlayerController
로 현재 레벨 스트리밍 상태를 리플리케이트합니다.- PC - 스트리밍 상태를 리플리케이트할 플레이어의
PlayerController
입니다.
- PC - 스트리밍 상태를 리플리케이트할 플레이어의
- BestNextHostSort [A] [B] 차선 호스트 정렬 - 주어진 호스트 중 어느 것을 선호할만한지 반환합니다. 연결이 가장 대등한 클라이언트가 처음에 옵니다. 그런 다음 최신의 플레이어가 선호되도록 참가 시간에 따라 정렬합니다.
- [A/B] - 정렬할 호스트의
PlayerControllers
입니다.
- [A/B] - 정렬할 호스트의
- UpdateBestNextHosts 차선 호스트 업데이트 - 현재 서버상의 차선 호스트 목록을 업데이트하고, 그 목록을 모든 클라이언트에 리플리케이트합니다.
- UpdateNetSpeeds 넷 속도 업데이트 - 게임 내 모든
PlayerController
를 새로운 속도로 업데이트합니다. - CalculatedNetSpeed 계산된 넷 속도 -
MinDynamicBandwidth
및MaxDynamicBandwidth
사이로 제한된 현재 넷 속도를 계산합니다. - WriteOnlineStats 온라인 통계 쓰기 - 모든 클라이언트에 통계를 쓴 다음 로컬 통계 쓰기를 처리하라 합니다.
- WriteOnlinePlayerScores 온라인 플레이어 점수 쓰기 - 경기가 중재된 경우, 모든 클라이언트에 플레이어 점수를 복사하여 쓰도록 합니다. 중재되지 않은 경우, 첫 로컬 플레이어만 점수를 쓰도록 합니다.
- UpdateGameSettings 게임 세팅 업데이트 - 게임을 검색하는 플레이어에게 공개할 필요가 있는 게임 세팅 변경사항을 업데이트하기 위해 사용되는 함수 토막입니다. 서브클래스에서 이를 덮어써야 합니다.
- UpdateGameSettingsCounts 게임 세팅 수 업데이트 - 랜 경기에 플레이어 수가 올바르게 표시되도록 플레이어 수에 대한 온라인 서브시스템 정보를 업데이트합니다.
- ProcessClientRegistrationCompletion [PC] [bWasSuccessful] 클라이언트 등록 완료 처리 - 주어진 플레이어가 중재 등록을 완료했음을 게임에 알리기 위한 함수 토막입니다. 등록 완료 처리를 하려면 서브클래스에서 이를 덮어써야 합니다.
- PC - 등록을 완료한 플레이어의
PlayerController
입니다. - bWasSuccessful 성공적이었는지? - 참이면 등록 성공입니다.
- PC - 등록을 완료한 플레이어의
- StartArbitrationRegistration 중재 등록 시작 - 비동기 등록을 시작해 버리는 함수 토막입니다. 서브클래스에서 이를 덮어써야 합니다.
- StartArbitratedMatch 중재된 경기 시작 - 중재된 경기를 시작하는 함수 토막입니다. 서브클래스에서 이를 덮어써야 합니다.
- RegisterServerForArbitration 중재용 서버 등록 - 중재용 서버를 등록하는 함수 토막입니다. 서브클래스에서 이를 덮어써야 합니다.
- ArbitrationRegistrationComplete [SessionName] [bWasSuccessful] 중재 등록 완료 - 중재용 서버 등록이 완료되었을 때 호출되는 함수 토막입니다.
- SessionName - 세션의
Name
입니다. - bWasSuccessful - 참이면 등록 성공입니다.
- SessionName - 세션의
- NotifyArbitratedMatchEnd 중재된 경기 종료 알림 - 중재된 경기가 종료될 때 호출되어 모든 클라이언트에 접속을 끊은 다음 메뉴로 가라 합니다.
- ProcessServerLogin 프로세스 서버 로그인 - 명령줄에 전달된 로그인 파라미터를 검사합니다. 있으면 전용 서버 등록 프로세스 시작 전 비동기 로그인을 합니다. 로그인 진행중이면 참을 반환합니다.
- ClearAutoLoginDelegates 자동 로그인 델리게이트 비우기 - 로그인 프로세스를 통과하거나 실패하면 로그인 델리게이트를 비웁니다.
- OnLoginFailed [LocalUserNum] [ErrorCode] 로그인 실패시 - 서버 로그인에 실패하면 호출되며,
ClearAutoLoginDelegates()
를 호출합니다.- LocalUserNumber - 연관된 사용자의 콘트롤러 번호입니다.
- ErrorCode - 발생한
EOnlineServerConnectionStatus
비동기 에러 코드입니다.
- OnLoginChanged [LocalUserNum] 로그인 변경시 - 서버 로그인이 완료되고 서버가 등록되면 호출됩니다.
- LocalUserNumber - 미사용.
- RegisterServer 서버 등록 - 온라인 서비스로 전용 서버를 등록합니다.
- OnServerCreateComplete [SessionName] [bWasSuccessful] 서버 생성 완료시 - 전용 서버 등록이 완료되었을 때 호출됩니다.
- SessionName - 세션의
Name
입니다. - bWasSuccessful - 참이면 등록 성공입니다.
- SessionName - 세션의
- TellClientsToReturnToPartyhost 클라이언트에 파티호스트로 돌아오라 하기 - 플레이어 콘트롤러를 반복처리하며 그 파티로 돌아가라 합니다.
- TellClientsToTravelToSession [SessionName] [SearchClass] [PlatformSpecificInfo] 클라이언트에 세션으로 이동하라 하기 - 플레이어 콘트롤러를 반복처리하며 원격 플레이어더러 지정된 세션으로 이동하라 합니다.
- SessionName - 등록할 세션
Name
입니다. - SearchClass - 세션에 채워져야 할
OnlineGameSearch
클래스입니다. - PlatformSpecificInfo - 플랫폼-특정 구역에 놓을 바이너리 데이터입니다.
- SessionName - 등록할 세션
- AddInactivePRI [PRI] [PC] 비활성 PRI 추가 - 주어진
PlayerReplicationInfo
를 비활성 목록에 추가시키고 활성 목록에서 제거합니다.- PRI - 비활성 목록에 추가시킬 플레이어의
PlayerReplicationInfo
입니다. - PC -
PRI
에 관련된 플레이어의PlayerController
입니다.
- PRI - 비활성 목록에 추가시킬 플레이어의
- FindInactivePRI [PC] 비활성 PRI 찾기 - 주어진 재입장 플레이어에 관련된 PRI를 찾아 반환합니다.
- PC - 플레이어의
PlayerController
입니다.
- PC - 플레이어의
- OverridePRI [PC] [OldPRI] PRI 덮어쓰기 - 주어진 플레이어의
PlayerReplicationInfo
프로퍼티를 로그인 프로세스 도중 할당된 구PlayerReplicationInfo
의 프로퍼티로 필요한 만큼 덮어씁니다.- PC - 플레이어의
PlayerController
입니다. - OldPRI - 로그인시 할당된 프로퍼티를 담고 있는
PlayerReplicationInfo
입니다.
- PC - 플레이어의
- CanUnpause 재개 가능 - Delegate. 게임 재개를 요청받았을 때 그 행위가 허용되었는가를 알아보기 위해 호출됩니다. 게임 재개가 가능하면 참을 반환합니다. 기본 구현은 모든 요청 승인입니다.
- SetPause [PC] [CanUnpauseDelegate] 일시정지 설정 - 게임을 일시정지하고, 주어진 플레이어가 게임을 정지시킬 권한이 있으면 목록에 델리게이트를 추가합니다. 게임이 정지된 이유가 해결됐다든지 해서 게임을 재개해도 괜찮은지, 알아보기 위해 델리게이트가 호출됩니다.
- PC - 게임 일시정지를 시도하는 플레이어의
PlayerController
입니다. - CanUnpauseDelegate CanUnpause 델리게이트 - (=CanUnpause 델리게이트의 시그너처에 일치하는) 델리게이트로, 이번 일시정지를 해제시킬 수 있는지 알아보기 위해 호출됩니다.
- PC - 게임 일시정지를 시도하는 플레이어의
- ClearPause 일시정지 해제 - 일시정지가 해제 가능한지 알아보기 위해 델리게이트 목록을 검사합니다. 델리게이트가 재개해도 괜찮다 하면, 그 델리게이트는 목록에서 제거되며 나머지가 검사됩니다. 목록이 비면 게임이 재개된 것으로 간주합니다.
- ForceClearUnpauseDelegates [PauseActor] 강제 ClearUnpause 델리게이트 - 오브젝트의
CanUnpause
델리게이트를 일시정지 목록에서 강제로 제거합니다. 오브젝트의CanUnpause
델리게이트 핸들러가 목록에 있었다면,ClearPause()
로의 호출을 트리거시킵니다. 플레이어 콘트롤러가 소멸중에 있어, 게임이 재개되기 전 게임을 일시정지시킨 PC가 그 상태에 갖히는 것을 방지하기 위해 호출됩니다.- PauseActor - 이
Actor
에 대한 모든CanUnpause
델리게이트를 비웁니다.
- PauseActor - 이
- AllowPausing [PC] 일시정지 허용 - 주어진 플레이어가 게임 일시정지시킬 수 있는지를 반환합니다.
- PC - 게임 일시정지 요청을 하는 플레이어의
PlayerController
입니다.
- PC - 게임 일시정지 요청을 하는 플레이어의
- SetGameSpeed [T] 게임 속도 설정 - 게임 속도와 월드
TimeDilation
(시간 팽창)을 주어진 값으로 설정합니다. 게임의Timer()
실행 빈도를 조절합니다. - AllowCheats [P] 치트 허용 - 치트를 게임에 허용할지 여부를 반환합니다. 디폴트는 오프라인 게임에서만 치트 허용입니다.
- UpdateGameplayMuteList [PC] 게임플레이 뮤트 목록 업데이트 - 게임타입에 플레이어의 게임플레이 특정 뮤트 정보를 지금 업데이트해도 좋다고 알리기 위해 사용합니다.
Player
는 그렇게 할 수 있을때나 고유 넷 ID가 틀려 뮤팅이 작동하지 않을 때 서버에 알려야 합니다.- PC - 뮤팅 정보를 업데이트할 플레이어의
PlayerController
입니다.
- PC - 뮤팅 정보를 업데이트할 플레이어의
- RecalculateSkillRating 스킬 등급 재계산 - 이 게임에 대해 광고된 스킬을 업데이트하기 위해 게임타입이 사용합니다.
- MatineeCancelled 마티네 취소됨 - 이 PC가 시네마틱 모드에 있을 때, 그리고 그 마티네가 사용자에 의해 취소되었을 때 호출됩니다.
- GetCoverReplicator 커버 리플리케이터 구하기 - 게임에 대한
CoverReplicatorBase
를 반환합니다. 존재하는 것이 없으면, 새로이 스폰시킨 다음 반환시킵니다. - NotifyKilled [Killer] [Killed] [KilledPawn] [damageType] 피살 알림 - 주어진 플레이어가 피살되었을 때 알립니다.
Killed()
에서 호출됩니다.- Killer - 죽인 플레이어의
Controller
입니다. - Killed - 죽은 플레이어의
Controller
입니다. - KilledPawn - 죽은 플레이어의
Pawn
입니다. - damageType - 플레이어의 죽음에 관계된 피해의
DamageType
입니다.
- Killer - 죽인 플레이어의
- Killed [Killer] [KilledPlayer] [KilledPawn] [damageType] - Called by the
Pawn
to notify the game it has been killed.- Killer - 죽인 플레이어의
Controller
입니다. - Killed - 죽은 플레이어의
Controller
입니다. - KilledPawn - 죽은 플레이어의
Pawn
입니다. - damageType - 플레이어의 죽음에 관계된 피해의
DamageType
입니다.
- Killer - 죽인 플레이어의
- PreventDeath [KilledPawn] [Killer] [DamageType] [HitLocation] 죽음 방지 - 게임에 피살되는
Pawn
덮어쓰기를 허용하기 위해Pawn
에 의해 호출됩니다.- KilledPawn - 죽은 플레이어의
Pawn
입니다. - Killer - 죽인 플레이어의
Controller
입니다. - DamageType - 플레이어의 죽음에 관계된 피해의
DamageType
입니다. - HitLocation - 플레이어의 사인이 된 피격 위치를 나타내는
Vector
입니다.
- KilledPawn - 죽은 플레이어의
- ReduceDamage [Damage] [injured] [instigatedBy] [HitLocation] [Momentum] [DamageType] [DamageCauser] 피해 감소 - 플레이어가 피해를 입었을 때 피해량을 변경할 수 있도록 하기 위해
TakeDamaer()
에서 호출됩니다.- Damage - Out. 입힐 피해량을 출력합니다.
- injured - 피해입는 플레이어의
Pawn
입니다. - instigatedBy - 피해를 담당하는 플레이어의
Controller
입니다. - HitLocation - 피해를 유발한 적중 위치를 나타내는
Vector
입니다. - Momentum - 피해에 의해 적용된 동력의 방향과 세기를 나타내는
Vector
입니다. - DamageType - 피해 유형입니다.
- DamageCauser - 실제 피해를 입힌
Actor
입니다.
- AddObjectiveScore [Scorer] [Score] 목표 점수 추가 - 목표를 완수한 후 주어진 플레이어의 점수를 증가시킵니다.
- Scorer - 플레이어의
PlayerReplicationInfo
입니다. - Score - 플레이어의 점수에 더할 양입니다.
- Scorer - 플레이어의
- ScoreObjective [Scorer] [Score] 점수 목표 - 플레이어 점수에 더한 다음, 목표 완수 후 게임을 끝내야 하는지 검사합니다.
- Scorer - 플레이어의
PlayerReplicationInfo
입니다. - Score - 플레이어의 점수에 더할 양입니다.
- Scorer - 플레이어의
- CheckScore [Scorer] 점수 검사 - 주어진 플레이어의 점수에 따라 게임을 끝내야 하는지 알아보기 위해
ScoreObjective()
에 의해 호출됩니다.- Scorer - 플레이어의
PlayerReplicationInfo
입니다.
- Scorer - 플레이어의
- ScoreKill [Killer] [Other] 점수 킬 - 플레이어 점수에 더한 다음, 킬 후 게임을 끝내야 하는지 검사합니다.
- Killer - 플레이어의 죽음을 유발한 플레이어의
Controller
입니다. - Other - 죽은 플레이어의
Controller
입니다.
- Killer - 플레이어의 죽음을 유발한 플레이어의
- GrabOption [Options] [Result] 옵션 집기 - 옵션 문자열에서 다음 키 값 쌍을 파싱해 냅니다. 쌍을 찾았으면 참을 반환합니다.
- Options - Out. 현재 옵션 문자열을 받아들여 파싱된 쌍을 뺀 옵션 문자열을 출력합니다.
- Result - Out. 파싱된 쌍을 출력합니다.
- GetKeyValue [Pair] [Key] [Value] 키 값 구하기 - 키-값 쌍을 키와 값으로 분해합니다.
- Pair - 키-값 쌍을 받습니다.
- Key - Out. 키를 출력합니다.
- Value - Out. 값을 출력합니다.
- ParseOption [Options] [InKey] 파싱 옵션 - 주어진 키에 대한 옵션 문자열에서 키-값 쌍을 파싱해 냅니다.
String
형태로 키-값 쌍을 반환합니다.- Options - 현재 옵션 문자열을 받습니다.
- InKey - 찾을 키입니다.
- HasOption [Options] [InKey] 옵션 있는지 - 주어진 키에 대한 키-값 쌍이 옵션 문자열에 있는지를 반환합니다.
- Options - 현재 옵션 문자열을 받습니다.
- InKey - 찾을 키입니다.
- GetIntOption [Options] [ParseString] [CurrentValue] Int 옵션 구하기 - 옵션 문자열에서 주어진 키에 대한
Int
값을 반환합니다.- Options - 현재 옵션 문자열을 받습니다.
- ParseString - 찾을 키입니다.
- CurrentValue - 키를 찾지 못한 경우 사용할 현재, 또는 디폴트 값입니다.
- AddMutator [mutname] [bUserAdded] 뮤테이터 추가 - 지정된 뮤테이터를 게임에 추가합니다.
- mutname - 추가시킬 뮤테이터 클래스를 나타내는
String
입니다. - bUserAdded - 참이면 뮤테이터는 게임의 인터페이스를 통해 플레이어 옆에 추가됩니다.
- mutname - 추가시킬 뮤테이터 클래스를 나타내는
- RemoveMutator [MutatorToRemove] - 주어진 뮤테이터를 게임에서 제거합니다.
- MutatorToRemove - 제거할
Mutator
입니다.
- MutatorToRemove - 제거할
- AllowMutator [MutatorClassName] 뮤테이터 허용 - 주어진
Mutator
클래스를 게임에 추가시킬 수 있는지를 반환합니다.- MutatoClassName - 검사할 뮤테이터 클래스를 나타내는
String
입니다.
- MutatoClassName - 검사할 뮤테이터 클래스를 나타내는
- Mutate [MutateString] [Sender] 뮤테이트 - 입력 문자열을 뮤테이터 목록에 전달합니다. PlayerController.Mutate() 에 의해 사용되는데, (mutate xxx 를 키로 바인딩하여) 뮤테이터가 인풋 실행 함수를 갖도록 하는 의도입니다.
- MutateString - 뮤테이터 목록에 전달할
String
입니다. - Sender - 뮤테이트 문자열을 전달하는 플레이어의
PlayerController
입니다.
- MutateString - 뮤테이터 목록에 전달할
- CheckRelevance [Other] 관련성 검사 - 액터가 이 게임에 관련되어 소멸되지 않아야 한다면 참을 반환합니다.
Actor::PreBeginPlay()
에서 호출되며, 뮤테이터가 스폰되는 액터를 제거하거나 대체할 수 있게 하려는 의도입니다.- Other - 관련성 검사를 할
Actor
입니다.
- Other - 관련성 검사를 할
- ModifyScoreKill [Killer] [Other] 점수 킬 변경 - 점수획득 처리할 뮤테이터 목록에 플레이어 킬을 전달합니다.
- Killer - 플레이어의 죽음을 유발한 플레이어의
Controller
입니다. - Other - 죽은 플레이어의
Controller
입니다.
- Killer - 플레이어의 죽음을 유발한 플레이어의
- DriverEnteredVehicle [V] [P] 탈것에 운전사 탑승 - 뮤테이터 목록에 vehicle entered 이벤트를 전달합니다.
- V - 탑승한
Vehicle
입니다. - P - 탈것에 탑승한 플레이어의
Pawn
입니다.
- V - 탑승한
- CanLeaveVehicle [V] [P] 탈것 내리기 가능? - 주어진
Pawn
이 지정된Vehicle
을 벗어날 수 있는지를 검사합니다. 뮤테이터가 존재하면 뮤테이터 목록이 결정을 내릴 수 있도록 합니다.- V - 내리려는
Vehicle
입니다. - P - 탈것을 내리려는 플레이어의
Pawn
입니다.
- V - 내리려는
- DriverLeftVehicle [V] [P] 운전사 탈것 내림 - 뮤테이터 목록에 vehicle exited 이벤트를 전달합니다.
- V - 내리려는
Vehicle
입니다. - P - 탈것을 내리려는 플레이어의
Pawn
입니다.
- V - 내리려는
- EnableStandbyCheatDetection [bIsEnabled] 스탠바이 치트 검출 활성화 - 스탠바이 검출을 끄고 켭니다.
- bIsEnabled - 참이면 치트 검출은 켜지고, 아니면 꺼집니다.
- StandbyCheatDetected [StandbyType] 스탠바이 치트 검출됨 - 게임 코드에 스탠바이 치트가 검출되었음을 알립니다.
- StandbyType - 검출된 치트의
EStandbyType
입니다.
- StandbyType - 검출된 치트의
- DoTravelTheWorld 월드로 트래블 수행 - 자동화 테스팅용 월드 트래블을 시작합니다.
- IsAutomatedPerfTesting 자동화 성능 테스팅? - Automated Performance 테스팅이 활성화되었다면 참을 반환합니다.
- IsCheckingForFragmentation 단편화 검사중? - 단편화 검사가 활성화되었다면 참을 반환합니다.
- IsCheckingForMemLeaks 메모리 누수 검사중? - 메모리 누구 검사가 활성화되었다면 참을 반환합니다.
- IsDoingASentinelRun 센티넬 런 수행중? - 센티넬 런 수행중이면 참을 반환합니다.
- ShouldAutoContinueToNextRound 다음 판으로 자동 진행? - 다음 판으로 자동 진행해야 하면 참을 반환합니다.
- CheckForSentinelRun 센티넬 런 검사 - 필요한 경우
AutoTestManager
에게 센티넬 런을 시작하도록 요구합니다. GameInfo 서브클래스에 의해 호출되어야 하며,GameInfo::StartMatch()
의 베이스 구현에서는 안됩니다.
게임 수명주기
게임타입 접두사
GameInfo
클래스를 적절히 자동 선택하기 위한 메커니즘이 있습니다. DefaultMapPrefixes
및 CustomMapPrefixes
배열은 (다른 것들 중) 한 게임타입 클래스에 특정 접두사 문자열을 매핑하는 GameTypePrefix
구조체 배열을 담습니다.
GameTypePrefix 구조체
- Prefix 접두사 - 맵 접두사를 나타내는
String
입니다. 맵 접두사는 맵 이름으로 시작해서 하이픈(-)이 붙는 일정 순서의 문자입니다. 하이픈은 접두사에 포함되어 있지 않습니다. 단지 접두사를 나머지 맵 이름과 분리할 뿐입니다. - bUseCommonPackage 공용 패키지 사용? - 참이면 이 게임타입에 대한 공용 패키지가 생성되어야 합니다. 자세한 것은 공용 패키지 참고.
- GameType 게임타입 - 접두사에 매핑할 게임타입의 클래스를 나타내는
String
입니다.URL
에 지정된 게임타입이 없을 경우 이 접두사를 가진 맵에 이 게임타입이 사용될 것입니다. - AdditionalGameTypes 부가 게임타입 - URL 을 통해 이 맵 접두사가 지원하는 부가 게임타입 클래스를 지정하는
String
배열입니다. - ForcedObjects 강제된 오브젝트 - 모든 맵에 쿠킹되는 것을 피하기 위해 공용 패키지에 들어가야 할 강제 오브젝트(와 클래스)입니다.
게임타입 접두사 추가하기
게임타입 접두사 매핑은DefaultGame.ini
콘픽 파일의 [Engine.GameInfo]
부분에 새 항목을 만드는 식으로 추가됩니다. 예제는 다음과 같습니다:
[Engine.GameInfo] +DefaultMapPrefixes=(Prefix="DM",bUsesCommonPackage=FALSE,GameType="UTGame.UTDeathmatch")
공용 패키지
TODO일시정지
GameInfo
에서 SetPause()
를 호출하여 이루어집니다. SetPause()
는 파라미터로써 이 배열에 추가되는 델리게이트를 받습니다. 게임이 어떤 이유로 일시정지되었을 때, 조건이 더이상 문제되지 않음을 확인하기 위한 특유의 델리게이트가 SetPause()
로 전달됩니다.
예를 들어 PlayerController.uc
에서 콘트롤러가 꽂히거나 뽑혔을 때, PlayerController
에서 SetPause()
를 호출하여 거기에 CanUnpauseControllerConnected
함수를 전달하며, 그리고서 그 함수는 GameInfo
의 SetPause()
상으로 전달됩니다:
// 콘트롤러가 제거되었으면 pause, 아니면 unpause SetPause(!bIsConnected,CanUnpauseControllerConnected);
CanUnpauseControllerConnected
함수는 단지 콘트롤러가 꽂혔는지 아닌지만을 반환합니다:
GameInfo
안의 SetPause
함수로 전달된 델리게이트가 없는 경우, 항상 참을 반환하는 디폴트 CanUnpause
함수가 사용됩니다. 플레이어가 단순히 게임을 일시정지시키고자 하는 경우가 될 텐데, 게임을 재개시킬 때는 검사할 조건이 별달리 없기 때문입니다.
이후 ClearPause()
를 호출하여 게임을 재개시킬 때, Pausers
배열에 있는 각 델리게이트가 실행됩니다. 델리게이트가 참을 반환하면 배열에서 제거됩니다. 배열이 비어야만 게임이 재개될 것입니다.
뮤테이터
- 플레이어의 로그인 파라미터 변경
- 플레이어의 폰 프로퍼티 변경
- (bGameRelevant=TRUE 가 아닌) 하나 또는 모든 액터를 변경, 제거, 대체
- 플레이어 시작 위치 덮어쓰기
- 게임 종료 조건 변경
뮤테이터 추가하기
뮤테이터는GameInfo
내 AddMutator()
함수를 통해 게임에 추가됩니다. 게임플레이 이벤트에 반응하여 특정한 면을 변경하기 위해 플레이 도중 동적으로 뮤테이터를 추가시킬 수 있도록 하기 위해, 잠재적으로 다른 액터에서도 호출 가능합니다. 디폴트로 이는 맵 URL에 지정된 뮤테이터는 무엇이고 추가하기 위해 InitGame()
에서 호출됩니다.
맵 URL 에 뮤테이터 지정은 Mutator=
에다 추가시킬 뮤테이터 목록을 각각 쉼표로 분리하여 넣어주면 됩니다. 예를 들어:
MapName?Game=GameName?Mutator=BigHeads,Instagib이 맵 URL 은
GameName
게임타입을 사용하여 MapName
맵을 로드한 다음 BigHeads
및 Instagib
뮤테이터를 추가합니다. 이런 식으로 뮤테이터를 추가하는 맵 URL은 보통 플레이어가 사용할 뮤테이터를 선택할 수 있도록 메뉴에 의해 동적으로 생성됩니다. 게임타입에 대한 InitGame()
이벤트 안에 그 뮤테이터에 대한 명시적 AddMutator()
호출을 추가하여 특정 게임타입에 하나 이상의 "디폴트" 뮤테이터를 하드코딩할 수도 있습니다.