Dokumentacja Steamworks
Interfejs ISteamGameServer
Stanowi rdzeń API serwerów gier Steam.

Metody

Metody interfejsu ISteamGameServer są wywoływane poprzez akcesor globalny SteamGameServer().

AssociateWithClan

SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
NazwaTypOpis
steamIDClanCSteamIDID Steam grupy, z którą chcesz być powiązany.

Powiązuje ten serwer gry z tym klanem w celu obliczenia zgodności graczy.

Zwraca: SteamAPICall_t do użycia z wynikiem wywołania AssociateWithClanResult_t.

BeginAuthSession

EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
NazwaTypOpis
pAuthTicketconst void *Token autoryzacji, który ma zostać zweryfikowany.
cbAuthTicketintRozmiar tokena autoryzacji w bajtach. Musi on odpowiadać rozmiarowi pcbTicket podanemu przez wywołanie, które wygenerowało ten token.
steamIDCSteamIDID Steam obiektu, który wysłał ten token.

Uwierzytelnia token od ID Steam obiektu, by upewnić się, że jest prawidłowy i nie jest wykorzystywany ponownie. Pamiętaj, że tożsamość nie zostanie potwierdzona do czasu otrzymania wywołania zwrotnego ValidateAuthTicketResponse_t oraz zweryfikowania wartości zwróconej w tym wywołaniu pod kątem powodzenia.

Token jest tworzony wewnątrz obiektu przy użyciu ISteamUser::GetAuthSessionTicket lub ISteamGameServer::GetAuthSessionTicket, a następnie musi zostać przesłany przez sieć, by odbiorca go zweryfikował.

Jest to rejestrowane dla wywołań zwrotnych ValidateAuthTicketResponse_t, jeśli obiekt przejdzie do trybu offline lub anuluje token. Zobacz dział dokumentacji o EAuthSessionResponse, by dowiedzieć się więcej.

Gdy sesja w trybie wieloosobowym zostaje zakończona, musisz wywołać ISteamGameServer::EndAuthSession.

Zwraca: EBeginAuthSessionResult.


Zobacz również: Uwierzytelnianie użytkownika i stan własności.

BLoggedOn

bool BLoggedOn();
Sprawdza, czy serwer gry jest zalogowany.

Zwraca: bool
true – jeśli serwer gry jest zalogowany; w przeciwnym wypadku false.

BSecure

bool BSecure();
Sprawdza, czy serwer gry jest w trybie „zabezpieczonym”.

Zwraca: bool
true – jeśli serwer gry jest zabezpieczony; w przeciwnym wypadku false.

Zobacz również: EServerMode, GSPolicyResponse_t

BUpdateUserData

bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
NazwaTypOpis
steamIDUserCSteamIDID Steam użytkownika.
pchPlayerNameconst char *Nazwa użytkownika.
uScoreuint32Obecny wynik użytkownika.

Zaktualizuj dane, jakie mają być wyświetlane w przeglądarce serwerów i interfejsach wyszukiwania gier dla użytkownika obecnie połączonego z serwerem.

UWAGA: jest to część starego API weryfikacji użytkownika i nie należy go łączyć z nowym API.

Zwraca: bool
true – jeśli wywołanie zakończono pomyślnie; w przeciwnym wypadku false (tj. steamIDUser nie jest graczem na bieżącym serwerze).

Zobacz również: Uwierzytelnianie użytkownika i stan własności.

CancelAuthTicket

void CancelAuthTicket( HAuthTicket hAuthTicket );
NazwaTypOpis
hAuthTicketHAuthTicketAktywny token autoryzacji, który ma zostać anulowany.

Anuluje token autoryzacji otrzymany od ISteamUser::GetAuthSessionTicket. Powinno to zostać wywołane, gdy użytkownik nie gra już z określonym obiektem.

Zobacz również: Uwierzytelnianie użytkownika i stan własności.

ClearAllKeyValues

void ClearAllKeyValues();
Całkowicie usuwa listę par klucz/wartość, które są wysyłane w zapytaniach dotyczących reguł.

Zobacz również: ISteamGameServer::SetKeyValue oraz ISteamMatchmakingServers::ServerRules.

ComputeNewPlayerCompatibility

SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
NazwaTypOpis
steamIDNewPlayerCSteamIDID Steam gracza, który próbuje dołączyć.

