GS2-Exchange トランザクションアクション

検証/消費/入手の各トランザクションアクションの仕様

ConsumeAction

消費アクション

Gs2Exchange:DeleteAwaitByUserId

ユーザーIDを指定して交換待機を削除

指定されたユーザーの交換待機レコードを削除します。
保留中の交換がキャンセルされ、まだ取得されていない報酬は放棄されます。

数量指定可能なアクション:いいえ

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
awaitNamestring
UUID~ 36文字交換待機の名前
交換待機の一意な名前を保持します。
名前は UUID(Universally Unique Identifier)フォーマットで自動的に生成され、交換待機を識別するために使用されます。
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Exchange:DeleteAwaitByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "awaitName": "[string]交換待機の名前",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Exchange:DeleteAwaitByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  awaitName: "[string]交換待機の名前"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("exchange").consume.delete_await_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    awaitName="[string]交換待機の名前",
    timeOffsetToken="[string]タイムオフセットトークン",
})

AcquireAction

入手アクション

Gs2Exchange:ExchangeByUserId

ユーザーIDを指定して交換を実行

指定されたユーザーに対して、指定された交換レートモデルに基づいてリソース交換を実行します。
レートモデルのタイミングタイプを検証します:‘immediate’ タイミングの場合はネームスペースで直接交換が有効である必要があり、‘await’ タイミングの場合は待機交換が有効である必要があります。
レートモデルで定義された消費・検証・入手アクションを指定回数分実行するトランザクションが発行されます。

