Steamworks ドキュメンテーション
ISteamGameServerStats Interface
ゲームサーバーがプレイヤーに統計データや実績を設定できるようにする関数です。

メンバー関数

ISteamGameServerStatsのメンバ関数は、グローバルのアクセサ関数 SteamGameServerStats() 経由で呼び出されます。

ClearUserAchievement

bool ClearUserAchievement( CSteamID steamIDUser, const char *pchName );
名前説明
steamIDUserCSteamID実績をクリアするユーザーのSteamID。
pchNameconst char *リセットする実績のAPI名。

指定のユーザーの実績の解除状況をリセットします。

これは主にテストのためだけに使用します。

この呼び出しを行う前に、 RequestUserStatsを呼び出し、そのコールバックを介して正常に返されている必要があります!

この呼び出しは、Steamの内部メモリ状態だけを変更するもので、低コストです。 データをサーバーに提出するにはStoreUserStatsを呼び出す必要があります。

注: ゲームサーバーによる設定を許可された実績に対してのみ機能します。 この実績の"設定"フィールドが"公式GS"に設定されていた場合、ゲームによって制御していると正式に宣言されたゲームサーバーのみが設定可能です。 設定は、公式サーバーのIP範囲の設定をアプリ管理>アプリケーション>専用サーバーから行ってください。

戻り値: bool
この関数は以下のすべての条件を満たした上での成功時にtrue を返し、それ以外の場合は falseを返します。
  • 指定した実績"API 名" が Steamworks ウェブサイト上のアプリ管理に存在し、変更が公開された。
  • RequestUserStatsが完了し、正常に指定のユーザーのコールバックを返した。
  • データはゲームサーバーによって設定を許可されている必要があります。

GetUserAchievement

bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved );
名前説明
steamIDUserCSteamID実績を取得するユーザーのSteamID。
pchNameconst char *実績の 'API 名' 。
pbAchievedbool *実績の解除状態を返します

実績の解除状態を取得します。

戻り値: 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 );
名前説明
steamIDUserCSteamIDデータを取得するユーザーのSteamID。
pchNameconst char *データの 'API 名' 。 k_cchStatNameMaxより長くてはいけません。
pDataint32 * / float *データの値を返すための変数。

指定のユーザーの現在のデータの値を取得します。

この呼び出しを行う前に、 RequestUserStatsを呼び出し、そのコールバックを介して正常に返されている必要があります。

戻り値: bool
この関数は以下のすべての条件を満たした上での成功時にtrue を返し、それ以外の場合は falseを返します。
  • 指定したデータが Steamworks ウェブサイト上のアプリ管理に存在し、変更が公開された。
  • RequestUserStatsが完了し、正常にコールバックを返した。
  • この関数に渡されたタイプが、Steamworksウェブサイト上のアプリ管理パネルにないのリストされたタイプと一致しない。

RequestUserStats

SteamAPICall_t RequestUserStats( CSteamID steamIDUser );
名前説明
steamIDUserCSteamIDデータを要求するユーザーのSteamID。

サーバから指定されたユーザーのデータと実績を非同期でダウンロードします。

これらのデータはサーバーで現在プレイ中のクライアントにのみ自動で更新します。 その他のユーザーに対してはこの関数を再度呼び出すことでデータを更新する必要があります。

戻り値: SteamAPICall_tGSStatsReceived_tの呼び出し結果と使われます。

SetUserAchievement

bool SetUserAchievement( CSteamID steamIDUser, const char *pchName );
名前説明
steamIDUserCSteamID実績を解除するユーザーのSteamID。
pchNameconst 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 );
名前説明
steamIDUserCSteamIDデータを設定するユーザーのSteamID。
pchNameconst char *データの 'API 名' 。 k_cchStatNameMaxより長くてはいけません。
nDataint32 / floatデータの新しい値。 これは絶対値であり、インクリメントもデクリメントも行いません。

指定のユーザーに渡されたデータの値を設定/更新します。

この呼び出しを行う前に、 RequestUserStatsを呼び出し、そのコールバックを介して正常に返されている必要があります!

この呼び出しは、Steamの内部メモリ状態だけを変更するもので、低コストです。 データをサーバーに提出するにはStoreUserStatsを呼び出す必要があります。

注: ゲームサーバーが編集を許可されているデータにのみ更新されます。 このデータの"設定"フィールドが"公式GS"に設定されていた場合、ゲームによって制御していると正式に宣言されたゲームサーバーのみが設定可能です。 設定は、公式サーバーのIP範囲の設定をアプリ管理>アプリケーション>専用サーバーから行ってください。

