GS2-Limit マスターデータリファレンス
マスターデータのフォーマットと インポートする各種モデルのリファレンス
マスターデータのフォーマット
{
"version": "2019-04-05",
"limitModels": [
{
"name": "[string]回数制限モデル名",
"metadata": "[string?]メタデータ",
"resetType": "[string enum]リセットタイミング",
"resetDayOfMonth": "[int]リセット日",
"resetDayOfWeek": "[string enum]リセット曜日",
"resetHour": "[int]リセット時刻",
"anchorTimestamp": "[long]経過日数のカウントをする基準日時",
"days": "[int]リセットする日数"
}
]
}| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
|---|---|---|---|---|---|---|
| version | string | ✓ | 2019-04-05 | マスターデータのフォーマットバージョン | ||
| limitModels | List<LimitModel> | ~ 100 items | 回数制限モデル 回数制限モデルには、使用回数をリセットするタイミングを設定できます。 リセット間隔は 「毎日」「毎週」「毎月」「リセットしない」「一定日数」の 5 種類から選択できます。 また、回数制限の最大値はマスターデータ側では固定しません。 これは、ゲーム内のコンテキストに応じて、許可される最大回数を動的に変化させるためです。 たとえばステップアップガチャのように、 - 購入回数カウンターが 3 回未満 の場合に購入できる商品 - 上記の商品が購入できない場合に、購入回数カウンターが 5 回未満 なら購入できる別の商品 といったように、状況に応じて「最大回数」を切り替えられる設計を想定しています。 |
モデル
LimitModel
回数制限モデル
回数制限モデルには、使用回数をリセットするタイミングを設定できます。
リセット間隔は 「毎日」「毎週」「毎月」「リセットしない」「一定日数」の 5 種類から選択できます。
また、回数制限の最大値はマスターデータ側では固定しません。
これは、ゲーム内のコンテキストに応じて、許可される最大回数を動的に変化させるためです。
たとえばステップアップガチャのように、
- 購入回数カウンターが 3 回未満 の場合に購入できる商品
- 上記の商品が購入できない場合に、購入回数カウンターが 5 回未満 なら購入できる別の商品
といったように、状況に応じて「最大回数」を切り替えられる設計を想定しています。
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limitModelId | string | ※ | ~ 1024文字 | 回数制限モデル
GRN ※ サーバーが自動で設定 | ||||||||||||||||||
| name | string | ✓ | ~ 128文字 | 回数制限モデル名 回数制限モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 | ||||||||||||||||||
| metadata | string | ~ 2048文字 | メタデータ メタデータには任意の値を設定できます。 これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。 | |||||||||||||||||||
| resetType | 文字列列挙型 enum { “notReset”, “daily”, “weekly”, “monthly”, “days” } | ✓ | リセットタイミング この回数制限モデル配下のカウンター値が自動的にゼロにリセットされるタイミングを決定します。notReset(恒久的、リセットなし)、daily(毎日指定時刻にリセット)、weekly(指定曜日にリセット)、monthly(指定日にリセット)、days(基準日時から一定日数ごとにリセット)から選択します。すべての時刻はUTCです。
| |||||||||||||||||||
| resetDayOfMonth | int | {resetType} == “monthly” | ✓※ | 1 ~ 31 | リセット日 resetTypeが “monthly” の場合にカウンターがリセットされる月の日にちです。1〜31の値が有効です。指定した日がその月の日数を超える場合(例:2月の31日)、その月の最終日にリセットされます。 ※ resetType が “monthly” であれば 必須 | |||||||||||||||||
| resetDayOfWeek | 文字列列挙型 enum { “sunday”, “monday”, “tuesday”, “wednesday”, “thursday”, “friday”, “saturday” } | {resetType} == “weekly” | ✓※ | リセット曜日 resetTypeが “weekly” の場合にカウンターがリセットされる曜日です。この曜日のresetHour(UTC)で指定された時刻にリセットされます。
※ resetType が “weekly” であれば 必須 | ||||||||||||||||||
| resetHour | int | {resetType} in [“monthly”, “weekly”, “daily”] | ✓※ | 0 ~ 23 | リセット時刻 daily、weekly、monthlyリセットタイプでカウンターがリセットされるUTCの時刻(0〜23)です。例えば0の場合、UTC午前0時にカウンターがリセットされます。 ※ resetType が “monthly”,“weekly”,“daily"であれば 必須 | |||||||||||||||||
| anchorTimestamp | long | {resetType} == “days” | ✓※ | 経過日数のカウントをする基準日時 UNIX 時間・ミリ秒 ※ resetType が “days” であれば 必須 | ||||||||||||||||||
| days | int | {resetType} == “days” | ✓※ | 1 ~ 2147483646 | リセットする日数 resetTypeが “days” の場合のカウンターリセットの間隔(日数)です。リセット周期はanchorTimestampから計算されます。例えばdaysが7でanchorTimestampが月曜日の正午なら、毎週月曜日の正午にカウンターがリセットされます。 ※ resetType が “days” であれば 必須 |