Steamworks-Dokumentation
ISteamGameServer-Schnittstelle
Stellt den Kern der Steam-Spielserver-API bereit.

Memberfunktionen

Memberfunktionen für ISteamGameServer werden über die globale Accessorfunktion SteamGameServer() aufgerufen.

AssociateWithClan

SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
NameTypBeschreibung
steamIDClanCSteamIDDie Steam-ID der Gruppe, mit der Sie verknüpft werden möchten.

Verknüpft diesen Spielserver zum Berechnen der Spielerkompatibilität mit dem angegebenen Clan.

Rückgabewert: SteamAPICall_t zur Verwendung mit einem Aufrufergebnis von AssociateWithClanResult_t.

BeginAuthSession

EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
NameTypBeschreibung
pAuthTicketconst void *Das zu validierende Authentifizierungsticket.
cbAuthTicketintDie Größe des Authentifizierungstickets in Bytes. Dies muss die Größe von pcbTicket sein, die von dem Aufruf bereitgestellt wurde, der dieses Ticket erstellt hat.
steamIDCSteamIDDie Steam-ID der Entität, die dieses Ticket gesendet hat.

Authentifiziert das Ticket der Steam-ID der Entität, um sicherzustellen, dass es gültig ist und nicht wiederverwendet wird. Achtung: Diese Identität ist nicht bestätigt, bis der Rückruf ValidateAuthTicketResponse_t empfangen wird und der Rückgabewert darin auf Erfolg überprüft wurde.

Das Ticket wird von der Entität mit ISteamUser::GetAuthSessionTicket oder GetAuthSessionTicket erstellt und muss dann über das Netzwerk dem anderen Ende zur Validierung bereitgestellt werden.

Dieser Aufruf registriert ValidateAuthTicketResponse_t-Rückrufe, wenn die Entität offline geht oder das Ticket storniert. Weitere Informationen finden Sie hier: EAuthSessionResponse.

Wenn die Mehrspielersitzung beendet wird, müssen Sie EndAuthSession aufrufen.

Rückgabewert: EBeginAuthSessionResult


Siehe auch: Benutzerauthentifizierung und Eigentum

BLoggedOn

bool BLoggedOn();
Überprüft, ob der Spielserver angemeldet ist.

Rückgabewert: bool
true, wenn der Spielserver angemeldet ist. Andernfalls false.

BSecure

bool BSecure();
Überprüft, ob sich der Spielserver im Modus „Gesichert“ befindet.

Rückgabewert: bool
true, wenn der Spielserver gesichert ist. Andernfalls false.

Siehe auch: EServerMode, GSPolicyResponse_t

BUpdateUserData

bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
NameTypBeschreibung
steamIDUserCSteamIDDie Steam-ID des Benutzers.
pchPlayerNameconst char *Der Name des Benutzers.
uScoreuint32Die aktuelle Wertung des Benutzers.

Aktualisiert die Daten, die in der Serverbrowser-Schnittstelle und der Spielsuche-Schnittstelle für einen derzeit mit dem Server verbundenen Benutzer angezeigt werden sollen.

HINWEIS: Diese Funktion ist Teil der alten Benutzerauthentifizierungs-API und sollte nicht zusammen mit Elementen der neuen API verwendet werden.

Rückgabewert: bool
true, wenn der Aufruf erfolgreich war, andernfalls, false (d. h., steamIDUser ist kein Spieler auf dem aktuellen Server).

Siehe auch: Benutzerauthentifizierung und Eigentum

CancelAuthTicket

void CancelAuthTicket( HAuthTicket hAuthTicket );
NameTypBeschreibung
hAuthTicketHAuthTicketDas aktive Authentifizierungsticket, das storniert werden soll.

Storniert ein von ISteamUser::GetAuthSessionTicket erhaltenes Authentifizierungsticket. Diese Funktion sollte aufgerufen werden, wenn Sie nicht mehr mit der angegebenen Entität spielen.

Siehe auch: Benutzerauthentifizierung und Eigentum

ClearAllKeyValues

void ClearAllKeyValues();
Löscht die ganze Liste von Schlüsseln/Werten, die in Regelabfragen gesendet werden.

Siehe auch: SetKeyValue, ISteamMatchmakingServers::ServerRules

ComputeNewPlayerCompatibility

SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
NameTypBeschreibung
steamIDNewPlayerCSteamIDDie Steam-ID des Spielers, der beizutreten versucht.