Sprawdza, czy którykolwiek z obecnych graczy nie chce grać z tym, który próbuje dołączyć, lub odwrotnie. Oparte na systemie listy znajomych i ignorowanych.

Zwraca: SteamAPICall_t do użycia z wynikiem wywołania ComputeNewPlayerCompatibilityResult_t.

CreateUnauthenticatedUserConnection

CSteamID CreateUnauthenticatedUserConnection();
Tworzy sztucznego użytkownika (np. bota), który będzie podawany jako grający na serwerze, ale nie zostanie uwierzytelniony.

UWAGA: jest to część starego API weryfikacji użytkownika i nie należy go łączyć z nowym API.

Zwraca: CSteamID
Zwraca ID Steam do śledzenia bota.

Należy wywołać ISteamGameServer::SendUserDisconnect, gdy ten użytkownik opuści serwer, tak samo jak w przypadku prawdziwego użytkownika.

EnableHeartbeats

void EnableHeartbeats( bool bActive );
NazwaTypOpis
bActiveboolWłącz (true) lub wyłącz (false) aktualizacje dla serwera głównego.

Przekazuje głównym serwerom Steam, czy chcesz być aktywny.

Jeśli ta funkcja jest włączona, serwer będzie komunikował się z głównymi serwerami, a jeśli nie, wówczas wiadomości przychodzące będą ignorowane, a puls (heartbeat) nie będzie wysyłany.

Zobacz również: ISteamGameServer::SetHeartbeatInterval oraz ISteamGameServer::ForceHeartbeat.

EndAuthSession

void EndAuthSession( CSteamID steamID );
NazwaTypOpis
steamIDCSteamIDObiekt, dla którego aktywna sesja autoryzacyjna ma zostać zakończona.

Kończy sesję autoryzacyjną zapoczątkowaną przez ISteamGameServer::BeginAuthSession. Powinno to zostać wywołane, gdy użytkownik nie gra już z określonym obiektem.

Zobacz również: Uwierzytelnianie użytkownika i stan własności.

ForceHeartbeat

void ForceHeartbeat();
Wymusza wysłanie pulsu (hearbeat) do głównych serwerów Steam przy następnej okazji.

Zazwyczaj nie trzeba z tego korzystać.

Zobacz również: ISteamGameServer::EnableHeartbeats oraz ISteamGameServer::SetHeartbeatInterval.

GetAuthSessionTicket

HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
NazwaTypOpis
pTicketvoid *Bufor, do którego zostanie skopiowany nowy token uwierzytelniający, jeśli wywołanie zakończy się pomyślnie.
cbMaxTicketintRozmiar bufora przydzielonego do pTicket. Powinien wynosić 1024.
pcbTicketuint32 *Zwraca długość rzeczywistego tokena.

Pobiera token uwierzytelniający, który ma zostać wysłany do obiektu, który chce cię uwierzytelnić.

Po tym wywołaniu możesz wysłać token do obiektu, który może z kolei wywołać ISteamUser::BeginAuthSession, by zweryfikować integralność tego obiektu.

Podczas tworzenia obiektu do użycia z API webowym ISteamUserAuth/AuthenticateUserTicket aplikacja wywołująca musi poczekać na wywołanie zwrotne GetAuthSessionTicketResponse_t wygenerowane przez wywołanie API, zanim podejmie próbę użycia tokena, by upewnić się, że token dotarł do serwera. Jeśli to wywołanie nie pojawi się w rozsądnym czasie (w ciągu 10 – 20 sekund), oznacza to, że twój klient nie jest połączony ze Steam, a wywołanie AuthenticateUserTicket nie powiedzie się, gdyż nie może uwierzytelnić użytkownika.

Zwraca: HAuthTicket
Aktywuje wywołanie zwrotne GetAuthSessionTicketResponse_t.
Uchwyt tokena uwierzytelniającego. Po zakończeniu interakcji z obiektem musisz wywołać ISteamGameServer::CancelAuthTicket na uchwycie.

Zwraca k_HAuthTicketInvalid, gdy wywołanie nie powiedzie się.

Zobacz również: Uwierzytelnianie użytkownika i stan własności.

GetGameplayStats

