Documentazione di Steamworks
Interfaccia ISteamUser
Funzione per accedere e modificare le informazioni degli utenti di Steam.

Qui vengono esposte anche le API per Steam Voice.

Funzioni membro

Le funzioni membro per ISteamUser vengono chiamate tramite la funzione globale di accesso SteamUser().

AdvertiseGame

void AdvertiseGame( CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer );
NomeTipoDescrizione
steamIDGameServerCSteamIDSe stai impostando l'IP/la porta, dovrebbe essere k_steamIDNonSteamGS. Altrimenti, se stai annullando il valore, dovrebbe essere k_steamIDNil.
unIPServeruint32L'indirizzo IP del server di gioco, in ordine di host. Ad esempio, 127.0.0.1 == 0x7f000001.
usPortServeruint16La porta di connessione del server di gioco, in ordine di host.

Imposta i dati della rich presence per un server di gioco non sicuro in cui è in gioco l'utente. Consente agli amici di visualizzare le informazioni di gioco e unirsi alla tua partita.

Questa chiamata non è mai richiesta quando si utilizza il sistema di autenticazione di Steam, che imposta automaticamente la rich presence più adatta.

BeginAuthSession

EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
NomeTipoDescrizione
pAuthTicketconst void *Il ticket di autenticazione da validare.
cbAuthTicketintLe dimensioni in byte del ticket di autenticazione. Deve corrispondere alle dimensioni pcbTicket fornite dalla chiamata che ha creato questo ticket.
steamIDCSteamIDL'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 GetAuthSessionTicket o ISteamGameServer::GetAuthSessionTicket e poi deve venire fornito attraverso la rete per essere validato dall'altro lato.

La funzione viene così registrata per callback ValidateAuthTicketResponse_t aggiuntive, nel caso in cui l'entità si disconnetta o annulli il ticket. Per ulteriori informazioni, vedi EAuthSessionResponse.

Al termine della sessione multigiocatore dovrai chiamare EndAuthSession.

Restituisce: EBeginAuthSessionResult
Attiva una callback ValidateAuthTicketResponse_t.



Vedi anche: Autenticazione dell'utente e verifica della proprietà

BIsBehindNAT

bool BIsBehindNAT();
Verifica se sembra che l'utente corrente stia utilizzando un dispositivo NAT.

Valida solo se l'utente è connesso ai server di Steam e potrebbe non riconoscere tutte le forme di NAT.

Restituisce: bool
true se l'utente corrente sta utilizzando un dispositivo NAT, altrimenti false.

BIsPhoneIdentifying

bool BIsPhoneIdentifying();
Verifica se il numero di telefono dell'utente è utilizzato per identificarlo in maniera unica.

Restituisce: bool
true se il numero di telefono dell'utente corrente verifica la sua identità in maniera unica, altrimenti false.

BIsPhoneRequiringVerification

bool BIsPhoneRequiringVerification();
Verifica se il numero di telefono dell'utente corrente è in attesa di essere verificato o verificato nuovamente.

Restituisce: bool
true se il telefono corrente dell'utente sta richiedendo la verifica, altrimenti false.

BIsPhoneVerified

bool BIsPhoneVerified();
Verifica se l'utente corrente ha verificato il proprio numero di telefono.

Per ulteriori informazioni, consulta la pagina sull' autenticatore mobile di Steam Guard sul sito per i clienti dell'assistenza di Steam.

Restituisce: bool
true se l'utente ha attivato la verifica del numero di telefono, altrimenti false.

BIsTwoFactorEnabled

bool BIsTwoFactorEnabled();
Verifica se l'utente di Steam ha attivato sul proprio account l'autenticazione a due fattori di Steam Guard.

Per ulteriori informazioni, consulta la pagina sull' autenticatore mobile di Steam Guard sul sito per i clienti dell'assistenza di Steam.

Restituisce: bool
true se l'utente corrente ha abilitato l'autenticazione a due fattori di Steam Guard, altrimenti false.

BLoggedOn

bool BLoggedOn();
Verifica se il client di Steam dell'utente corrente è connesso ai server di Steam.

Se non lo è, i servizi in tempo reale forniti dall'API di Steamworks verranno abilitati. Il client di Steam cercherà automaticamente di ristabilire la connessione il più spesso possibile. Quando la connessione è ristabilita, verrà inviata una callback SteamServersConnected_t.

In genere non è necessario verificare personalmente. Tutte le chiamate API che fanno affidamento su questa funzione eseguiranno le loro verifiche internamente. Forzare la disabilitazione di certe funzioni quando l'utente non riesce ad accedere risulta di solito in un'esperienza negativa e potrebbe anche impedirgli di accedere alle API che non necessitano di una connessione attiva a Steam.

