GS2-Ranking2 SDK for Game Engine API リファレンス
モデル
EzGlobalRankingData
グローバルランキング
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ✓ | ~ 9223372036854775805 | シーズン | |
userId | string | ✓ | ~ 128文字 | ユーザーID | |
index | int | ~ 2147483646 | ランキングインデックス | ||
rank | int | ~ 2147483646 | ランキング順位 | ||
score | long | ✓ | ~ 9223372036854775805 | スコア | |
metadata | string | ~ 512文字 | メタデータ | ||
updatedAt | long | ✓ | 現在時刻 | 最終更新日時 (UNIX時間 単位:ミリ秒) |
EzGlobalRankingModel
グローバルランキングモデル
グローバルランキングは全てのプレイヤーを対象としたランキングを実現するためのモデルです。
上位1000位までのランキングを表示することができます。
GS2-Schedule の繰り返しイベントと関連づけると、繰り返し回数に応じてランキングをリセットすることができます。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
globalRankingModelId | string | ✓ | ~ 1024文字 | グローバルランキングGRN | |
name | string | ✓ | ~ 128文字 | ランキング名 | |
metadata | string | ~ 1024文字 | メタデータ | ||
rankingRewards | List<EzRankingReward> | {entryPeriodEventId} != null | ~ 100 items | ランキング報酬リスト | |
entryPeriodEventId | string | ~ 1024文字 | スコアの登録可能期間 GS2-Schedule イベントGRN | ||
accessPeriodEventId | string | ~ 1024文字 | ランキングデータへのアクセス可能期間 GS2-Schedule イベントGRN |
EzGlobalRankingReceivedReward
グローバルランキング報酬受け取り履歴
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ✓ | ~ 9223372036854775805 | シーズン | |
userId | string | ✓ | ~ 128文字 | ユーザーID | |
receivedAt | long | ✓ | 現在時刻 | 作成日時 (UNIX時間 単位:ミリ秒) |
EzGlobalRankingScore
グローバルランキングスコア
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ✓ | ~ 9223372036854775805 | シーズン | |
userId | string | ✓ | ~ 128文字 | ユーザーID | |
score | long | ✓ | ~ 9223372036854775805 | スコア | |
metadata | string | ~ 512文字 | メタデータ | ||
updatedAt | long | ✓ | 現在時刻 | 最終更新日時 (UNIX時間 単位:ミリ秒) |
EzClusterRankingData
クラスターランキング
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
clusterName | string | ✓ | ~ 1024文字 | クラスター名 | |
season | long | ✓ | ~ 9223372036854775805 | シーズン | |
userId | string | ✓ | ~ 128文字 | ユーザーID | |
index | int | ~ 2147483646 | ランキングインデックス | ||
rank | int | ~ 2147483646 | ランキング順位 | ||
score | long | ✓ | ~ 9223372036854775805 | スコア | |
metadata | string | ~ 512文字 | メタデータ | ||
updatedAt | long | ✓ | 現在時刻 | 最終更新日時 (UNIX時間 単位:ミリ秒) |
EzClusterRankingModel
クラスターランキングモデル
クラスターランキングはギルドやギャザリング内のプレイヤーを対象としたランキングを実現するためのモデルです。
上位1000位までのランキングを表示することができます。
GS2-Schedule の繰り返しイベントと関連づけると、繰り返し回数に応じてランキングをリセットすることができます。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
clusterRankingModelId | string | ✓ | ~ 1024文字 | クラスターランキングGRN | |
name | string | ✓ | ~ 128文字 | ランキング名 | |
metadata | string | ~ 1024文字 | メタデータ | ||
clusterType | enum { “Raw”, “Gs2Guild::Guild”, “Gs2Matchmaking::SeasonGathering” } | ✓ | ~ 128文字 | クラスタータイプ | |
rankingRewards | List<EzRankingReward> | {entryPeriodEventId} != null | ~ 100 items | ランキング報酬リスト | |
entryPeriodEventId | string | ~ 1024文字 | スコアの登録可能期間 GS2-Schedule イベントGRN | ||
accessPeriodEventId | string | ~ 1024文字 | ランキングデータへのアクセス可能期間 GS2-Schedule イベントGRN |
clusterType に指定する列挙型の定義
定義 | 説明 |
---|---|
Raw | 検証なし |
Gs2Guild::Guild | GS2-Guild ギルド |
Gs2Matchmaking::SeasonGathering | GS2-Matchmaking シーズンギャザリング |
EzClusterRankingReceivedReward
クラスターランキング報酬受け取り履歴
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
clusterName | string | ✓ | ~ 1024文字 | クラスター名 | |
season | long | ✓ | ~ 9223372036854775805 | シーズン | |
userId | string | ✓ | ~ 128文字 | ユーザーID | |
receivedAt | long | ✓ | 現在時刻 | 作成日時 (UNIX時間 単位:ミリ秒) |
EzClusterRankingScore
クラスターランキングスコア
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
clusterName | string | ✓ | ~ 1024文字 | クラスター名 | |
season | long | ✓ | ~ 9223372036854775805 | シーズン | |
userId | string | ✓ | ~ 128文字 | ユーザーID | |
score | long | ✓ | ~ 9223372036854775805 | スコア | |
metadata | string | ~ 512文字 | メタデータ | ||
updatedAt | long | ✓ | 現在時刻 | 最終更新日時 (UNIX時間 単位:ミリ秒) |
EzSubscribeRankingData
購読ランキング
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ✓ | ~ 9223372036854775805 | シーズン | |
userId | string | ✓ | ~ 128文字 | ユーザーID | |
index | int | ~ 2147483646 | ランキングインデックス | ||
rank | int | ~ 2147483646 | ランキング順位 | ||
score | long | ✓ | ~ 9223372036854775805 | スコア | |
metadata | string | ~ 512文字 | メタデータ | ||
updatedAt | long | ✓ | 現在時刻 | 最終更新日時 (UNIX時間 単位:ミリ秒) |
EzSubscribeRankingModel
購読ランキングモデル
購読した他プレイヤーのスコアを集計し、ランキングを作成するモデルです。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
subscribeRankingModelId | string | ✓ | ~ 1024文字 | グローバルランキングGRN | |
name | string | ✓ | ~ 128文字 | ランキング名 | |
metadata | string | ~ 1024文字 | メタデータ | ||
entryPeriodEventId | string | ~ 1024文字 | スコアの登録可能期間 GS2-Schedule イベントGRN | ||
accessPeriodEventId | string | ~ 1024文字 | ランキングデータへのアクセス可能期間 GS2-Schedule イベントGRN |
EzSubscribeRankingScore
購読ランキングスコア
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ✓ | ~ 9223372036854775805 | シーズン | |
userId | string | ✓ | ~ 128文字 | ユーザーID | |
score | long | ✓ | ~ 9223372036854775805 | スコア | |
metadata | string | ~ 512文字 | メタデータ | ||
updatedAt | long | ✓ | 現在時刻 | 最終更新日時 (UNIX時間 単位:ミリ秒) |
EzRankingReward
ランキング報酬モデル
スコアの登録期間が設定されたランキングで、登録期間外で参照期間内の時に受け取れる報酬を設定します。
繰り返し設定が有効な場合、直近に期間を終えたランキングが報酬の受け取り対象となります。
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
thresholdRank | int | ✓ | 1 ~ 1001 | 順位閾値 | |
metadata | string | ~ 1024文字 | メタデータ | ||
acquireActions | List<EzAcquireAction> | [] | ~ 100 items | ランキング報酬リスト |
EzAcquireAction
入手アクション
EzConfig
コンフィグ設定
トランザクションの変数に適用する設定値
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
key | string | ✓ | ~ 64文字 | 名前 | |
value | string | ~ 51200文字 | 値 |
EzSubscribeUser
購読情報
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
userId | string | ✓ | ~ 128文字 | ユーザーID | |
targetUserId | string | ✓ | ~ 128文字 | 購読対象ユーザID |
EzVerifyActionResult
検証アクションの実行結果
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
action | enum { } | ✓ | ~ 128文字 | 検証アクションで実行するアクションの種類 | |
verifyRequest | string | ✓ | ~ 1048576文字 | リクエストのJSON | |
statusCode | int | ~ 999 | ステータスコード | ||
verifyResult | string | ~ 1048576文字 | 結果内容 |
action に指定する列挙型の定義
定義 | 説明 |
---|
EzConsumeActionResult
消費アクションの実行結果
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
action | enum { } | ✓ | ~ 128文字 | 消費アクションで実行するアクションの種類 | |
consumeRequest | string | ✓ | ~ 1048576文字 | リクエストのJSON | |
statusCode | int | ~ 999 | ステータスコード | ||
consumeResult | string | ~ 1048576文字 | 結果内容 |
action に指定する列挙型の定義
定義 | 説明 |
---|
EzAcquireActionResult
入手アクションの実行結果
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
action | enum { } | ✓ | ~ 128文字 | 入手アクションで実行するアクションの種類 | |
acquireRequest | string | ✓ | ~ 1048576文字 | リクエストのJSON | |
statusCode | int | ~ 999 | ステータスコード | ||
acquireResult | string | ~ 1048576文字 | 結果内容 |
action に指定する列挙型の定義
定義 | 説明 |
---|
EzTransactionResult
トランザクション実行結果
サーバーサイドでのトランザクションの自動実行機能を利用して実行されたトランザクションの実行結果
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
transactionId | string | ✓ | 36 ~ 36文字 | トランザクションID | |
verifyResults | List<EzVerifyActionResult> | ~ 10 items | 検証アクションの実行結果リスト | ||
consumeResults | List<EzConsumeActionResult> | ~ 10 items | 消費アクションの実行結果リスト | ||
acquireResults | List<EzAcquireActionResult> | ~ 100 items | 入手アクションの実行結果リスト |
メソッド
getGlobalRankingRank
グローバルランキングを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID |
Result
型 | 説明 | |
---|---|---|
item | EzGlobalRankingData | グローバルランキング |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).GlobalRankingModel(
rankingName: "ranking-0001"
).GlobalRankingSeason(
season: null
).GlobalRankingData(
userId: "user-0001"
);
var result = await domain.GetGlobalRankingRankAsync(
);
var item = await result.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).GlobalRankingModel(
rankingName: "ranking-0001"
).GlobalRankingSeason(
season: null
).GlobalRankingData(
userId: "user-0001"
);
var future = domain.GetGlobalRankingRankFuture(
);
yield return future;
if (future.Error != null)
{
onError.Invoke(future.Error, null);
yield break;
}
var future2 = future.Result.ModelFuture();
yield return future2;
if (future2.Error != null)
{
onError.Invoke(future2.Error, null);
yield break;
}
var result = future2.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->GlobalRankingModel(
"ranking-0001" // rankingName
)->GlobalRankingSeason(
nullptr // season
)->GlobalRankingData(
"user-0001" // userId
);
const auto Future = Domain->GetGlobalRankingRank(
);
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();
listGlobalRankings
グローバルランキングの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzGlobalRankingData> | グローバルランキングのリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).GlobalRankingModel(
rankingName: "ranking-0001"
).GlobalRankingSeason(
season: null
);
var items = await domain.GlobalRankingsAsync(
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).GlobalRankingModel(
rankingName: "ranking-0001"
).GlobalRankingSeason(
season: null
);
var it = domain.GlobalRankings(
);
List<EzGlobalRankingData> items = new List<EzGlobalRankingData>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->GlobalRankingModel(
"ranking-0001" // rankingName
)->GlobalRankingSeason(
nullptr // season
);
const auto It = Domain->GlobalRankings(
);
TArray<Gs2::UE5::Ranking2::Model::FEzGlobalRankingDataPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
getGlobalRankingModel
グローバルランキングモデルを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 |
Result
型 | 説明 | |
---|---|---|
item | EzGlobalRankingModel | グローバルランキングモデル |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).GlobalRankingModel(
rankingName: "ranking-0001"
);
var item = await domain.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).GlobalRankingModel(
rankingName: "ranking-0001"
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->GlobalRankingModel(
"ranking-0001" // rankingName
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).GlobalRankingModel(
rankingName: "ranking-0001"
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).GlobalRankingModel(
rankingName: "ranking-0001"
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->GlobalRankingModel(
"ranking-0001" // rankingName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Ranking2::Model::FGlobalRankingModel> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listGlobalRankingModels
グローバルランキングモデルの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 |
Result
型 | 説明 | |
---|---|---|
items | List<EzGlobalRankingModel> | グローバルランキングモデルのリスト |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
var items = await domain.GlobalRankingModelsAsync(
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
var it = domain.GlobalRankingModels(
);
List<EzGlobalRankingModel> items = new List<EzGlobalRankingModel>();
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->Ranking2->Namespace(
nullptr // namespaceName
);
const auto It = Domain->GlobalRankingModels(
);
TArray<Gs2::UE5::Ranking2::Model::FEzGlobalRankingModelPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeGlobalRankingModels(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeGlobalRankingModels(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
var it = domain.GlobalRankingModels(
);
List<EzGlobalRankingModel> items = new List<EzGlobalRankingModel>();
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->Ranking2->Namespace(
nullptr // namespaceName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeGlobalRankingModels(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeGlobalRankingModels(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
getGlobalRankingReceivedReward
グローバルランキングの報酬受け取り状況を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID |
Result
型 | 説明 | |
---|---|---|
item | EzGlobalRankingReceivedReward | グローバルランキング報酬受け取り履歴 |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).GlobalRankingReceivedReward(
rankingName: "ranking-0001",
season: 0
);
var item = await domain.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).GlobalRankingReceivedReward(
rankingName: "ranking-0001",
season: 0
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->GlobalRankingReceivedReward(
"ranking-0001", // rankingName
0 // season
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).GlobalRankingReceivedReward(
rankingName: "ranking-0001",
season: 0
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).GlobalRankingReceivedReward(
rankingName: "ranking-0001",
season: 0
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->GlobalRankingReceivedReward(
"ranking-0001", // rankingName
0 // season
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Ranking2::Model::FGlobalRankingReceivedReward> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listGlobalRankingReceivedRewards
グローバルランキングの報酬受け取り状況一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ~ 128文字 | ランキング名 | ||
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzGlobalRankingReceivedReward> | グローバルランキング報酬受け取り履歴のリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var items = await domain.GlobalRankingReceivedRewardsAsync(
rankingName: "ranking-0001",
season: 0L
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.GlobalRankingReceivedRewards(
rankingName: "ranking-0001",
season: 0L
);
List<EzGlobalRankingReceivedReward> items = new List<EzGlobalRankingReceivedReward>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
const auto It = Domain->GlobalRankingReceivedRewards(
"ranking-0001", // rankingName
0L // season
);
TArray<Gs2::UE5::Ranking2::Model::FEzGlobalRankingReceivedRewardPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeGlobalRankingReceivedRewards(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeGlobalRankingReceivedRewards(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.GlobalRankingReceivedRewards(
rankingName: "ranking-0001",
season: 0L
);
List<EzGlobalRankingReceivedReward> items = new List<EzGlobalRankingReceivedReward>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeGlobalRankingReceivedRewards(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeGlobalRankingReceivedRewards(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
getGlobalRankingScore
グローバルランキングスコアを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID |
Result
型 | 説明 | |
---|---|---|
item | EzGlobalRankingScore | グローバルランキングスコア |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).GlobalRankingScore(
rankingName: "ranking-0001",
season: 0
);
var item = await domain.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).GlobalRankingScore(
rankingName: "ranking-0001",
season: 0
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->GlobalRankingScore(
"ranking-0001", // rankingName
0 // season
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).GlobalRankingScore(
rankingName: "ranking-0001",
season: 0
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).GlobalRankingScore(
rankingName: "ranking-0001",
season: 0
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->GlobalRankingScore(
"ranking-0001", // rankingName
0 // season
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Ranking2::Model::FGlobalRankingScore> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listGlobalRankingScores
グローバルランキングスコアの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ~ 128文字 | ランキング名 | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzGlobalRankingScore> | グローバルランキングスコアのリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var items = await domain.GlobalRankingScoresAsync(
rankingName: "ranking-0001"
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.GlobalRankingScores(
rankingName: "ranking-0001"
);
List<EzGlobalRankingScore> items = new List<EzGlobalRankingScore>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
const auto It = Domain->GlobalRankingScores(
"ranking-0001" // rankingName
);
TArray<Gs2::UE5::Ranking2::Model::FEzGlobalRankingScorePtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeGlobalRankingScores(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeGlobalRankingScores(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.GlobalRankingScores(
rankingName: "ranking-0001"
);
List<EzGlobalRankingScore> items = new List<EzGlobalRankingScore>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeGlobalRankingScores(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeGlobalRankingScores(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
putGlobalRanking
グローバルランキングスコアを登録
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
score | long | ✓ | ~ 9223372036854775805 | スコア | |
metadata | string | ~ 512文字 | メタデータ |
Result
型 | 説明 | |
---|---|---|
item | EzGlobalRankingScore | 登録したグローバルランキングスコア |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var result = await domain.PutGlobalRankingAsync(
rankingName: "ranking-0001",
score: 100L,
metadata: null
);
var item = await result.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var future = domain.PutGlobalRankingFuture(
rankingName: "ranking-0001",
score: 100L,
metadata: null
);
yield return future;
if (future.Error != null)
{
onError.Invoke(future.Error, null);
yield break;
}
var future2 = future.Result.ModelFuture();
yield return future2;
if (future2.Error != null)
{
onError.Invoke(future2.Error, null);
yield break;
}
var result = future2.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
const auto Future = Domain->PutGlobalRanking(
"ranking-0001", // rankingName
100L // score
// metadata
);
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();
getClusterRankingRank
クラスターランキングを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
clusterName | string | ✓ | ~ 1024文字 | クラスター名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID |
Result
型 | 説明 | |
---|---|---|
item | EzClusterRankingData | クラスターランキング |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).ClusterRankingModel(
rankingName: "ranking-0001"
).ClusterRankingSeason(
clusterName: "cluster-0001",
season: null
).ClusterRankingData(
userId: "user-0001"
);
var result = await domain.GetClusterRankingRankAsync(
);
var item = await result.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).ClusterRankingModel(
rankingName: "ranking-0001"
).ClusterRankingSeason(
clusterName: "cluster-0001",
season: null
).ClusterRankingData(
userId: "user-0001"
);
var future = domain.GetClusterRankingRankFuture(
);
yield return future;
if (future.Error != null)
{
onError.Invoke(future.Error, null);
yield break;
}
var future2 = future.Result.ModelFuture();
yield return future2;
if (future2.Error != null)
{
onError.Invoke(future2.Error, null);
yield break;
}
var result = future2.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->ClusterRankingModel(
"ranking-0001" // rankingName
)->ClusterRankingSeason(
"cluster-0001", // clusterName
nullptr // season
)->ClusterRankingData(
"user-0001" // userId
);
const auto Future = Domain->GetClusterRankingRank(
);
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();
listClusterRankings
クラスターランキングの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
clusterName | string | ✓ | ~ 1024文字 | クラスター名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzClusterRankingData> | クラスターランキングのリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).ClusterRankingModel(
rankingName: "ranking-0001"
).ClusterRankingSeason(
clusterName: "cluster-0001",
season: null
);
var items = await domain.ClusterRankingsAsync(
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).ClusterRankingModel(
rankingName: "ranking-0001"
).ClusterRankingSeason(
clusterName: "cluster-0001",
season: null
);
var it = domain.ClusterRankings(
);
List<EzClusterRankingData> items = new List<EzClusterRankingData>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->ClusterRankingModel(
"ranking-0001" // rankingName
)->ClusterRankingSeason(
"cluster-0001", // clusterName
nullptr // season
);
const auto It = Domain->ClusterRankings(
);
TArray<Gs2::UE5::Ranking2::Model::FEzClusterRankingDataPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
getClusterRankingModel
クラスターランキングモデルを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 |
Result
型 | 説明 | |
---|---|---|
item | EzClusterRankingModel | クラスターランキングモデル |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).ClusterRankingModel(
rankingName: "ranking-0001"
);
var item = await domain.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).ClusterRankingModel(
rankingName: "ranking-0001"
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->ClusterRankingModel(
"ranking-0001" // rankingName
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).ClusterRankingModel(
rankingName: "ranking-0001"
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).ClusterRankingModel(
rankingName: "ranking-0001"
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->ClusterRankingModel(
"ranking-0001" // rankingName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Ranking2::Model::FClusterRankingModel> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listClusterRankingModels
クラスターランキングモデルの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 |
Result
型 | 説明 | |
---|---|---|
items | List<EzClusterRankingModel> | クラスターランキングモデルのリスト |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
var items = await domain.ClusterRankingModelsAsync(
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
var it = domain.ClusterRankingModels(
);
List<EzClusterRankingModel> items = new List<EzClusterRankingModel>();
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->Ranking2->Namespace(
nullptr // namespaceName
);
const auto It = Domain->ClusterRankingModels(
);
TArray<Gs2::UE5::Ranking2::Model::FEzClusterRankingModelPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeClusterRankingModels(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeClusterRankingModels(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
var it = domain.ClusterRankingModels(
);
List<EzClusterRankingModel> items = new List<EzClusterRankingModel>();
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->Ranking2->Namespace(
nullptr // namespaceName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeClusterRankingModels(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeClusterRankingModels(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
getClusterRankingReceivedReward
クラスターランキングの報酬受け取り状況を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
clusterName | string | ✓ | ~ 1024文字 | クラスター名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID |
Result
型 | 説明 | |
---|---|---|
item | EzClusterRankingReceivedReward | クラスターランキング報酬受け取り履歴 |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).ClusterRankingReceivedReward(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0
);
var item = await domain.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).ClusterRankingReceivedReward(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->ClusterRankingReceivedReward(
"ranking-0001", // rankingName
"cluster-0001", // clusterName
0 // season
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).ClusterRankingReceivedReward(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).ClusterRankingReceivedReward(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->ClusterRankingReceivedReward(
"ranking-0001", // rankingName
"cluster-0001", // clusterName
0 // season
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Ranking2::Model::FClusterRankingReceivedReward> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listClusterRankingReceivedRewards
クラスターランキングの報酬受け取り状況一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ~ 128文字 | ランキング名 | ||
clusterName | string | ~ 1024文字 | クラスター名 | ||
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzClusterRankingReceivedReward> | クラスターランキング報酬受け取り履歴のリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var items = await domain.ClusterRankingReceivedRewardsAsync(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0L
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.ClusterRankingReceivedRewards(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0L
);
List<EzClusterRankingReceivedReward> items = new List<EzClusterRankingReceivedReward>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
const auto It = Domain->ClusterRankingReceivedRewards(
"ranking-0001", // rankingName
"cluster-0001", // clusterName
0L // season
);
TArray<Gs2::UE5::Ranking2::Model::FEzClusterRankingReceivedRewardPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeClusterRankingReceivedRewards(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeClusterRankingReceivedRewards(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.ClusterRankingReceivedRewards(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0L
);
List<EzClusterRankingReceivedReward> items = new List<EzClusterRankingReceivedReward>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeClusterRankingReceivedRewards(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeClusterRankingReceivedRewards(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
getClusterRankingScore
クラスターランキングスコアを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
clusterName | string | ✓ | ~ 1024文字 | クラスター名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID |
Result
型 | 説明 | |
---|---|---|
item | EzClusterRankingScore | クラスターランキングスコア |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).ClusterRankingScore(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0
);
var item = await domain.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).ClusterRankingScore(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->ClusterRankingScore(
"ranking-0001", // rankingName
"cluster-0001", // clusterName
0 // season
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).ClusterRankingScore(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).ClusterRankingScore(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->ClusterRankingScore(
"ranking-0001", // rankingName
"cluster-0001", // clusterName
0 // season
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Ranking2::Model::FClusterRankingScore> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listClusterRankingScores
クラスターランキングスコアの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ~ 128文字 | ランキング名 | ||
clusterName | string | ~ 1024文字 | クラスター名 | ||
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzClusterRankingScore> | クラスターランキングスコアのリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var items = await domain.ClusterRankingScoresAsync(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0L
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.ClusterRankingScores(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0L
);
List<EzClusterRankingScore> items = new List<EzClusterRankingScore>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
const auto It = Domain->ClusterRankingScores(
"ranking-0001", // rankingName
"cluster-0001", // clusterName
0L // season
);
TArray<Gs2::UE5::Ranking2::Model::FEzClusterRankingScorePtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeClusterRankingScores(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeClusterRankingScores(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.ClusterRankingScores(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
season: 0L
);
List<EzClusterRankingScore> items = new List<EzClusterRankingScore>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeClusterRankingScores(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeClusterRankingScores(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
putClusterRanking
クラスターランキングスコアを登録
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
clusterName | string | ✓ | ~ 1024文字 | クラスター名 | |
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
score | long | ✓ | ~ 9223372036854775805 | スコア | |
metadata | string | ~ 512文字 | メタデータ |
Result
型 | 説明 | |
---|---|---|
item | EzClusterRankingScore | 登録したクラスターランキングスコア |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var result = await domain.PutClusterRankingAsync(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
score: 100L,
metadata: null
);
var item = await result.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var future = domain.PutClusterRankingFuture(
rankingName: "ranking-0001",
clusterName: "cluster-0001",
score: 100L,
metadata: null
);
yield return future;
if (future.Error != null)
{
onError.Invoke(future.Error, null);
yield break;
}
var future2 = future.Result.ModelFuture();
yield return future2;
if (future2.Error != null)
{
onError.Invoke(future2.Error, null);
yield break;
}
var result = future2.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
const auto Future = Domain->PutClusterRanking(
"ranking-0001", // rankingName
"cluster-0001", // clusterName
100L // score
// metadata
);
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();
getSubscribe
購読ユーザーを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
targetUserId | string | ✓ | ~ 128文字 | 購読対象のユーザーID |
Result
型 | 説明 | |
---|---|---|
item | EzSubscribeUser | 購読対象のユーザーID |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).Subscribe(
rankingName: "ranking-0001"
).SubscribeUser(
targetUserId: "user-0002"
);
var result = await domain.GetSubscribeAsync(
);
var item = await result.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).Subscribe(
rankingName: "ranking-0001"
).SubscribeUser(
targetUserId: "user-0002"
);
var future = domain.GetSubscribeFuture(
);
yield return future;
if (future.Error != null)
{
onError.Invoke(future.Error, null);
yield break;
}
var future2 = future.Result.ModelFuture();
yield return future2;
if (future2.Error != null)
{
onError.Invoke(future2.Error, null);
yield break;
}
var result = future2.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->Subscribe(
"ranking-0001" // rankingName
)->SubscribeUser(
"user-0002" // targetUserId
);
const auto Future = Domain->GetSubscribe(
);
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();
listSubscribes
購読ユーザーの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ~ 128文字 | ランキング名 | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzSubscribeUser> | 購読対象のユーザーIDのリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var items = await domain.SubscribesAsync(
rankingName: "ranking-0001"
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.Subscribes(
rankingName: "ranking-0001"
);
List<EzSubscribeUser> items = new List<EzSubscribeUser>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
const auto It = Domain->Subscribes(
"ranking-0001" // rankingName
);
TArray<Gs2::UE5::Ranking2::Model::FEzSubscribeUserPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeSubscribes(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeSubscribes(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
);
var it = domain.Subscribes(
rankingName: "ranking-0001"
);
List<EzSubscribeUser> items = new List<EzSubscribeUser>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeSubscribes(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeSubscribes(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
getSubscribeRankingRank
購読ランキングを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID |
Result
型 | 説明 | |
---|---|---|
item | EzSubscribeRankingData | 購読ランキング |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: null
).SubscribeRankingData(
scorerUserId: null
);
var result = await domain.GetSubscribeRankingRankAsync(
);
var item = await result.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: null
).SubscribeRankingData(
scorerUserId: null
);
var future = domain.GetSubscribeRankingRankFuture(
);
yield return future;
if (future.Error != null)
{
onError.Invoke(future.Error, null);
yield break;
}
var future2 = future.Result.ModelFuture();
yield return future2;
if (future2.Error != null)
{
onError.Invoke(future2.Error, null);
yield break;
}
var result = future2.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->SubscribeRankingSeason(
"ranking-0001", // rankingName
nullptr // season
)->SubscribeRankingData(
nullptr // scorerUserId
);
const auto Future = Domain->GetSubscribeRankingRank(
);
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();
listSubscribeRankings
購読ランキングの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzSubscribeRankingData> | 購読ランキングのリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: null
);
var items = await domain.SubscribeRankingsAsync(
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: null
);
var it = domain.SubscribeRankings(
);
List<EzSubscribeRankingData> items = new List<EzSubscribeRankingData>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->SubscribeRankingSeason(
"ranking-0001", // rankingName
nullptr // season
);
const auto It = Domain->SubscribeRankings(
);
TArray<Gs2::UE5::Ranking2::Model::FEzSubscribeRankingDataPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
getSubscribeRankingModel
購読ランキングモデルを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 |
Result
型 | 説明 | |
---|---|---|
item | EzSubscribeRankingModel | 購読ランキングモデル |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).SubscribeRankingModel(
rankingName: "ranking-0001"
);
var item = await domain.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).SubscribeRankingModel(
rankingName: "ranking-0001"
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->SubscribeRankingModel(
"ranking-0001" // rankingName
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).SubscribeRankingModel(
rankingName: "ranking-0001"
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).SubscribeRankingModel(
rankingName: "ranking-0001"
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->SubscribeRankingModel(
"ranking-0001" // rankingName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Ranking2::Model::FSubscribeRankingModel> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listSubscribeRankingModels
購読ランキングモデルの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 |
Result
型 | 説明 | |
---|---|---|
items | List<EzSubscribeRankingModel> | 購読ランキングモデルのリスト |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
var items = await domain.SubscribeRankingModelsAsync(
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
var it = domain.SubscribeRankingModels(
);
List<EzSubscribeRankingModel> items = new List<EzSubscribeRankingModel>();
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->Ranking2->Namespace(
nullptr // namespaceName
);
const auto It = Domain->SubscribeRankingModels(
);
TArray<Gs2::UE5::Ranking2::Model::FEzSubscribeRankingModelPtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeSubscribeRankingModels(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeSubscribeRankingModels(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: null
);
var it = domain.SubscribeRankingModels(
);
List<EzSubscribeRankingModel> items = new List<EzSubscribeRankingModel>();
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->Ranking2->Namespace(
nullptr // namespaceName
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeSubscribeRankingModels(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeSubscribeRankingModels(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
getSubscribeRankingScore
購読ランキングスコアを取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
season | long | ~ 9223372036854775805 | シーズン | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID |
Result
型 | 説明 | |
---|---|---|
item | EzSubscribeRankingScore | 購読ランキングスコア |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
).SubscribeRankingScore(
);
var item = await domain.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
).SubscribeRankingScore(
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->SubscribeRankingSeason(
"ranking-0001", // rankingName
0 // season
)->SubscribeRankingScore(
);
const auto Future = Domain->Model();
Future->StartSynchronousTask();
if (Future->GetTask().IsError())
{
return false;
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
).SubscribeRankingScore(
);
// イベントハンドリングを開始
var callbackId = domain.Subscribe(
value => {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
domain.Unsubscribe(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
).SubscribeRankingScore(
);
var future = domain.ModelFuture();
yield return future;
var item = future.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->SubscribeRankingSeason(
"ranking-0001", // rankingName
0 // season
)->SubscribeRankingScore(
);
// イベントハンドリングを開始
const auto CallbackId = Domain->Subscribe(
[](TSharedPtr<Gs2::Ranking2::Model::FSubscribeRankingScore> value) {
// 値が変化した時に呼び出される
// value には変更後の値が渡ってくる
}
);
// イベントハンドリングを停止
Domain->Unsubscribe(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
listSubscribeRankingScores
購読ランキングスコアの一覧を取得
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ~ 128文字 | ランキング名 | ||
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
pageToken | string | ~ 1024文字 | データの取得を開始する位置を指定するトークン | ||
limit | int | ✓ | 30 | 1 ~ 1000 | データの取得件数 |
Result
型 | 説明 | |
---|---|---|
items | List<EzSubscribeRankingScore> | 購読ランキングスコアのリスト |
nextPageToken | string | リストの続きを取得するためのページトークン |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
);
var items = await domain.SubscribeRankingScoresAsync(
).ToListAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
);
var it = domain.SubscribeRankingScores(
);
List<EzSubscribeRankingScore> items = new List<EzSubscribeRankingScore>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->SubscribeRankingSeason(
"ranking-0001", // rankingName
0 // season
);
const auto It = Domain->SubscribeRankingScores(
);
TArray<Gs2::UE5::Ranking2::Model::FEzSubscribeRankingScorePtr> Result;
for (auto Item : *It)
{
if (Item.IsError())
{
return false;
}
Result.Add(Item.Current());
}
値の変更イベントハンドリング
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
);
// イベントハンドリングを開始
var callbackId = domain.SubscribeSubscribeRankingScores(
() => {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
domain.UnsubscribeSubscribeRankingScores(callbackId);
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
);
var it = domain.SubscribeRankingScores(
);
List<EzSubscribeRankingScore> items = new List<EzSubscribeRankingScore>();
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->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->SubscribeRankingSeason(
"ranking-0001", // rankingName
0 // season
);
// イベントハンドリングを開始
const auto CallbackId = Domain->SubscribeSubscribeRankingScores(
[]() {
// リストの要素が変化した時に呼び出される
}
);
// イベントハンドリングを停止
Domain->UnsubscribeSubscribeRankingScores(CallbackId);
Warning
このイベントはSDKがもつローカルキャッシュの値が変更された時に呼び出されます。
ローカルキャッシュは SDK が持つ API の実行、または GS2-Gateway の通知を有効にした GS2-Distributor 経由でのスタンプシートの実行、または GS2-Gateway の通知を有効にした GS2-JobQueue の実行によって変化したもののみが対象となります。
そのため、これらの方法以外で値が変更されてもコールバックは呼び出されません。
putSubscribeRanking
購読ランキングスコアを登録
Request
型 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|
namespaceName | string | ✓ | ~ 128文字 | ネームスペース名 | |
rankingName | string | ✓ | ~ 128文字 | ランキング名 | |
accessToken | string | ✓ | ~ 128文字 | ユーザーID | |
score | long | ✓ | ~ 9223372036854775805 | スコア | |
metadata | string | ~ 512文字 | メタデータ |
Result
型 | 説明 | |
---|---|---|
item | EzSubscribeRankingScore | 登録した購読ランキングスコア |
実装例
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
);
var result = await domain.PutSubscribeRankingAsync(
score: 100L,
metadata: null
);
var item = await result.ModelAsync();
var domain = gs2.Ranking2.Namespace(
namespaceName: "namespace-0001"
).Me(
gameSession: GameSession
).SubscribeRankingSeason(
rankingName: "ranking-0001",
season: 0
);
var future = domain.PutSubscribeRankingFuture(
score: 100L,
metadata: null
);
yield return future;
if (future.Error != null)
{
onError.Invoke(future.Error, null);
yield break;
}
var future2 = future.Result.ModelFuture();
yield return future2;
if (future2.Error != null)
{
onError.Invoke(future2.Error, null);
yield break;
}
var result = future2.Result;
const auto Domain = Gs2->Ranking2->Namespace(
"namespace-0001" // namespaceName
)->Me(
GameSession
)->SubscribeRankingSeason(
"ranking-0001", // rankingName
0 // season
);
const auto Future = Domain->PutSubscribeRanking(
100L // score
// metadata
);
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();