数量指定可能なアクション:はい

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
rateNamestring
~ 128文字交換レートモデル名
交換レートモデルの種類固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
countint
1 ~ 1073741821交換回数
configList<Config>[]0 ~ 32 itemsトランザクションの変数に適用する設定値
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Exchange:ExchangeByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "rateName": "[string]交換レートモデル名",
        "userId": "[string]ユーザーID",
        "count": "[int]交換回数",
        "config": [
            {
                "key": "[string]名前",
                "value": "[string]値"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Exchange:ExchangeByUserId
request:
  namespaceName: "[string]ネームスペース名"
  rateName: "[string]交換レートモデル名"
  userId: "[string]ユーザーID"
  count: "[int]交換回数"
  config: 
    - key: "[string]名前"
      value: "[string]値"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("exchange").acquire.exchange_by_user_id({
    namespaceName="[string]ネームスペース名",
    rateName="[string]交換レートモデル名",
    userId="[string]ユーザーID",
    count="[int]交換回数",
    config={
        {
            key="[string]名前",
            value="[string]値"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Exchange:IncrementalExchangeByUserId

ユーザーIDを指定してコスト上昇型交換を実行

指定されたユーザーに対して、指定されたコスト上昇型交換レートモデルに基づいて、実行回数に応じてコストが段階的に上昇するリソース交換を実行します。
消費コストはモデルの計算タイプ(線形計算式またはGS2-Script)と現在の交換回数に基づいて計算されます。
消費・入手アクションを実行するトランザクションが発行されます。

数量指定可能なアクション:はい

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
rateNamestring
~ 128文字コスト上昇型交換レートモデルの名前
コスト上昇型交換レートモデルの種類固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
countint
1 ~ 1073741821交換回数
configList<Config>[]0 ~ 32 itemsトランザクションの変数に適用する設定値
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Exchange:IncrementalExchangeByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "rateName": "[string]コスト上昇型交換レートモデルの名前",
        "userId": "[string]ユーザーID",
        "count": "[int]交換回数",
        "config": [
            {
                "key": "[string]名前",
                "value": "[string]値"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Exchange:IncrementalExchangeByUserId
request:
  namespaceName: "[string]ネームスペース名"
  rateName: "[string]コスト上昇型交換レートモデルの名前"
  userId: "[string]ユーザーID"
  count: "[int]交換回数"
  config: 
    - key: "[string]名前"
      value: "[string]値"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("exchange").acquire.incremental_exchange_by_user_id({
    namespaceName="[string]ネームスペース名",
    rateName="[string]コスト上昇型交換レートモデルの名前",
    userId="[string]ユーザーID",
    count="[int]交換回数",
    config={
        {
            key="[string]名前",
            value="[string]値"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Exchange:CreateAwaitByUserId

ユーザーIDを指定して交換待機を作成

時間待機型交換の新しい交換待機レコードを作成します。
指定されたレートモデルのタイミングタイプは ‘await’ である必要があり、そうでない場合はリクエストが拒否されます。
待機はスキップ秒数ゼロで開始され、レートモデルで定義されたロック時間が報酬取得までのユーザーの待機時間を決定します。
作成時にデフォルトの設定値を指定でき、取得時に提供される設定値とマージされます。

数量指定可能なアクション:はい

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
rateNamestring
~ 128文字交換レートモデル名
交換レートモデルの種類固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
countint11 ~ 10000交換数
この交換を実行する回数です。複数回の交換を1つの待機にまとめることができ、消費されるコストと受け取る報酬の両方が乗算されます。
configList<Config>[]0 ~ 32 items報酬取得時に適用するデフォルト設定値
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Exchange:CreateAwaitByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "rateName": "[string]交換レートモデル名",
        "count": "[int]交換数",
        "config": [
            {
                "key": "[string]名前",
                "value": "[string]値"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Exchange:CreateAwaitByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  rateName: "[string]交換レートモデル名"
  count: "[int]交換数"
  config: 
    - key: "[string]名前"
      value: "[string]値"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("exchange").acquire.create_await_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    rateName="[string]交換レートモデル名",
    count="[int]交換数",
    config={
        {
            key="[string]名前",
            value="[string]値"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Exchange:AcquireForceByUserId

交換待機の報酬を、待機時間の判定を行わず強制取得

ロック時間が経過しているかどうかに関係なく、交換待機の報酬を強制的に取得します。
通常の待機時間チェックをバイパスし、即時に報酬を取得できます。
提供された設定値は待機作成時に設定されたデフォルト設定値とマージされます。
レートモデルで定義された入手アクションを実行するトランザクションが発行されます。

数量指定可能なアクション:いいえ

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
awaitNamestring
UUID~ 36文字交換待機の名前
交換待機の一意な名前を保持します。
名前は UUID(Universally Unique Identifier)フォーマットで自動的に生成され、交換待機を識別するために使用されます。
configList<Config>[]0 ~ 32 itemsトランザクションの変数に適用する設定値
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Exchange:AcquireForceByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "awaitName": "[string]交換待機の名前",
        "config": [
            {
                "key": "[string]名前",
                "value": "[string]値"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Exchange:AcquireForceByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  awaitName: "[string]交換待機の名前"
  config: 
    - key: "[string]名前"
      value: "[string]値"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("exchange").acquire.acquire_force_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    awaitName="[string]交換待機の名前",
    config={
        {
            key="[string]名前",
            value="[string]値"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Exchange:SkipByUserId

ユーザーIDを指定して交換待機をスキップ

交換待機の待機時間を加速またはスキップします。
4つのスキップタイプをサポートしています:‘complete’ は残りの待機時間を全てスキップし、‘minutes’ は指定した分数をスキップ秒数に加算し、’totalRate’ は全体のロック時間の割合をスキップし、‘remainRate’ は残りの待機時間の割合をスキップします。
スキップ秒数は合計ロック時間が上限となり、それを超えることはできません。

数量指定可能なアクション:はい

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
awaitNamestring
UUID~ 36文字交換待機の名前
交換待機の一意な名前を保持します。
名前は UUID(Universally Unique Identifier)フォーマットで自動的に生成され、交換待機を識別するために使用されます。
skipType文字列列挙型
enum {
  “complete”,
  “minutes”,
  “totalRate”,
  “remainRate”
}
“complete”スキップ方法
定義説明
“complete”完全にスキップ
“minutes”時間を指定してスキップ(分)
“totalRate”全体の待機時間の割合を指定してスキップ
“remainRate”残りの待機時間の割合を指定してスキップ
minutesint{skipType} == “minutes”0 ~ 2147483646スキップする分数
※ skipType が “minutes” であれば有効
ratefloat{skipType} == “totalRate” or {skipType} == “remainRate”0 ~ 1スキップする待機時間の割合
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Exchange:SkipByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "awaitName": "[string]交換待機の名前",
        "skipType": "[string]スキップ方法",
        "minutes": "[int]スキップする分数",
        "rate": "[float]スキップする待機時間の割合",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Exchange:SkipByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  awaitName: "[string]交換待機の名前"
  skipType: "[string]スキップ方法"
  minutes: "[int]スキップする分数"
  rate: "[float]スキップする待機時間の割合"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("exchange").acquire.skip_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    awaitName="[string]交換待機の名前",
    skipType="[string]スキップ方法",
    minutes="[int]スキップする分数",
    rate="[float]スキップする待機時間の割合",
    timeOffsetToken="[string]タイムオフセットトークン",
})