Restituisce: bool
true se il client di Steam corrente ha una connessione attiva ai server di Steam. Altrimenti false, se non vi sono connessioni attive a causa di problemi di rete sul computer locale o a causa dei server di Steam.

BSetDurationControlOnlineState

bool BSetDurationControlOnlineState( EDurationControlOnlineState eNewState );
Consente al gioco di specificare lo stato di gioco offline/online per il controllo della durata di Steam China.

Parametri: EDurationControlOnlineState

Restituisce: bool
true se lo stato online è stato impostato correttamente; altrimenti false.

Funzioni associate:
GetDurationControl

CancelAuthTicket

void CancelAuthTicket( HAuthTicket hAuthTicket );
NomeTipoDescrizione
hAuthTicketHAuthTicketIl ticket di autenticazione attivo da annullare.

Annulla un ticket di autenticazione ricevuto da GetAuthSessionTicket. Dovrebbe essere chiamata quando non si gioca più con l'entità specificata.

Vedi anche: Autenticazione dell'utente e verifica della proprietà

DecompressVoice

EVoiceResult DecompressVoice( const void *pCompressed, uint32 cbCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, uint32 nDesiredSampleRate );
NomeTipoDescrizione
pCompressedconst void *I dati compressi ricevuti da GetVoice.
cbCompresseduint32Le dimensioni del buffer passato a pCompressed.
pDestBuffervoid *Il buffer dove verranno restituiti i dati audio non processati. I dati possono poi venire passati al tuo sottosistema audio per la riproduzione.
cbDestBufferSizeuint32Le dimensioni del buffer passato in pDestBuffer.
nBytesWrittenuint32 *Restituisce il numero di byte scritti a pDestBuffer, oppure le dimensioni del buffer richiesto per decomprimere i dati forniti se le dimensioni di cbDestBufferSize non sono sufficienti (e viene restituita k_EVoiceResultBufferTooSmall).
nDesiredSampleRateuint32La frequenza di campionamento che sarà restituito. Può essere compresa tra 11025 e 48000. Puoi usare la frequenza più adatta per il tuo sistema di riproduzione audio, che probabilmente considera l'hardware audio del computer dell'utente, oppure puoi usare GetVoiceOptimalSampleRate per ottenere la frequenza di campionamento del decodificatore vocale di Steam.

Decodifica i dati sulla chat vocale compressi restituiti da GetVoice.

I dati di output sono in formato audio PCM a 16 bit a canale singolo e non elaborati. Il decoder supporta qualunque frequenza compresa fra 11025 e 48000. Per ulteriori informazioni, vedi GetVoiceOptimalSampleRate.

Consigliamo di iniziare con un buffer da 20 KiB e poi riallocare quando necessario.

Per ulteriori informazioni, vedi Steam Voice.

Restituisce: EVoiceResult
La frequenza di campionamento interna del decoder della chat vocale di Steam.

EndAuthSession

void EndAuthSession( CSteamID steamID );
NomeTipoDescrizione
steamIDCSteamIDL'entità con cui terminare la sessione di autenticazione attiva.

Termina una sessione di autenticazione avviata con BeginAuthSession. Dovrebbe essere chiamata quando non si gioca più con l'entità specificata.

Vedi anche: Autenticazione dell'utente e verifica della proprietà

GetAuthSessionTicket

HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pIdentityRemote );
NomeTipoDescrizione
pTicketvoid *Il buffer in cui verrà copiato il nuovo ticket di autenticazione, in caso di esito positivo della chiamata.
cbMaxTicketintLe dimensioni del buffer allocato per pTicket. In genere un buffer di 1024 è sufficiente. Tuttavia, in alcuni casi (ad esempio quando un'applicazione possiede una grande quantità di DLC), potrebbe essere necessario un buffer più ampio.
pcbTicketuint32 *Restituisce la lunghezza del ticket attuale.
pIdentityRemote SteamNetworkingIdentity *L'identità del sistema remoto che autenticherà il ticket. Se si tratta di un sistema peer-to-peer, verrà usato l'ID di Steam dell'utente. Se si tratta di un server di gioco, verrà usato l'ID di Steam del server stesso qualora ottenuto da una terza parte affidabile, altrimenti verrà usato l'indirizzo IP. Se si tratta di un servizio, verrà usata una stringa identificativa di tale servizio qualora fornita.
NOTA: questa API non può essere usata per creare un ticket utilizzabile dall'API web ISteamUserAuth/AuthenticateUserTicket. Usa invece la chiamata GetAuthTicketForWebApi.

Recupera un ticket di autenticazione da inviare all'entità che desidera autenticarti.

Dopo aver effettuato questa chiamata puoi inviare il ticket all'entità dove possono poi essere chiamate BeginAuthSession/ISteamGameServer::BeginAuthSession per verificare l'integrità di questa entità.

Restituisce: HAuthTicket
Attiva una callback GetAuthSessionTicketResponse_t.
Un handle per il ticket di autenticazione. Quando hai finito di interagire con l'entità dovrai chiamare CancelAuthTicket sull'handle.

Se la chiamata fallisce, restituisce k_HAuthTicketInvalid.

Vedi anche: Autenticazione dell'utente e verifica della proprietà

GetAuthTicketForWebApi

HAuthTicket GetAuthTicketForWebApi( const char *pchIdentity );
NomeTipoDescrizione
*pchIdentity const char *L'identità del servizio remoto che autenticherà il ticket. Il servizio dovrebbe fornire un identificatore di stringa. Passa null se non viene fornito alcun identificatore.

Recupera un ticket di autenticazione da inviare all'entità che desidera autenticarti utilizzando l'API web ISteamUserAuth/AuthenticateUserTicket.
L'applicazione chiamante deve attendere la callback GetTicketForWebApiResponse_t generata dalla chiamata API per accedere al ticket.

Si consiglia di utilizzare una stringa d'identità per ciascun servizio che consumerà dei ticket.
NOTA: questa API non può essere utilizzata per creare un ticket per l'utilizzo con BeginAuthSession/ISteamGameServer::BeginAuthSession . Usa invece l'API GetAuthSessionTicket.

Restituisce: HAuthTicket
Attiva una callback GetTicketForWebApiResponse_t.
Un handle per il ticket di autenticazione. Al termine dell'interazione con l'entità devi chiamare CancelAuthTicket sull'handle.

Se la chiamata fallisce, restituisce k_HAuthTicketInvalid.

Vedi anche: Autenticazione dell'utente e verifica della proprietà

GetAvailableVoice

EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 );
NomeTipoDescrizione
pcbCompresseduint32 *Restituisce le dimensioni in byte dei dati sulla voce disponibili.
pcbUncompressed_Deprecateduint32 *Non più in uso.
nUncompressedVoiceDesiredSampleRate_Deprecateduint32Non più in uso.

Verifica se esistono dati audio registrati disponibili da GetVoice e ne ottiene le dimensioni.

La maggior parte delle applicazioni utilizzerà solo dati compressi e dovrebbe ignorare gli altri parametri, che esistono principalmente per la compatibilità con versioni precedenti. Per ulteriori spiegazioni sui dati "non compressi", vedi GetVoice.

Per ulteriori informazioni, vedi Steam Voice.

Restituisce: EVoiceResult

GetDurationControl

SteamAPICall_t GetDurationControl();

Recupera il controllo della durata della sessione per la combinazione gioco/utente correnti.


Restituisce: SteamAPICall_t con un risultato della chiamata a DurationControl_t.
Restituisce k_uAPICallInvalid se non è stato possibile connettersi ai server di Steam.

Funzioni associate:
BSetDurationControlOnlineState

GetEncryptedAppTicket

bool GetEncryptedAppTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
NomeTipoDescrizione
pTicketvoid *Il ticket codificato dell'app viene copiato in questo buffer.
cbMaxTicketintLe dimensioni totali in byte del buffer pTicket.
pcbTicketuint32 *Restituisce il numero di byte copiati in pTicket.

Recupera un ticket codificato.

Questa chiamata dovrebbe essere effettuata dopo aver richiesto un ticket codificato per l'app con RequestEncryptedAppTicket e aver ricevuto il risultato della chiamata EncryptedAppTicketResponse_t.

Dovresti poi passare questo ticket codificato ai tuoi server sicuri in modo che venga poi decodificato usando la tua chiave segreta con SteamEncryptedAppTicket::BDecryptTicket.

NOTA: se effettui questa chiamata senza chiamare RequestEncryptedAppTicket, la chiamata potrebbe avere successo ma riceverai probabilmente un ticket obsoleto.

Restituisce: bool
true se la chiamata ha restituito con successo un ticket per l'applicazione in pTicket.
false nelle seguenti circostanze:
  • pcbTicket è NULL
  • pTicket è NULL
  • pTicket è troppo piccolo per contenere questo ticket.
  • Non era disponibile alcun ticket (hai atteso EncryptedAppTicketResponse_t?).

GetGameBadgeLevel

int GetGameBadgeLevel( int nSeries, bool bFoil );
NomeTipoDescrizione
nSeriesintSe hai solo un set di carte, la serie sarà 1.
bFoilboolVerifica se è stata ricevuta la medaglia foil.

Ottiene il livello della medaglia di Steam dell'utente per il tuo gioco.

L'utente può avere due diverse medaglie per una serie: quella regolare (livello massimo 5) e quella foil (livello massimo 1).

Restituisce: int
Il livello della medaglia, 0 se non ne ha alcuno.