Überprüft, ob einer oder mehrere der aktuellen Spieler mit diesem neuen Spieler, der beizutreten versucht, nicht spielen wollen oder umgekehrt; dies beruht auf dem Frenemy-System.

Rückgabewert: SteamAPICall_t zur Verwendung mit einem Aufrufergebnis von ComputeNewPlayerCompatibilityResult_t.

CreateUnauthenticatedUserConnection

CSteamID CreateUnauthenticatedUserConnection();
Erzeugt einen unechten Benutzer (d. h. einen Bot), der als Spieler auf dem Server aufgeführt wird, aber die Validierung überspringt.

HINWEIS: Diese Funktion ist Teil der alten Benutzerauthentifizierungs-API und sollte nicht zusammen mit Elementen der neuen API verwendet werden.

Rückgabewert: CSteamID
Gibt die Steam-ID zurück, mit der der Bot verfolgt werden soll.

Sie sollten genau wie bei einem echten Benutzer SendUserDisconnect
aufrufen, wenn dieser Benutzer den Server verlässt.

EnableHeartbeats

void EnableHeartbeats( bool bActive );
NameTypBeschreibung
bActiveboolAktiviert (true) oder deaktiviert (false) den Masterserver-Updater.

Teilt den Steam-Masterservern mit, ob Sie aktiv sein möchten oder nicht.

Wenn dies aktiviert ist, kommuniziert der Server mit den Masterservern; andernfalls werden eingehende Nachrichten ignoriert und keine Heartbeat-Signale gesendet.

Siehe auch: SetHeartbeatInterval, ForceHeartbeat

EndAuthSession

void EndAuthSession( CSteamID steamID );
NameTypBeschreibung
steamIDCSteamIDDie Entität, mit der die aktive Authentifizierungssitzung beendet werden soll.

Beendet eine mit BeginAuthSession begonnene Authentifizierungssitzung. Diese Funktion sollte aufgerufen werden, wenn Sie nicht mehr mit der angegebenen Entität spielen.

Siehe auch: Benutzerauthentifizierung und Eigentum

ForceHeartbeat

void ForceHeartbeat();
Erzwingt bei nächster Gelegenheit das Senden eines Heartbeat-Signals an die Steam-Masterserver.

Normalerweise ist dies nicht erforderlich.

Siehe auch: EnableHeartbeats, SetHeartbeatInterval

GetAuthSessionTicket

HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
NameTypBeschreibung
pTicketvoid *Der Puffer, in den das neue Authentifizierungsticket kopiert wird, wenn der Aufruf erfolgreich war.
cbMaxTicketintDie zugewiesene Größe des angegebenen Puffers pTicket. Sollte 1024 sein.
pcbTicketuint32 *Gibt die Länge des tatsächlichen Tickets zurück.

Ruft ein Authentifizierungsticket ab, das an die Entität gesendet werden soll, die Sie authentifizieren möchten.

Nachdem Sie diese Funktion aufgerufen haben, können Sie das Ticket an die Entität senden, die daraufhin ISteamUser::BeginAuthSession aufrufen kann, um die Integrität dieser Entität zu verifizieren.

Beim Erstellen eines Tickets zur Verwendung durch die Web-API ISteamUserAuth/AuthenticateUserTicket sollte die aufrufende Anwendung auf den von der API generierten Rückruf GetAuthSessionTicketResponse_t warten, bevor sie versucht, das Ticket zu verwenden. So wird sichergestellt, dass das Ticket an den Server übermittelt wurde. Wenn dieser Rückruf nicht innerhalb eines angemessenen Zeitraums (10 bis 20 Sekunden) übermittelt wird, ist Ihr Client nicht mit Steam verbunden. Der Aufruf von AuthenticeUserTicket schlägt fehl, da der Benutzer nicht authentifiziert werden kann.

Rückgabewert: HAuthTicket
Löst einen GetAuthSessionTicketResponse_t-Rückruf aus.
Ein Handle zum Authentifizierungsticket. Wenn Sie die Interaktion mit der Entität abgeschlossen haben, müssen Sie für den Handle CancelAuthTicket aufrufen.

Gibt k_HAuthTicketInvalid zurück, wenn der Aufruf fehlschlägt.

Siehe auch: Benutzerauthentifizierung und Eigentum

GetGameplayStats

void GetGameplayStats();
(Veraltet) Wird in einer zukünftigen Version des SDK entfernt.

Rückgabewert: void
Löst einen GSGameplayStats_t-Rückruf aus.