void GetGameplayStats();
Przestarzała – zostanie usunięta w przyszłej wersji SDK.

Zwraca: void.
Aktywuje wywołanie zwrotne GSGameplayStats_t.

GetNextOutgoingPacket

int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort );
NazwaTypOpis
pOutvoid *Zwraca pakiet, który należy wysłać, kopiując go do tego bufora. Rozmiar pakietu może wynosić do 16 KiB (kibibajtów), więc przydziel stosowną ilość miejsca.
cbMaxOutintRozmiar bufora oferowanego do pOut, powinien wynosić 16 * 1024.
pNetAdruint32 *Zwraca adres IP, na który ten pakiet ma zostać wysłany w kolejności hostów, np.: 127.0.0.1 == 0x7f000001.
pPortuint16 *Zwraca port, przez który należy wysłać ten pakiet, w kolejności hostów.

Pobiera pakiet, który powinien przesłać aktualizator serwera głównego przez port UDP, gdy korzysta się z trybu GameSocketShare.

UWAGA: należy to wywołać wyłącznie PO wywołaniu ISteamGameServer::HandleIncomingPacket dla wszelkich pakietów, które przyszły w tej ramce!

UWAGA: ta metoda MUSI być ciągle wywoływana w każdej ramce, aż zwróci 0, gdy korzysta się z trybu GameSocketShare.

Tryb GameSocketShare można włączyć podczas wywoływania SteamGameServer_Init.

Zwraca: int
Długość pakietu, który musi zostać wysłany, lub 0, jeśli nie ma już pakietów do wysłania do tej ramki.

GetPublicIP

uint32 GetPublicIP();
Pobiera publiczny adres IP serwera podawany przez Steam.

Jest to przydatne, gdy serwer znajduje się za NAT i chcesz rozgłosić jego IP w poczekalni, by inni klienci mogli się z nim bezpośrednio łączyć.

Zwraca: uint32
Publiczne IP w kolejności hostów, np. 127.0.0.1 == 0x7f000001.

Zwraca 0, gdy nie można ustalić IP.

GetServerReputation

SteamAPICall_t GetServerReputation();
Przestarzała – zostanie usunięta w przyszłej wersji SDK.

Zwraca: SteamAPICall_t do użycia z wynikiem wywołania GSReputation_t.

GetSteamID

CSteamID GetSteamID();
Pobiera ID Steam serwera gry.

Zwraca: CSteamID.

HandleIncomingPacket

bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
NazwaTypOpis
pDataconst void *Dane z nadchodzącego pakietu.
cbDataintRozmiar pData w bajtach.
srcIPuint32Adres IP, na który ten pakiet został wysłany w kolejności hostów, np.: 127.0.0.1 == 0x7f000001.
srcPortuint16Port, przez który został wysłany pakiet, w kolejności hostów.

Obsługuje pakiet głównego serwera Steam, gdy korzysta się z trybu GameSocketShare.

W trybie GameSocketShare ta metoda pozwala grze używać swojego gniazda do przekazywania wiadomości w obie strony, zamiast używać interfejsu ISteamGameServer, by utworzył on gniazdo do komunikacji z serwerem głównym. Zapobiega to sytuacji, w której wymagamy od operatorów serwerów otwarcia kolejnego portu w swoich zaporach sieciowych.

Powinno to być wywoływane za każdym razem, gdy pakiet przychodzący rozpoczyna się od 0xFFFFFFFF. Oznacza to, że jest dla nas.

Parametry IP i portu są używane, gdy wybrałeś multipleksowanie gniazda UDP serwera gry, zamiast używania własnych gniazd przez aktualizator serwera głównego.

Gry na silniku Source wykorzystują to, by uprościć pracę administratorów serwerów, by nie musieli otwierać więcej portów na swoich zaporach sieciowych.

Dopiero PO wywołaniu tego powinieneś wywołać ISteamGameServer::GetNextOutgoingPacket.

Tryb GameSocketShare można włączyć podczas wywoływania SteamGameServer_Init.

Zwraca: bool.

InitGameServer

bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString );
NazwaTypOpis
unIPuint32Adres IP do powiązania. Powinien on być w kolejności hostów, tj. 127.0.0.1 == 0x7f000001. Możesz użyć INADDR_ANY do powiązania do wszystkich lokalnych adresów IPv4.
usGamePortuint16Port, z którym będą się łączyć klienci, by mogli grać.
usQueryPortuint16Port, który będzie zarządzał zadaniami związanymi z przeglądarką serwerów i żądaniami klientów o informacje.
unFlagsuint32Łączenie co najmniej jednej flagi ServerFlags.
nGameAppIdAppId_tID aplikacji (App ID) gry, dla której jest ten serwer.
pchVersionStringconst char *Ciąg znaków danej wersji ma zwykle format x.x.x.x i jest używany przez serwer główny do określenia, czy serwer jest nieaktualny. Będą wyświetlane tylko serwery z najnowszą wersją.

Rozpoczyna instancję ISteamGameServer. Jest to wywoływane przez SteamGameServer_Init. Zazwyczaj nie będziesz musiał wywoływać tego bezpośrednio.

Jeśli przekażesz MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE do usQueryPort, to API serwera gry użyje trybu GameSocketShare, co oznacza, że gra będzie odpowiedzialna za wysyłanie i odbieranie pakietów UDP dla aktualizatora serwera głównego.

Jeśli tryb GameSocketShare jest używany, to musisz użyć ISteamGameServer::HandleIncomingPacket i ISteamGameServer::GetNextOutgoingPacket, by wejść w interakcję z głównym serwerem Steam.

Zwraca: bool
true – jeśli serwer gry został pomyślnie powiązany z podanym adresem IP/portem; w przeciwnym wypadku false.

LogOff

void LogOff();
Rozpoczyna proces wylogowania serwera gry ze Steam.

Zwraca: void.
Aktywuje wywołanie zwrotne SteamServerConnectFailure_t.
Aktywuje wywołanie zwrotne SteamServersConnected_t.
Aktywuje wywołanie zwrotne SteamServersDisconnected_t.

LogOn

void LogOn( const char *pszToken );
NazwaTypOpis
pszTokenconst char *

Rozpoczyna proces logowania do stałego konta serwera gry.

Zwraca: void.
Aktywuje wywołanie zwrotne SteamServerConnectFailure_t.
Aktywuje wywołanie zwrotne SteamServersConnected_t.
Aktywuje wywołanie zwrotne SteamServersDisconnected_t.


Zobacz również: ISteamGameServer::LogOnAnonymous.

LogOnAnonymous

void LogOnAnonymous();
Logowanie do generycznego, anonimowego konta.

Zwraca: void.
Aktywuje wywołanie zwrotne SteamServerConnectFailure_t.
Aktywuje wywołanie zwrotne SteamServersConnected_t.
Aktywuje wywołanie zwrotne SteamServersDisconnected_t.


Zobacz również: ISteamGameServer::LogOn.

RequestUserGroupStatus

bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
NazwaTypOpis
steamIDUserCSteamIDUżytkownik, którego status grupy ma zostać sprawdzony.
steamIDGroupCSteamIDGrupa, która ma zostać sprawdzona.

Sprawdza, czy użytkownik znajduje się w określonej grupie Steam.

Zwraca: bool.
Aktywuje wywołanie zwrotne GSClientGroupStatus_t.
true – jeśli wywołanie zostanie pomyślnie wysłane do serwera Steam. W przeciwnym wypadku false, jeśli nie jesteśmy połączeni z serwerami Steam albo zostanie podany nieprawidłowy użytkownik lub grupa.

SendUserConnectAndAuthenticate

bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser );
NazwaTypOpis
unIPClientuint32Adres IP łączącego się klienta. Powinien on być w kolejności hostów, tj. 127.0.0.1 == 0x7f000001.
pvAuthBlobconst void *Dane uwierzytelniające dostarczone przez użytkownika z wywołania ISteamUser::InitiateGameConnection.
cubAuthBlobSizeuint32Rozmiar pvAuthBlob w bajtach.
pSteamIDUserCSteamID *Zwraca ID Steam użytkownika. Nie może być równe NULL.

Zarządza otrzymywaniem nowego połączenia od użytkownika Steam. Ta metoda zażąda od serwerów Steam zweryfikowania tożsamości użytkownika, własności aplikacji i statusu VAC.

Jeśli serwery Steam są offline, system sam potwierdzi token znajdujący się w pamięci podręcznej, co potwierdzi stan własności aplikacji i tożsamość użytkownika.

