SteamゲームサーバーAPIのコアを提供します。
メンバー関数
ISteamGameServer
のメンバ関数は、グローバルのアクセサ関数
SteamGameServer()
経由で呼び出されます。
AssociateWithClan
SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
名前 | 型 | 説明 |
steamIDClan | CSteamID | 関連付けるグループのSteam ID。 |
プレイヤーの互換性を算出するために、このゲームサーバーとこのクランと関連付けます。
戻り値: SteamAPICall_tは
AssociateWithClanResult_tの呼び出し結果で使われます。
BeginAuthSession
EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
名前 | 型 | 説明 |
pAuthTicket | const void * | 検証する認証チケット |
cbAuthTicket | int | 認証チケットのバイト単位のサイズ。 このチケットを作成したコールが提供した pcbTicket サイズである必要があります。 |
steamID | CSteamID | このチケットを送信したエンティティのSteam ID。 |
エンティティのSteam IDからのチケットが有効であり、再利用されていないことを検証します。 なお、コールバック
ValidateAuthTicketResponse_tを受け取り、コールバックの戻り値が成功かどうかチェックされるまで、IDは確認されないことに注意してください。
このチケットはエンティティに対して
ISteamUser::GetAuthSessionTicketまたは
ISteamGameServer::GetAuthSessionTicketで作成された後、検証のためにネットワークを介してもう一方のエンドエンティティへ提供される必要があります。
これは、エンティティがオフラインになった時やチケットがキャンセルされた時に
ValidateAuthTicketResponse_tコールバック用に登録されます。 詳細情報は
EAuthSessionResponse を参照してください。
マルチプレイヤーセッションが終了した時は
ISteamGameServer::EndAuthSession を呼び出す必要があります。
戻り値: EBeginAuthSessionResultこちらも参照してください: ユーザー認証と所有権確認BLoggedOn
bool BLoggedOn();
ゲームサーバーがログオンしているかどうかを確認します。
戻り値: bool
true はサーバーがログオンしている時のみで、それ以外の状態では
falseです。
BSecure
bool BSecure();
ゲームサーバーが 「セキュア」モードかどうかを確認します。
戻り値: bool
true はサーバーがセキュアの時、それ以外は
falseです。
こちらも参照してください: EServerMode、
GSPolicyResponse_tBUpdateUserData
bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
名前 | 型 | 説明 |
steamIDUser | CSteamID | ユーザーのSteam ID |
pchPlayerName | const char * | ユーザー名 |
uScore | uint32 | ユーザーの現在のスコア |
現在サーバーに接続中のユーザーに向けて、サーバーブラウザ―とマッチメイキングインターフェイスに表示されるデータを更新します。
注: これは以前のユーザー認証APIの一部であり、新しいAPIとは併用できません。
戻り値: bool
true は呼び出しが成功した時、それ以外は失敗があったことを意味し
falseとなります。 ( つまり
steamIDUser
は現在サーバーに居るプレイヤーではありません。)
こちらも参照してください: ユーザー認証と所有権確認CancelAuthTicket
void CancelAuthTicket( HAuthTicket hAuthTicket );
ISteamUser::GetAuthSessionTicketから受け取った認証チケットをキャンセルします。 指定のエンティティとそれ以上プレイしなくなった時に呼び出される必要があります。
こちらも参照してください: ユーザー認証と所有権確認ClearAllKeyValues
void ClearAllKeyValues();
ルールクエリ―で送信されるキー/値のリスト全体をクリアします。
こちらも参照してください: ISteamGameServer::SetKeyValue、
ISteamMatchmakingServers::ServerRulesComputeNewPlayerCompatibility
SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
名前 | 型 | 説明 |
steamIDNewPlayer | CSteamID | 参加しようとしているプレイヤーのSteam ID |
フレネミーシステムに基づいて、現在のプレイヤー内にこの新規プレイヤーとプレイしたくない者がいるのか、またはその逆があるかを確認します。
戻り値: SteamAPICall_t は
ComputeNewPlayerCompatibilityResult_t の呼び出し結果と使われます。
CreateUnauthenticatedUserConnection
CSteamID CreateUnauthenticatedUserConnection();
このサーバーでのプレイヤーとしてリストする偽ユーザー(ボット)を作り出して、検証はスキップします。
注: これは以前のユーザー認証APIの一部であり、新しいAPIとは併用できません。
戻り値: CSteamID追跡されるボットの Steam IDを返します。
このユーザーがサーバーから退出した際には、本物のユーザーを扱うのと同じように
ISteamGameServer::SendUserDisconnect を呼び出す必要があります。
EnableHeartbeats
void EnableHeartbeats( bool bActive );
名前 | 型 | 説明 |
bActive | bool | マスターサーバーアップデーターを有効(true)または無効 (false) にします。 |
Steam マスターサーバーにサーバーを有効にしたいかどうかを伝えます。
有効化されるとサーバーはマスターサーバーと通信しますが、それ以外では受信メッセージは無視されハートビートは送信されません。
こちらも参照してください: ISteamGameServer::SetHeartbeatInterval,
ISteamGameServer::ForceHeartbeatEndAuthSession
void EndAuthSession( CSteamID steamID );
名前 | 型 | 説明 |
steamID | CSteamID | アクティブな認証セッションを終了するエンティティ |
ISteamGameServer::BeginAuthSessionで開始された認証セッションを終了します。 指定のエンティティとそれ以上プレイしなくなった時に呼び出される必要があります。
こちらも参照してください: ユーザー認証と所有権確認ForceHeartbeat
void ForceHeartbeat();
次の機会にSteamマスターサーバーへのハートビートを強制します。
通常、使用する必要はありません。
こちらも参照してください: ISteamGameServer::EnableHeartbeats、
ISteamGameServer::SetHeartbeatIntervalGetAuthSessionTicket
HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
名前 | 型 | 説明 |
pTicket | void * | 呼び出しが成功した場合に新しい認証チケットがコピーされるバッファー。 |
cbMaxTicket | int | pTicket に割り当てられたバッファーのサイズ。 1024のはずです。 |
pcbTicket | uint32 * | 実際のチケットの長さを返します。 |
あなたを認証したいエンティティに送信される認証チケットを取得します。
これを呼び出した後、あなたはエンティティにチケットを送り、そこでは
ISteamUser::BeginAuthSessionを呼び出してエンティティの整合性を確認できます。
ISteamUserAuth/AuthenticateUserTicket Web APIで使うチケットを作成するとき、呼び出すアプリケーションは、チケットを使ってチケットがサーバーに通信されたことを確かめる前に、API コールが作成した
GetAuthSessionTicketResponse_tコールバックを待つ必要があります。 適切な時間内(10-20秒)にコールバックが無ければ、クライアントは Steamに接続していないことを意味し、ユーザーを認証することができないためにAuthenticateUserTicket呼び出しは失敗します。
戻り値: HAuthTicketGetAuthSessionTicketResponse_t コールバックをトリガーします。
認証チケットへのハンドル。 エンティティとの対話が完了した後、ハンドルの
ISteamGameServer::CancelAuthTicketを呼び出す必要があります。
呼び出しが失敗すると
k_HAuthTicketInvalid を返します。
こちらも参照してください: ユーザー認証と所有権確認GetGameplayStats
void GetGameplayStats();
非推奨 - 今後のSDKのリリースで削除されます。
戻り値: void
GSGameplayStats_t コールバックをトリガーします。
GetNextOutgoingPacket
int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort );
名前 | 型 | 説明 |
pOut | void * | このバッファに、コピーして送信される必要のあるパケットを返します。 パケットの最大値は16KiBです。正しく割り当ててください。 |
cbMaxOut | int | pOut に提供されるバッファーのサイズ、 16 * 1024である必要があります。 |
pNetAdr | uint32 * | このパケットが送信されるべき IP アドレスを、ホストの順に返します。 例: 127.0.0.1 == 0x7f000001 |
pPort | uint16 * | ホストの順に、このパケットが送信される必要のあるポートを返します。 |
GameSocketShareモードの時、 UDP でマスターサーバーアップデーターが送信する必要のあるパケットを取得します。
注: そのフレームで受け取ったパケットのために
ISteamGameServer::HandleIncomingPacket を呼び出した後に、呼び出してください。
注: GameSocketShare モードで、0が返されるようになるまで繰り返し呼び出される必要があります。
GameSocketShare モードは、
SteamGameServer_Initを呼び出すと有効化できます。
戻り値: int
送信される必要のあるパケットの長さです。このフレームを送信するパケットがこれ以上ない場合には0です。
GetPublicIP
uint32 GetPublicIP();
Steamに従いサーバーのパブリックIPを取得します。
これは、サーバーがNATの背後にあり、他のクライアントが直接接続するためにロビーでIPを公開する場合に役立ちます。
戻り値: uint32ホスト順のパブリックIP, 例:127.0.0.1 == 0x7f000001.
IPが特定できなければ
0を返します。
GetServerReputation
SteamAPICall_t GetServerReputation();
非推奨 - 今後の SDK のリリースで削除されます。
戻り値: SteamAPICall_t は
GSReputation_t の呼び出し結果と使われます。
GetSteamID
CSteamID GetSteamID();
ゲームサーバーのSteam IDを取得します。
戻り値: CSteamIDHandleIncomingPacket
bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
名前 | 型 | 説明 |
pData | const void * | 着信パケットからのデータ。 |
cbData | int | バイト単位でのpData のサイズ。 |
srcIP | uint32 | このパケットが送信されるべきIPアドレスをホストの順で、例:127.0.0.1 == 0x7f000001 |
srcPort | uint16 | このパケットが送信されたポート、ホスト順。 |
GameSocketShareモードの時、Steamマスターサーバーパケットを処理します。
GameSocketShareモードの時は、マスターサーバーとの通信にISteamGameServer自身がソケットを作成する代わりに、ゲームが自身のソケットを使用してメッセージを前後に転送します。
back and forth. これにより、ファイアウォールで更に別のポートを開くようにサーバーオペレーションに要求することを防ぎます。
これは0xFFFFFFFFで始まるパケットが到着する度に呼び出す必要があります。 これはSteam用を意味します。
IPとポートパラメーターは、マスターサーバーアップデーターが独自のソケットを使用するのではなく、ゲームサーバーのUDPソケットを多重化することを選択した時に使用されます。
Sourceエンジンのゲームはサーバー管理者の仕事を簡素化するためにこれを使用し、ファイアウォールでポートを更に開く必要はありません。
これを呼び出した
後でのみ、
ISteamGameServer::GetNextOutgoingPacketを呼び出してください。
GameSocketShareモードは、
SteamGameServer_Initを呼び出すと有効化できます。
戻り値: bool
InitGameServer
bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString );
名前 | 型 | 説明 |
unIP | uint32 | バインドするIPアドレス。 (これはホスト順です。例 127.0.0.1 == 0x7f000001) すべてのローカルIPv4アドレスのバインドに INADDR_ANY を使用できます。 |
usGamePort | uint16 | ゲームプレイのためにクライアントが接続するポート。 |
usQueryPort | uint16 | サーバーブラウザー関連とクライアントからの情報pingを管理するポート。 |
unFlags | uint32 | 1つ以上のServerFlagsの結合。 |
nGameAppId | AppId_t | このサーバーを使うゲームのAppID。 |
pchVersionString | const char * | バージョン文字列の形式は通常 x.x.x.xで、サーバーが古くなったことを検出するためにマスターサーバーによって使用されます。. (最新バージョンのサーバーのみがリストされます。) |
ISteamGameServerのインスタンスを初期化します。 これは
SteamGameServer_Initに呼び出され、通常は直接呼び出す必要はありません。
usQueryPort
に
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHAREを渡すと、ゲームサーバーAPIは"GameSocketShare"モードを使用するようになり、ゲームがマスターサーバーアップデーターのUDPパッケージの送受信を担当することを意味します。
GameSocketShareモードを使用する場合、
ISteamGameServer::HandleIncomingPacketと
ISteamGameServer::GetNextOutgoingPacketを使用してSteamマスターサーバーと通信する必要があります。
戻り値: bool
true となるのはゲームサーバーが提供されたIP/ポートに正常にバインドできた場合で、
falseとなり失敗を意味します。
LogOff
void LogOff();
ゲームサーバーをSteamからログアウトするプロセスを開始します。
戻り値: void
SteamServerConnectFailure_tコールバックをトリガーします。
SteamServersConnected_tコールバックをトリガーします。
SteamServersDisconnected_tコールバックをトリガーします。
LogOn
void LogOn( const char *pszToken );
名前 | 型 | 説明 |
pszToken | const char * | |
永続的なゲームサーバーアカウントにログインするプロセスを開始します。
戻り値: void
SteamServerConnectFailure_tコールバックをトリガーします。
SteamServersConnected_tコールバックをトリガーします。
SteamServersDisconnected_tコールバックをトリガーします。
こちらも参照してください: ISteamGameServer::LogOnAnonymousLogOnAnonymous
void LogOnAnonymous();
一般的な匿名アカウントにログインします。
戻り値: void
SteamServerConnectFailure_tコールバックをトリガーします。
SteamServersConnected_tコールバックをトリガーします。
SteamServersDisconnected_tコールバックをトリガーします。
こちらも参照してください: ISteamGameServer::LogOnRequestUserGroupStatus
bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
ユーザーが指定のSteamグループにいるか確認します。
戻り値: bool
GSClientGroupStatus_tコールバックをトリガーします。
true となるのは呼び出しが正常にSteamサーバーに送信された時で、それ以外の場合、Steamサーバーに接続していないか、無効なユーザーまたはグループが提供された場合には
falseとなります。
SendUserConnectAndAuthenticate
bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser );
Steamユーザーからの新しい接続の受信を処理します。 これにより、SteamサーバーはユーザーのID、アプリの所有権とVACステータスを検証するように求められます。
Steamサーバーがオフラインの場合、アプリの所有権とIDを検証するキャッシュされたチケット自体を検証します。
注: これは以前のユーザー認証APIの一部であり、新しいAPIとは併用できません。
戻り値: bool
true となるのはユーザーのチケットが基本チェックをパスした時のみで、それ以外は
falseです。
この呼び出しが成功した場合、ユーザーの認証が成功したか否かを示す
GSClientApprove_tまたは
GSClientDeny_tコールバックがあります。 コールバック内のSteam IDはこの呼び出しで受け取ったものと一致します。
SendUserDisconnect
void SendUserDisconnect( CSteamID steamIDUser );
名前 | 型 | 説明 |
steamIDUser | CSteamID | ゲームサーバーを退出したユーザーのSteam ID。 |
ユーザーがゲームサーバーを退出する度に呼び出されるべきです。
これにより単一アカウントが複数のサーバーにログインすることを防ぎ、現在サーバーにいるユーザーを表示するなどの目的で、現在どのユーザーがどのサーバーにいるかをSteamが内部的に追跡できるようになります。
注: これは以前のユーザー認証APIの一部であり、新しいAPIとは併用できません。
SetBotPlayerCount
void SetBotPlayerCount( int cBotplayers );
名前 | 型 | 説明 |
cBotplayers | int | サーバーで現在プレイしているボット/AIプレイヤー。 |
ゲームサーバー上のボット/AIプレイヤーの数を設定します。 規定値は0です。
SetDedicatedServer
void SetDedicatedServer( bool bDedicated );
名前 | 型 | 説明 |
bDedicated | bool | これは専用サーバーtrue)か、リッスンサーバー(false)か? |
これは専用サーバーかリッスンサーバーかを設定します。 規定ではリッスンサーバーです。
注: これは
ISteamGameServer::LogOnまたは
ISteamGameServer::LogOnAnonymousの呼び出し前にのみ設定されます。
SetGameData
void SetGameData( const char *pchGameData );
このサーバー用に"gamedata"を定義する文字列を設定します。これは任意ですが、 設定するとユーザーがマッチメイキング/サーバーブラウザ―インターフェースを値でフィルターできるようになります。
これは通常、コンマまたはセミコロンで区切られたリストとしてフォーマットされます。
実際に変更しない限りは設定しないでください。承認された時にマスターに一度限りアップロードされます。
SetGameDescription
void SetGameDescription( const char *pszGameDescription );
ゲームの説明を設定します。 これをゲームのフルネームに設定することを推奨します。
注: これはすべてのゲームサーバーに必須で、
ISteamGameServer::LogOnまたは
ISteamGameServer::LogOnAnonymousの呼び出し前にのみ設定されます。
SetGameTags
void SetGameTags( const char *pchGameTags );
名前 | 型 | 説明 |
pchGameTags | const char * | 新しい"gametags"値。 NULLまたは空の文字列("")以外の必要があります。 k_cbMaxGameServerTagsより長くてはいけません。 |
このサーバー用に"gametags"を定義する文字列を設定します。これは任意ですが、 設定するとユーザーがマッチメイキング/サーバーブラウザ―インターフェースを値でフィルターできるようになります。
これは通常、コンマまたはセミコロンで区切られたリストとしてフォーマットされます。
実際に変更しない限りは設定しないでください。承認された時にマスターに一度限りアップロードされます。
SetHeartbeatInterval
void SetHeartbeatInterval( int iHeartbeatInterval );
名前 | 型 | 説明 |
iHeartbeatInterval | int | ミリ秒単位で、ハートビートを送信する間隔。 通常、範囲は250-1000です。 規定値を使用するには-1を使用します。 |
ハートビートがSteamマスターサーバに送信される頻度を変更します。
通常、使用する必要はありません。
こちらも参照してください: ISteamGameServer::EnableHeartbeats,
ISteamGameServer::ForceHeartbeatSetKeyValue
void SetKeyValue( const char *pKey, const char *pValue );
名前 | 型 | 説明 |
pKey | const char * | |
pValue | const char * | |
ルールのキー/値のペアを追加/更新します。
こちらも参照してください: ISteamGameServer::ClearAllKeyValues,
ISteamMatchmakingServers::ServerRulesSetMapName
void SetMapName( const char *pszMapName );
サーバーブラウザ―内に報告するマップ名を設定します。
SetMaxPlayerCount
void SetMaxPlayerCount( int cPlayersMax );
名前 | 型 | 説明 |
cPlayersMax | int | このサーバー上に許可される新しい最大プレイヤー数。 |
サーバー上に同時に許可される最大プレイヤー数を設定します。
この値はいつでも変更できます。
SetModDir
void SetModDir( const char *pszModDir );
ゲームディレクトリを設定します。
ゲームがインストールされるディレクトリと同じである必要があります。 フォルダー名のみで、パス全体ではありません。 例:"Spacewar"
注: これはすべてのゲームサーバーに必須で、
ISteamGameServer::LogOnまたは
ISteamGameServer::LogOnAnonymousの呼び出し前にのみ設定されます。
SetPasswordProtected
void SetPasswordProtected( bool bPasswordProtected );
名前 | 型 | 説明 |
bPasswordProtected | bool | パスワード保護を有効化(true)または無効化(false)します。 |
ユーザーがログインを試みた際にゲームサーバーがパスワードを要求するかを設定します。
SetProduct
void SetProduct( const char *pszProduct );
名前 | 型 | 説明 |
pszProduct | const char * | ゲームの一意の識別子。 NULLまたは空の文字列("")以外の必要があります。 |
ゲームの製品識別子を設定します。 バージョンチェックの理由で、現在マスターサーバーによって使用されます。
このためにゲームApp IDを文字列に変換することは推奨です。
注: これはすべてのゲームサーバーに必須で、
ISteamGameServer::LogOnまたは
ISteamGameServer::LogOnAnonymousの呼び出し前にのみ設定されます。
SetRegion
void SetRegion( const char *pszRegion );
名前 | 型 | 説明 |
pszRegion | const char * | |
地域識別子。 これは任意のフィールドです。デフォルト値は空の文字列で、"全世界"(地域)を意味します。
SetServerName
void SetServerName( const char *pszServerName );
名前 | 型 | 説明 |
pszServerName | const char * | 名前を設定する新しいサーバー。 NULLまたは空の文字列("")以外の必要があります。 k_cbMaxGameServerNameより長くてはいけません。 |
サーバーブラウザ―内に表示されるサーバー名を設定します。
SetSpectatorPort
void SetSpectatorPort( uint16 unSpectatorPort );
名前 | 型 | 説明 |
unSpectatorPort | uint16 | 観戦者が参加するポート。 |
ゲームサーバーが観戦者を許可するか、その場合どのポートに接続されるかを設定します。 規定値は0で、これはサービスが使用されていないことを意味します。
SetSpectatorServerName
void SetSpectatorServerName( const char *pszSpectatorServerName );
名前 | 型 | 説明 |
pszSpectatorServerName | const char * | 名前を設定する観戦者サーバー。 NULLまたは空の文字列("")以外の必要があります。 k_cbMaxGameServerMapNameより長くてはいけません。 |
観戦者サーバーの名前を設定します。 観戦者ポートが0ではない場合にのみ使用されます。
UserHasLicenseForApp
EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
名前 | 型 | 説明 |
steamID | CSteamID | 認証チケットを送信したユーザーのSteamID。 |
appID | AppId_t | ユーザーが所有するかをチェックするDLC AppID。 |
指定の
ダウンロードコンテンツ (DLC) を所有するかをチェックします。
ISteamGameServer::BeginAuthSessionにユーザーの認証チケットを送信後にのみ呼び出し可能す。
戻り値: EUserHasLicenseForAppResultこちらも参照してください: ユーザー認証と所有権確認WasRestartRequested
bool WasRestartRequested();
マスターサーバーが、こちらが古いことを警告したかをチェックします。
この関数を呼び出した後、
falseに戻ります。
戻り値: bool
true となるのはマスターサーバーがこのゲームサーバーの更新と再起動を希望する場合で、それ以外は
falseです。
コールバック
これらは
SteamAPI_RunCallbacks を呼び出すことによって実行されるコールバックです。 これらの多くは
ISteamGameServer
のメンバー関数への応答として直接実行されます。
AssociateWithClanResult_t
ゲームサーバーがSteamグループとの関連付けを試みると送信されます。
名前 | 型 | 説明 |
m_eResult | EResult | 呼び出しの結果。 可能な値:
|
関連する関数: ISteamGameServer::AssociateWithClanComputeNewPlayerCompatibilityResult_t
ゲームサーバーがフレネミーシステムに基いて、新しいプレイヤーがサーバーに手いkしているかをチェックしている時に送信されます。
名前 | 型 | 説明 |
m_eResult | EResult | 呼び出しの結果。 可能な値:
|
m_cPlayersThatDontLikeCandidate | int | 指定のプレイヤーとプレイしたくないプレイヤーの現在の数。 |
m_cPlayersThatCandidateDoesntLike | int | 指定のプレイヤーが一緒にプレイしたくないサーバー上にいるプレイヤーの数。 |
m_cClanPlayersThatDontLikeCandidate | int | プレイヤーと一緒にプレイしたくない、関連付けられたSteamグループ内のプレイヤーの数。 |
m_SteamIDCandidate | CSteamID | 指定のプレイヤーのSteam ID。 |
関連する関数: ISteamGameServer::ComputeNewPlayerCompatibilityGSClientAchievementStatus_t
使用されていません - 代わりに
ISteamGameServerStatsを使用してください。
名前 | 型 | 説明 |
m_SteamID | uint64 | 使用されていません |
m_pchAchievement | char[128] | 使用されていません |
m_bUnlocked | bool | 使用されていません |
GSClientApprove_t
クライアントがこのゲームサーバーへの接続を承認されました。
名前 | 型 | 説明 |
m_SteamID | CSteamID | 接続しようとしているユーザーのSteam ID。 |
m_OwnerSteamID | CSteamID | ゲームを所有するSteamID。これは、Steamファミリーシェアリングを通してゲームにアクセスする場合には、m_SteamID とは異なります。 |
GSClientDeny_t
ユーザーがこのゲームサーバーへの接続を拒否された時に呼び出されます。
名前 | 型 | 説明 |
m_SteamID | CSteamID | 接続しようとしているユーザーのSteam ID。 |
m_eDenyReason | EDenyReason | プレイヤーが拒否された理由。 |
m_rgchOptionalText | char[128] | 拒否の理由を説明する任意のテキスト。 通常、ログイン以外で使用されることはありません。 |
GSClientGroupStatus_t
ユーザーのグループステータスを受け取った際に呼び出されます。
名前 | 型 | 説明 |
m_SteamIDUser | CSteamID | グループ状況を照会したユーザー。 |
m_SteamIDGroup | CSteamID | 照会したグループ。 |
m_bMember | bool | ユーザーはグループのメンバー(true)か否(false)か? |
m_bOfficer | bool | ユーザーはグループ内でオフィサー(true)か否(false)か? m_bMember がfalseの場合にはtrueにはなりません。 |
関連する関数: ISteamGameServer::RequestUserGroupStatusGSClientKick_t
ゲームサーバーがユーザーを追放する必要があるときに呼び出されます。
GSGameplayStats_t
使用されていません - gameplay情報が
ISteamGameServer::GetGameplayStatsを使用して照会された時に呼び出されます。
名前 | 型 | 説明 |
m_eResult | EResult | 呼び出しの結果。 |
m_nRank | int32 | サーバーでの全体ランク (0ベース)。 |
m_unTotalConnects | uint32 | サーバーに一度でも接続したことのあるクライアントの総数。 |
m_unTotalMinutesPlayed | uint32 | サーバーでプレイされた時間(分)。 |
関連する関数: ISteamGameServer::GetGameplayStatsGSPolicyResponse_t
ゲームサーバーが安全(VAC保護)と表示することを要求した時に受け取ります。
名前 | 型 | 説明 |
m_bSecure | uint8 | 今サーバーは安全(true)かセキュリティ保護なし(false)か? |
GSReputation_t
使用されていません - ゲームサーバーの評価が照会された時に呼び出されます。
マスターサーバーの禁止はIPで行われるので、スコアが良好でも別のポートに不良サーバーがあれば禁止される可能性があります。
この情報を利用してどのサーバーが不良かを判断できます。
名前 | 型 | 説明 |
m_eResult | EResult | 呼び出しの結果。 |
m_unReputationScore | uint32 | ゲームサーバーの評価スコア。 |
m_bBanned | bool | サーバーはSteamマスターサーバーの禁止対象true)か否(false)か? |
m_unBannedIP | uint32 | 禁止されたサーバーのIP。 m_bBanned がtrueの場合のみ設定。 |
m_usBannedPort | uint16 | 禁止されたサーバーのポート。 m_bBanned がtrueの場合のみ設定。 |
m_ulBannedGameID | uint64 | 禁止されたサーバーが提供しているゲームID。 m_bBanned がtrueの場合のみ設定。 |
m_unBanExpires | uint32 | 禁止が解かれる時間、Unixエポック形式(1970年1月1日からの時間、秒単位)で提供。 m_bBanned がtrueの場合のみ設定。 |
関連する関数: ISteamGameServer::GetServerReputation定数
これらはISteamGameServerで使用するために定義された定数です。
名前 | 型 | 値 | 説明 |
k_unServerFlagActive | uint32 | 0x01 | このゲームサーバーにはプレイヤーがいます。 |
k_unServerFlagDedicated | uint32 | 0x04 | このゲームサーバーは専用です。 |
k_unServerFlagLinux | uint32 | 0x08 | このゲームサーバーはLinuxで実行されています。 |
k_unServerFlagNone | uint32 | 0x00 | このゲームサーバーにフラグはありません。 |
k_unServerFlagPassworded | uint32 | 0x10 | このゲームサーバーはパスワード保護されています。 |
k_unServerFlagPrivate | uint32 | 0x20 | このゲームサーバーはマスターサーバーにリストされるべきではなく、サーバーに接続するユーザーの認証を強制しません。 クライアントがインターネットに接続されていない可能性のあるサーバーを実行してるが、クライアントにプレイを許可したい場合(つまりLAN接続)に便利です。 |
k_unServerFlagSecure | uint32 | 0x02 | このゲームサーバーはVAC保護を求めています。 |
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE | int | ((uint16)-1) | SteamGameServer_Initを使用して、GameSocketShareモードを有効化します。 |
STEAMGAMESERVER_INTERFACE_VERSION | const char * | "SteamGameServer012" | |