GS2-Lottery
GS2-Deploy のテンプレートで使用できるリソース定義のリファレンス
GS2-Deploy リファレンス
エンティティ
Namespace
Namespace
Type: GS2::Lottery::Namespace
Properties:
Name: namespace1
Description: null
TransactionSetting:
EnableAutoRun: false
QueueNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001
KeyId: grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001
LotteryTriggerScriptId: null
ChoicePrizeTableScriptId: null
LogSetting:
LoggingNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1
QueueNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:queue:namespace1
KeyId: grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001
ネームスペース
ネームスペースは一つのプロジェクトで同じサービスを異なる用途で複数利用できるようにするための仕組みです。
GS2 のサービスは基本的にネームスペースというレイヤーがあり、ネームスペースが異なれば同じサービスでもまったく別のデータ空間として取り扱われます。
そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
name | string | ✓ | ~ 32文字 | ネームスペース名 | |
description | string | ~ 1024文字 | 説明文 | ||
transactionSetting | TransactionSetting | ✓ | トランザクション設定 | ||
lotteryTriggerScriptId | string | ~ 1024文字 | 抽選を実行した際に呼び出される GS2-Script のスクリプト | ||
choicePrizeTableScriptId | string | ~ 1024文字 | 抽選確率テーブルを動的に決定するための GS2-Script のスクリプト | ||
logSetting | LogSetting | ログの出力設定 | |||
queueNamespaceId | string | ~ 1024文字 | スタンプシートの実行に使用する GS2-JobQueue のネームスペース | ||
keyId | string | ~ 1024文字 | スタンプシートの発行に使用する GS2-Key のネームスペース |
LotteryModelMaster
LotteryModelMaster
Type: GS2::Lottery::LotteryModelMaster
Properties:
NamespaceName: namespace1
Name: lotteryModel-0001
Description: null
Metadata: null
Mode: normal
Method: prize_table
PrizeTableName: prizeTable-0001
ChoicePrizeTableScriptId: null
抽選モデルマスター
抽選モデルマスターはLotteryで排出方式や排出レートを定義するエンティティです。
排出方式は2種類用意されており、通常抽選は毎回一定の確率で抽選をする方式
Box抽選は箱の中にあらかじめ定義された数量の景品が入っており、抽選するたびに箱から景品を取り出していく抽選方式です。
抽選処理を行うにあたって、排出確率テーブルを利用しますが、
GS2-Script を使用すれば複数回抽選を実行した際に排出確率テーブルを一部だけ異なるテーブルに差し替えることができます。
この仕組みを利用することで、10連ガチャで1回だけ異なる抽選確率テーブルを適用することが可能となります。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 32文字 | ネームスペース名 | |
name | string | ✓ | ~ 128文字 | 抽選モデルの種類名 | |
description | string | ~ 1024文字 | 説明文 | ||
metadata | string | ~ 128文字 | メタデータ | ||
mode | string | ✓ | ~ 128文字 | 抽選モード | |
method | string | ✓ | ~ 128文字 | 抽選方法 | |
prizeTableName | string | {method} == "prize_table" | ~ 128文字 | 排出確率テーブルの名前 | |
choicePrizeTableScriptId | string | {method} == "script" | ~ 1024文字 | 排出確率テーブルを決定する GS2-Script のスクリプト |
PrizeTableMaster
PrizeTableMaster
Type: GS2::Lottery::PrizeTableMaster
Properties:
NamespaceName: namespace1
Name: prizeTable-0001
Description: null
Metadata: null
Prizes:
-
PrizeId: 1
Type: action
AcquireActions:
-
Action: Gs2Money:DepositByUserId
Request: Gs2Money:DepositByUserId:request:ssr-0001
Weight: 1
-
PrizeId: 2
Type: action
AcquireActions:
-
Action: Gs2Money:DepositByUserId
Request: Gs2Money:DepositByUserId:request:ssr-0002
Weight: 2
-
PrizeId: 3
Type: action
AcquireActions:
-
Action: Gs2Money:DepositByUserId
Request: Gs2Money:DepositByUserId:request:ssr-0003
Weight: 3
排出確率テーブルマスター
景品にはスタンプシートの報酬または更に排出確率テーブルを指定することができます。
排出確率テーブルを入れ子にすることで、SSR/SR/R といったレアリティを抽選するテーブルを通し、
2段目で具体的なコンテンツを抽選するような設定が可能です。
こうすることで、全体におけるレアリティの排出確率の調整が容易となります。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 32文字 | ネームスペース名 | |
name | string | ✓ | ~ 128文字 | 排出確率テーブル名 | |
description | string | ~ 1024文字 | 説明文 | ||
metadata | string | ~ 128文字 | メタデータ | ||
prizes | Prize[] | ✓ | 景品リスト |
CurrentLotteryMaster
CurrentLotteryMaster
Type: GS2::Lottery::CurrentLotteryMaster
Properties:
NamespaceName: namespace1
Settings: {
"version": "2019-02-21",
"lotteryModels": [
{
"name": "gacha",
"metadata": "GACHA",
"mode": "normal",
"method": "prize_table",
"prizeTableName": "gacha"
},
{
"name": "gacha_ssr",
"metadata": "SSR",
"mode": "normal",
"method": "prize_table",
"prizeTableName": "gacha-ssr"
},
{
"name": "gacha_sr",
"metadata": "SR",
"mode": "normal",
"method": "prize_table",
"prizeTableName": "gacha-sr"
},
{
"name": "gacha_r",
"metadata": "R",
"mode": "normal",
"method": "prize_table",
"prizeTableName": "gacha-r"
},
{
"name": "box",
"metadata": "BOX",
"mode": "box",
"method": "prize_table",
"prizeTableName": "box"
}
],
"prizeTables": [
{
"name": "gacha",
"metadata": "SSR",
"prizes": [
{
"prizeId": "prize-1",
"type": "prize_table",
"prizeTableName": "gacha-ssr",
"weight": 5
},
{
"prizeId": "prize-2",
"type": "prize_table",
"prizeTableName": "gacha-sr",
"weight": 15
},
{
"prizeId": "prize-3",
"type": "prize_table",
"prizeTableName": "gacha-r",
"weight": 80
}
]
},
{
"name": "gacha-ssr",
"metadata": "SSR",
"prizes": [
{
"prizeId": "prize-4",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 1
},
{
"prizeId": "prize-5",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 2
},
{
"prizeId": "prize-6",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 3
}
]
},
{
"name": "gacha-sr",
"metadata": "SR",
"prizes": [
{
"prizeId": "prize-7",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 10
},
{
"prizeId": "prize-8",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 20
},
{
"prizeId": "prize-9",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 30
}
]
},
{
"name": "gacha-r",
"metadata": "R",
"prizes": [
{
"prizeId": "prize-10",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 100
},
{
"prizeId": "prize-11",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 200
},
{
"prizeId": "prize-12",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 300
}
]
},
{
"name": "box",
"metadata": "BOX",
"prizes": [
{
"prizeId": "prize-13",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 30
},
{
"prizeId": "prize-14",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 20
},
{
"prizeId": "prize-15",
"type": "action",
"acquireActions": [
{
"action": "Gs2Money:DepositByUserId",
"request": "{\\"count\\": 1}"
}
],
"weight": 10
}
]
}
]
}
現在有効なマスターデータ
GS2ではマスターデータの管理にJSON形式のファイルを使用します。
ファイルをアップロードすることで、実際にサーバーに設定を反映することができます。
JSONファイルを作成する方法として、マネージメントコンソール上でのマスターデータエディタを提供していますが
よりゲームの運営に相応しいツールを作成し、適切なフォーマットのJSONファイルを書き出すことでもサービスを利用可能です。
JSONファイルの形式についてはドキュメントを参照ください。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 32文字 | ネームスペース名 | |
settings | string | ✓ | ~ 5242880文字 | マスターデータ |