NAV
GS2-Deploy

GS2-Lottery

GS2-Deploy のテンプレートで使用できるリソース定義のリファレンス

エンティティ

Namespace

Namespace

Type: GS2::Lottery::Namespace
Properties:
  Name: namespace1
  Description: null
  QueueNamespaceId: null
  KeyId: grn:gs2:ap-northeast-1:YourOwnerId:key:namespace-0001:key:key-0001
  LotteryTriggerScriptId: null
  ChoicePrizeTableScriptId: null
  LogSetting: 
    LoggingNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:log:namespace-0001

ネームスペースは一つのプロジェクトで同じサービスを異なる用途で複数利用できるようにするための仕組みです。 GS2 のサービスは基本的にネームスペースというレイヤーがあり、ネームスペースが異なれば同じサービスでもまったく別のデータ空間として取り扱われます。

そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。

必須 デフォルト 値の制限 説明
name string ~ 32文字 ネームスペース名
description string ~ 1024文字 説明文
queueNamespaceId string ~ 1024文字 スタンプシートの実行に使用する GS2-JobQueue のネームスペース
keyId string ~ 1024文字 スタンプシートの発行に使用する GS2-Key のネームスペース
lotteryTriggerScriptId string ~ 1024文字 抽選を実行した際に呼び出される GS2-Script のスクリプト
choicePrizeTableScriptId string ~ 1024文字 抽選確率テーブルを動的に決定するための GS2-Script のスクリプト
logSetting LogSetting ログの出力設定

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: {\n  "version": "2019-02-21",\n  "lotteryModels": [\n    {\n      "name": "gacha",\n      "metadata": "GACHA",\n      "mode": "normal",\n      "method": "prize_table",\n      "prizeTableName": "gacha"\n    },\n    {\n      "name": "gacha_ssr",\n      "metadata": "SSR",\n      "mode": "normal",\n      "method": "prize_table",\n      "prizeTableName": "gacha-ssr"\n    },\n    {\n      "name": "gacha_sr",\n      "metadata": "SR",\n      "mode": "normal",\n      "method": "prize_table",\n      "prizeTableName": "gacha-sr"\n    },\n    {\n      "name": "gacha_r",\n      "metadata": "R",\n      "mode": "normal",\n      "method": "prize_table",\n      "prizeTableName": "gacha-r"\n    },\n    {\n      "name": "box",\n      "metadata": "BOX",\n      "mode": "box",\n      "method": "prize_table",\n      "prizeTableName": "box"\n    }\n  ],\n  "prizeTables": [\n    {\n      "name": "gacha",\n      "metadata": "SSR",\n      "prizes": [\n        {\n          "prizeId": "1",\n          "type": "prize_table",\n          "prizeTableName": "gacha-ssr",\n          "weight": 5\n        },\n        {\n          "prizeId": "2",\n          "type": "prize_table",\n          "prizeTableName": "gacha-sr",\n          "weight": 15\n        },\n        {\n          "prizeId": "3",\n          "type": "prize_table",\n          "prizeTableName": "gacha-r",\n          "weight": 80\n        }\n      ]\n    },\n    {\n      "name": "gacha-ssr",\n      "metadata": "SSR",\n      "prizes": [\n        {\n          "prizeId": "4",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 1\n        },\n        {\n          "prizeId": "5",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 2\n        },\n        {\n          "prizeId": "6",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 3\n        }\n      ]\n    },\n    {\n      "name": "gacha-sr",\n      "metadata": "SR",\n      "prizes": [\n        {\n          "prizeId": "7",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 10\n        },\n        {\n          "prizeId": "8",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 20\n        },\n        {\n          "prizeId": "9",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 30\n        }\n      ]\n    },\n    {\n      "name": "gacha-r",\n      "metadata": "R",\n      "prizes": [\n        {\n          "prizeId": "10",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 100\n        },\n        {\n          "prizeId": "11",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 200\n        },\n        {\n          "prizeId": "12",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 300\n        }\n      ]\n    },\n    {\n      "name": "box",\n      "metadata": "BOX",\n      "prizes": [\n        {\n          "prizeId": "13",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 30\n        },\n        {\n          "prizeId": "14",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 20\n        },\n        {\n          "prizeId": "15",\n          "type": "action",\n          "acquireActions": [\n            {\n              "action": "Gs2Money:DepositByUserId",\n              "request": "{\\"count\\": 1}"\n            }\n          ],\n          "weight": 10\n        }\n      ]\n    }\n  ]\n}

GS2ではマスターデータの管理にJSON形式のファイルを使用します。 ファイルをアップロードすることで、実際にサーバーに設定を反映することができます。

JSONファイルを作成する方法として、マネージメントコンソール上でのマスターデータエディタを提供していますが よりゲームの運営に相応しいツールを作成し、適切なフォーマットのJSONファイルを書き出すことでもサービスを利用可能です。

JSONファイルの形式についてはドキュメントを参照ください。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
settings string ~ 5242880文字 マスターデータ