ゲームサーバーがプレイヤーに統計データや実績を設定できるようにする関数です。
メンバー関数
ISteamGameServerStats
のメンバ関数は、グローバルのアクセサ関数
SteamGameServerStats()
経由で呼び出されます。
ClearUserAchievement
bool ClearUserAchievement( CSteamID steamIDUser, const char *pchName );
名前 | 型 | 説明 |
steamIDUser | CSteamID | 実績をクリアするユーザーのSteamID。 |
pchName | const char * | リセットする実績のAPI名。 |
指定のユーザーの実績の解除状況をリセットします。
これは主にテストのためだけに使用します。
この呼び出しを行う前に、
RequestUserStatsを呼び出し、そのコールバックを介して正常に返されている必要があります!
この呼び出しは、Steamの内部メモリ状態だけを変更するもので、低コストです。 データをサーバーに提出するには
StoreUserStatsを呼び出す必要があります。
注: ゲームサーバーによる設定を許可された実績に対してのみ機能します。 この実績の"設定"フィールドが"公式GS"に設定されていた場合、ゲームによって制御していると正式に宣言されたゲームサーバーのみが設定可能です。 設定は、公式サーバーのIP範囲の設定をアプリ管理>アプリケーション>
専用サーバーから行ってください。
戻り値: bool
この関数は以下のすべての条件を満たした上での成功時に
true を返し、それ以外の場合は
falseを返します。
- 指定した実績"API 名" が Steamworks ウェブサイト上のアプリ管理に存在し、変更が公開された。
- RequestUserStatsが完了し、正常に指定のユーザーのコールバックを返した。
- データはゲームサーバーによって設定を許可されている必要があります。
GetUserAchievement
bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved );
名前 | 型 | 説明 |
steamIDUser | CSteamID | 実績を取得するユーザーのSteamID。 |
pchName | const char * | 実績の 'API 名' 。 |
pbAchieved | bool * | 実績の解除状態を返します |
実績の解除状態を取得します。
戻り値: bool
この関数は以下のすべての条件を満たした上での成功時に
true を返し、それ以外の場合は
falseを返します。
- RequestUserStatsが完了し、正常にコールバックを返した。
- 指定した実績の'API 名'がSteamworksウェブサイト上のアプリ管理内に存在し、変更が公開された。
呼び出しが成功すると、解除状態が
pbAchieved
パラメーター経由で返されます。
GetUserStat
bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData );
bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData );
名前 | 型 | 説明 |
steamIDUser | CSteamID | データを取得するユーザーのSteamID。 |
pchName | const char * | データの 'API 名' 。 k_cchStatNameMaxより長くてはいけません。 |
pData | int32 * / float * | データの値を返すための変数。 |
指定のユーザーの現在のデータの値を取得します。
この呼び出しを行う前に、
RequestUserStatsを呼び出し、そのコールバックを介して正常に返されている必要があります。
戻り値: bool
この関数は以下のすべての条件を満たした上での成功時に
true を返し、それ以外の場合は
falseを返します。
- 指定したデータが Steamworks ウェブサイト上のアプリ管理に存在し、変更が公開された。
- RequestUserStatsが完了し、正常にコールバックを返した。
- この関数に渡されたタイプが、Steamworksウェブサイト上のアプリ管理パネルにないのリストされたタイプと一致しない。
RequestUserStats
SteamAPICall_t RequestUserStats( CSteamID steamIDUser );
名前 | 型 | 説明 |
steamIDUser | CSteamID | データを要求するユーザーのSteamID。 |
サーバから指定されたユーザーのデータと実績を非同期でダウンロードします。
これらのデータはサーバーで現在プレイ中のクライアントにのみ自動で更新します。 その他のユーザーに対してはこの関数を再度呼び出すことでデータを更新する必要があります。
戻り値: SteamAPICall_tは
GSStatsReceived_tの呼び出し結果と使われます。
SetUserAchievement
bool SetUserAchievement( CSteamID steamIDUser, const char *pchName );
名前 | 型 | 説明 |
steamIDUser | CSteamID | 実績を解除するユーザーのSteamID。 |
pchName | const char * | 解除する実績のAPI名。 |
指定のユーザーの実績を解除します。
この呼び出しを行う前に、
RequestUserStatsを呼び出し、そのコールバックを介して正常に返されている必要があります!
この呼び出しは、Steamの内部メモリ状態だけを変更するもので、低コストです。 データをサーバーに提出するには
StoreUserStatsを呼び出す必要があります。
注: ゲームサーバーによる設定を許可された実績に対してのみ機能します。 この実績の"設定"フィールドが"公式GS"に設定されていた場合、ゲームによって制御していると正式に宣言されたゲームサーバーのみが設定可能です。 設定は、公式サーバーのIP範囲の設定をアプリ管理>アプリケーション>
専用サーバーから行ってください。
戻り値: bool
この関数は以下のすべての条件を満たした上での成功時に
true を返し、それ以外の場合は
falseを返します。
- 指定した実績"API 名" が Steamworks ウェブサイト上のアプリ管理に存在し、変更が公開された。
- RequestUserStatsが完了し、正常に指定のユーザーのコールバックを返した。
- データはゲームサーバーによって設定を許可されている必要があります。
SetUserStat
bool SetUserStat( CSteamID steamIDUser, const char *pchName, int32 nData );
bool SetUserStat( CSteamID steamIDUser, const char *pchName, float fData );
名前 | 型 | 説明 |
steamIDUser | CSteamID | データを設定するユーザーのSteamID。 |
pchName | const char * | データの 'API 名' 。 k_cchStatNameMaxより長くてはいけません。 |
nData | int32 / float | データの新しい値。 これは絶対値であり、インクリメントもデクリメントも行いません。 |
指定のユーザーに渡されたデータの値を設定/更新します。
この呼び出しを行う前に、
RequestUserStatsを呼び出し、そのコールバックを介して正常に返されている必要があります!
この呼び出しは、Steamの内部メモリ状態だけを変更するもので、低コストです。 データをサーバーに提出するには
StoreUserStatsを呼び出す必要があります。
注: ゲームサーバーが編集を許可されているデータにのみ更新されます。 このデータの"設定"フィールドが"公式GS"に設定されていた場合、ゲームによって制御していると正式に宣言されたゲームサーバーのみが設定可能です。 設定は、公式サーバーのIP範囲の設定をアプリ管理>アプリケーション>
専用サーバーから行ってください。
戻り値: bool
この関数は以下のすべての条件を満たした上での成功時に
true を返し、それ以外の場合は
falseを返します。
- 指定したデータが Steamworks ウェブサイト上のアプリ管理に存在し、変更が公開された。
- RequestUserStatsが完了し、正常に指定のユーザーのコールバックを返した。
- この関数に渡されたタイプが、Steamworksウェブサイト上のアプリ管理パネルにないのリストされたタイプと一致しない。
- データはゲームサーバーによって設定を許可されている必要があります。
StoreUserStats
SteamAPICall_t StoreUserStats( CSteamID steamIDUser );
名前 | 型 | 説明 |
steamIDUser | CSteamID | データを保管するユーザーのSteamID。 |
指定されたユーザーの永続的なストレージのために、変更されたデータと実績データをサーバーに送信します。
失敗すると、何もサーバーに送信されません。 呼び出しが成功するまで継続して実行してください。
この呼び出しはレート制限できます。 呼び出し頻度は、秒単位ではなく分単位である必要があります。 ラウンド終了時、マップ変更時、またはユーザーがサーバーを退出する際等、大きな状態変更に対してのみ呼び出してください。
アプリケーションプロセスの終了時に、ローカルにデータや実績を保管してからこの関数でアップロードしていない場合、この関数は自動的に呼び出されます。
%steam_install%\logs\stats_log.txt
ファイルに書き込まれる追加のデバッグ情報を見つけることができます。
戻り値: SteamAPICall_tは
GSStatsStored_tの呼び出し結果と使用されます。
m_eResult
の結果が
k_EResultInvalidParamの場合、制約が守られていないか期限切れだったため、1つ以上のデータアップロードが拒否されたことを意味します。 この場合サーバーは更新された値を送信し、データは同期を保つためにローカルで更新されるべきです。
UpdateUserAvgRateStat
bool UpdateUserAvgRateStat( CSteamID steamIDUser, const char *pchName, float flCountThisSession, double dSessionLength );
名前 | 型 | 説明 |
steamIDUser | CSteamID | AVGRATEデータを更新するユーザーのSteamID。 |
pchName | const char * | データの 'API 名' 。 k_cchStatNameMaxより長くてはいけません。 |
flCountThisSession | float | この関数の最後の呼び出し以降の累積値。 |
dSessionLength | double | この関数を最後に呼び出してからの秒数。 |
指定のユーザーの新しい値でAVGRATEデータを更新します。
この呼び出しを行う前に、
RequestUserStatsを呼び出し、そのコールバックを介して正常に返されている必要があります!
この呼び出しは、Steamの内部メモリ状態だけを変更するもので、低コストです。 データをサーバーに提出するには
StoreUserStatsを呼び出す必要があります。
注: ゲームサーバーが編集を許可されているデータにのみ更新されます。 このデータの"設定"フィールドが"公式GS"に設定されていた場合、ゲームによって制御していると正式に宣言されたゲームサーバーのみが設定可能です。 設定は、公式サーバーのIP範囲の設定をアプリ管理>アプリケーション>
専用サーバーから行ってください。
戻り値: bool
この関数は以下のすべての条件を満たした上での成功時に
true を返し、それ以外の場合は
falseを返します。
- 指定したデータが Steamworks ウェブサイト上のアプリ管理に存在し、変更が公開された。
- RequestUserStatsが完了し、正常に指定のユーザーのコールバックを返した。
- Steamworksパートナーバックエンドでのタイプは AVGRATEでなければなりません。
- データはゲームサーバーによって設定を許可されている必要があります。
コールバック
これらは
SteamAPI_RunCallbacks を呼び出すことによって実行されるコールバックです。 これらの多くは
ISteamGameServerStats
のメンバー関数への応答として直接実行されます。
GSStatsReceived_t
サーバーからユーザーの最新のデータと実績を取得した時の結果です。
関連する関数: RequestUserStatsGSStatsStored_t
ユーザーのデータを保存する要求の結果です。
名前 | 型 | 説明 |
m_eResult | EResult | 呼び出しが成功したかどうかを返します。 |
m_steamIDUser | CSteamID | データが保管されたユーザー。 |
関連する関数: StoreUserStatsGSStatsUnloaded_t
ユーザーのデータがアップロードされたことを示すコールバックです。
このユーザーのデータに再度アクセスするには
RequestUserStats を呼び出します。
名前 | 型 | 説明 |
m_steamIDUser | CSteamID | データがアップロードされたユーザー。 |
定数
これらはISteamGameServerStatsで使用するために定義された定数です。
名前 | 型 | 値 | 説明 |
STEAMGAMESERVERSTATS_INTERFACE_VERSION | const char * | "SteamGameServerStats001" | |