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
入手アクション
VerifyActionResult
検証アクションの実行結果
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
action | enum { } | ✓ | ~ 128文字 | 検証アクションで実行するアクションの種類 | ||
verifyRequest | string | ✓ | ~ 1048576文字 | リクエストのJSON | ||
statusCode | int | ~ 999 | ステータスコード | |||
verifyResult | string | ~ 1048576文字 | 結果内容 |
action に指定する列挙型の定義
定義 | 説明 |
---|
ConsumeActionResult
消費アクションの実行結果
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
action | enum { } | ✓ | ~ 128文字 | 消費アクションで実行するアクションの種類 | ||
consumeRequest | string | ✓ | ~ 1048576文字 | リクエストのJSON | ||
statusCode | int | ~ 999 | ステータスコード | |||
consumeResult | string | ~ 1048576文字 | 結果内容 |
action に指定する列挙型の定義
定義 | 説明 |
---|
AcquireActionResult
入手アクションの実行結果
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
action | enum { } | ✓ | ~ 128文字 | 入手アクションで実行するアクションの種類 | ||
acquireRequest | string | ✓ | ~ 1048576文字 | リクエストのJSON | ||
statusCode | int | ~ 999 | ステータスコード | |||
acquireResult | string | ~ 1048576文字 | 結果内容 |
action に指定する列挙型の定義
定義 | 説明 |
---|
TransactionResult
トランザクション実行結果
サーバーサイドでのトランザクションの自動実行機能を利用して実行されたトランザクションの実行結果
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
transactionId | string | ✓ | 36 ~ 36文字 | トランザクションID | ||
verifyResults | List<VerifyActionResult> | ~ 10 items | 検証アクションの実行結果リスト | |||
consumeResults | List<ConsumeActionResult> | ~ 10 items | 消費アクションの実行結果リスト | |||
acquireResults | List<AcquireActionResult> | ~ 100 items | 入手アクションの実行結果リスト |