UWAGA: jest to część starego API weryfikacji użytkownika i nie należy go łączyć z nowym API.

Zwraca: bool
true – jeśli token użytkownika przejdzie podstawowe testy, w przeciwnym wypadku false.

Jeśli połączenie zakończyło się pomyślnie, powinieneś spodziewać się wywołania zwrotnego GSClientApprove_t lub GSClientDeny_t, które poinformuje cię, czy uwierzytelnienie użytkownika powiodło się, czy nie. ID Steam w wywołaniu zwrotnym będzie zgodne z tym zwróconym przez to wywołanie.

SendUserDisconnect

void SendUserDisconnect( CSteamID steamIDUser );
NazwaTypOpis
steamIDUserCSteamIDID Steam użytkownika, który opuścił serwer gry.

Powinno to być wywoływane, gdy użytkownik opuści serwer gry.

Pozwala to Steam na wewnętrzne śledzenie, którzy użytkownicy są aktualnie na poszczególnych serwerach, by zapobiec logowaniu się jednego konta do wielu serwerów, a także pokazywania, kto aktualnie jest na serwerze itp.

UWAGA: jest to część starego API weryfikacji użytkownika i nie należy go łączyć z nowym API.

SetBotPlayerCount

void SetBotPlayerCount( int cBotplayers );
NazwaTypOpis
cBotplayersintLiczba botów/graczy SI, którzy grają obecnie na serwerze.

Ustawia liczbę botów/graczy SI na serwerze gry. Domyślna wartość to 0.

SetDedicatedServer

void SetDedicatedServer( bool bDedicated );
NazwaTypOpis
bDedicatedboolCzy jest to serwer dedykowany (true), czy nasłuchujący (false)?

Ustawia, czy jest to serwer dedykowany, czy nasłuchujący. Domyślnie to serwer nasłuchujący.

UWAGA: może to zostać ustawione tylko przed wywołaniem ISteamGameServer::LogOn lub ISteamGameServer::LogOnAnonymous.

SetGameData

void SetGameData( const char *pchGameData );
NazwaTypOpis
pchGameDataconst char *Nowa wartość „gamedata”, jaka ma zostać ustawiona. Nie może być NULL lub pustym stringiem (""). Nie może być dłuższa niż k_cbMaxGameServerGameData.

Ustawia ciąg znaków definiujący dane gry („gamedata”) dla tego serwera. Jest to opcjonalne, ale jeśli jest ustawione, pozwala użytkownikom na filtrowanie w interfejsach wyszukiwania gier i przeglądarki serwerów na podstawie wartości.

Zazwyczaj formatuje się jako listę oddzieloną przecinkami lub średnikami.

Nie ustawiaj tego, jeśli niczego to nie zmienia. Zostanie to przesłane do głównego serwera tylko raz, po potwierdzeniu.

SetGameDescription

void SetGameDescription( const char *pszGameDescription );
NazwaTypOpis
pszGameDescriptionconst char *Opis twojej gry. Nie może być NULL lub pustym stringiem (""). Nie może być dłuższy niż k_cbMaxGameServerGameDescription.

Ustawia opis gry. Zaleca się, aby była to pełna nazwa twojej gry.

UWAGA: jest to wymagane dla wszystkich serwerów gry i może zostać ustawione tylko przed wywołaniem ISteamGameServer::LogOn lub ISteamGameServer::LogOnAnonymous.

SetGameTags

void SetGameTags( const char *pchGameTags );
NazwaTypOpis
pchGameTagsconst char *Nowa wartość "gametags", jaka ma zostać ustawiona. Nie może być NULL lub pustym stringiem (""). Nie może być dłuższa niż k_cbMaxGameServerTags.

Ustawia ciąg znaków definiujący tagi gry („gametags”) dla tego serwera. Jest to opcjonalne, ale jeśli jest ustawione, pozwala użytkownikom na filtrowanie w interfejsach wyszukiwania gier i przeglądarki serwerów na podstawie wartości.

Zazwyczaj formatuje się jako listę oddzieloną przecinkami lub średnikami.

Nie ustawiaj tego, jeśli niczego to nie zmienia. Zostanie to przesłane do głównego serwera tylko raz, po potwierdzeniu.