戻り値: bool
この関数は以下のすべての条件を満たした上での成功時にtrue を返し、それ以外の場合は falseを返します。
  • 指定したデータが Steamworks ウェブサイト上のアプリ管理に存在し、変更が公開された。
  • RequestUserStatsが完了し、正常に指定のユーザーのコールバックを返した。
  • この関数に渡されたタイプが、Steamworksウェブサイト上のアプリ管理パネルにないのリストされたタイプと一致しない。
  • データはゲームサーバーによって設定を許可されている必要があります。

StoreUserStats

SteamAPICall_t StoreUserStats( CSteamID steamIDUser );
名前説明
steamIDUserCSteamIDデータを保管するユーザーのSteamID。

指定されたユーザーの永続的なストレージのために、変更されたデータと実績データをサーバーに送信します。

失敗すると、何もサーバーに送信されません。 呼び出しが成功するまで継続して実行してください。

この呼び出しはレート制限できます。 呼び出し頻度は、秒単位ではなく分単位である必要があります。 ラウンド終了時、マップ変更時、またはユーザーがサーバーを退出する際等、大きな状態変更に対してのみ呼び出してください。

アプリケーションプロセスの終了時に、ローカルにデータや実績を保管してからこの関数でアップロードしていない場合、この関数は自動的に呼び出されます。

%steam_install%\logs\stats_log.txtファイルに書き込まれる追加のデバッグ情報を見つけることができます。

戻り値: SteamAPICall_tGSStatsStored_tの呼び出し結果と使用されます。
m_eResult の結果がk_EResultInvalidParamの場合、制約が守られていないか期限切れだったため、1つ以上のデータアップロードが拒否されたことを意味します。 この場合サーバーは更新された値を送信し、データは同期を保つためにローカルで更新されるべきです。

UpdateUserAvgRateStat

bool UpdateUserAvgRateStat( CSteamID steamIDUser, const char *pchName, float flCountThisSession, double dSessionLength );
名前説明
steamIDUserCSteamIDAVGRATEデータを更新するユーザーのSteamID。
pchNameconst char *データの 'API 名' 。 k_cchStatNameMaxより長くてはいけません。
flCountThisSessionfloatこの関数の最後の呼び出し以降の累積値。
dSessionLengthdoubleこの関数を最後に呼び出してからの秒数。

指定のユーザーの新しい値でAVGRATEデータを更新します。

この呼び出しを行う前に、 RequestUserStatsを呼び出し、そのコールバックを介して正常に返されている必要があります!

この呼び出しは、Steamの内部メモリ状態だけを変更するもので、低コストです。 データをサーバーに提出するにはStoreUserStatsを呼び出す必要があります。

注: ゲームサーバーが編集を許可されているデータにのみ更新されます。 このデータの"設定"フィールドが"公式GS"に設定されていた場合、ゲームによって制御していると正式に宣言されたゲームサーバーのみが設定可能です。 設定は、公式サーバーのIP範囲の設定をアプリ管理>アプリケーション>専用サーバーから行ってください。

戻り値: bool
この関数は以下のすべての条件を満たした上での成功時にtrue を返し、それ以外の場合は falseを返します。
  • 指定したデータが Steamworks ウェブサイト上のアプリ管理に存在し、変更が公開された。
  • RequestUserStatsが完了し、正常に指定のユーザーのコールバックを返した。
  • Steamworksパートナーバックエンドでのタイプは AVGRATEでなければなりません。
  • データはゲームサーバーによって設定を許可されている必要があります。

コールバック

これらは SteamAPI_RunCallbacks を呼び出すことによって実行されるコールバックです。 これらの多くは ISteamGameServerStatsのメンバー関数への応答として直接実行されます。

GSStatsReceived_t

サーバーからユーザーの最新のデータと実績を取得した時の結果です。

名前説明
m_eResultEResult呼び出しが成功したかどうかを返します。 ユーザーがデータを持たない場合には、k_EResultFailを設定します。
m_steamIDUserCSteamID受け取ったデータを所有するユーザー。

関連する関数: RequestUserStats

GSStatsStored_t

ユーザーのデータを保存する要求の結果です。

名前説明
m_eResultEResult呼び出しが成功したかどうかを返します。
m_steamIDUserCSteamIDデータが保管されたユーザー。

関連する関数: StoreUserStats

GSStatsUnloaded_t

ユーザーのデータがアップロードされたことを示すコールバックです。

このユーザーのデータに再度アクセスするにはRequestUserStats を呼び出します。

名前説明
m_steamIDUserCSteamIDデータがアップロードされたユーザー。

定数

これらはISteamGameServerStatsで使用するために定義された定数です。

名前説明
STEAMGAMESERVERSTATS_INTERFACE_VERSIONconst char *"SteamGameServerStats001"