Costituisce il nucleo dell'API dei server di gioco di Steam.
Funzioni membro
Le funzioni membro per
ISteamGameServer
vengono chiamate tramite la funzione globale di accesso
ISteamGameServer()
.
AssociateWithClan
SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
Nome | Tipo | Descrizione |
steamIDClan | CSteamID | L'ID di Steam del gruppo al quale vuoi essere associato. |
Associa questo server di gioco a questo clan per calcolare la compatibilità dei giocatori.
Restituisce: SteamAPICall_t da utilizzare con un risultato della chiamata a
AssociateWithClanResult_t.
BeginAuthSession
EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
Nome | Tipo | Descrizione |
pAuthTicket | const void * | Il ticket di autenticazione da convalidare. |
cbAuthTicket | int | Le dimensioni in byte del ticket di autenticazione. Deve corrispondere alle dimensioni pcbTicket fornite dalla chiamata che ha creato questo ticket. |
steamID | CSteamID | L'ID di Steam dell'entità che ha inviato questo ticket. |
Autentica il ticket dell'ID di Steam dell'entità e si assicura che sia valido e non già riutilizzato. Tieni presente che l'identità non è confermata finché non viene ricevuta la callback
ValidateAuthTicketResponse_t e il valore di ritorno di tale callback non è stato correttamente verificato.
Il ticket viene creato sull'entità con
ISteamUser::GetAuthSessionTicket o
ISteamGameServer::GetAuthSessionTicket e poi deve essere fornito attraverso la rete per essere convalidato dall'altro lato.
La funzione viene così registrata per callback
ValidateAuthTicketResponse_t, nel caso in cui l'entità si disconnetta o annulli il ticket. Per ulteriori informazioni, vedi
EAuthSessionResponse.
Al termine della sessione multigiocatore dovrai chiamare
ISteamGameServer::EndAuthSession.
Restituisce: EBeginAuthSessionResultVedi anche: Autenticazione dell'utente e verifica della proprietàBLoggedOn
bool BLoggedOn();
Controlla se il server di gioco ha effettuato l'accesso.
Restituisce: bool
true se il server di gioco ha effettuato l'accesso; altrimenti restituisce
false.
BSecure
bool BSecure();
Controlla se il server di gioco è in modalità "Protetta".
Restituisce: bool
true se il server di gioco è protetto; altrimenti restituisce
false.
Vedi anche: EServerMode,
GSPolicyResponse_tBUpdateUserData
bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
Nome | Tipo | Descrizione |
steamIDUser | CSteamID | L'ID di Steam dell'utente. |
pchPlayerName | const char * | Il nome dell'utente. |
uScore | uint32 | Il punteggio corrente dell'utente. |
Aggiorna i dati in modo che vengano visualizzati nel browser del server e nelle interfacce del matchmaking per un utente attualmente collegato al server.
NOTA: fa parte di una vecchia API di autenticazione utente, da non confondere con quella nuova.
Restituisce: bool
true se la chiamata è andata a buon fine; altrimenti restituisce
false in caso di errore (ovvero,
steamIDUser
non è un giocatore nel server corrente).
Vedi anche: Autenticazione dell'utente e verifica della proprietàCancelAuthTicket
void CancelAuthTicket( HAuthTicket hAuthTicket );
Nome | Tipo | Descrizione |
hAuthTicket | HAuthTicket | Il ticket di autenticazione attivo da annullare. |
Annulla un ticket di autenticazione ricevuto da
ISteamUser::GetAuthSessionTicket. Dovrebbe essere chiamata quando non si gioca più con l'entità specificata.
Vedi anche: Autenticazione dell'utente e verifica della proprietàClearAllKeyValues
void ClearAllKeyValues();
Cancella tutto l'elenco di chiavi/valori inviati nelle query sulle regole.
Vedi anche: ISteamGameServer::SetKeyValue,
ISteamMatchmakingServers::ServerRulesComputeNewPlayerCompatibility
SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
Nome | Tipo | Descrizione |
steamIDNewPlayer | CSteamID | L'ID di Steam del giocatore che sta cercando di unirsi. |
Controlla se uno dei giocatori correnti non vuole giocare con il nuovo giocatore che sta cercando di unirsi o viceversa, in base al sistema frenemy (amici/nemici).
Restituisce: SteamAPICall_t da utilizzare con un risultato della chiamata a
ComputeNewPlayerCompatibilityResult_t.
CreateUnauthenticatedUserConnection
CSteamID CreateUnauthenticatedUserConnection();
Crea un utente fittizio (un bot) che sarà elencato come in gioco sul server, ma che salta la convalida.
NOTA: fa parte di una vecchia API di autenticazione utente, da non confondere con quella nuova.
Restituisce: CSteamIDRestituisce l'ID di Steam ID con il quale tracciare il bot.
Dovresti chiamare
ISteamGameServer::SendUserDisconnect quando questo utente esce dal server, come faresti per un utente reale.
EnableHeartbeats
void EnableHeartbeats( bool bActive );
Nome | Tipo | Descrizione |
bActive | bool | Abilita (true) o disabilita (false) l'aggiornamento del master server. |
Informa i master server di Steam se vuoi o meno essere attivo.
Se questo parametro è abilitato, il server comunicherà con i master server; in caso contrario i messaggi in arrivo saranno ignorati e gli heartbeat (segnali di monitoraggio) non saranno inviati.
Vedi anche: ISteamGameServer::SetHeartbeatInterval,
ISteamGameServer::ForceHeartbeatEndAuthSession
void EndAuthSession( CSteamID steamID );
Nome | Tipo | Descrizione |
steamID | CSteamID | L'entità con cui terminare la sessione di autenticazione attiva. |
Termina una sessione di autenticazione avviata con
ISteamGameServer::BeginAuthSession. Dovrebbe essere chiamata quando non si gioca più con l'entità specificata.
Vedi anche: Autenticazione dell'utente e verifica della proprietàForceHeartbeat
void ForceHeartbeat();
Forza un heartbeat ai master server di Steam alla prima opportunità.
In genere non hai bisogno di usarla.
Vedi anche: ISteamGameServer::EnableHeartbeats,
ISteamGameServer::SetHeartbeatIntervalGetAuthSessionTicket
HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
Nome | Tipo | Descrizione |
pTicket | void * | Il buffer in cui verrà copiato il nuovo ticket di autenticazione, in caso di esito positivo della chiamata. |
cbMaxTicket | int | Le dimensioni del buffer allocato per pTicket . Dovrebbe essere 1024. |
pcbTicket | uint32 * | Restituisce la lunghezza del ticket attuale. |
Recupera un ticket di autenticazione da inviare all'entità che desidera autenticarti.
Dopo aver effettuato questa chiamata puoi inviare il ticket all'entità dove può poi essere chiamata
ISteamUser::BeginAuthSession per verificare l'integrità di queste entità.
Quando crei un ticket per l'utilizzo con l'API web
ISteamUserAuth/AuthenticateUserTicket, l'applicazione che effettua la chiamata dovrebbe attendere la callback
GetAuthSessionTicketResponse_t generata dalla chiamata all'API prima di cercare di utilizzare il ticket. In questo modo potrai assicurarti che il ticket sia stato comunicato al server. Se questa callback non avviene in tempo utile (10-20 secondi), il tuo client non è connesso a Steam e la chiamata AuthenticateUserTicket avrà esito negativo poiché non è in grado di autenticare l'utente.
Restituisce: HAuthTicketAttiva una callback
GetAuthSessionTicketResponse_t.
Un handle per il ticket di autenticazione. Quando hai finito di interagire con l'entità dovrai chiamare
ISteamGameServer::CancelAuthTicket sull'handle.
Se la chiamata fallisce, restituisce
k_HAuthTicketInvalid.
Vedi anche: Autenticazione dell'utente e verifica della proprietàGetGameplayStats
void GetGameplayStats();
Non più in uso - Sarà eliminata nella prossima release dell'SDK.
Restituisce: void
Attiva una callback
GSGameplayStats_t.
GetNextOutgoingPacket
int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort );
Nome | Tipo | Descrizione |
pOut | void * | Restituisce il pacchetto che deve essere inviato copiandolo in questo buffer. Il pacchetto può avere una dimensione massima fino a 16 KiB, quindi alloca di conseguenza. |
cbMaxOut | int | Le dimensioni del buffer allocato a pOut , dovrebbero essere 16 * 1024. |
pNetAdr | uint32 * | Restituisce l'indirizzo IP a cui deve essere inviato questo pacchetto in ordine di host, ad esempio 127.0.0.1 == 0x7f000001. |
pPort | uint16 * | Restituisce la porta attraverso la quale deve essere inviato questo pacchetto, in ordine di host. |
Ottiene un pacchetto che l'aggiornamento del master server deve inviare su UDP quando è in modalità GameSocketShare.
NOTA: deve essere chiamata solo DOPO avere chiamato
ISteamGameServer::HandleIncomingPacket per qualsiasi pacchetto arrivato in tale frame!
NOTA: DEVE essere chiamata ripetutamente per ogni frame finché non restituisce 0 quando è in modalità GameSocketShare.
La modalità GameSocketShare può essere abilitata quando si chiama
SteamGameServer_Init.
Restituisce: int
La lunghezza del pacchetto che deve essere inviato, oppure 0 se non ci sono più pacchetti per inviare questo frame.
GetPublicIP
uint32 GetPublicIP();
Ottiene l'IP pubblico del server secondo Steam.
È utile quando il server si trova dietro il NAT e desideri annunciare il suo IP in una lobby per consentire ad altri client di connettersi direttamente.
Restituisce: uint32L'IP pubblico in ordine di host, ovvero 127.0.0.1 == 0x7f000001.
Restituisce
0 se non è stato possibile determinare l'IP.
GetServerReputation
SteamAPICall_t GetServerReputation();
Non più in uso - Sarà eliminata nella prossima release dell'SDK.
Restituisce: SteamAPICall_t da utilizzare con un risultato della chiamata a
GSReputation_t.
GetSteamID
CSteamID GetSteamID();
Ottiene l'ID di Steam del server di gioco.
Restituisce: CSteamIDHandleIncomingPacket
bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
Nome | Tipo | Descrizione |
pData | const void * | I dati del pacchetto in arrivo. |
cbData | int | Le dimensioni in byte di pData . |
srcIP | uint32 | L'indirizzo IP a cui è stato inviato questo pacchetto in ordine di host, ovvero 127.0.0.1 == 0x7f000001. |
srcPort | uint16 | La porta attraverso la quale è stato inviato questo pacchetto, in ordine di host. |
Gestisce un pacchetto del master server di Steam in modalità GameSocketShare.
In modalità GameSocketShare, invece di lasciare che ISteamGameServer crei il proprio socket per comunicare con con il master server attivo, lascia che il gioco usi il proprio socket per inviare i messaggi
avanti e indietro. Questo ci impedisce di richiedere alle operazioni del server di aprire un'altra porta nei loro firewall.
Dovrebbe essere chiamata ogni volta che arriva un pacchetto che inizia con 0xFFFFFFFF. Questo significa che è destinato a noi.
L'IP e i parametri di porta sono utilizzati quando scegli di usare il multiplexing sul socket UDP del server di gioco invece di fare in modo che l'aggiornamento del master server usi i propri socket.
I giochi Source Engine la usano per semplificare il lavoro degli amministratori del server, in modo che non debbano aprire altre porte sui loro firewall.
Solo
DOPO averla chiamata, dovresti chiamare
ISteamGameServer::GetNextOutgoingPacket.
La modalità GameSocketShare può essere abilitata quando si chiama
SteamGameServer_Init.
Restituisce: bool
InitGameServer
bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString );
Nome | Tipo | Descrizione |
unIP | uint32 | L'indirizzo IP a cui effettuerai l'associazione. (Deve essere in ordine di host, ovvero 127.0.0.1 == 0x7f000001). Puoi utilizzare INADDR_ANY per associare a tutti gli indirizzi IPv4 locali. |
usGamePort | uint16 | La porta a cui si collegheranno i client per giocare. |
usQueryPort | uint16 | La porta che gestirà i compiti correlati al browser dei server e i ping di informazioni dai client. |
unFlags | uint32 | Un'unione di uno o più contrassegni del server. |
nGameAppId | AppId_t | L'appID del gioco al quale è destinato questo server. |
pchVersionString | const char * | La stringa di versione assume generalmente la forma x.x.x.x e viene utilizzata dal master server per rilevare quando il server non è aggiornato (saranno elencati solo i server con l'ultima versione). |
Inizializza l'istanza di ISteamGameServer. Viene chiamata da
SteamGameServer_Init e in genere non è necessario chiamarla direttamente.
Se passi
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE in
usQueryPort
, fa in modo che l'API del server di gioco usi la modalità "GameSocketShare", il che significa che il gioco è responsabile dell'invio e del ricevimento dei pacchetti UDP per l'aggiornamento del master server.
Se viene utilizzata la modalità GameSocketShare, devi usare
ISteamGameServer::HandleIncomingPacket e
ISteamGameServer::GetNextOutgoingPacket per interagire con il master server di Steam.
Restituisce: bool
true se il server di gioco è riuscito ad associarsi all'IP o alla porta fornita; in caso contrario restituisce
false, indicando che l'operazione non è riuscita.
LogOff
void LogOff();
Inizia il processo di disconnessione del server di gioco da Steam.
Restituisce: void
Attiva una callback
SteamServerConnectFailure_t.
Attiva una callback
SteamServersConnected_t.
Attiva una callback
SteamServersDisconnected_t.
LogOn
void LogOn( const char *pszToken );
Nome | Tipo | Descrizione |
pszToken | const char * | |
Inizia il processo per accedere a un account del server di gioco persistente.
Restituisce: void
Attiva una callback
SteamServerConnectFailure_t.
Attiva una callback
SteamServersConnected_t.
Attiva una callback
SteamServersDisconnected_t.
Vedi anche: ISteamGameServer::LogOnAnonymousLogOnAnonymous
void LogOnAnonymous();
Accede a un account anonimo generico.
Restituisce: void
Attiva una callback
SteamServerConnectFailure_t.
Attiva una callback
SteamServersConnected_t.
Attiva una callback
SteamServersDisconnected_t.
Vedi anche: ISteamGameServer::LogOnRequestUserGroupStatus
bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
Nome | Tipo | Descrizione |
steamIDUser | CSteamID | L'utente di cui controllare lo stato di gruppo. |
steamIDGroup | CSteamID | Il gruppo da verificare. |
Controlla se un utente è incluso nel gruppo di Steam specificato.
Restituisce: bool
Attiva una callback
GSClientGroupStatus_t.
true se la chiamata è stata correttamente inviata ai server di Steam; in caso contrario restituisce
false se non siamo collegati ai server di Steam o se è stato fornito un utente o un gruppo non valido.
SendUserConnectAndAuthenticate
bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser );
Nome | Tipo | Descrizione |
unIPClient | uint32 | L'indirizzo IP del client che si sta connettendo. Deve essere in ordine di host, ovvero 127.0.0.1 == 0x7f000001. |
pvAuthBlob | const void * | I dati di autenticazione forniti dall'utente da una chiamata a ISteamUser::InitiateGameConnection. |
cubAuthBlobSize | uint32 | Le dimensioni in byte di pvAuthBlob . |
pSteamIDUser | CSteamID * | Restituisce l'ID di Steam dell'utente. Deve essere NULL. |
Handle che ricevono una nuova connessione da un utente di Steam. Questa chiederà ai server di Steam di convalidare l'identità dell'utente, la proprietà dell'app e lo stato VAC.
Se i server di Steam sono offline, convaliderà il ticket salvato nella cache, il quale convaliderà la proprietà dell'app e l'identità.
NOTA: fa parte di una vecchia API di autenticazione utente, da non confondere con quella nuova.
Restituisce: bool
true se il ticket degli utenti supera i controlli di base; in caso contrario restituisce
false.
Se questa chiamata va a buon fine, dovresti aspettarti una callback
GSClientApprove_t o
GSClientDeny_t, che ti informerà se l'autenticazione dell'utente è riuscita o è fallita. L'ID di Steam nella callback corrisponderà a quello restituito da questa chiamata.
SendUserDisconnect
void SendUserDisconnect( CSteamID steamIDUser );
Nome | Tipo | Descrizione |
steamIDUser | CSteamID | L'ID di Steam dell'utente che ha abbandonato il server di gioco. |
Deve essere chiamata ogni volta che un utente esce dal server di gioco.
Ciò permette a Steam di tenere internamente traccia degli utenti attualmente collegati ai vari server, al fine di impedire a un singolo account di accedere a più server, di mostrare quali utenti si trovano attualmente sul server, ecc.
NOTA: fa parte di una vecchia API di autenticazione utente, da non confondere con quella nuova.
SetBotPlayerCount
void SetBotPlayerCount( int cBotplayers );
Nome | Tipo | Descrizione |
cBotplayers | int | Il numero di giocatori bot/AI che stanno attualmente giocando sul server. |
Imposta il numero di giocatori bot/AI sul server di gioco. Il valore predefinito è 0.
SetDedicatedServer
void SetDedicatedServer( bool bDedicated );
Nome | Tipo | Descrizione |
bDedicated | bool | È un server dedicato (true) o un server di ascolto (false)? |
Definisce se si tratta di un server dedicato o di ascolto. L'impostazione predefinita è il server di ascolto.
NOTA: Deve essere configurato solo prima di chiamare
ISteamGameServer::LogOn o
ISteamGameServer::LogOnAnonymous.
SetGameData
void SetGameData( const char *pchGameData );
Nome | Tipo | Descrizione |
pchGameData | const char * | Il nuovo valore "gamedata" da impostare. Non deve essere NULL o una stringa vuota (""). Non può essere più lunga di k_cbMaxGameServerGameData. |
Imposta una stringa che definisce il valore "gamedata" per questo server. È facoltativa, ma se viene impostata consente agli utenti di filtrare le interfacce del matchmaking/server-browser sulla base del valore.
In genere viene formattata come elenco separato da virgole o punti e virgola.
Non impostarla, a meno che non cambi effettivamente; viene caricata sul master server solo una volta, quando viene notificata.
SetGameDescription
void SetGameDescription( const char *pszGameDescription );
Nome | Tipo | Descrizione |
pszGameDescription | const char * | La descrizione del gioco. Non deve essere NULL o una stringa vuota (""). Non può essere più lunga di k_cbMaxGameServerGameDescription. |
Imposta la descrizione del gioco. È consigliabile impostare il nome completo del gioco.
NOTA: è obbligatoria per tutti i server di gioco e può essere impostata solo prima di chiamare
ISteamGameServer::LogOn o
ISteamGameServer::LogOnAnonymous.
SetGameTags
void SetGameTags( const char *pchGameTags );
Nome | Tipo | Descrizione |
pchGameTags | const char * | Il nuovo valore "gametags" da impostare. Non deve essere NULL o una stringa vuota (""). Non può essere più lunga di k_cbMaxGameServerTags. |
Imposta una stringa che definisce il valore "gametags" per questo server. È facoltativa, ma se viene impostata consente agli utenti di filtrare le interfacce del matchmaking/server-browser sulla base del valore.
In genere viene formattata come elenco separato da virgole o punti e virgola.
Non impostarla, a meno che non cambi effettivamente; viene caricata sul master server solo una volta, quando viene notificata.
SetHeartbeatInterval
void SetHeartbeatInterval( int iHeartbeatInterval );
Nome | Tipo | Descrizione |
iHeartbeatInterval | int | L'intervallo tra gli invii di heartbeat in millisecondi. In genere è compreso tra 250 e 1000. Usa -1 per utilizzare il valore predefinito. |
Cambia la frequenza di invio degli heartbeat ai master server di Steam.
In genere non hai bisogno di usarla.
Vedi anche: ISteamGameServer::EnableHeartbeats,
ISteamGameServer::ForceHeartbeatSetKeyValue
void SetKeyValue( const char *pKey, const char *pValue );
Nome | Tipo | Descrizione |
pKey | const char * | |
pValue | const char * | |
Aggiunge/aggiorna una coppia chiave/valore delle regole.
Vedi anche: ISteamGameServer::ClearAllKeyValues,
ISteamMatchmakingServers::ServerRulesSetMapName
void SetMapName( const char *pszMapName );
Nome | Tipo | Descrizione |
pszMapName | const char * | Il nuovo nome della mappa da impostare. Non deve essere NULL o una stringa vuota (""). Non può essere più lunga di k_cbMaxGameServerMapName. |
Imposta il nome della mappa da segnalare nel browser dei server.
SetMaxPlayerCount
void SetMaxPlayerCount( int cPlayersMax );
Nome | Tipo | Descrizione |
cPlayersMax | int | Il nuovo numero massimo di giocatori consentiti su questo server. |
Imposta il numero massimo di giocatori consentiti contemporaneamente sul server.
Questo valore può essere modificato in qualsiasi momento.
SetModDir
void SetModDir( const char *pszModDir );
Nome | Tipo | Descrizione |
pszModDir | const char * | La directory del gioco da impostare. Non deve essere NULL o una stringa vuota (""). Non può essere più lunga di k_cbMaxGameServerGameDir. |
Imposta la directory del gioco.
Deve essere la stessa directory in cui viene installato il gioco. Solo il nome della cartella, non l'intero percorso. Ad esempio, "Spacewar".
NOTA: è obbligatoria per tutti i server di gioco e può essere impostata solo prima di chiamare
ISteamGameServer::LogOn o
ISteamGameServer::LogOnAnonymous.
SetPasswordProtected
void SetPasswordProtected( bool bPasswordProtected );
Nome | Tipo | Descrizione |
bPasswordProtected | bool | Abilita (true) o disabilita (false) la protezione tramite password. |
Impostare se il server di gioco richiederà una password nel momento in cui l'utente cerca di unirsi.
SetProduct
void SetProduct( const char *pszProduct );
Nome | Tipo | Descrizione |
pszProduct | const char * | L'identificatore univoco del tuo gioco. Non deve essere NULL o una stringa vuota (""). |
Imposta l'identificatore di prodotto del gioco. È attualmente utilizzato dal master server per il controllo delle versioni.
A questo scopo è consigliabile convertire l'app ID dei giochi in una stringa.
NOTA: è obbligatoria per tutti i server di gioco e può essere impostata solo prima di chiamare
ISteamGameServer::LogOn o
ISteamGameServer::LogOnAnonymous.
SetRegion
void SetRegion( const char *pszRegion );
Nome | Tipo | Descrizione |
pszRegion | const char * | |
Identificatore di regione. È un campo facoltativo; il valore predefinito è una stringa vuota, ovvero la regione "mondo".
SetServerName
void SetServerName( const char *pszServerName );
Nome | Tipo | Descrizione |
pszServerName | const char * | Il nuovo nome del server da impostare. Non deve essere NULL o una stringa vuota (""). Non può essere più lunga di k_cbMaxGameServerName. |
Imposta il nome del server così come appare nel browser del server.
SetSpectatorPort
void SetSpectatorPort( uint16 unSpectatorPort );
Nome | Tipo | Descrizione |
unSpectatorPort | uint16 | La porta da cui gli spettatori possono unirsi. |
Imposta se il server di gioco consente gli spettatori e a quale porta devono connettersi. Il valore predefinito è 0, ovvero il servizio non è utilizzato.
SetSpectatorServerName
void SetSpectatorServerName( const char *pszSpectatorServerName );
Nome | Tipo | Descrizione |
pszSpectatorServerName | const char * | Il nome del server spettatori da impostare. Non deve essere NULL o una stringa vuota (""). Non può essere più lunga di k_cbMaxGameServerMapName. |
Imposta il nome del server spettatori. Viene utilizzata solo se la porta spettatori non è zero.
UserHasLicenseForApp
EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
Nome | Tipo | Descrizione |
steamID | CSteamID | L'ID di Steam dell'utente che ha inviato il ticket di autenticazione. |
appID | AppId_t | L'appID del DLC di cui verificare il possesso da parte dell'utente. |
Verifica se l'utente sia in possesso di uno specifico
Contenuti scaricabili (DLC).
Può essere chiamata solo dopo aver inviato il ticket di autenticazione dell'utente a
ISteamGameServer::BeginAuthSession/
Restituisce: EUserHasLicenseForAppResultVedi anche: Autenticazione dell'utente e verifica della proprietàWasRestartRequested
bool WasRestartRequested();
Controlla se il master server ci ha avvisato che non siamo aggiornati.
Diventa nuovamente
false dopo avere chiamato questa funzione.
Restituisce: bool
true se il master server vuole che questo server di gioco venga aggiornato e riavviato; in caso contrario restituisce
false.
Callback
Queste sono callback che possono essere attivate chiamando
SteamAPI_RunCallbacks. Molte di esse saranno attivate direttamente in risposta alle funzioni membro di
ISteamGameServer
.
AssociateWithClanResult_t
Inviata quando il server di gioco tenta di essere associato a un gruppo di Steam.
Nome | Tipo | Descrizione |
m_eResult | EResult | Il risultato dell'operazione. Possibili valori:
|
Funzioni associate: ISteamGameServer::AssociateWithClanComputeNewPlayerCompatibilityResult_t
Inviata quando il server di gioco controlla se il nuovo giocatore è adatto al server sulla base del sistema frenemy (amici/nemici).
Nome | Tipo | Descrizione |
m_eResult | EResult | Il risultato dell'operazione. Possibili valori:
|
m_cPlayersThatDontLikeCandidate | int | Il numero di giocatori correnti a cui non piace giocare con il giocatore specificato. |
m_cPlayersThatCandidateDoesntLike | int | Il numero di giocatori sul server con i quali al giocatore specificato non piace giocare. |
m_cClanPlayersThatDontLikeCandidate | int | Il numero di giocatori nel gruppo di Steam associato ai quali non piace giocare con il giocatore. |
m_SteamIDCandidate | CSteamID | L'ID di Steam del giocatore specificato. |
Funzioni associate: ISteamGameServer::ComputeNewPlayerCompatibilityGSClientAchievementStatus_t
Non più in uso - Usa invece
ISteamGameServerStats.
Nome | Tipo | Descrizione |
m_SteamID | uint64 | Non più in uso |
m_pchAchievement | char[128] | Non più in uso |
m_bUnlocked | bool | Non più in uso |
GSClientApprove_t
Un client ha ricevuto l'approvazione a connettersi a questo server di gioco.
Nome | Tipo | Descrizione |
m_SteamID | CSteamID | L'ID di Steam del giocatore in attesa di connettersi. |
m_OwnerSteamID | CSteamID | L'ID di Steam in possesso del gioco. Sarà diverso da m_SteamID se l'accesso al gioco viene effettuato attraverso la condivisione familiare di Steam. |
GSClientDeny_t
Chiamata quando a un utente viene negata la connessione a questo server di gioco.
Nome | Tipo | Descrizione |
m_SteamID | CSteamID | L'ID di Steam del giocatore che ha tentato di connettersi. |
m_eDenyReason | EDenyReason | Il motivo per cui è stato negato l'accesso al giocatore. |
m_rgchOptionalText | char[128] | Un messaggio di testo facoltativo che spiega il motivo del rifiuto. In genere non è utilizzato, tranne che per l'accesso. |
GSClientGroupStatus_t
Chiamata quando abbiamo ricevuto lo stato di gruppo di un utente.
Nome | Tipo | Descrizione |
m_SteamIDUser | CSteamID | L'utente di cui abbiamo interrogato lo stato di gruppo. |
m_SteamIDGroup | CSteamID | Il gruppo che abbiamo interrogato. |
m_bMember | bool | L'utente è un membro del gruppo (true) oppure no (false)? |
m_bOfficer | bool | L'utente è un amministratore del gruppo (true) oppure no (false)? Non sarà mai true se m_bMember è false. |
Funzioni associate: ISteamGameServer::RequestUserGroupStatusGSClientKick_t
Chiamata quando il server di gioco deve espellere l'utente.
Nome | Tipo | Descrizione |
m_SteamID | CSteamID | L'ID di Steam del giocatore che deve essere espulso. |
m_eDenyReason | EDenyReason | Il motivo per cui il giocatore viene espulso. |
GSGameplayStats_t
Non più in uso - Chiamata quando le statistiche di gioco sono state interrogate utilizzando
ISteamGameServer::GetGameplayStats.
Nome | Tipo | Descrizione |
m_eResult | EResult | Il risultato dell'operazione. |
m_nRank | int32 | Il grado complessivo del server (con base 0). |
m_unTotalConnects | uint32 | Il numero totale di client che si sono collegati complessivamente al server. |
m_unTotalMinutesPlayed | uint32 | Il numero totale di minuti giocati complessivamente sul server. |
Funzioni associate: ISteamGameServer::GetGameplayStatsGSPolicyResponse_t
Ricevuta quando il server di gioco chiede di essere visualizzato in modalità sicura (protetto dal VAC).
Nome | Tipo | Descrizione |
m_bSecure | uint8 | Il server è ora impostato come protetto (true) o non protetto (false)?. |
GSReputation_t
Non più in uso - Chiamata quando la reputazione del server di gioco viene interrogata.
I ban del master server sono basati sull'IP, quindi è possibile essere banditi anche quando il punteggio è buono se c'è un server nocivo su un'altra porta.
Questa informazione può essere utilizzata per determinare quale server è nocivo.
Nome | Tipo | Descrizione |
m_eResult | EResult | Il risultato dell'operazione. |
m_unReputationScore | uint32 | Il punteggio di reputazione del server di gioco. |
m_bBanned | bool | Il server è bandito dai master server di Steam (true) oppure no (false)? |
m_unBannedIP | uint32 | L'IP del server bandito. Da impostare solo se m_bBanned è true. |
m_usBannedPort | uint16 | La porta del server bandito. Da impostare solo se m_bBanned è true. |
m_ulBannedGameID | uint64 | L'ID di gioco che il server bandito sta servendo. Da impostare solo se m_bBanned è true. |
m_unBanExpires | uint32 | L'ora di scadenza del ban, fornita in formato epoch Unix (in secondi a partire dal 1° gennaio 1970). Da impostare solo se m_bBanned è true. |
Funzioni associate: ISteamGameServer::GetServerReputationCostanti
Queste sono costanti definite per l'utilizzo con ISteamGameServer.
Nome | Tipo | Valore | Descrizione |
k_unServerFlagActive | uint32 | 0x01 | Il server di gioco che ha utenti che stanno giocando. |
k_unServerFlagDedicated | uint32 | 0x04 | Questo server di gioco è dedicato. |
k_unServerFlagLinux | uint32 | 0x08 | Questo server di gioco è in esecuzione su Linux. |
k_unServerFlagNone | uint32 | 0x00 | Questo server di gioco non ha contrassegni. |
k_unServerFlagPassworded | uint32 | 0x10 | Questo server di gioco è protetto da password. |
k_unServerFlagPrivate | uint32 | 0x20 | Questo server di gioco non deve essere elencato sul master server e non forzerà l'autenticazione degli utenti che si collegano al server. Questo è utile quando esegui un server in cui i client potrebbero non essere collegati a internet, ma vuoi consentire loro di giocare (ad esempio, le LAN). |
k_unServerFlagSecure | uint32 | 0x02 | Questo server di gioco vuole essere protetto da VAC. |
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE | int | ((uint16)-1) | Utilizzata con SteamGameServer_Init per abilitare la modalità GameSocketShare. |
STEAMGAMESERVER_INTERFACE_VERSION | const char * | "SteamGameServer012" | |