GetNextOutgoingPacket

int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort );
NameTypBeschreibung
pOutvoid *Gibt das Paket zurück, das gesendet werden muss, indem es in diesen Puffer kopiert wird. Das Paket darf bis zu 16 KiB groß sein. Weisen Sie es daher entsprechend zu.
cbMaxOutintDie Größe des angegebenen Puffers pOut. Sollte 16 * 1024 sein.
pNetAdruint32 *Gibt die IP-Adresse, an die dieses Paket gesendet werden soll, in Host-Byte-Reihenfolge zurück, d. h.: 127.0.0.1 == 0x7f000001.
pPortuint16 *Gibt den Port, über den dieses Paket gesendet werden soll, in Host-Byte-Reihenfolge zurück.

Ruft ein Paket ab, das der Masterserver-Updater über UDP senden muss, wenn er sich im GameSocketShare-Modus befindet.

HINWEIS: Dies sollte immer nur aufgerufen werden, NACHDEM für alle in diesem Frame eingegangenen Pakete HandleIncomingPacket aufgerufen wurde!

HINWEIS: Im GameSocketShare-Modus MUSS diese Funktion jeden Frame erneut aufgerufen werden, bis 0 zurückgegeben wird.

Der GameSocketShare-Modus kann durch einen Aufruf von SteamGameServer_Init aktiviert werden.

Rückgabewert: int
Die Länge des zu sendenden Pakets oder 0, wenn in diesem Frame keine weiteren Pakete mehr gesendet werden müssen.

GetPublicIP

uint32 GetPublicIP();
Liefert die öffentliche IP-Adresse des Servers laut Steam.

Dies ist nützlich, wenn sich der Server hinter einer NAT-Firewall befindet und Sie seine IP-Adresse in einer Lobby bekanntgeben möchten, über die andere Clients eine direkte Verbindung herstellen können.

Rückgabewert: uint32
Die öffentliche IP-Adresse in Host-Byte-Reihenfolge, d. h.: 127.0.0.1 == 0x7f000001.

Gibt 0 zurück, wenn die IP-Adresse nicht festgestellt werden kann.

GetServerReputation

SteamAPICall_t GetServerReputation();
(Veraltet) Wird in einer zukünftigen Version des SDK entfernt.

Rückgabewert: SteamAPICall_t zur Verwendung mit einem Aufrufergebnis von GSReputation_t.

GetSteamID

CSteamID GetSteamID();
Liefert die Steam-ID des Spielservers.

Rückgabewert: CSteamID

HandleIncomingPacket

bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
NameTypBeschreibung
pDataconst void *Die Daten aus dem eingehenden Paket.
cbDataintDie Größe von pData in Bytes.
srcIPuint32Die IP-Adresse, an die dieses Paket gesendet wurde, in Host-Byte-Reihenfolge, d. h.: 127.0.0.1 == 0x7f000001.
srcPortuint16Der Port, über den dieses Paket gesendet wurde, in Host-Byte-Reihenfolge.

Verarbeitet ein Steam-Masterserverpaket im GameSocketShare-Modus.

Im GameSocketShare-Modus erstellt ISteamGameServer keinen eigenen Socket, um mit dem Masterserver zu kommunizieren. Stattdessen kann das Spiel seinen eigenen Socket verwenden, um Nachrichten
hin- und herzusenden. Dadurch müssen Serverbetreiber keinen weiteren Port in der Firewall öffnen.

Diese Funktion sollte jedes Mal aufgerufen werden, wenn ein Paket eingeht, das mit 0xFFFFFFFF beginnt. Das bedeutet, dass es für uns bestimmt ist.

Der IP-Parameter und der Port-Parameter werden verwendet, wenn Sie entschieden haben, den UDP-Socket des Spielservers im Multiplexbetrieb zu verwenden, statt dem Masterserver-Updater zu gestatten, seine eigenen Sockets zu verwenden.

Dies wird von Source-Engine-Spielen verwendet, um die Aufgabe der Serveradministratoren zu vereinfachen, da sie dann keine weiteren Ports in ihren Firewalls öffnen müssen.

Rufen Sie GetNextOutgoingPacket erst auf, NACHDEM Sie diese Funktion aufgerufen haben.

Der GameSocketShare-Modus kann durch einen Aufruf von SteamGameServer_Init aktiviert werden.

Rückgabewert: bool

InitGameServer

bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString );
NameTypBeschreibung
unIPuint32Die IP-Adresse, die Sie verwenden möchten. (Die IP-Adresse muss in Host-Byte-Reihenfolge angegeben werden, d. h.: 127.0.0.1 == 0x7f000001.) Sie können INADDR_ANY angeben, um alle lokalen IPv4-Adressen zu verwenden.
usGamePortuint16Der Port, mit dem sich Clients zum Spielen verbinden.
usQueryPortuint16Der Port zur Verwaltung von Serverbrowser-bezogenen Aufgaben und Info-Pings von Clients.
unFlagsuint32Eine Menge von einem oder mehreren Server-Flags.
nGameAppIdAppId_tDie App-ID des Spiels, für das dieser Server vorgesehen ist.
pchVersionStringconst char *Die Versionszeichenfolge hat normalerweise das Format x.x.x.x und wird vom Masterserver für die Erkennung veralteter Server verwendet. (Nur Server mit der neuesten Version werden aufgelistet.)

Initialisiert die Instanz von ISteamGameServer. Wird von SteamGameServer_Init aufgerufen und muss normalerweise nicht direkt aufgerufen werden.

Wenn Sie MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE an usQueryPort übergeben, verwendet die Spielserver-API den „GameSocketShare“-Modus, bei dem das Spiel dafür verantwortlich ist, UDP-Pakete für den Masterserver-Updater zu senden und zu empfangen.

Bei Verwendung des GameSocketShare-Modus müssen Sie HandleIncomingPacket und GetNextOutgoingPacket verwenden, um mit dem Steam-Masterserver zu interagieren.

Rückgabewert: bool
true, wenn der Spielserver die angegebene IP-Adresse und den angegeben Port erfolgreich verwenden kann. Andernfalls false.

LogOff

void LogOff();
Startet den Prozess, der den Spielserver von Steam abmeldet.

Rückgabewert: void
Löst einen SteamServerConnectFailure_t-Rückruf aus.
Löst einen SteamServersConnected_t-Rückruf aus.
Löst einen SteamServersDisconnected_t-Rückruf aus.

LogOn

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

Startet den Prozess, sich mit einem persistenten Spielserver-Account anzumelden.

Rückgabewert: void
Löst einen SteamServerConnectFailure_t-Rückruf aus.
Löst einen SteamServersConnected_t-Rückruf aus.
Löst einen SteamServersDisconnected_t-Rückruf aus.


Siehe auch: LogOnAnonymous

LogOnAnonymous

void LogOnAnonymous();
Meldet sich mit einem generischen, anonymen Account an.

Rückgabewert: void
Löst einen SteamServerConnectFailure_t-Rückruf aus.
Löst einen SteamServersConnected_t-Rückruf aus.
Löst einen SteamServersDisconnected_t-Rückruf aus.


Siehe auch: LogOn

RequestUserGroupStatus

bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
NameTypBeschreibung
steamIDUserCSteamIDDer Benutzer, dessen Gruppenstatus überprüft werden soll.
steamIDGroupCSteamIDDie zu überprüfende Gruppe.

Überprüft, ob sich ein Benutzer in der angegebenen Steam-Gruppe befindet.

Rückgabewert: bool
Löst einen GSClientGroupStatus_t-Rückruf aus.
true, wenn der Aufruf erfolgreich an die Steam-Server gesendet wurde. false, wenn keine Verbindung zu den Steam-Servern besteht oder ein ungültiger Benutzer oder eine ungültige Gruppe angegeben wurde.

SendUserConnectAndAuthenticate

bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser );
NameTypBeschreibung
unIPClientuint32Die IP-Adresse des Clients, der eine Verbindung herstellt. Die IP-Adresse muss in Host-Byte-Reihenfolge angegeben werden, d. h.: 127.0.0.1 == 0x7f000001.
pvAuthBlobconst void *Die vom Benutzer durch einen Aufruf von ISteamUser::InitiateGameConnection bereitgestellten Authentifizierungsdaten.
cubAuthBlobSizeuint32Die Größe von pvAuthBlob in Bytes.
pSteamIDUserCSteamID *Gibt die Steam-ID des Benutzers zurück. Darf nicht NULL sein.

Verarbeitet den Empfang einer neuen Verbindung von einem Steam-Benutzer. Dabei werden die Steam-Server gebeten, die Identität, den Besitz der Anwendung und den VAC-Status des Benutzers zu validieren.

Wenn die Steam-Server offline sind, wird das zwischengespeicherte Ticket selbst validiert, wodurch Besitz der Anwendung und Identität validiert werden.

