GS2-Mission 마스터 데이터 레퍼런스
마스터 데이터 포맷과 임포트할 각종 모델의 레퍼런스
마스터 데이터 포맷
{
"version": "2019-05-28",
"groups": [
{
"name": "[string]미션 그룹 모델 이름",
"metadata": "[string?]메타데이터",
"tasks": [
{
"name": "[string]미션 태스크 모델 이름",
"metadata": "[string?]메타데이터",
"verifyCompleteType": "[string]달성 조건 종류",
"targetCounter": {
"counterName": "[string]카운터 모델명",
"scopeType": "[string]스코프 종류",
"resetType": "[string?]목표 리셋 타이밍",
"conditionName": "[string]조건 이름",
"value": "[long]목표값"
},
"verifyCompleteConsumeActions": [
{
"action": "[string]검증 액션에서 실행할 액션의 종류",
"request": "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
}
],
"completeAcquireActions": [
{
"action": "[string]입수 액션에서 실행할 액션의 종류",
"request": "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
}
],
"challengePeriodEventId": "[string?]보상을 받을 수 있는 기간을 설정한 GS2-Schedule 이벤트 GRN",
"premiseMissionTaskName": "[string?]이 태스크에 도전하기 위해 달성해 두어야 하는 태스크의 이름",
"counterName": "[string]카운터 모델명",
"targetResetType": "[string?]목표 리셋 타이밍",
"targetValue": "[long]목표값"
}
],
"resetType": "[문자열 열거형]리셋 타이밍",
"resetDayOfMonth": "[int]리셋하는 날짜",
"resetDayOfWeek": "[문자열 열거형]리셋하는 요일",
"resetHour": "[int]리셋 시각",
"completeNotificationNamespaceId": "[string?]미션 태스크를 달성했을 때의 푸시 통지",
"anchorTimestamp": "[long]경과 일수를 계산하는 기준 일시",
"days": "[int]리셋하는 일수"
}
],
"counters": [
{
"name": "[string]카운터 모델명",
"metadata": "[string?]메타데이터",
"scopes": [
{
"scopeType": "[string]스코프의 종류",
"resetType": "[string]리셋 타이밍",
"resetDayOfMonth": "[int]리셋할 날짜",
"resetDayOfWeek": "[string]리셋할 요일",
"resetHour": "[int]리셋 시각",
"conditionName": "[string]조건명",
"condition": {
"action": "[string]검증 액션에서 실행할 액션의 종류",
"request": "[string]액션 실행 시 사용되는 요청의 JSON 문자열"
},
"anchorTimestamp": "[long]경과 일수를 계산하는 기준 일시",
"days": "[int]리셋하는 일수"
}
],
"challengePeriodEventId": "[string?]카운터를 조작할 수 있는 기간을 설정한 GS2-Schedule 이벤트 GRN"
}
]
}| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| version | string | ✓ | 2019-05-28 | 마스터 데이터 포맷 버전 | ||
| groups | List<MissionGroupModel> | ~ 20 items | 미션 그룹 모델 미션 그룹은 카운터의 리셋 타이밍으로 태스크를 그룹화하는 엔티티입니다. 예를 들어, 데일리 미션으로 하나의 그룹, 위클리 미션으로 하나의 그룹이 됩니다. | |||
| counters | List<CounterModel> | ~ 1000 items | 카운터 모델 카운터 모델은 미션 태스크의 달성 조건으로 설정할 수 있는 엔티티입니다. 카운터 값은 여러 미션 그룹에서 참조할 수 있기 때문에, 하나의 카운터를 위클리 미션과 데일리 미션 같은 여러 미션 그룹의 달성 조건으로 설정할 수 있습니다. |
모델
CounterModel
카운터 모델
카운터 모델은 미션 태스크의 달성 조건으로 설정할 수 있는 엔티티입니다.
카운터 값은 여러 미션 그룹에서 참조할 수 있기 때문에, 하나의 카운터를 위클리 미션과 데일리 미션 같은 여러 미션 그룹의 달성 조건으로 설정할 수 있습니다.
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| counterId | string | ※ | ~ 1024자 | 카운터 모델 GRN
※ 서버가 자동으로 설정 | ||
| name | string | ✓ | ~ 128자 | 카운터 모델명 카운터 모델 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| metadata | string | ~ 1024자 | 메타데이터 메타데이터에는 임의의 값을 설정할 수 있습니다. 이 값들은 GS2의 동작에는 영향을 주지 않으므로, 게임 내에서 사용하는 정보를 저장하는 용도로 사용할 수 있습니다. | |||
| scopes | List<CounterScopeModel> | [] | 1 ~ 20 items | 카운터의 리셋 타이밍 목록 이 카운터의 스코프(리셋 타이밍 또는 검증 액션 조건)를 정의합니다. 하나의 카운터에 여러 스코프를 설정할 수 있으며, 서로 다른 기간의 값(예: 데일리, 위클리, 누계를 동시에)을 추적할 수 있습니다. | ||
| challengePeriodEventId | string | ~ 1024자 | 카운터를 조작할 수 있는 기간을 설정한 GS2-Schedule 이벤트 GRN
이 카운터의 증감이 가능한 기간을 정의하는 GS2-Schedule 이벤트를 지정합니다. 설정하지 않은 경우, 카운터는 언제든지 조작할 수 있습니다. |
CounterScopeModel
카운터 리셋 타이밍 모델
카운터의 스코프를 정의하고, 카운터 값의 리셋 방법과 타이밍을 결정합니다. 스코프는 리셋 타이밍(매일, 매주, 매월, 일정 일수마다, 또는 리셋 없음) 또는 검증 액션 조건 중 하나입니다. 각 카운터는 여러 스코프를 가질 수 있으며, 서로 다른 기간의 값을 추적할 수 있습니다.
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| scopeType | 문자열 열거형 enum { “resetTiming”, “verifyAction” } | “resetTiming” | 스코프의 종류 카운터 스코프의 정의 방법을 결정합니다. “resetTiming” 은 정기적인 리셋 스케줄을 사용하고, “verifyAction” 은 검증 액션으로 카운터 값이 적용되는지 여부를 판정합니다.
| |||||||||||||||||||
| resetType | 문자열 열거형 enum { “notReset”, “daily”, “weekly”, “monthly”, “days” } | “notReset” | 리셋 타이밍 이 스코프의 카운터 값이 리셋되는 타이밍을 결정합니다. 리셋하지 않음(영구 누계), 매일, 매주, 매월, 일정 일수마다 중에서 선택합니다. scopeType 이 “resetTiming” 인 경우에만 사용됩니다.
| |||||||||||||||||||
| resetDayOfMonth | int | {resetType} == “monthly” | ✓※ | 1 ~ 31 | 리셋할 날짜 카운터 값이 리셋되는 월의 날짜입니다. 지정한 값이 해당 월의 일수를 초과하는 경우, 그 달의 마지막 날로 처리됩니다. resetType 이 “monthly” 인 경우에만 사용됩니다. ※ resetType이(가) “monthly” 이면 필수 | |||||||||||||||||
| resetDayOfWeek | 문자열 열거형 enum { “sunday”, “monday”, “tuesday”, “wednesday”, “thursday”, “friday”, “saturday” } | {resetType} == “weekly” | ✓※ | 리셋할 요일 카운터 값이 리셋되는 요일입니다. resetType 이 “weekly” 인 경우에만 사용됩니다.
※ resetType이(가) “weekly” 이면 필수 | ||||||||||||||||||
| resetHour | int | {resetType} in [“monthly”, “weekly”, “daily”] | ✓※ | 0 ~ 23 | 리셋 시각 카운터 값이 리셋되는 시각(0~23)입니다. 매일, 매주, 매월 리셋 타입과 조합하여 사용됩니다. ※ resetType이(가) “monthly”,“weekly”,“daily"이면 필수 | |||||||||||||||||
| conditionName | string | {scopeType} == “verifyAction” | ✓※ | ~ 128자 | 조건명 이 검증 액션 조건 스코프를 식별하는 고유한 이름입니다. 카운터 내에서 대응하는 스코프 값을 조회하는 데 사용됩니다. scopeType 이 “verifyAction” 인 경우에만 사용됩니다. ※ scopeType이(가) “verifyAction” 이면 필수 | |||||||||||||||||
| condition | VerifyAction | {scopeType} == “verifyAction” | ✓※ | 조건 이 스코프의 카운터 값이 적용되는지 여부를 판정하는 검증 액션입니다. scopeType이 “verifyAction"인 경우에만 사용됩니다. ※ scopeType이(가) “verifyAction” 이면 필수 | ||||||||||||||||||
| anchorTimestamp | long | {resetType} == “days” | ✓※ | 경과 일수를 계산하는 기준 일시 UNIX 시간(밀리초) ※ resetType이(가) “days” 이면 필수 | ||||||||||||||||||
| days | int | {resetType} == “days” | ✓※ | 1 ~ 2147483646 | 리셋하는 일수 기준 일시부터 카운트되는 카운터 값의 리셋 간격 일수입니다. resetType이 “days"인 경우에만 사용됩니다. ※ resetType이(가) “days” 이면 필수 |
VerifyAction
검증 액션
MissionGroupModel
미션 그룹 모델
미션 그룹은 카운터의 리셋 타이밍으로 태스크를 그룹화하는 엔티티입니다.
예를 들어, 데일리 미션으로 하나의 그룹, 위클리 미션으로 하나의 그룹이 됩니다.
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| missionGroupId | string | ※ | ~ 1024자 | 미션 그룹 GRN
※ 서버가 자동으로 설정 | ||||||||||||||||||
| name | string | ✓ | ~ 128자 | 미션 그룹 모델 이름 미션 그룹 모델 고유의 이름. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||||||||||||||||||
| metadata | string | ~ 1024자 | 메타데이터 메타데이터에는 임의의 값을 설정할 수 있습니다. 이 값들은 GS2의 동작에는 영향을 주지 않으므로, 게임 내에서 사용하는 정보를 저장하는 용도로 사용할 수 있습니다. | |||||||||||||||||||
| tasks | List<MissionTaskModel> | [] | 0 ~ 1000 items | 미션 태스크 리스트 이 그룹에 속하는 미션 태스크입니다. 각 태스크는 달성 조건(카운터의 임계값 또는 검증 액션)과 달성 시 부여되는 보상을 정의합니다. | ||||||||||||||||||
| resetType | 문자열 열거형 enum { “notReset”, “daily”, “weekly”, “monthly”, “days” } | “notReset” | 리셋 타이밍 미션 그룹의 달성 상황이 리셋되는 타이밍을 결정합니다. 리셋하지 않음(영구), 매일, 매주, 매월, 기준 일시부터 일정 일수마다 중에서 선택합니다.
| |||||||||||||||||||
| resetDayOfMonth | int | {resetType} == “monthly” | ✓※ | 1 ~ 31 | 리셋하는 날짜 미션 그룹이 리셋되는 월의 날짜입니다. 지정한 값이 해당 월의 일수를 초과하는 경우, 그 달의 마지막 날로 처리됩니다. resetType이 “monthly"인 경우에만 사용됩니다. ※ resetType이(가) “monthly” 이면 필수 | |||||||||||||||||
| resetDayOfWeek | 문자열 열거형 enum { “sunday”, “monday”, “tuesday”, “wednesday”, “thursday”, “friday”, “saturday” } | {resetType} == “weekly” | ✓※ | 리셋하는 요일 미션 그룹이 리셋되는 요일입니다. resetType이 “weekly"인 경우에만 사용됩니다.
※ resetType이(가) “weekly” 이면 필수 | ||||||||||||||||||
| resetHour | int | {resetType} in [“monthly”, “weekly”, “daily”] | ✓※ | 0 ~ 23 | 리셋 시각 미션 그룹이 리셋되는 시각(0~23)입니다. 매일, 매주, 매월 리셋 타입과 조합하여 사용됩니다. ※ resetType이(가) “monthly”,“weekly”,“daily"이면 필수 | |||||||||||||||||
| completeNotificationNamespaceId | string | ~ 1024자 | 미션 태스크를 달성했을 때의 푸시 통지 이 그룹 내의 미션 태스크가 달성되었을 때 푸시 통지를 전송하는 데 사용되는 GS2-Gateway의 네임스페이스 GRN입니다. 게임 클라이언트에 실시간으로 통지할 수 있습니다. | |||||||||||||||||||
| anchorTimestamp | long | {resetType} == “days” | ✓※ | 경과 일수를 계산하는 기준 일시 UNIX 시간(밀리초) ※ resetType이(가) “days” 이면 필수 | ||||||||||||||||||
| days | int | {resetType} == “days” | ✓※ | 1 ~ 2147483646 | 리셋하는 일수 기준 일시부터 카운트되는 리셋 간격 일수입니다. resetType이 “days"인 경우에만 사용됩니다. ※ resetType이(가) “days” 이면 필수 |
MissionTaskModel
미션 태스크 모델
미션 태스크는 연결된 카운터의 값이 일정 수준을 초과하면 보상을 받을 수 있는 조건을 정의하는 엔티티입니다.
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| missionTaskId | string | ※ | ~ 1024자 | 미션 태스크 GRN
※ 서버가 자동으로 설정 | ||||||||
| name | string | ✓ | ~ 128자 | 미션 태스크 모델 이름 미션 태스크 모델 고유의 이름. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||||||||
| metadata | string | ~ 1024자 | 메타데이터 메타데이터에는 임의의 값을 설정할 수 있습니다. 이 값들은 GS2의 동작에는 영향을 주지 않으므로, 게임 내에서 사용하는 정보를 저장하는 용도로 사용할 수 있습니다. | |||||||||
| verifyCompleteType | 문자열 열거형 enum { “counter”, “verifyActions” } | “counter” | 달성 조건 종류 미션 태스크의 달성 판정 방법을 지정합니다. “counter"는 관련된 카운터의 스코프 값이 목표 임곗값에 도달했는지 확인합니다. “verifyActions"는 검증 액션을 사용하여 달성 조건을 확인합니다.
| |||||||||
| targetCounter | TargetCounterModel | {verifyCompleteType} == “counter” | ✓※ | 목표 카운터 미션 태스크의 달성 판정에 사용되는 카운터, 스코프, 목표값을 정의합니다. 카운터의 스코프 값이 지정된 목표값에 도달하거나 초과한 경우, 태스크가 달성된 것으로 간주됩니다. ※ verifyCompleteType이(가) “counter” 이면 필수 | ||||||||
| verifyCompleteConsumeActions | List<VerifyAction> | {verifyCompleteType} == “verifyActions” | [] | 0 ~ 10 items | 태스크 달성 판정에 사용하는 검증 액션 미션 태스크의 달성 판정에 사용되는 검증 액션의 목록입니다. 모든 검증 액션이 성공한 경우 태스크가 달성된 것으로 간주됩니다. verifyCompleteType이 “verifyActions"인 경우에만 사용됩니다. ※ verifyCompleteType이(가) “verifyActions” 이면 활성화 | |||||||
| completeAcquireActions | List<AcquireAction> | [] | 0 ~ 100 items | 미션 달성 시 보상 플레이어가 미션 달성 보상을 받을 때 실행되는 입수 액션의 목록입니다. | ||||||||
| challengePeriodEventId | string | ~ 1024자 | 보상을 받을 수 있는 기간을 설정한 GS2-Schedule 이벤트 GRN
미션 태스크의 보상을 받을 수 있는 기간을 정의하는 GS2-Schedule 이벤트를 지정합니다. 설정하지 않은 경우, 달성 후 언제든지 보상을 받을 수 있습니다. | |||||||||
| premiseMissionTaskName | string | ~ 128자 | 이 태스크에 도전하기 위해 달성해 두어야 하는 태스크의 이름 이 태스크의 보상을 받기 전에 달성해 두어야 하는, 같은 그룹 내의 전제 미션 태스크를 지정합니다. 단계적인 미션 체인을 만드는 데 사용합니다. |
TargetCounterModel
목표 카운터
미션의 달성 목표가 되는 카운터의 정보
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| counterName | string | ✓ | ~ 128자 | 카운터 모델명 카운터 모델 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||||||||||||||
| scopeType | 문자열 열거형 enum { “resetTiming”, “verifyAction” } | “resetTiming” | 스코프 종류 미션 달성 판정에 사용하는 카운터 스코프의 종류를 지정합니다. “resetTiming"은 특정 리셋 기간의 카운터 값을 평가하고, “verifyAction"은 이름이 지정된 조건의 값을 평가합니다.
| |||||||||||||||
| resetType | 문자열 열거형 enum { “notReset”, “daily”, “weekly”, “monthly”, “days” } | {scopeType} == “resetTiming” | 목표 리셋 타이밍 목표값과 비교할 카운터의 리셋 타이밍 스코프를 지정합니다. 예를 들어 “daily"를 선택하면 데일리 카운터 값을 확인합니다. 생략한 경우, 미션 그룹의 리셋 타이밍이 사용됩니다.
※ scopeType이(가) “resetTiming” 이면 활성화 | |||||||||||||||
| conditionName | string | {scopeType} == “verifyAction” | ✓※ | ~ 128자 | 조건 이름 목표값과 비교할 검증 액션 조건 스코프의 이름입니다. 카운터 모델의 스코프에서 정의된 conditionName과 일치해야 합니다. scopeType이 “verifyAction"인 경우에만 사용됩니다. ※ scopeType이(가) “verifyAction” 이면 필수 | |||||||||||||
| value | long | ✓ | 0 ~ 9223372036854775805 | 목표값 미션 태스크가 달성된 것으로 간주되기 위해, 카운터의 스코프 값이 도달하거나 초과해야 하는 임곗값입니다. |
AcquireAction
입수 액션