提供 Steam 遊戲伺服器 API 的核心功能。
成員函式
ISteamGameServer
的成員函式可透過全域存取子函式
SteamGameServer()
呼叫。
AssociateWithClan
SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
名稱 | 型別 | 說明 |
steamIDClan | CSteamID | 希望產生關聯的群組 Steam ID。 |
讓此遊戲伺服器與隊伍產生關聯,以計算玩家相容度。
傳回: 用於
AssociateWithClanResult_t 呼叫結果的
SteamAPICall_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 回呼並確認當中傳回的值為成功前,身分仍未驗證。
票證是以
ISteamUser::GetAuthSessionTicket 或
GetAuthSessionTicket 建立在實體上的,並需要透過網路提供給另一端以進行認證。
如果實體下線或取消了票證,便會登錄
ValidateAuthTicketResponse_t 回呼。 更多資訊請參閱
EAuthSessionResponse。
必須在多人遊戲工作階段結束時呼叫
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();
清除整組傳給規則查詢的索引碼 / 值清單。
另外請見: SetKeyValue、
ISteamMatchmakingServers::ServerRulesComputeNewPlayerCompatibility
SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
名稱 | 型別 | 說明 |
steamIDNewPlayer | CSteamID | 嘗試加入的玩家的 Steam ID。 |
使用敵友系統,檢查目前是否有任何玩家不希望與正在嘗試加入的玩家一同遊玩,或反之。
傳回: 用於
ComputeNewPlayerCompatibilityResult_t 呼叫結果的
SteamAPICall_t。
CreateUnauthenticatedUserConnection
CSteamID CreateUnauthenticatedUserConnection();
建立一個在伺服器上的假使用者(例如電腦玩家),但略過認證程序。
備註: 此為舊版使用者認證 API 的一部分,不應與新的 API 混用。
傳回: CSteamID傳回要追蹤的電腦玩家的 Steam ID。
與真的使用者一樣,當此使用者離開伺服器時,也應呼叫
SendUserDisconnect。
EnableHeartbeats
void EnableHeartbeats( bool bActive );
名稱 | 型別 | 說明 |
bActive | bool | 開啟(true)或關閉(false)主伺服器更新程式。 |
告訴 Steam 主伺服器您是否希望處於活動狀態。
如果開啟,遊戲伺服器便會與主伺服器交談。如果關閉,便會忽略接下來的訊息,也不會傳送活動訊號。
另外請見: SetHeartbeatInterval、
ForceHeartbeatEndAuthSession
void EndAuthSession( CSteamID steamID );
結束一個以
BeginAuthSession 開始的認證工作階段。 不再使用指定實體遊玩時,應呼叫此函式。
另外請見: 使用者驗證與所有權ForceHeartbeat
void ForceHeartbeat();
下一次有機會時,強制傳送一個活動訊號至 Steam 主伺服器。
您通常不會需要用到此函式。
另外請見: EnableHeartbeats、
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,而 AuthenticeUserTicket 呼叫也會失敗,因為使用者沒有被認證到。
傳回: HAuthTicket觸發
GetAuthSessionTicketResponse_t 回呼。
認證票證的控制代碼。 當您要停止與實體的互動時,必須呼叫控制代碼的
CancelAuthTicket。
如果呼叫失敗,則傳回
k_HAuthTicketInvalid。
另外請見: 使用者驗證與所有權GetGameplayStats
void GetGameplayStats();
已棄用 - 將從未來釋出的 SDK 中移除。
傳回: void
觸發
GSGameplayStats_t 回呼。
GetNextOutgoingPacket
int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort );
名稱 | 型別 | 說明 |
pOut | void * | 以複製進此緩衝區的方式,傳回要傳送的封包。 封包大小可達 16 KiB,請依此分配空間。 |
cbMaxOut | int | 提供給 pOut 的緩衝區大小,應為 16 * 1024。 |
pNetAdr | uint32 * | 以主機順序傳回封包要傳送至的 IP 位址,也就是 127.0.0.1 == 0x7f000001。 |
pPort | uint16 * | 以主機順序傳回要送出此封包的連接埠。 |
取得主伺服器更新程式在 GameSocketShare 模式時以 UDP 傳送的封包。
備註: 此函式應只有在呼叫
HandleIncomingPacket 「之後」才能呼叫,以取得任何來自該幀的封包。
備註: 使用 GameSocketShare 模式時,直到傳回 0 之前「必須」每幀不斷呼叫此函式。
呼叫
SteamGameServer_Init 時,便可開啟 GameSocketShare 模式。
傳回: int
需要傳送的封包長度,但如果該幀中已沒有要傳送的封包,則傳回 0。
GetPublicIP
uint32 GetPublicIP();
根據 Steam 的資料取得伺服器的公開 IP。
若伺服器位於 NAT 之後,而您想將此 IP 公布於大廳中讓其它用戶端可以直接連線,便可利用此函式。
傳回: uint32主機順序的公開 IP,也就是 127.0.0.1 == 0x7f000001。
如果無法判辨 IP,則傳回
0。
GetServerReputation
SteamAPICall_t GetServerReputation();
已棄用 - 將從未來釋出的 SDK 中移除。
傳回: 用於
GSReputation_t 呼叫結果的
SteamAPICall_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 自己建立通訊端 。 我們便不必要求伺服器操作員在防火牆上另開一個連接埠。
每當有以 0xFFFFFFFF 開頭的封包,應呼叫此函式。 這表示該封包是給我們的。
當您選擇讓遊戲伺服器的 UDP 通訊端進行多工,而非讓主伺服器更新程式使用自己的通訊端,便會用到 IP 與連接埠參數。
Source 引擎遊戲利用此函式來簡化伺服器管理員的工作,如此一來便不須在防火牆上開啟更多連接埠。
只有在呼叫此函式
之後,才應呼叫
GetNextOutgoingPacket。
呼叫
SteamGameServer_Init 時,便可開啟 GameSocketShare 模式。
傳回: 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)。 您可使用 INADDR_ANY 來綁定所有的本機 IPv4 位址。 |
usGamePort | uint16 | 進行遊戲時,用戶端要連接至的連接埠。 |
usQueryPort | uint16 | 管理伺服器瀏覽器相關事務以及從用戶端傳來的資訊 Ping 的連接埠。 |
unFlags | uint32 | 一個或多個 ServerFlags 的聯集。 |
nGameAppId | AppId_t | 伺服器所屬遊戲的 App ID。 |
pchVersionString | const char * | 版本字串通常是以 x.x.x.x 的形式呈現,主伺服器會以此值來偵測伺服器版本是否過舊 (只有最新版本的伺服器會被列出)。 |
初始化 ISteamGameServer 的執行個體。 此函式是由
SteamGameServer_Init 呼叫,您通常不會需要直接呼叫此函式。
如果將
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE 傳入
usQueryPort
中,遊戲伺服器 API 便會開啟「GameSocketShare」模式,表示遊戲須負責傳送與接收主伺服器更新程式的 UDP 封包。
在 GameSocketShare 模式下,便須使用
HandleIncomingPacket 和
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 回呼。
另外請見: LogOnAnonymousLogOnAnonymous
void LogOnAnonymous();
登入一個泛用的、不具名的帳戶。
傳回: void
觸發
SteamServerConnectFailure_t 回呼。
觸發
SteamServersConnected_t 回呼。
觸發
SteamServersDisconnected_t 回呼。
另外請見: 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 伺服器驗證使用者身份、應用程式所有權,以及 VAC 狀態。
如果 Steam 伺服器不在線上,此函式便會驗證快取中的票證,以此驗證應用程式所有權與身份。
備註: 此為舊版使用者認證 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 );
名稱 | Type | 說明 |
bDedicated | bool | 此為專屬伺服器(true),或監聽伺服器(false)? |
將此伺服器設定為專用或監聽伺服器。 預設為監聽伺服器。
備註: 必須在呼叫
LogOn 或
LogOnAnonymous 之前進行設定。
SetGameData
void SetGameData( const char *pchGameData );
設置定義此伺服器的「gamedata」的字串。此為非必要的設定,但設置後使用者便可使用此值在介面中篩選遊戲配對或伺服器瀏覽器。
此值通常會以逗號或分號分開的列表表示。
除非真的有所改變,否則不要設定。這只會在主伺服器認可時上傳一次。
SetGameDescription
void SetGameDescription( const char *pszGameDescription );
設定遊戲說明。 建議可設定成遊戲的完整名稱。
備註: 所有遊戲伺服器皆需要此設定。此函式必須在呼叫
LogOn 或
LogOnAnonymous 之前進行設定。
SetGameTags
void SetGameTags( const char *pchGameTags );
設置定義「gamedata」的字串。此為非必要的設定,但設置後使用者便可使用此值在介面中篩選遊戲配對或伺服器瀏覽器。
此值通常會以逗號或分號分開的列表表示。
除非真的有所改變,否則不要設定。這只會在主伺服器認可時上傳一次。
SetHeartbeatInterval
void SetHeartbeatInterval( int iHeartbeatInterval );
名稱 | 型別 | 說明 |
iHeartbeatInterval | int | 每個活動訊號之間間隔的毫秒數, 通常在 250 到 1000 之間。 設為 -1 便可使用預設的值。 |
改變傳送活動訊號至 Steam 伺服器的時間間隔。
您通常不會需要用到此函式。
另外請見: EnableHeartbeats、
ForceHeartbeatSetKeyValue
void SetKeyValue( const char *pKey, const char *pValue );
名稱 | 型別 | 說明 |
pKey | const char * | |
pValue | const char * | |
新增或更新規則的索引碼 / 值配對。
另外請見: ClearAllKeyValues、
ISteamMatchmakingServers::ServerRulesSetMapName
void SetMapName( const char *pszMapName );
設定要回報給伺服器瀏覽器的地圖名稱。
SetMaxPlayerCount
void SetMaxPlayerCount( int cPlayersMax );
名稱 | 型別 | 說明 |
cPlayersMax | int | 此伺服器最多可容納的玩家人數。 |
設定此伺服器一次最多可容納的玩家人數。
此值可隨時改變。
SetModDir
void SetModDir( const char *pszModDir );
設定遊戲的路徑。
應與遊戲的安裝路徑相同。 僅需資料夾名稱即可,不需要整個路徑。 例如「Spacewar」。
備註: 所有遊戲伺服器皆需要此設定。此函式必須在呼叫
LogOn 或
LogOnAnonymous 之前進行設定。
SetPasswordProtected
void SetPasswordProtected( bool bPasswordProtected );
名稱 | 型別 | 說明 |
bPasswordProtected | bool | 開啟(true)或關閉(false)密碼保護。 |
設定使用者嘗試登入遊戲伺服器時是否需要密碼。
SetProduct
void SetProduct( const char *pszProduct );
名稱 | 型別 | 說明 |
pszProduct | const char * | 您遊戲的唯一識別碼。 不能為 NULL 或空白字串("")。 |
設定遊戲產品的識別碼。 伺服器目前會用此函式來檢查版本。
建議可將遊戲的 App ID 轉換成字串後填入。
備註: 所有遊戲伺服器皆需要此設定。此函式必須在呼叫
LogOn 或
LogOnAnonymous 之前進行設定。
SetRegion
void SetRegion( const char *pszRegion );
名稱 | 型別 | 說明 |
pszRegion | const char * | |
地區識別碼。 此為可選欄位,預設值為空白字串,也就是「世界」地區。
SetServerName
void SetServerName( const char *pszServerName );
設定要顯示於伺服器瀏覽器中的伺服器名稱。
SetSpectatorPort
void SetSpectatorPort( uint16 unSpectatorPort );
名稱 | 型別 | 說明 |
unSpectatorPort | uint16 | 讓旁觀者加入的連接埠。 |
設定遊戲伺服器是否允許旁觀者,以及他們應連接至哪個連接埠。 預設值為零,代表不使用此服務。
SetSpectatorServerName
void SetSpectatorServerName( const char *pszSpectatorServerName );
設定旁觀者伺服器的名稱。 此函式應只有在旁觀者連接埠並非為零的狀況下使用。
UserHasLicenseForApp
EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
名稱 | 型別 | 說明 |
steamID | CSteamID | 送出驗證票證的使用者的 Steam ID。 |
appID | AppId_t | 要檢查使用者是否擁有的 DLC 的 App ID。 |
檢查使用者是否擁有指定的
可下載內容(DLC)。
此函式只有在將驗證票證送至
BeginAuthSession 後才可呼叫。
傳回: EUserHasLicenseForAppResult另外請見: 使用者驗證與所有權WasRestartRequested
bool WasRestartRequested();
檢查主伺服器是否警告過版本過舊的問題。
呼叫完此函式後,將轉回為
false。
傳回: bool
true ,如果主伺服器要遊戲伺服器更新並重新啟動;否則傳回
false。
回呼
以下為呼叫
SteamAPI_RunCallbacks 後可能會發出的回呼。 之中許多函式會應
ISteamGameServer
的成員函式直接執行。
AssociateWithClanResult_t
當遊戲伺服器嘗試與 Steam 群組產生關聯時發送。
名稱 | 型別 | 說明 |
m_eResult | EResult | 作業的結果。 可能的值:
|
關聯函式: AssociateWithClanComputeNewPlayerCompatibilityResult_t
在遊戲伺服器使用敵友系統檢查新玩家是否適合加入該伺服器時發送。
名稱 | 型別 | 說明 |
m_eResult | EResult | 作業的結果。 可能的值:
|
m_cPlayersThatDontLikeCandidate | int | 目前的玩家當中,不希望與此玩家一同遊戲的人數。 |
m_cPlayersThatCandidateDoesntLike | int | 伺服器上的玩家中,此玩家不希望一同遊戲的人數。 |
m_cClanPlayersThatDontLikeCandidate | int | 在關聯 Steam 群組的玩家中,不希望與此玩家一同遊戲的人數。 |
m_SteamIDCandidate | CSteamID | 此玩家的 Steam ID。 |
關聯函式: ComputeNewPlayerCompatibilityGSClientAchievementStatus_t
已棄用 - 請改用
ISteamGameServerStats。
名稱 | 型別 | 說明 |
m_SteamID | uint64 | 已棄用 |
m_pchAchievement | char[128] | 已棄用 |
m_bUnlocked | bool | 已棄用 |
GSClientApprove_t
准許連線至此遊戲伺服器的用戶端。
名稱 | 型別 | 說明 |
m_SteamID | CSteamID | 希望連線的使用者的 Steam ID。 |
m_OwnerSteamID | CSteamID | 遊戲擁有者的 Steam ID。如果遊戲是透過 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。 |
關聯函式: RequestUserGroupStatusGSClientKick_t
遊戲伺服器應踢出玩家時呼叫。
GSGameplayStats_t
已棄用 - 使用
GetGameplayStats 查詢遊玩狀態資訊時呼叫。
名稱 | 型別 | 說明 |
m_eResult | EResult | 作業的結果。 |
m_nRank | int32 | 伺服器的整體階層(以 0 為底)。 |
m_unTotalConnects | uint32 | 所有曾連線至此伺服器的用戶端總數。 |
m_unTotalMinutesPlayed | uint32 | 在伺服器上游玩過的分鐘總數。 |
關聯函式: 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 時才設置。 |
關聯函式: 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 | 此遊戲伺服器不應列在主伺服器上,也不用強制連線至此伺服器的使用者進行認證。 當用戶端可能沒有連線至網路,但依然想允許他們進行遊戲時(也就是區域連線),便可派上用場。 |
k_unServerFlagSecure | uint32 | 0x02 | 此遊戲伺服器希望受 VAC 防護。 |
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE | int | ((uint16)-1) | 與 SteamGameServer_Init 一同使用,以開啟 GameSocketShare 模式。 |
STEAMGAMESERVER_INTERFACE_VERSION | const char * | "SteamGameServer012" | |