はじめに
GS2におけるトランザクションは、ゲーム内のリソースの増減の組み合わせを定義したものです。
消費「アイテムを減らす」入手「経験値が増える」のようにプレイヤーにとってデメリットがある消費アクションと、プレイヤーにとってメリットがある入手アクションを組み合わせて定義します。
機能追加の背景
レベルキャップの引き上げの交換レートを定義する際に、現在のレベルキャップを元に交換に必要なコストを決定したいことがあります。
しかし、これまではこれを素直に実装する手段はなく、GS2-Limitの交換回数制限機能でキャラクターごとにレベルキャップの引き上げを実行した回数で制限をかけるといった工夫が必要でした。
追加された機能の詳細
今回以下の値チェック系の消費アクションが追加されました。
あわせて、値チェック系の消費アクションの実行優先度があがり、どのような順番で消費アクションを記述したとしてもまずは値チェックが実行されるようになりました。
- GS2-Dictionary: エントリーが記録済みか
- GS2-Experience: ランクが一定以下か、一定以上か、あるいは一致しているか、一致しないか
- GS2-Experience: ランクキャップが一定以下か、一定以上か、あるいは一致しているか、一致しないか
- GS2-Inventory: アイテムの所持数量が一定以下か、一定以上か、あるいは一致しているか、一致しないか
- GS2-Limit: カウンターが一定以下か、一定以上か、あるいは一致しているか、一致しないか
注意するべき点として、これから消費する消費アクションのチェックには使用するべきではありません。
アイテムの所持数量が消費アクションの消費量を上回っているか確認する といった用途は引き続きトランザクションの発行前にチェックするべきです。
このような用途の場合、上記の入力値のチェックがなくても消費アクションの実行時にリソースが不足しておりエラーとなり、入手アクションを実行することはできません。
今回の機能追加の意図として、レベルキャップの引き上げの前提条件として現在のレベルキャップが50を想定した交換レートであり、レベルキャップが55になっている場合はより高コストな交換レートを使用してレベルキャップの引き上げを行なって欲しいことをより適切に定義できるようになることを目指しています。