SetHeartbeatInterval

void SetHeartbeatInterval( int iHeartbeatInterval );
NazwaTypOpis
iHeartbeatIntervalintInterwał pomiędzy wysyłaniem pulsu (heartbeat) w milisekundach. Zazwyczaj jest to wartość z zakresu 250 – 1000. Użyj -1, aby użyć domyślnej wartości.

Zmienia częstotliwość wysyłania pulsu do serwerów głównych Steam.

Zazwyczaj nie trzeba z tego korzystać.

Zobacz również: ISteamGameServer::EnableHeartbeats oraz ISteamGameServer::ForceHeartbeat.

SetKeyValue

void SetKeyValue( const char *pKey, const char *pValue );
NazwaTypOpis
pKeyconst char *
pValueconst char *

Dodaje/aktualizuje parę klucz/wartość dla zasad.

Zobacz również: ISteamGameServer::ClearAllKeyValues oraz ISteamMatchmakingServers::ServerRules.

SetMapName

void SetMapName( const char *pszMapName );
NazwaTypOpis
pszMapNameconst char *Nowa nazwa mapy, jaka ma zostać ustawiona. Nie może być NULL lub pustym stringiem (""). Nie może być dłuższa niż k_cbMaxGameServerMapName.

Ustawia nazwę mapy, jaka ma być zgłaszana w przeglądarce serwerów.

SetMaxPlayerCount

void SetMaxPlayerCount( int cPlayersMax );
NazwaTypOpis
cPlayersMaxintNowa maksymalna liczba dozwolonych graczy na tym serwerze.

Ustawia maksymalną liczbę graczy, którzy mogą jednocześnie być na tym serwerze.

Tę wartość można zmienić w dowolnym czasie.

SetModDir

void SetModDir( const char *pszModDir );
NazwaTypOpis
pszModDirconst char *Katalog gry, jaki ma zostać ustawiony. Nie może być NULL lub pustym stringiem (""). Nie może być dłuższy niż k_cbMaxGameServerGameDir.

Ustawia katalog gry.

Powinien to być ten sam katalog, w którym jest instalowana gra. Tylko nazwa katalogu, nie cała ścieżka, np. Spacewar.

UWAGA: jest to wymagane dla wszystkich serwerów gry i może zostać ustawione tylko przed wywołaniem ISteamGameServer::LogOn lub ISteamGameServer::LogOnAnonymous.

SetPasswordProtected

void SetPasswordProtected( bool bPasswordProtected );
NazwaTypOpis
bPasswordProtectedboolWłącz (true) lub wyłącz (false) ochronę poprzez hasło.

Określa, czy serwer gry powinien wymagać hasła, gdy użytkownik próbuje dołączyć.

SetProduct

void SetProduct( const char *pszProduct );
NazwaTypOpis
pszProductconst char *Unikalny identyfikator dla twojej gry. Nie może być NULL lub pustym stringiem ("").

Ustawia indentyfikatory gry. Jest to obecnie używane przez główny serwer w celu sprawdzania wersji.

Zaleca się przekonwertowanie ID aplikacji gry na string.

UWAGA: jest to wymagane dla wszystkich serwerów gry i może zostać ustawione tylko przed wywołaniem ISteamGameServer::LogOn lub ISteamGameServer::LogOnAnonymous.

SetRegion

void SetRegion( const char *pszRegion );
NazwaTypOpis
pszRegionconst char *

Identyfikator regionu. Jest to pole opcjonalne, a domyślną wartością jest pusty string, czyli region „world”.

SetServerName

void SetServerName( const char *pszServerName );
NazwaTypOpis
pszServerNameconst char *Nowa nazwa serwera, jaka ma zostać ustawiona. Nie może być NULL lub pustym stringiem (""). Nie może być dłuższa niż k_cbMaxGameServerName.

Ustawia nazwę serwera, która będzie widoczna w przeglądarce serwerów.

SetSpectatorPort

void SetSpectatorPort( uint16 unSpectatorPort );
NazwaTypOpis
unSpectatorPortuint16Port, przez który będą dołączać widzowie.

Ustawia, czy serwer gry zezwala na widzów i na jakim porcie powinni się połączyć. Domyślna wartość to 0, co oznacza, że usługa nie jest używana.

SetSpectatorServerName