GetHSteamUser

HSteamUser GetHSteamUser();
Ottiene l'handle dell'utente di Steam rappresentato da questa interfaccia.

Solo per uso interno dell'API e di qualche interfaccia particolare che supporta utenti multipli.

Restituisce: HSteamUser

GetPlayerSteamLevel

int GetPlayerSteamLevel();
Ottiene il livello di Steam dell'utente, come viene mostrato sul suo profilo della Comunità di Steam.

Restituisce: int
Il livello dell'utente corrente.

GetSteamID

CSteamID GetSteamID();
Ottiene l'ID di Steam dell'account al momento connesso al client di Steam. Di solito viene chiamato "utente corrente" o "utente locale".

Un ID di Steam è un identificatore unico degli account di Steam, dei gruppi di Steam, delle lobby e delle chat ed è usato per differenziare gli utenti in ogni parte dell'API di Steamworks.

Restituisce: CSteamID


Esempio:
CSteamID steamID = SteamUser()->GetSteamID();

GetUserDataFolder

bool GetUserDataFolder( char *pchBuffer, int cubBuffer );
NomeTipoDescrizione
pchBufferchar *
cubBufferint

Non più in uso. Utilizza invece l'API Steam Cloud da ISteamRemoteStorage.

Restituisce: bool

GetVoice

EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed_Deprecated = false, void *pUncompressedDestBuffer_Deprecated = 0, uint32 cbUncompressedDestBufferSize_Deprecated = 0, uint32 *nUncompressBytesWritten_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 );
NomeTipoDescrizione
bWantCompressedboolDovrebbe essere sempre true.
pDestBuffervoid *Il buffer in cui verranno copiati i dati audio.
cbDestBufferSizeuint32Le dimensioni del buffer allocato per pDestBuffer.
nBytesWrittenuint32 *Restituisce il numero di byte scritti in pDestBuffer. Dovrebbe corrispondere sempre alle dimensioni restituite da ISteamUser::GetAvailableVoice.
bWantUncompressed_DeprecatedboolNon più in uso.
pUncompressedDestBuffer_Deprecatedvoid *Non più in uso.
cbUncompressedDestBufferSize_Deprecateduint32Non più in uso.
nUncompressBytesWritten_Deprecateduint32 *Non più in uso.
nUncompressedVoiceDesiredSampleRate_Deprecateduint32Non più in uso.

Legge i dati audio registrati dal buffer del microfono.

I dati compressi possono essere trasmessi dalla tua applicazione e codificati di nuovo in dati audio non processati utilizzando DecompressVoice dall'altro lato. I dati compressi vengono forniti in un formato arbitrario e non sono intesi per la riproduzione diretta.

Questa funzione dovrebbe essere chiamata una volta per ogni fotogramma, e non più di quattro volte al secondo, per mantenere il ritardo dell'input del microfono il più ridotto possibile. Effettuare questa chiamata meno volte potrebbe risultare in interruzioni nella trasmissione restituita.

Ti consigliamo di passare un buffer di destinazione di almeno 8 kilobyte per l'audio compresso. Per motivi di prestazioni, consigliamo di usare buffer statici. Tuttavia, se vuoi allocare esattamente il giusto ammontare di spazio per un buffer prima di ogni chiamata, puoi usare GetAvailableVoice per rilevare quanti dati sono disponibili per la lettura.

NOTA: l'audio "non compresso" è una funzionalità non più in uso e non dovrebbe essere utilizzato da quasi nessuna applicazione. Si tratta di dati audio wave PCM a 16 bit a canale singolo e non elaborati che potrebbero essere stati filtrati in fase di pre-elaborazione o da cui potrebbero essere stati rimossi i silenzi, quindi l'audio non compresso potrebbe essere di durata inferiore al previsto. Potrebbero non essere disponibili dati di alcun tipo durante lunghi periodi di silenzio. Inoltre, recuperare audio non compresso farà sì che GetVoice scarti tutti i dati audio compressi rimasti, quindi dovrai recuperare entrambi i tipi allo stesso momento. Infine, GetAvailableVoice non è interamente accurata quando viene richiesta la dimensione non compressa. Se hai davvero bisogno di usare audio non compresso, quindi, dovrai chiamare spesso GetVoice con due buffer output di grosse dimensioni (20KiB+) invece che provare ad allocare buffer dalle dimensioni esatte. La maggior parte delle applicazioni dovrebbe comunque ignorare questi dettagli e lasciare semplicemente i parametri "non compresso" come NULL/0.

Per ulteriori informazioni, vedi Steam Voice.

Restituisce: EVoiceResult

GetVoiceOptimalSampleRate

uint32 GetVoiceOptimalSampleRate();
Ottiene la frequenza di campionamento nativa del decoder della chat vocale di Steam.