HINWEIS: Diese Funktion ist Teil der alten Benutzerauthentifizierungs-API und sollte nicht zusammen mit Elementen der neuen API verwendet werden.

Rückgabewert: bool
true, wenn das Benutzerticket grundlegende Überprüfungen besteht. Andernfalls false.

Wenn dieser Aufruf erfolgreich ist, sollten Sie mit einem GSClientApprove_t-Rückruf oder einem GSClientDeny_t-Rückruf rechnen, der Sie darüber informiert, ob die Authentifizierung für den Benutzer erfolgreich war oder fehlgeschlagen ist. Die Steam-ID im Rückruf stimmt mit der von diesem Aufruf zurückgegebenen Steam-ID überein.

SendUserDisconnect

void SendUserDisconnect( CSteamID steamIDUser );
NameTypBeschreibung
steamIDUserCSteamIDDie Steam-ID des Benutzers, der den Spielserver verlassen hat.

Diese Funktion sollte immer dann aufgerufen werden, wenn ein Benutzer den Spielserver verlässt.

Damit kann Steam intern verfolgen, welche Benutzer sich derzeit auf welchen Servern befinden, um zu verhindern, dass ein einzelner Account bei mehreren Servern angemeldet ist, um zu zeigen, wer sich derzeit auf dem Server befindet usw.

HINWEIS: Diese Funktion ist Teil der alten Benutzerauthentifizierungs-API und sollte nicht zusammen mit Elementen der neuen API verwendet werden.

SetBotPlayerCount

void SetBotPlayerCount( int cBotplayers );
NameTypBeschreibung
cBotplayersintDie Anzahl der Bots/KI-Spieler, die derzeit auf dem Server spielen.

Legt die Anzahl der Bots/KI-Spieler auf dem Spielserver fest. Der Standardwert ist 0.

SetDedicatedServer

void SetDedicatedServer( bool bDedicated );
NameTypBeschreibung
bDedicatedboolIst dies ein dedizierter Server (true) oder ein Listen-Server (false)?

Legt fest, ob dies ein dedizierter Server oder ein Listen-Server ist. Standardeinstellung: Listen-Server.

HINWEIS: Diese Funktion kann nur vor dem Aufruf von LogOn oder LogOnAnonymous verwendet werden.

SetGameData

void SetGameData( const char *pchGameData );
NameTypBeschreibung
pchGameDataconst char *Der neue einzustellende „gamedata“-Wert. Darf weder NULL noch ein leerer String ("") sein. Dieser String darf nicht länger als k_cbMaxGameServerGameData sein.

Legt einen String fest, der die Spieldaten („gamedata“) für diesen Server definiert. Dies ist optional, ermöglicht es Benutzern aber, in der Spielsuche-Schnittstelle bzw. Serverbrowser-Schnittstelle nach diesem Wert zu filtern.

Dieser String wird in der Regel als eine durch Kommas oder Semikolons getrennte Liste formatiert.

Setzen Sie diesen String nur, wenn der Wert sich tatsächlich ändert. Er wird nur einmal auf den Master hochgeladen – bei der Validierung.

SetGameDescription

void SetGameDescription( const char *pszGameDescription );
NameTypBeschreibung
pszGameDescriptionconst char *Die Beschreibung Ihres Spiels. Darf weder NULL noch ein leerer String ("") sein. Dieser String darf nicht länger als k_cbMaxGameServerGameDescription sein.

Legt die Spielbeschreibung fest. Es wird empfohlen, den vollständigen Namen Ihres Spiels anzugeben.

HINWEIS: Diese Funktion ist für alle Spielserver erforderlich und kann nur vor dem Aufruf von LogOn oder LogOnAnonymous verwendet werden.

SetGameTags

void SetGameTags( const char *pchGameTags );
NameTypBeschreibung
pchGameTagsconst char *Der neue einzustellende „gametags“-Wert. Darf weder NULL noch ein leerer String ("") sein. Dieser String darf nicht länger als k_cbMaxGameServerTags sein.

Legt einen String fest, der die Spiel-Tags („gametags“) für diesen Server definiert. Dies ist optional, ermöglicht es Benutzern aber, in der Spielsuche-Schnittstelle bzw. Serverbrowser-Schnittstelle nach diesem Wert zu filtern.

Dieser String wird in der Regel als eine durch Kommas oder Semikolons getrennte Liste formatiert.