void SetSpectatorServerName( const char *pszSpectatorServerName );
NazwaTypOpis
pszSpectatorServerNameconst char *Nazwa serwera dla widzów, jaka ma zostać ustawiona. Nie może być NULL lub pustym stringiem (""). Nie może być dłuższa niż k_cbMaxGameServerMapName.

Ustawia nazwę serwera dla widzów. Używa się tylko, gdy port dla widzów jest różny od zera.

UserHasLicenseForApp

EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
NazwaTypOpis
steamIDCSteamIDID Steam użytkownika, który wysłał token uwierzytelniający.
appIDAppId_tID aplikacji DLC, jakie ma zostać sprawdzone, czy użytkownik je posiada.

Sprawdza, czy użytkownik posiada określoną zawartość do pobrania (DLC).

Można to wywołać tylko po wysłaniu tokenu uwierzytelniającego użytkownika do ISteamGameServer::BeginAuthSession.

Zwraca: EUserHasLicenseForAppResult.


Zobacz również: Uwierzytelnianie użytkownika i stan własności.

WasRestartRequested

bool WasRestartRequested();
Sprawdza, czy serwer główny powiadomił nas, że serwer jest nieaktualny.

Po wywołaniu tej funkcji wraca do false.

Zwraca: bool
true – jeśli serwer główny wymaga aktualizacji serwera gry i zrestartowania; w przeciwnym wypadku false.

Wywołania zwrotne

Są to wywołania zwrotne, które można wykonać poprzez wywołanie SteamAPI_RunCallbacks. Wiele z nich zostanie wywołanych bezpośrednio w odpowiedzi na metody interfejsu ISteamGameServer.

AssociateWithClanResult_t

Wysyłane, gdy serwer gry próbował zostać powiązany z grupą Steam.

NazwaTypOpis
m_eResultEResultWynik operacji. Możliwe wartości:

Powiązane funkcje: ISteamGameServer::AssociateWithClan.

ComputeNewPlayerCompatibilityResult_t

Wysyłane, gdy serwer gry sprawdza, czy nowy gracz jest odpowiedni dla serwera na podstawie danych systemu listy znajomych i ignorowanych.

NazwaTypOpis
m_eResultEResultWynik operacji. Możliwe wartości:
m_cPlayersThatDontLikeCandidateintLiczba obecnych graczy, którzy nie lubią grać z określonym graczem.
m_cPlayersThatCandidateDoesntLikeintLiczba graczy na serwerze, z którymi określony gracz nie lubi grać.
m_cClanPlayersThatDontLikeCandidateintLiczba graczy w powiązanej grupie Steam, którzy nie lubią grać z danym graczem.
m_SteamIDCandidateCSteamIDID Steam określonego gracza.

Powiązane funkcje: ISteamGameServer::ComputeNewPlayerCompatibility.

GSClientAchievementStatus_t

Przestarzałe – zamiast tego używaj ISteamGameServerStats.

NazwaTypOpis
m_SteamIDuint64Przestarzałe.
m_pchAchievementchar[128]Przestarzałe.
m_bUnlockedboolPrzestarzałe.

GSClientApprove_t

Klient otrzymał zgodę na połączenie się z tym serwerem gry.

NazwaTypOpis
m_SteamIDCSteamIDID Steam gracza, który chce się połączyć.
m_OwnerSteamIDCSteamIDID Steam będące posiadaczem tej gry. Będzie się ono różnić od m_SteamID, jeśli gra jest użytkowana w ramach biblioteki rodzinnej Steam.

GSClientDeny_t

Wywoływane, gdy użytkownikowi odmówiono połączenia z tym serwerem gry.

NazwaTypOpis
m_SteamIDCSteamIDID Steam gracza, który próbował się połączyć.
m_eDenyReasonEDenyReasonPowód odrzucenia połączenia.
m_rgchOptionalTextchar[128]Opcjonalna wiadomość tekstowa tłumacząca powód odmowy. Zwykle nie jest używana z wyjątkiem prowadzenia rejestru.

GSClientGroupStatus_t

Wywoływana, gdy otrzymaliśmy status grupy użytkownika.