Utilizzare questa frequenza di campionamento per DecompressVoice richiede un'elaborazione minima da parte della CPU. La qualità finale dell'audio, tuttavia, dipenderà da quanto efficacemente il dispositivo audio (e/o l'SDK dell'output audio della tua applicazione) elabora le frequenze di campionamento più basse. Potresti scoprire che otterrai la qualità di output audio più elevata ignorando questa funzione e utilizzando la frequenza di campionamento nativa del tuo dispositivo di output audio, che è di solito 48000 o 44100.

Per ulteriori informazioni, vedi Steam Voice.

Restituisce: uint32

InitiateGameConnection

int InitiateGameConnection( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure );
NomeTipoDescrizione
pAuthBlobvoid *Un puntatore della memoria libera che verrà riempita con il token di autenticazione.
cbMaxAuthBlobintIl numero di byte di memoria allocata in pBlob. Dovrebbe essere almeno 2048 byte.
steamIDGameServerCSteamIDL'ID di Steam del server di gioco, ricevuto dal server di gioco da parte del cliente.
unIPServeruint32L'indirizzo IP del server di gioco, in ordine di host. Ad esempio, 127.0.0.1 == 0x7f000001.
usPortServeruint16La porta di connessione del server di gioco, in ordine di host.
bSecureboolIndica se il client pensa che il server di gioco si sia contrassegnato come sicuro (ovvero dotato di sistema VAC).

Avvia la macchina di stato per autenticare il client di gioco all'interno del server di gioco.

Si tratta della porzione client di un handshake a tre vie tra il client, il server di gioco e i server di Steam.

NOTA: quando hai finito con la connessione, devi chiamare TerminateGameConnection.

NOTA: fa parte di una vecchia API di autenticazione utente, da non confondere con quella nuova.

Restituisce: int
Il numero di byte scritti su pBlob.

Restituisce 0 a indicare esito negativo, ovvero che il buffer pAuthBlob passato era troppo piccolo e la chiamata è fallita.

I contenuti di pAuthBlob dovrebbero quindi venire inviati al server di gioco in modo che possano essere utilizzati per completare il processo di autenticazione.

RequestEncryptedAppTicket

SteamAPICall_t RequestEncryptedAppTicket( void *pDataToInclude, int cbDataToInclude );
NomeTipoDescrizione
pDataToIncludevoid *I dati che saranno codificati nel ticket.
cbDataToIncludeintLe dimensioni totali in byte di pDataToInclude.

Richiede un ticket di un'applicazione codificato con la "chiave segreta per il ticket codificato dell'app".

La chiave di codifica può essere ottenuta dalla pagina chiave del ticket dell'applicazione crittografata nel pannello di amministrazione della tua app.

Può esistere solo una EncryptedAppTicketResponse_t in sospeso e questa chiamata non può essere inviata più spesso di ogni 60 secondi.

Dopo aver ricevuto la risposta, dovresti chiamare GetEncryptedAppTicket per ottenere i dati del ticket, che dovrai poi inviare a un server sicuro per essere decodificati con le funzioni SteamEncryptedAppTicket.

Restituisce: SteamAPICall_t da utilizzare con un risultato della chiamata a EncryptedAppTicketResponse_t.


