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> | ~ 10 items | 抽選モデル | |||
prizeTables | List<PrizeTable> | ~ 10 items | 排出確率テーブル |
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 のスクリプト |
mode に指定する列挙型の定義
定義 | 説明 |
---|---|
normal | 通常抽選 |
box | BOX抽選 |
method に指定する列挙型の定義
定義 | 説明 |
---|---|
prize_table | 静的な抽選テーブル |
script | GS2-Script による動的な抽選テーブル |
PrizeTable
排出確率テーブル
景品には入手アクションまたは更に排出確率テーブルを指定することができます。
排出確率テーブルを入れ子にすることで、SSR/SR/R といったレアリティを抽選するテーブルを通し、
2段目で具体的なコンテンツを抽選するような設定が可能です。
こうすることで、全体におけるレアリティの排出確率の調整が容易となります。
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
prizeTableId | string | ✓ | ~ 1024文字 | 排出確率テーブルGRN | ||
name | string | ✓ | ~ 128文字 | 排出確率テーブル名 | ||
metadata | string | ~ 128文字 | メタデータ | |||
prizes | List<Prize> | ✓ | 1 ~ 100 items | 景品リスト |
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” | ✓ | [] | 1 ~ 100 items | 景品の入手アクションリスト |
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 | 排出重み |
type に指定する列挙型の定義
定義 | 説明 |
---|---|
action | 景品の入手アクション |
prize_table | 更に抽選テーブルを指定して再抽選 |
DrawnPrize
景品の種類
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
prizeId | string | ✓ | ~ 36文字 | 景品ID | ||
acquireActions | List<AcquireAction> | ~ 100 items | 入手アクションのリスト |
BoxItem
ボックスから取り出したアイテム
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
prizeId | string | ✓ | ~ 128文字 | 景品ID | ||
acquireActions | List<AcquireAction> | ~ 100 items | 入手アクションのリスト | |||
remaining | int | ✓ | ~ 2147483646 | 残り数量 | ||
initial | int | ✓ | ~ 2147483646 | 初期数量 |
AcquireAction
入手アクション