NazwaTypOpis
m_SteamIDUserCSteamIDUżytkownik, o którego status grupy wysłaliśmy zapytanie.
m_SteamIDGroupCSteamIDGrupa, o którą wysłaliśmy zapytanie.
m_bMemberboolCzy użytkownik jest członkiem grupy (true), czy nie (false)?
m_bOfficerboolCzy użytkownik jest oficerem grupy? (true), czy nie (false)? Nigdy nie będzie prawdziwe (true), jeśli m_bMember to fałsz (false).

Powiązane funkcje: ISteamGameServer::RequestUserGroupStatus.

GSClientKick_t

Wywoływana, gdy serwer gry powinien wyrzucić użytkownika.

NazwaTypOpis
m_SteamIDCSteamIDID Steam użytkownika, który powinien zostać wyrzucony.
m_eDenyReasonEDenyReasonPowód wyrzucenia użytkownika.

GSGameplayStats_t

Przestarzałe – wywoływane, gdy zapytano o statystyki gry za pomocą ISteamGameServer::GetGameplayStats.

NazwaTypOpis
m_eResultEResultWynik operacji.
m_nRankint32Ogólna pozycja serwera w rankingu (liczona od 0).
m_unTotalConnectsuint32Łączna liczba klientów, którzy kiedykolwiek byli połączeni z serwerem.
m_unTotalMinutesPlayeduint32Łączna liczba minut rozegranych kiedykolwiek na serwerze.

Powiązane funkcje: ISteamGameServer::GetGameplayStats.

GSPolicyResponse_t

Otrzymywane, gdy serwer gry żąda wyświetlania go jako bezpieczny serwer (chroniony przez system VAC).

NazwaTypOpis
m_bSecureuint8Czy serwer jest obecnie ustawiony jako zabezpieczony (true), czy nie (false)?

GSReputation_t

Przestarzałe – wywoływane, gdy żażądano informacji o reputacji serwera gry.

Bany ze strony serwera głównego są nakładane na adres IP, więc można zostać zbanowanym (nawet jeśli wynik jest dobry), jeśli na innym porcie znajduje się zły serwer.
Na podstawie tych informacji można określić, który serwer jest zły.

NazwaTypOpis
m_eResultEResultWynik operacji.
m_unReputationScoreuint32Wynik reputacji dla serwera gry.
m_bBannedboolCzy serwer został zbanowany z głównych serwerów Steam (true), czy nie (false)?
m_unBannedIPuint32IP zbanowanego serwera. Ustawiane, tylko jeśli m_bBanned równa się true.
m_usBannedPortuint16Port zbanowanego serwera. Ustawiane, tylko jeśli m_bBanned równa się true.
m_ulBannedGameIDuint64ID gry, która jest obsługiwana przez zbanowany serwer. Ustawiane, tylko jeśli m_bBanned równa się true.
m_unBanExpiresuint32Czas wygaśnięcia bana w formacie uniksowym (sekundy od 1 stycznia 1970 r.). Ustawiane, tylko jeśli m_bBanned równa się true.

Powiązane funkcje: ISteamGameServer::GetServerReputation.

Stałe

Są to stałe, które zostały zdefiniowane do wykorzystania z interfejsem ISteamGameServer.

NazwaTypWartośćOpis
k_unServerFlagActiveuint320x01Na tym serwerze gry znajdują się gracze.
k_unServerFlagDedicateduint320x04Ten serwer gry jest serwerem dedykowanym.
k_unServerFlagLinuxuint320x08Ten serwer gry działa na systemie Linux.
k_unServerFlagNoneuint320x00Ten serwer gry nie ma flag.
k_unServerFlagPasswordeduint320x10Ten serwer gry jest chroniony hasłem.
k_unServerFlagPrivateuint320x20Ten serwer gry nie powinien być wymieniony na liście serwera głównego i nie będzie wymuszać uwierzytelnienia użytkowników, którzy łączy się z serwerem.
Jest to przydatne, gdy masz serwer, na którym klienci mogą nie być podłączeni do internetu, ale chcesz pozwolić im grać (np. przez sieć LAN).
k_unServerFlagSecureuint320x02Ten serwer gry chce być zabezpieczony przez system VAC.
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHAREint((uint16)-1)Używane z SteamGameServer_Init do włączenia trybu GameSocketShare.
STEAMGAMESERVER_INTERFACE_VERSIONconst char *"SteamGameServer012"