Setzen Sie diesen String nur, wenn der Wert sich tatsächlich ändert. Er wird nur einmal auf den Master hochgeladen – bei der Validierung.

SetHeartbeatInterval

void SetHeartbeatInterval( int iHeartbeatInterval );
NameTypBeschreibung
iHeartbeatIntervalintDas Intervall zwischen dem Senden von Heartbeat-Signalen in Millisekunden. In der Regel sollte der Wert zwischen 250 und 1000 liegen. Verwenden Sie -1, um den Standardwert zu verwenden.

Ändert, wie oft Heartbeat-Signale an die Steam-Masterserver gesendet werden.

Normalerweise ist dies nicht erforderlich.

Siehe auch: EnableHeartbeats, ForceHeartbeat

SetKeyValue

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

Fügt ein Schlüssel-Wert-Paar für Regeln hinzu oder aktualisiert ein Schlüssel-Wert-Paar für Regeln.

Siehe auch: ClearAllKeyValues, ISteamMatchmakingServers::ServerRules

SetMapName

void SetMapName( const char *pszMapName );
NameTypBeschreibung
pszMapNameconst char *Der neue einzustellende Kartenname. Darf weder NULL noch ein leerer String ("") sein. Dieser String darf nicht länger als k_cbMaxGameServerMapName sein.

Legt den Namen einer Karte fest, der im Serverbrowser gemeldet werden soll.

SetMaxPlayerCount

void SetMaxPlayerCount( int cPlayersMax );
NameTypBeschreibung
cPlayersMaxintDie neue maximale Spieleranzahl, die auf diesem Server erlaubt ist.

Legt die maximale Anzahl von Spielern fest, die auf diesem Server gleichzeitig erlaubt ist.

Dieser Wert kann jederzeit geändert werden.

SetModDir

void SetModDir( const char *pszModDir );
NameTypBeschreibung
pszModDirconst char *Das festzulegende Spielverzeichnis. Darf weder NULL noch ein leerer String ("") sein. Dieser String darf nicht länger als k_cbMaxGameServerGameDir sein.

Legt das Spielverzeichnis fest.

Dies sollte dasselbe Verzeichnis sein, in dem das Spiel installiert wird. Nur der Ordnername, nicht der ganze Pfad (z. B. „Spacewar“).

HINWEIS: Diese Funktion ist für alle Spielserver erforderlich und kann nur vor dem Aufruf von LogOn oder LogOnAnonymous verwendet werden.

SetPasswordProtected

void SetPasswordProtected( bool bPasswordProtected );
NameTypBeschreibung
bPasswordProtectedboolPasswortschutz aktivieren (true) oder deaktivieren (false).

Legt fest, ob der Spielserver ein Passwort verlangen soll, wenn der Benutzer versucht beizutreten.

SetProduct

void SetProduct( const char *pszProduct );
NameTypBeschreibung
pszProductconst char *Der eindeutige Bezeichner Ihres Steam-Spiels. Darf weder NULL noch ein leerer String ("") sein.

Stellt den Spielproduktbezeichner ein. Dieser wird derzeit vom Masterserver zur Versionsprüfung verwendet.

Zu diesem Zweck wird empfohlen, die App-ID des Spiels zu einem String zu konvertieren.

HINWEIS: Diese Funktion ist für alle Spielserver erforderlich und kann nur vor dem Aufruf von LogOn oder LogOnAnonymous verwendet werden.

SetRegion

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

Regionsbezeichner. Dies ist ein optionales Feld. Der Standardwert ist ein leerer String, was für die Region „Welt“ steht.

SetServerName

void SetServerName( const char *pszServerName );
NameTypBeschreibung
pszServerNameconst char *Der neue festzulegende Servername. Darf weder NULL noch ein leerer String ("") sein. Dieser String darf nicht länger als k_cbMaxGameServerName sein.

Legt den Namen des Servers fest, wie er im Serverbrowser angezeigt werden soll.

SetSpectatorPort

void SetSpectatorPort( uint16 unSpectatorPort );
NameTypBeschreibung
unSpectatorPortuint16Der Port für den Beitritt von Zuschauern.

Legt fest, ob der Spielserver Zuschauer erlaubt und über welchen Port sie die Verbindung herstellen sollen. Der Standardwert ist 0, was bedeutet, dass der Dienst nicht verwendet wird.

SetSpectatorServerName