Esempio:
class CEncryptedAppTicketExample { public: void RetrieveEncryptedAppTicket(); private: void OnEncryptedAppTicketResponse( EncryptedAppTicketResponse_t *pEncryptedAppTicketResponse, bool bIOFailure ); CCallResult< CEncryptedAppTicketExample, EncryptedAppTicketResponse_t > m_EncryptedAppTicketResponseCallResult; }; void CEncryptedAppTicketExample::RetrieveEncryptedAppTicket() { SteamAPICall_t hSteamAPICall = SteamUser()->RequestEncryptedAppTicket( &k_unSecretData, sizeof( k_unSecretData ) ); m_EncryptedAppTicketResponseCallResult.Set( hSteamAPICall, this, &CEncryptedAppTicketExample::OnEncryptedAppTicketResponse ); } void CEncryptedAppTicketExample::OnEncryptedAppTicketResponse( EncryptedAppTicketResponse_t *pEncryptedAppTicketResponse, bool bIOFailure ) { if ( bIOFailure ) { printf( "There has been an IO Failure when requesting the Encrypted App Ticket.\n" ); return; } switch ( pEncryptedAppTicketResponse->m_eResult ) { case k_EResultOK: { uint8 rgubTicket[1024]; uint32 cubTicket; if ( SteamUser()->GetEncryptedAppTicket( rgubTicket, sizeof( rgubTicket ), &cubTicket ) ) { // A questo punto di solito trasmetteresti il ticket crittografato a un servizio fidato che conosce la chiave di decodifica // Questo codice serve solo a dare una dimostrazione della libreria di decodifica del ticket DecryptTicket( rgubTicket, cubTicket ); } else printf( "GetEncryptedAppTicket failed.\n" ); } break; case k_EResultNoConnection: printf( "Calling RequestEncryptedAppTicket while not connected to steam results in this error.\n" ); break; case k_EResultDuplicateRequest: printf( "Calling RequestEncryptedAppTicket while there is already a pending request results in this error.\n" ); break; case k_EResultLimitExceeded: printf( "Calling RequestEncryptedAppTicket more than once per minute returns this error.\n" ); break; } }

RequestStoreAuthURL

SteamAPICall_t RequestStoreAuthURL( const char *pchRedirectURL );
NomeTipoDescrizione
pchRedirectURLconst char *

Richiede un URL che autentica un browser in gioco per il check-out del negozio e poi ridireziona all'URL specificato.

Se il browser in gioco accetta e gestisce i cookie delle sessioni, le pagine di check-out delle microtransazioni di Steam riconosceranno automaticamente l'utente invece che presentare una pagina per effettuare l'accesso.

NOTA: l'URL ha una durata molto breve per prevenire attacchi basati sullo spionaggio della cronologia, quindi dovresti chiamare questa API quando stai per lanciare il browser, oppure naviga all'URL risultante utilizzando una finestra del browser nascosta.

NOTA: il cookie di autorizzazione risultante scade dopo un giorno, quindi sarebbe una buona idea richiedere e visitare un nuovo URL di autorizzazione ogni 12 ore.

Restituisce: SteamAPICall_t con un risultato della chiamata a StoreAuthURLResponse_t.
Restituisce k_uAPICallInvalid se non è stato possibile connettersi ai server di Steam.

StartVoiceRecording

void StartVoiceRecording();
Inizia la registrazione vocale.

Una volta avviata, utilizza GetAvailableVoice e GetVoice per ottenere i dati e StopVoiceRecording quando l'utente ha rilasciato il pulsante push-to-talk o la sessione di gioco è stata completata.

Per ulteriori informazioni, vedi Steam Voice.

StopVoiceRecording

void StopVoiceRecording();
Termina la registrazione vocale.

Spesso gli utenti rilasciano il tasto push-to-talk troppo presto, quindi il sistema continuerà a registrare per un po' di tempo dopo la chiamata a questa funzione. GetVoice dovrebbe continuare dunque a essere chiamata finché non restituisce k_EVoiceResultNotRecording. Solo allora la registrazione si fermerà.

TerminateGameConnection

void TerminateGameConnection( uint32 unIPServer, uint16 usPortServer );
NomeTipoDescrizione
unIPServeruint32
usPortServeruint16

Notifica il server di gioco che ci stiamo disconnettendo.

Deve avvenire quando il client di gioco abbandona il server di gioco specificato. Deve corrispondere alla chiamata InitiateGameConnection.

NOTA: fa parte di una vecchia API di autenticazione utente, da non confondere con quella nuova.

TrackAppUsageEvent

void TrackAppUsageEvent( CGameID gameID, int eAppUsageEvent, const char *pchExtraInfo = "" );
NomeTipoDescrizione
gameIDCGameID
eAppUsageEventint
pchExtraInfoconst char *

Non più in uso. Utilizzata solo da qualche gioco per tenere traccia dell'uso prima dell'introduzione di Statistiche e achievement.

UserHasLicenseForApp

EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
NomeTipoDescrizione
steamIDCSteamIDL'ID di Steam dell'utente che ha inviato il ticket di autenticazione.
appIDAppId_tL'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: EUserHasLicenseForAppResult


Vedi anche: Autenticazione dell'utente e verifica della proprietà

Callback

Queste sono callback che possono essere attivate chiamando SteamAPI_RunCallbacks. Molte di esse saranno attivate direttamente in risposta alle funzioni membro di ISteamUser.

ClientGameServerDeny_t

Inviata dal server di Steam al client per dirgli di disconnettersi dal server di gioco specificato, azione che potrebbe essere già in corso o a cui potrebbe già essere connesso.
Il client di gioco dovrebbe disconnettersi immediatamente al momento della ricezione di questo messaggio.
Di solito accade se l'utente non ha i permessi per giocare sul server di gioco.

NomeTipoDescrizione
m_uAppIDuint32L'appID a cui si rivolge questa chiamata. Verifica che corrisponda all'appID corrente con ISteamUtils::GetAppID.
m_unGameServerIPuint32L'IP del server di gioco da cui bisogna disconnettersi in ordine di host, ad esempio 127.0.0.1 == 0x7f000001.
m_usGameServerPortuint16La porta del server di gioco da cui bisogna disconnettersi, in ordine di host.
m_bSecureuint16Il server di gioco utilizza il VAC (true) o no (false)?
m_uReasonuint32

DurationControl_t


Inviata per giochi su cui è attivo il sistema di controllo della durata. Consente al gioco di sapere se la funzione si applica all'utente, e quindi se l'utente deve uscire presto dal gioco e il tempo di gioco giornaliero rimanente per l'utente.

Questa callback si attiva in maniera asincrona quando si attivano i timer. Si attiva anche in risposta a chiamate a GetDurationControl().

NomeTipoDescrizione
m_eResultEResultRisultato della chiamata (sempre k_EResultOK per le notifiche asincrone basate su un timer).
m_appidAppId_tL'appID che sta generando il tempo di gioco.
m_bApplicableboolIndica se il controllo della durata si può applicare alla combinazione utente + gioco.
m_csecsLast5hint32Il tempo di gioco in un intervallo di 5 ore consecutive oltre alla sessione corrente, in secondi.
m_progressEDurationControlProgressDescrive se sia necessario uscire dal gioco o meno.
m_notificationEDurationControlNotificationLa notifica da mostrare, se ne esiste una (per le chiamate API è sempre k_EDurationControlNotification_None).

Funzioni associate: GetDurationControl

EncryptedAppTicketResponse_t

Chiamata quando il ticket crittografato di un'applicazione è stato ricevuto.

NomeTipoDescrizione
m_eResultEResultLa chiamata ha avuto esito positivo?
Risultati possibili:

Funzioni associate: RequestEncryptedAppTicket

GameWebCallback_t

Inviata al tuo gioco in risposta al comando steam://gamewebcallback/ eseguito da un utente che ha cliccato su di un collegamento nel browser dell'overlay di Steam.
Puoi usarla per aggiungere il supporto all'accesso attraverso siti esterni quando vuoi ritornare al browser dopo la sequenza di accesso su delle pagine web e opzionalmente ottenere le relative informazioni.

NomeTipoDescrizione
m_szURLchar[256]L'URL completo su cui ha cliccato l'utente.

GetAuthSessionTicketResponse_t

Risultato quando viene creato un ticket di autenticazione della sessione.

NomeTipoDescrizione
m_hAuthTicketHAuthTicketL'handle del ticket che è stato creato.
m_eResultEResultIl risultato dell'operazione.

Funzioni associate: GetAuthSessionTicket

GetTicketForWebApiResponse_t

Il risultato della creazione di un ticket webapi da GetAuthTicketForWebApi.

NomeTipoDescrizione
m_hAuthTicketHAuthTicketL'handle del ticket che è stato creato.
m_eResultEResultIl risultato dell'operazione.
m_cubTicketint La lunghezza del ticket che è stato creato.
m_rgubTicketuint8[2560]Il ticket che è stato creato.

Funzioni associate: GetAuthTicketForWebApi

IPCFailure_t

Chiamata quando il sistema di callback per questo client è in stato di errore (e ha annullato le callback in sospeso).
Quando si riceve questo messaggio, il client dovrebbe disconnettersi da Steam, resettare eventuali stati di Steam memorizzati e riconnettersi.
Accade di solito nei rari casi in cui il client di Steam presenta qualche tipo di errore fatale.

NomeTipoDescrizione
m_eFailureTypeuint8Si tratta di un EFailureType.

LicensesUpdated_t

Chiamata ogni volta che le licenze (pacchetti in proprio possesso) dell'utente cambiano.

Questa callback non ha campi.

MicroTxnAuthorizationResponse_t

Chiamata quando un utente ha risposto alla richiesta di autorizzazione di una microtransazione.

NomeTipoDescrizione
m_unAppIDuint32L'appID di questa microtransazione.
m_ulOrderIDuint64L'ID dell'ordine fornito per la microtransazione.
m_bAuthorizeduint8L'utente ha autorizzato la transazione (1) oppure no (0)?

SteamServerConnectFailure_t

Chiamata quando è fallito un tentativo di connessione.
Accadrà periodicamente se il client di Steam non è connesso e non è riuscito a ristabilire una connessione.

NomeTipoDescrizione
m_eResultEResultLa ragione per cui la connessione non è riuscita.
m_bStillRetryingboolIl client di Steam sta ancora cercando di connettersi al server?

SteamServersConnected_t

Chiamata quando è stata stabilita una connessione al back-end di Steam.
Significa che il client di Steam ora ha una connessione funzionante ai server di Steam. Di solito accade prima che il gioco venga lanciato e dovrebbe essere visualizzata solo se l'utente ha interrotto la connessione a causa di problemi di rete o di un aggiornamento al server di Steam.

Questa callback non ha campi.

SteamServersDisconnected_t

Chiamata se il client ha perso la connessione ai server di Steam.
I servizi in tempo reale saranno disabilitati fino all'invio di una SteamServersConnected_t corrispondente.

NomeTipoDescrizione
m_eResultEResultIl motivo per cui si è stati disconnessi da Steam.

StoreAuthURLResponse_t

Risposta quando si riceve l'URL di autenticazione dopo una chiamata a RequestStoreAuthURL.

NomeTipoDescrizione
m_szURLchar[512]L'URL di autenticazione.

Funzioni associate: RequestStoreAuthURL

ValidateAuthTicketResponse_t

Chiamata quando è stato convalidato un ticket di autenticazione.

NomeTipoDescrizione
m_SteamIDCSteamIDL'ID di Steam dell'entità che ha fornito il ticket di autenticazione.
m_eAuthSessionResponseEAuthSessionResponseIl risultato della convalida.
m_OwnerSteamIDCSteamIDL'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.

Funzioni associate: BeginAuthSession

Strutture

Queste sono strutture che le funzioni all'interno di ISteamUser possono restituire o con cui possono interagire.

CallbackMsg_t

La struttura che contiene i dati di callback del client. Usata solo internamente all'interno di SteamAPI_RunCallbacks.

NomeTipoDescrizione
m_hSteamUserHSteamUserL'utente a cui viene inviata questa callback.
m_iCallbackintL'ID unico della callback.
m_pubParamuint8 *Il puntatore ai dati della callback.
m_cubParamintLe dimensioni di [param]m_pubParam[/param].

Enum

Queste sono le enumerazioni definite per l'utilizzo con ISteamUser.

EFailureType

Specifica quale tipo di fallimento è avvenuto in IPCFailure_t.

NomeValoreDescrizione
k_EFailureFlushedCallbackQueue0
k_EFailurePipeFail1

EDurationControlProgress

Descrive le restrizioni al tempo di gioco da applicare ai titoli con il controllo della durata della sessione per gli utenti minorenni di Steam China.

NomeValoreDescrizione
k_EDurationControlProgress_Full0Normale modalità di gioco.
k_EDurationControlProgress_Half1Questo valore non è più in uso.
k_EDurationControlProgress_None2Il tempo di gioco dell'utente è terminato. Steam interromperà il gioco a breve.

Funzioni associate:
GetDurationControl
BSetDurationControlOnlineState

EDurationControlNotification

Descrive quale timer di notifica è scaduto. Si applica alla funzionalità di controllo della durata di Steam China. Alcune di queste notifiche sono obsolete e non vengono più inviate.

NomeValoreDescrizione
k_EDurationControlNotification_None0La callback ti sta informando dei progressi, non vi sono notifiche da mostrare.
k_EDurationControlNotification_1Hour1Il giocatore sta giocando da un'ora: se lo desideri, ora il gioco può visualizzare un avviso.
k_EDurationControlNotification_3Hours2Non più in uso.
k_EDurationControlNotification_HalfProgress3Non più in uso.
k_EDurationControlNotification_ExitSoon_3h4Il giocatore ha giocato per il tempo consentito e dovrebbe uscire dal gioco.
k_EDurationControlNotification_ExitSoon_5h4Il giocatore ha giocato per il tempo consentito e dovrebbe uscire dal gioco.
k_EDurationControlNotification_ExitSoon_Night4Il giocatore ha giocato fino all'ora locale consentita (22:00) e dovrebbe uscire dal gioco.

Funzioni associate:
GetDurationControl
BSetDurationControlOnlineState

EDurationControlOnlineState

Descrive lo stato di gioco online/offline di un gioco. Attualmente viene utilizzato solo per supportare la capacità di un gioco di impedire a Steam di interromperlo automaticamente quando il tempo di gioco dell'utente è esaurito. Se il gioco chiama BSetDurationControlOnlineState(k_EDurationControlOnlineState_OnlineHighPri), Steam non forzerà l'uscita dal gioco. In questo caso, spetta al gioco farlo! Steam continuerà a inviare notifiche DurationControl_t al gioco. Se il gioco chiama BSetDurationControlOnlineState per rimuovere lo stato OnlineHighPri, allora Steam forzerà l'uscita dal gioco a breve.

NomeValoreDescrizione
k_EDurationControlOnlineState_Offline1Gioco offline
k_EDurationControlOnlineState_Online2Gioco online
k_EDurationControlOnlineState_OnlineHighPri3Gioco online: il gioco richiede che Steam non forzi l'uscita dal gioco

Funzioni associate:
GetDurationControl
BSetDurationControlOnlineState

Costanti

Queste sono costanti definite per l'utilizzo con ISteamUser.

NomeTipoValoreDescrizione
STEAMUSER_INTERFACE_VERSIONconst char *"SteamUser019"