GS2-Enchant SDK for Game Engine API リファレンス
モデル
EzBalanceParameterModel
バランスパラメーターモデル
バランスパラメーターの抽選条件を定義します。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
name | string | ✓ | ~ 128文字 | バランスパラメーターモデル名 | |
metadata | string | ~ 2048文字 | メタデータ | ||
totalValue | long | ✓ | ~ 9223372036854775805 | 合計値 | |
initialValueStrategy | enum { “average”, “lottery” } | ✓ | “average” | ~ 128文字 | 初期値の設定方針 |
parameters | List<EzBalanceParameterValueModel> | ✓ | 1 ~ 10 items | バランスパラメーター値モデルのリスト |
initialValueStrategy に指定する列挙型の定義
定義 | 説明 |
---|---|
average | 平均値 |
lottery | 抽選 |
EzBalanceParameterValueModel
バランスパラメーター値モデル
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
name | string | ✓ | ~ 64文字 | 名前 | |
metadata | string | ~ 512文字 | メタデータ |
EzBalanceParameterStatus
バランスパラメーターの状態
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
parameterName | string | ✓ | ~ 128文字 | バランスパラメーターモデル名 | |
propertyId | string | ✓ | ~ 1024文字 | パラメーターの保有元リソースのプロパティID | |
parameterValues | List<EzBalanceParameterValue> | ✓ | 1 ~ 10 items | バランスパラメーターの値リスト |
EzBalanceParameterValue
バランスパラメーター値モデル
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
name | string | ✓ | ~ 64文字 | 名前 | |
value | long | ✓ | ~ 9223372036854775805 | 値 |
EzRarityParameterModel
レアリティパラメーターモデル
レアリティパラメーターの抽選条件を定義します。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
name | string | ✓ | ~ 128文字 | バランスパラメーターモデル名 | |
metadata | string | ~ 2048文字 | メタデータ | ||
maximumParameterCount | int | ✓ | 1 ~ 10 | 付与するパラメーターの最大数 | |
parameterCounts | List<EzRarityParameterCountModel> | ✓ | 1 ~ 10 items | レアリティパラメーターの付与数モデルのリスト | |
parameters | List<EzRarityParameterValueModel> | ✓ | 1 ~ 1000 items | レアリティパラメーター値モデルのリスト |
EzRarityParameterCountModel
レアリティパラメーターの付与数モデル
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
count | int | ✓ | ~ 10 | 値 | |
weight | int | ✓ | 1 ~ 2147483646 | 排出重み |
EzRarityParameterValueModel
バランスパラメーター値モデル
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
name | string | ✓ | ~ 64文字 | 名前 | |
metadata | string | ~ 512文字 | メタデータ | ||
resourceName | string | ✓ | ~ 64文字 | ゲーム内で使用するパラメーターリソースの種類を表す名前(GS2の動作のためには使用しません) | |
resourceValue | long | ✓ | ~ 9223372036854775805 | ゲーム内で使用するパラメーターリソースの値(GS2の動作のためには使用しません) | |
weight | int | ✓ | 1 ~ 2147483646 | 排出重み |
EzRarityParameterStatus
レアリティパラメーターの状態
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
parameterName | string | ✓ | ~ 128文字 | レアリティパラメーターモデル名 | |
propertyId | string | ✓ | ~ 1024文字 | パラメーターの保有元リソースのプロパティID | |
parameterValues | List<EzRarityParameterValue> | ~ 10 items | レアリティパラメーターの値リスト |
EzRarityParameterValue
レアリティパラメーター値モデル
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
name | string | ✓ | ~ 64文字 | 名前 | |
resourceName | string | ✓ | ~ 64文字 | リソースの名前 | |
resourceValue | long | ✓ | ~ 9223372036854775805 | リソースの値 |
メソッド
getBalanceParameterModel
バランスパラメーターモデル情報を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
parameterName | string | ✓ | ~ 128文字 | バランスパラメーターモデル名 |
Result
型 | 説明 | |
---|---|---|
item | EzBalanceParameterModel | バランスパラメーターモデル |
実装例
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).BalanceParameterModel(
parameterName: "balance-0001"
);
var item = await domain.ModelAsync();
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).BalanceParameterModel(
parameterName: "balance-0001"
);
var future = domain.Model();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->BalanceParameterModel(
"balance-0001" // parameterName
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).BalanceParameterModel(
parameterName: "balance-0001"
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).BalanceParameterModel(
parameterName: "balance-0001"
);
var future = domain.Model();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->BalanceParameterModel(
"balance-0001" // parameterName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Enchant::Model::FBalanceParameterModel> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listBalanceParameterModels
バランスパラメーターモデル情報の一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 |
Result
型 | 説明 | |
---|---|---|
items | List<EzBalanceParameterModel> | バランスパラメーターモデルのリスト |
実装例
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
);
var items = await domain.BalanceParameterModelsAsync(
).ToListAsync();
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
);
var it = domain.BalanceParameterModels(
);
List<EzBalanceParameterModel> items = new List<EzBalanceParameterModel>();
while (it.HasNext())
{
yield return it.Next();
if (it.Error != null)
{
onError.Invoke(it.Error, null);
break;
}
if (it.Current != null)
{
items.Add(it.Current);
}
else
{
break;
}
}
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
);
const auto It = Domain->BalanceParameterModels(
);
TArray<Gs2::UE5::Enchant::Model::FEzBalanceParameterModelPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeBalanceParameterModels(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeBalanceParameterModels(callbackId);
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
);
var it = domain.BalanceParameterModels(
);
List<EzBalanceParameterModel> items = new List<EzBalanceParameterModel>();
while (it.HasNext())
{
yield return it.Next();
if (it.Error != null)
{
onError.Invoke(it.Error, null);
break;
}
if (it.Current != null)
{
items.Add(it.Current);
}
else
{
break;
}
}
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeBalanceParameterModels(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeBalanceParameterModels(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
getBalanceParameterStatus
バランスパラメーターの状態を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
parameterName | string | ✓ | ~ 128文字 | バランスパラメーターモデル名 | |
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
propertyId | string | ✓ | ~ 1024文字 | パラメーターの保有元リソースのプロパティID |
Result
型 | 説明 | |
---|---|---|
item | EzBalanceParameterStatus | バランスパラメーターの状態 |
実装例
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).BalanceParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
var item = await domain.ModelAsync();
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).BalanceParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
var future = domain.Model();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->BalanceParameterStatus(
"balance-0001", // parameterName
"property-0001" // propertyId
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).BalanceParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).BalanceParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
var future = domain.Model();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->BalanceParameterStatus(
"balance-0001", // parameterName
"property-0001" // propertyId
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Enchant::Model::FBalanceParameterStatus> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listBalanceParameterStatuses
バランスパラメーターの状態の一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
parameterName | string | ~ 128文字 | バランスパラメーターモデル名 | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzBalanceParameterStatus> | バランスパラメーターモデルのリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var items = await domain.BalanceParameterStatusesAsync(
parameterName: "balance-0001"
).ToListAsync();
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.BalanceParameterStatuses(
parameterName: "balance-0001"
);
List<EzBalanceParameterStatus> items = new List<EzBalanceParameterStatus>();
while (it.HasNext())
{
yield return it.Next();
if (it.Error != null)
{
onError.Invoke(it.Error, null);
break;
}
if (it.Current != null)
{
items.Add(it.Current);
}
else
{
break;
}
}
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
const auto It = Domain->BalanceParameterStatuses(
"balance-0001" // parameterName
);
TArray<Gs2::UE5::Enchant::Model::FEzBalanceParameterStatusPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeBalanceParameterStatuses(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeBalanceParameterStatuses(callbackId);
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.BalanceParameterStatuses(
parameterName: "balance-0001"
);
List<EzBalanceParameterStatus> items = new List<EzBalanceParameterStatus>();
while (it.HasNext())
{
yield return it.Next();
if (it.Error != null)
{
onError.Invoke(it.Error, null);
break;
}
if (it.Current != null)
{
items.Add(it.Current);
}
else
{
break;
}
}
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeBalanceParameterStatuses(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeBalanceParameterStatuses(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
getRarityParameterModel
レアリティパラメーターモデル情報を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
parameterName | string | ✓ | ~ 128文字 | バランスパラメーターモデル名 |
Result
型 | 説明 | |
---|---|---|
item | EzRarityParameterModel | レアリティパラメーターモデル |
実装例
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).RarityParameterModel(
parameterName: "rarity-0001"
);
var item = await domain.ModelAsync();
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).RarityParameterModel(
parameterName: "rarity-0001"
);
var future = domain.Model();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->RarityParameterModel(
"rarity-0001" // parameterName
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).RarityParameterModel(
parameterName: "rarity-0001"
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).RarityParameterModel(
parameterName: "rarity-0001"
);
var future = domain.Model();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->RarityParameterModel(
"rarity-0001" // parameterName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Enchant::Model::FRarityParameterModel> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listRarityParameterModels
レアリティパラメーターモデル情報の一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 |
Result
型 | 説明 | |
---|---|---|
items | List<EzRarityParameterModel> | レアリティパラメーターモデルのリスト |
実装例
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
);
var items = await domain.RarityParameterModelsAsync(
).ToListAsync();
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
);
var it = domain.RarityParameterModels(
);
List<EzRarityParameterModel> items = new List<EzRarityParameterModel>();
while (it.HasNext())
{
yield return it.Next();
if (it.Error != null)
{
onError.Invoke(it.Error, null);
break;
}
if (it.Current != null)
{
items.Add(it.Current);
}
else
{
break;
}
}
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
);
const auto It = Domain->RarityParameterModels(
);
TArray<Gs2::UE5::Enchant::Model::FEzRarityParameterModelPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeRarityParameterModels(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeRarityParameterModels(callbackId);
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
);
var it = domain.RarityParameterModels(
);
List<EzRarityParameterModel> items = new List<EzRarityParameterModel>();
while (it.HasNext())
{
yield return it.Next();
if (it.Error != null)
{
onError.Invoke(it.Error, null);
break;
}
if (it.Current != null)
{
items.Add(it.Current);
}
else
{
break;
}
}
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeRarityParameterModels(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeRarityParameterModels(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
getRarityParameterStatus
レアリティパラメーターの状態を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
parameterName | string | ✓ | ~ 128文字 | レアリティパラメーターモデル名 | |
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
propertyId | string | ✓ | ~ 1024文字 | パラメーターの保有元リソースのプロパティID |
Result
型 | 説明 | |
---|---|---|
item | EzRarityParameterStatus | レアリティパラメーターの状態 |
実装例
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).RarityParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
var item = await domain.ModelAsync();
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).RarityParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
var future = domain.Model();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->RarityParameterStatus(
"balance-0001", // parameterName
"property-0001" // propertyId
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).RarityParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).RarityParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
var future = domain.Model();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->RarityParameterStatus(
"balance-0001", // parameterName
"property-0001" // propertyId
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Enchant::Model::FRarityParameterStatus> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listRarityParameterStatuses
レアリティパラメーターの状態の一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
parameterName | string | ~ 128文字 | レアリティパラメーターモデル名 | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzRarityParameterStatus> | レアリティパラメーターモデルのリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var items = await domain.RarityParameterStatusesAsync(
parameterName: "rarity-0001"
).ToListAsync();
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.RarityParameterStatuses(
parameterName: "rarity-0001"
);
List<EzRarityParameterStatus> items = new List<EzRarityParameterStatus>();
while (it.HasNext())
{
yield return it.Next();
if (it.Error != null)
{
onError.Invoke(it.Error, null);
break;
}
if (it.Current != null)
{
items.Add(it.Current);
}
else
{
break;
}
}
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
const auto It = Domain->RarityParameterStatuses(
"rarity-0001" // parameterName
);
TArray<Gs2::UE5::Enchant::Model::FEzRarityParameterStatusPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeRarityParameterStatuses(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeRarityParameterStatuses(callbackId);
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.RarityParameterStatuses(
parameterName: "rarity-0001"
);
List<EzRarityParameterStatus> items = new List<EzRarityParameterStatus>();
while (it.HasNext())
{
yield return it.Next();
if (it.Error != null)
{
onError.Invoke(it.Error, null);
break;
}
if (it.Current != null)
{
items.Add(it.Current);
}
else
{
break;
}
}
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeRarityParameterStatuses(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeRarityParameterStatuses(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
verifyRarityParameterStatus
レアリティパラメーターに関する検証
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
parameterName | string | ✓ | ~ 128文字 | レアリティパラメーターモデル名 | |
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
propertyId | string | ✓ | ~ 1024文字 | パラメーターの保有元リソースのプロパティID | |
verifyType | enum { “havent”, “have”, “count” } | ✓ | ~ 128文字 | 検証の種類 | |
parameterValueName | string | {verifyType} in [“havent”, “have”] | ~ 64文字 | 名前 | |
parameterCount | int | {verifyType} in [“count”] | ~ 10 | 検証するパラメーターの数 |
verifyType に指定する列挙型の定義
定義 | 説明 |
---|---|
havent | 指定したパラメーターを保有していないこと |
have | 指定したパラメーターを保有していること |
count | 保有しているパラメーターの数が指定数であること |
Result
型 | 説明 | |
---|---|---|
item | EzRarityParameterStatus | レアリティパラメーターの状態 |
実装例
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).RarityParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
var result = await domain.VerifyRarityParameterStatusAsync(
verifyType: "have",
parameterValueName: "parameter-0001",
parameterCount:
);
var item = await result.ModelAsync();
var domain = gs2.Enchant.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).RarityParameterStatus(
parameterName: "balance-0001",
propertyId: "property-0001"
);
var future = domain.VerifyRarityParameterStatusFuture(
verifyType: "have",
parameterValueName: "parameter-0001",
parameterCount:
);
yield return future;
if (future.Error != null)
{
onError.Invoke(future.Error, null);
yield break;
}
var future2 = future.Result.Model();
yield return future2;
if (future2.Error != null)
{
onError.Invoke(future2.Error, null);
yield break;
}
var result = future2.Result;
const auto Domain = Gs2->Enchant->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->RarityParameterStatus(
"balance-0001", // parameterName
"property-0001" // propertyId
);
const auto Future = Domain->VerifyRarityParameterStatus(
"have", // verifyType
"parameter-0001", // parameterValueName
// parameterCount
);
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
// obtain changed values / result values
const auto Future2 = Future->GetTask().Result()->Model();
Future2->StartSynchronousTask();
if (Future2->GetTask().IsError())
{
return Future2->GetTask().Error();
}
const auto Result = Future2->GetTask().Result();