void SetSpectatorServerName( const char *pszSpectatorServerName );
NameTypBeschreibung
pszSpectatorServerNameconst char *Der festzulegende Name des Zuschauerservers. Darf weder NULL noch ein leerer String ("") sein. Dieser String darf nicht länger als k_cbMaxGameServerMapName sein.

Legt den Namen des Zuschauerservers fest. Dieser wird nur dann verwendet, wenn der Zuschauerport nicht 0 ist.

UserHasLicenseForApp

EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
NameTypBeschreibung
steamIDCSteamIDDie Steam-ID des Benutzers, der das Authentifizierungsticket gesendet hat.
appIDAppId_tDie App-ID des Zusatzinhalts, für die überprüft werden soll, ob der Benutzer sie besitzt.

Überprüft, ob der Benutzer einen bestimmten Zusatzinhalte (DLC) besitzt.

Diese Funktion kann nur aufgerufen werden, nachdem das Authentifizierungsticket des Benutzers an BeginAuthSession gesendet wurde.

Rückgabewert: EUserHasLicenseForAppResult


Siehe auch: Benutzerauthentifizierung und Eigentum

WasRestartRequested

bool WasRestartRequested();
Überprüft, ob der Masterserver uns mitgeteilt hat, dass unsere Version veraltet ist.

Dies wird nach dem Aufrufen dieser Funktion wieder auf false zurückgesetzt.

Rückgabewert: bool
true, wenn der Masterserver möchte, dass dieser Spielserver aktualisiert und neu gestartet wird. Andernfalls false.

Rückrufe

Diese Rückrufe können durch das Aufrufen von SteamAPI_RunCallbacks ausgelöst werden. Viele davon werden als Reaktion auf die Memberfunktionen von ISteamGameServer ausgelöst.

AssociateWithClanResult_t

Wird gesendet, wenn der Spielserver versucht hat, mit einer Steam-Gruppe verknüpft zu werden.

NameTypBeschreibung
m_eResultEResultDas Ergebnis der Operation. Mögliche Werte:

Verknüpfte Funktionen: AssociateWithClan

ComputeNewPlayerCompatibilityResult_t

Wird gesendet, wenn der Spielserver überprüft, ob der neue Spieler laut Frenemy-System gut zum Server passt.

NameTypBeschreibung
m_eResultEResultDas Ergebnis der Operation. Mögliche Werte:
m_cPlayersThatDontLikeCandidateintDie Anzahl der aktuellen Spieler, die mit dem angegebenen Spieler nicht spielen möchten.
m_cPlayersThatCandidateDoesntLikeintDie Anzahl der Spieler auf dem Server, mit denen der angegebene Spieler nicht spielen möchte.
m_cClanPlayersThatDontLikeCandidateintDie Anzahl der Spieler in der verknüpften Steam-Gruppe, die mit dem Spieler nicht spielen möchten.
m_SteamIDCandidateCSteamIDDie Steam-ID des angegebenen Spielers.

Verknüpfte Funktionen: ComputeNewPlayerCompatibility

GSClientAchievementStatus_t

Veraltet – Verwenden Sie stattdessen ISteamGameServerStats.

NameTypBeschreibung
m_SteamIDuint64Veraltet
m_pchAchievementchar[128]Veraltet
m_bUnlockedboolVeraltet

GSClientApprove_t

Ein Client wurde für die Verbindung zu diesem Spielserver zugelassen.

NameTypBeschreibung
m_SteamIDCSteamIDDie Steam-ID des Benutzers, der sich verbinden möchte.
m_OwnerSteamIDCSteamIDDie Steam-ID, die das Spiel besitzt. Diese unterscheidet sich von m_SteamID, wenn auf das Spiel über die Steam-Familienbibliothek zugegriffen wird.

GSClientDeny_t

Wird aufgerufen, wenn einem Benutzer die Verbindung zu diesem Spielserver verweigert wurde.

NameTypBeschreibung
m_SteamIDCSteamIDDie Steam-ID des Benutzers, der versucht hat sich zu verbinden.
m_eDenyReasonEDenyReasonDer Grund, aus dem diesem Spieler die Verbindung verweigert wurde.
m_rgchOptionalTextchar[128]Eine optionale Textnachricht, in der der Grund der Verweigerung erklärt wird. In der Regel wird dies lediglich zur Protokollierung verwendet.

GSClientGroupStatus_t

Wird aufgerufen, wenn wir den Gruppenstatus eines Benutzers erhalten haben.

