GS2-Lottery マスターデータリファレンス
{
"version": "2019-02-21",
"lotteryModels": [
{
"name": "[string]抽選モデルの種類名",
"metadata": "[string?]メタデータ",
"mode": "[string]抽選モード",
"method": "[string]抽選方法",
"prizeTableName": "[string]排出確率テーブルの名前",
"choicePrizeTableScriptId": "[string]排出確率テーブルを決定する GS2-Script のスクリプト"
}
],
"prizeTables": [
{
"name": "[string]排出確率テーブル名",
"metadata": "[string?]メタデータ",
"prizes": [
{
"prizeId": "[string]景品ID",
"type": "[string]景品の種類",
"acquireActions": [
{
"action": "[string]スタンプシートを使用して実行するアクションの種類",
"request": "[string]リクエストのJSON"
}
],
"drawnLimit": "[int?]最大排出数",
"limitFailOverPrizeId": "[string]最大排出数に達していた時に代わりに排出する景品ID",
"prizeTableName": "[string]排出確率テーブルの名前",
"weight": "[int]排出重み"
}
]
}
]
}
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
---|
version | ✓ | | 2019-02-21 | マスターデータのフォーマットバージョン | | |
lotteryModels | List<LotteryModel> | | | | | |
prizeTables | List<PrizeTable> | | | | | |
LotteryModel
抽選モデル
抽選モデルはLotteryで排出方式や排出レートを定義するエンティティです。
排出方式は2種類用意されており、通常抽選は毎回一定の確率で抽選をする方式
Box抽選は箱の中にあらかじめ定義された数量の景品が入っており、抽選するたびに箱から景品を取り出していく抽選方式です。
抽選処理を行うにあたって、排出確率テーブルを利用しますが、
GS2-Script を使用すれば複数回抽選を実行した際に排出確率テーブルを一部だけ異なるテーブルに差し替えることができます。
この仕組みを利用することで、10連ガチャで1回だけ異なる抽選確率テーブルを適用することが可能となります。
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
---|
lotteryModelId | string | | ✓ | | ~ 1024文字 | 抽選モデルGRN |
name | string | | ✓ | | ~ 128文字 | 抽選モデルの種類名 |
metadata | string | | | | ~ 128文字 | メタデータ |
mode | enum [’normal’, ‘box’] | | ✓ | | ~ 128文字 | 抽選モード |
method | enum [‘prize_table’, ‘script’] | | ✓ | | ~ 128文字 | 抽選方法 |
prizeTableName | string | {method} == “prize_table” | ✓ | | ~ 128文字 | 排出確率テーブルの名前 |
choicePrizeTableScriptId | string | {method} == “script” | ✓ | | ~ 1024文字 | 排出確率テーブルを決定する GS2-Script のスクリプト |
PrizeTable
排出確率テーブル
景品にはスタンプシートの報酬または更に排出確率テーブルを指定することができます。
排出確率テーブルを入れ子にすることで、SSR/SR/R といったレアリティを抽選するテーブルを通し、
2段目で具体的なコンテンツを抽選するような設定が可能です。
こうすることで、全体におけるレアリティの排出確率の調整が容易となります。
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
---|
prizeTableId | string | | ✓ | | ~ 1024文字 | 排出確率テーブルGRN |
name | string | | ✓ | | ~ 128文字 | 排出確率テーブル名 |
metadata | string | | | | ~ 128文字 | メタデータ |
prizes | List<Prize> | | ✓ | | | 景品リスト |
Probability
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
---|
prize | DrawnPrize | | ✓ | | | 景品の種類 |
rate | float | | ✓ | | ~ 1.0 | 排出確率(0.0〜1.0) |
Prize
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
---|
prizeId | string | | ✓ | UUID | ~ 36文字 | 景品ID |
type | enum [‘action’, ‘prize_table’] | | ✓ | | ~ 128文字 | 景品の種類 |
acquireActions | List<AcquireAction> | {type} == “action” | ✓ | [] | | 景品の入手アクションリスト |
drawnLimit | int | {type} == “action” | | | 1 ~ 100000 | 最大排出数 |
limitFailOverPrizeId | string | {type} == “action” and {drawnLimit} > 0 | ✓ | | ~ 32文字 | 最大排出数に達していた時に代わりに排出する景品ID |
prizeTableName | string | {type} == “prize_table” | ✓ | | ~ 128文字 | 排出確率テーブルの名前 |
weight | int | | ✓ | | 1 ~ 2147483646 | 排出重み |
DrawnPrize
BoxItem
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
---|
prizeId | string | | ✓ | | ~ 128文字 | 景品ID |
acquireActions | List<AcquireAction> | | | | | 入手アクションのリスト |
remaining | int | | ✓ | | ~ 2147483646 | 残り数量 |
initial | int | | ✓ | | ~ 2147483646 | 初期数量 |
AcquireAction
| 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
---|
action | enum [] | | ✓ | | ~ 128文字 | スタンプシートを使用して実行するアクションの種類 |
request | string | | ✓ | | ~ 1048576文字 | リクエストのJSON |