Stanowi rdzeń API serwerów gier Steam.
Metody
Metody interfejsu
ISteamGameServer
są wywoływane poprzez akcesor globalny
SteamGameServer()
.
AssociateWithClan
SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
Nazwa | Typ | Opis |
steamIDClan | CSteamID | ID 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 );
Nazwa | Typ | Opis |
pAuthTicket | const void * | Token autoryzacji, który ma zostać zweryfikowany. |
cbAuthTicket | int | Rozmiar tokena autoryzacji w bajtach. Musi on odpowiadać rozmiarowi pcbTicket podanemu przez wywołanie, które wygenerowało ten token. |
steamID | CSteamID | ID 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_tBUpdateUserData
bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
Nazwa | Typ | Opis |
steamIDUser | CSteamID | ID Steam użytkownika. |
pchPlayerName | const char * | Nazwa użytkownika. |
uScore | uint32 | Obecny 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 );
Nazwa | Typ | Opis |
hAuthTicket | HAuthTicket | Aktywny 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 );
Nazwa | Typ | Opis |
steamIDNewPlayer | CSteamID | ID 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: CSteamIDZwraca 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 );
Nazwa | Typ | Opis |
bActive | bool | Włą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 );
Nazwa | Typ | Opis |
steamID | CSteamID | Obiekt, 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 );
Nazwa | Typ | Opis |
pTicket | void * | Bufor, do którego zostanie skopiowany nowy token uwierzytelniający, jeśli wywołanie zakończy się pomyślnie. |
cbMaxTicket | int | Rozmiar bufora przydzielonego do pTicket . Powinien wynosić 1024. |
pcbTicket | uint32 * | 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: HAuthTicketAktywuje 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 );
Nazwa | Typ | Opis |
pOut | void * | 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. |
cbMaxOut | int | Rozmiar bufora oferowanego do pOut , powinien wynosić 16 * 1024. |
pNetAdr | uint32 * | Zwraca adres IP, na który ten pakiet ma zostać wysłany w kolejności hostów, np.: 127.0.0.1 == 0x7f000001. |
pPort | uint16 * | 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: uint32Publiczne 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 );
Nazwa | Typ | Opis |
pData | const void * | Dane z nadchodzącego pakietu. |
cbData | int | Rozmiar pData w bajtach. |
srcIP | uint32 | Adres IP, na który ten pakiet został wysłany w kolejności hostów, np.: 127.0.0.1 == 0x7f000001. |
srcPort | uint16 | Port, 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 );
Nazwa | Typ | Opis |
unIP | uint32 | Adres 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. |
usGamePort | uint16 | Port, z którym będą się łączyć klienci, by mogli grać. |
usQueryPort | uint16 | Port, który będzie zarządzał zadaniami związanymi z przeglądarką serwerów i żądaniami klientów o informacje. |
unFlags | uint32 | Łączenie co najmniej jednej flagi ServerFlags. |
nGameAppId | AppId_t | ID aplikacji (App ID) gry, dla której jest ten serwer. |
pchVersionString | const 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 );
Nazwa | Typ | Opis |
pszToken | const 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 );
Nazwa | Typ | Opis |
steamIDUser | CSteamID | Użytkownik, którego status grupy ma zostać sprawdzony. |
steamIDGroup | CSteamID | Grupa, 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 );
Nazwa | Typ | Opis |
unIPClient | uint32 | Adres IP łączącego się klienta. Powinien on być w kolejności hostów, tj. 127.0.0.1 == 0x7f000001. |
pvAuthBlob | const void * | Dane uwierzytelniające dostarczone przez użytkownika z wywołania ISteamUser::InitiateGameConnection. |
cubAuthBlobSize | uint32 | Rozmiar pvAuthBlob w bajtach. |
pSteamIDUser | CSteamID * | 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 );
Nazwa | Typ | Opis |
steamIDUser | CSteamID | ID 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 );
Nazwa | Typ | Opis |
cBotplayers | int | Liczba 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 );
Nazwa | Typ | Opis |
bDedicated | bool | Czy 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 );
Nazwa | Typ | Opis |
pchGameData | const 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 );
Nazwa | Typ | Opis |
pszGameDescription | const 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 );
Nazwa | Typ | Opis |
pchGameTags | const 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 );
Nazwa | Typ | Opis |
iHeartbeatInterval | int | Interwał 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 );
Nazwa | Typ | Opis |
pKey | const char * | |
pValue | const char * | |
Dodaje/aktualizuje parę klucz/wartość dla zasad.
Zobacz również: ISteamGameServer::ClearAllKeyValues oraz
ISteamMatchmakingServers::ServerRules.
SetMapName
void SetMapName( const char *pszMapName );
Nazwa | Typ | Opis |
pszMapName | const 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 );
Nazwa | Typ | Opis |
cPlayersMax | int | Nowa 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 );
Nazwa | Typ | Opis |
pszModDir | const 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 );
Nazwa | Typ | Opis |
bPasswordProtected | bool | Włą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 );
Nazwa | Typ | Opis |
pszProduct | const 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 );
Nazwa | Typ | Opis |
pszRegion | const char * | |
Identyfikator regionu. Jest to pole opcjonalne, a domyślną wartością jest pusty string, czyli region „world”.
SetServerName
void SetServerName( const char *pszServerName );
Nazwa | Typ | Opis |
pszServerName | const 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 );
Nazwa | Typ | Opis |
unSpectatorPort | uint16 | Port, 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 );
Nazwa | Typ | Opis |
pszSpectatorServerName | const 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 );
Nazwa | Typ | Opis |
steamID | CSteamID | ID Steam użytkownika, który wysłał token uwierzytelniający. |
appID | AppId_t | ID 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.
Nazwa | Typ | Opis |
m_eResult | EResult | Wynik 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.
Nazwa | Typ | Opis |
m_eResult | EResult | Wynik operacji. Możliwe wartości:
|
m_cPlayersThatDontLikeCandidate | int | Liczba obecnych graczy, którzy nie lubią grać z określonym graczem. |
m_cPlayersThatCandidateDoesntLike | int | Liczba graczy na serwerze, z którymi określony gracz nie lubi grać. |
m_cClanPlayersThatDontLikeCandidate | int | Liczba graczy w powiązanej grupie Steam, którzy nie lubią grać z danym graczem. |
m_SteamIDCandidate | CSteamID | ID Steam określonego gracza. |
Powiązane funkcje: ISteamGameServer::ComputeNewPlayerCompatibility.
GSClientAchievementStatus_t
Przestarzałe – zamiast tego używaj
ISteamGameServerStats.
Nazwa | Typ | Opis |
m_SteamID | uint64 | Przestarzałe. |
m_pchAchievement | char[128] | Przestarzałe. |
m_bUnlocked | bool | Przestarzałe. |
GSClientApprove_t
Klient otrzymał zgodę na połączenie się z tym serwerem gry.
Nazwa | Typ | Opis |
m_SteamID | CSteamID | ID Steam gracza, który chce się połączyć. |
m_OwnerSteamID | CSteamID | ID 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.
Nazwa | Typ | Opis |
m_SteamID | CSteamID | ID Steam gracza, który próbował się połączyć. |
m_eDenyReason | EDenyReason | Powód odrzucenia połączenia. |
m_rgchOptionalText | char[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.
Nazwa | Typ | Opis |
m_SteamIDUser | CSteamID | Użytkownik, o którego status grupy wysłaliśmy zapytanie. |
m_SteamIDGroup | CSteamID | Grupa, o którą wysłaliśmy zapytanie. |
m_bMember | bool | Czy użytkownik jest członkiem grupy (true), czy nie (false)? |
m_bOfficer | bool | Czy 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.
Nazwa | Typ | Opis |
m_SteamID | CSteamID | ID Steam użytkownika, który powinien zostać wyrzucony. |
m_eDenyReason | EDenyReason | Powód wyrzucenia użytkownika. |
GSGameplayStats_t
Przestarzałe – wywoływane, gdy zapytano o statystyki gry za pomocą
ISteamGameServer::GetGameplayStats.
Nazwa | Typ | Opis |
m_eResult | EResult | Wynik operacji. |
m_nRank | int32 | Ogólna pozycja serwera w rankingu (liczona od 0). |
m_unTotalConnects | uint32 | Łączna liczba klientów, którzy kiedykolwiek byli połączeni z serwerem. |
m_unTotalMinutesPlayed | uint32 | Łą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).
Nazwa | Typ | Opis |
m_bSecure | uint8 | Czy 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.
Nazwa | Typ | Opis |
m_eResult | EResult | Wynik operacji. |
m_unReputationScore | uint32 | Wynik reputacji dla serwera gry. |
m_bBanned | bool | Czy serwer został zbanowany z głównych serwerów Steam (true), czy nie (false)? |
m_unBannedIP | uint32 | IP zbanowanego serwera. Ustawiane, tylko jeśli m_bBanned równa się true. |
m_usBannedPort | uint16 | Port zbanowanego serwera. Ustawiane, tylko jeśli m_bBanned równa się true. |
m_ulBannedGameID | uint64 | ID gry, która jest obsługiwana przez zbanowany serwer. Ustawiane, tylko jeśli m_bBanned równa się true. |
m_unBanExpires | uint32 | Czas 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.
Nazwa | Typ | Wartość | Opis |
k_unServerFlagActive | uint32 | 0x01 | Na tym serwerze gry znajdują się gracze. |
k_unServerFlagDedicated | uint32 | 0x04 | Ten serwer gry jest serwerem dedykowanym. |
k_unServerFlagLinux | uint32 | 0x08 | Ten serwer gry działa na systemie Linux. |
k_unServerFlagNone | uint32 | 0x00 | Ten serwer gry nie ma flag. |
k_unServerFlagPassworded | uint32 | 0x10 | Ten serwer gry jest chroniony hasłem. |
k_unServerFlagPrivate | uint32 | 0x20 | Ten 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_unServerFlagSecure | uint32 | 0x02 | Ten serwer gry chce być zabezpieczony przez system VAC. |
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE | int | ((uint16)-1) | Używane z SteamGameServer_Init do włączenia trybu GameSocketShare. |
STEAMGAMESERVER_INTERFACE_VERSION | const char * | "SteamGameServer012" | |