NameTypBeschreibung
m_SteamIDUserCSteamIDDer Benutzer, dessen Gruppenstatus wir abgefragt haben.
m_SteamIDGroupCSteamIDDie Gruppe, die wir abgefragt haben.
m_bMemberboolIst der Nutzer Mitglied der Gruppe (true) oder nicht (false)?
m_bOfficerboolIst der Nutzer Administrator der Gruppe (true) oder nicht (false)? Ist niemals true wenn m_bMember0> false0> ist.

Verknüpfte Funktionen: RequestUserGroupStatus

GSClientKick_t

Wird aufgerufen, wenn der Spielserver den Benutzer herauswerfen sollte.

NameTypBeschreibung
m_SteamIDCSteamIDDie Steam-ID des Spielers, der herausgeworfen werden sollte.
m_eDenyReasonEDenyReasonDer Grund, aus dem der Spieler herausgeworfen wird.

GSGameplayStats_t

Veraltet – Wird aufgerufen, wenn mit GetGameplayStats Spielstatistikinformationen abgefragt wurden.

NameTypBeschreibung
m_eResultEResultDas Ergebnis der Operation.
m_nRankint32Der Gesamtrang des Servers (0-basiert).
m_unTotalConnectsuint32Die Gesamtanzahl der Clients, die jemals Verbindung zum Server hergestellt haben.
m_unTotalMinutesPlayeduint32Die Gesamtanzahl der Minuten, die jemals auf dem Server gespielt wurden.

Verknüpfte Funktionen: GetGameplayStats

GSPolicyResponse_t

Wird empfangen, wenn der Spielserver anfordert, als gesichert (durch VAC geschützt) angezeigt zu werden.

NameTypBeschreibung
m_bSecureuint8Ist der Server jetzt „gesichert“ (true) oder nicht (false)?.

GSReputation_t

Veraltet – Wird aufgerufen, wenn der Ruf des Spielservers abgefragt wurde.

Masterserver-Sperren werden nach IP verhängt. Daher ist eine Sperre trotz einer guten Wertung möglich, wenn es einen schlechten Server auf einem anderen Port gibt.
Anhand dieser Informationen kann ermittelt werden, welcher Server unzulässig ist.

NameTypBeschreibung
m_eResultEResultDas Ergebnis der Operation.
m_unReputationScoreuint32Die Bewertung des Rufs des Spielservers.
m_bBannedboolIst der Server von den Steam-Masterservern gesperrt (true) oder nicht (false)?
m_unBannedIPuint32Die IP-Adresse des gesperrten Servers. Nur eigestellt, wenn m_bBanned is true ist.
m_usBannedPortuint16Der Port des gesperrten Servers. Nur eigestellt, wenn m_bBanned is true ist.
m_ulBannedGameIDuint64Die Spiel-ID, die der gesperrte Server bedient. Nur gesetzt, wenn m_bBanned true ist.
m_unBanExpiresuint32Der Zeitpunkt, zu dem die Sperre abläuft, in Unixzeit (Sekunden seit dem 1. Januar 1970). Nur gesetzt, wenn m_bBanned true ist.

Verknüpfte Funktionen: GetServerReputation

Konstanten

Dies sind Konstanten, die zur Verwendung mit ISteamGameServer definiert sind.

NameTypWertBeschreibung
k_unServerFlagActiveuint320x01Auf dem Spielserver spielen Benutzer.
k_unServerFlagDedicateduint320x04Dieser Spielserver ist dediziert.
k_unServerFlagLinuxuint320x08Dieser Spielserver läuft unter Linux.
k_unServerFlagNoneuint320x00Dieser Spielserver hat keine Flags.
k_unServerFlagPasswordeduint320x10Dieser Spielserver ist passwortgeschützt.
k_unServerFlagPrivateuint320x20Dieser Spielserver sollte nicht auf dem Masterserver aufgeführt werden und keine Authentifizierung für Benutzer erzwingen, die eine Verbindung zum Server herstellen.
Dies ist nützlich, wenn Sie einen Server ausführen, bei dem die Clients eventuell nicht mit dem Internet verbunden sind, Sie ihnen aber trotzdem erlauben möchten zu spielen (d. h. lokales Netzwerk).
k_unServerFlagSecureuint320x02Dieser Spielserver möchte VAC-gesichert sein.
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHAREint((uint16)-1)Mit SteamGameServer_Init verwendet, um GameSocketShare-Modus zu aktivieren.
STEAMGAMESERVER_INTERFACE_VERSIONconst char *"SteamGameServer012"