GS2-Exchange
GS2-Deploy のテンプレートで使用できるリソース定義のリファレンス
GS2-Deploy リファレンス
エンティティ
Namespace
Namespace
Type: GS2::Exchange::Namespace
Properties:
Name: namespace1
Description: null
EnableAwaitExchange: null
EnableDirectExchange: null
QueueNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001
KeyId: grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001
ExchangeScript: null
LogSetting:
LoggingNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1
ネームスペース
ネームスペースは一つのプロジェクトで同じサービスを異なる用途で複数利用できるようにするための仕組みです。
GS2 のサービスは基本的にネームスペースというレイヤーがあり、ネームスペースが異なれば同じサービスでもまったく別のデータ空間として取り扱われます。
そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
name | string | ✓ | ~ 32文字 | ネームスペース名 | |
description | string | ~ 1024文字 | 説明文 | ||
enableAwaitExchange | bool | ✓ | false | 交換結果の受け取りに待ち時間の発生する交換機能を利用するか | |
enableDirectExchange | bool | ✓ | true | 直接交換APIの呼び出しを許可する。許可しない場合はスタンプシート経由でしか交換できない | |
queueNamespaceId | string | ~ 1024文字 | スタンプシートの実行に使用する GS2-JobQueue のネームスペース | ||
keyId | string | ✓ | ~ 1024文字 | スタンプシートの発行に使用する GS2-Key のネームスペース | |
exchangeScript | ScriptSetting | 交換を実行しようとした時に実行するスクリプト | |||
logSetting | LogSetting | ログの出力設定 |
RateModelMaster
RateModelMaster
Type: GS2::Exchange::RateModelMaster
Properties:
NamespaceName: namespace1
Name: rate-0001
Description: null
Metadata: N2R
TimingType: null
LockTime: null
EnableSkip: null
SkipConsumeActions: null
AcquireActions:
-
Action: Gs2Inventory:AcquireItemSetByUserId
Request: {"namespaceName": "namespace-0001", "inventoryName": "item", "itemName": "item-0002", "userId": "#{userId}", "acquireCount": 1}
ConsumeActions:
-
Action: Gs2Inventory:ConsumeItemSetByUserId
Request: {"namespaceName": "namespace-0001", "inventoryName": "item", "itemName": "item-0001", "userId": "#{userId}", "consumeCount": 10}
交換レートモデルマスター
交換レートはリソースとリソースを交換する際に使用するレートを定義するエンティティです。
直ちに交換できるレートだけでなく、現実時間で一定時間経過したのちに交換できるレートを設定できます。
現実時間での時間経過が必要な交換レートには、更に即時交換を実行するために必要なリソースを定義することが可能です。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 32文字 | ネームスペース名 | |
name | string | ✓ | ~ 128文字 | 交換レート名 | |
description | string | ~ 1024文字 | 説明文 | ||
metadata | string | ~ 2048文字 | メタデータ | ||
timingType | string | ✓ | "immediate" | ~ 128文字 | 交換の種類 |
lockTime | int | {timingType} == "await" | ~ 525600 | 交換実行から実際に報酬を受け取れるようになるまでの待ち時間(分) | |
enableSkip | bool | {timingType} == "await" | false | スキップをすることができるか | |
skipConsumeActions | ConsumeAction[] | {enableSkip} | [] | 時短消費アクションリスト | |
acquireActions | AcquireAction[] | [] | 入手アクションリスト | ||
consumeActions | ConsumeAction[] | [] | 消費アクションリスト |
CurrentRateMaster
CurrentRateMaster
Type: GS2::Exchange::CurrentRateMaster
Properties:
NamespaceName: namespace1
Settings: {
"version": "2019-08-19",
"rateModels": [
{
"name": "material_n_to_r",
"metadata": "N2R",
"timingType": "await",
"enableSkip": false,
"lockTime": 50,
"consumeActions": [
{
"action": "Gs2Inventory:ConsumeItemSetByUserId",
"request": "{\\"namespaceName\\": \\"category-0001\\", \\"inventoryName\\": \\"item\\", \\"itemName\\": \\"item-0001\\", \\"userId\\": \\"#{userId}\\", \\"consumeCount\\": 10}"
}
],
"acquireActions": [
{
"action": "Gs2Inventory:AcquireItemSetByUserId",
"request": "{\\"namespaceName\\": \\"category-0001\\", \\"inventoryName\\": \\"item\\", \\"itemName\\": \\"item-0002\\", \\"userId\\": \\"#{userId}\\", \\"acquireCount\\": 1}"
}
]
},
{
"name": "material_r_to_n",
"metadata": "N2R",
"timingType": "await",
"enableSkip": false,
"lockTime": 50,
"consumeActions": [
{
"action": "Gs2Inventory:ConsumeItemSetByUserId",
"request": "{\\"namespaceName\\": \\"category-0001\\", \\"inventoryName\\": \\"item\\", \\"itemName\\": \\"item-0002\\", \\"userId\\": \\"#{userId}\\", \\"consumeCount\\": 1}"
}
],
"acquireActions": [
{
"action": "Gs2Inventory:AcquireItemSetByUserId",
"request": "{\\"namespaceName\\": \\"category-0001\\", \\"inventoryName\\": \\"item\\", \\"itemName\\": \\"item-0001\\", \\"userId\\": \\"#{userId}\\", \\"acquireCount\\": 10}"
}
]
}
]
}
現在有効なマスターデータ
GS2ではマスターデータの管理にJSON形式のファイルを使用します。
ファイルをアップロードすることで、実際にサーバーに設定を反映することができます。
JSONファイルを作成する方法として、マネージメントコンソール上でのマスターデータエディタを提供していますが
よりゲームの運営に相応しいツールを作成し、適切なフォーマットのJSONファイルを書き出すことでもサービスを利用可能です。
JSONファイルの形式についてはドキュメントを参照ください。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 32文字 | ネームスペース名 | |
settings | string | ✓ | ~ 5242880文字 | マスターデータ |