Documentación de Steamworks
Interfaz ISteamUserStats
Proporciona funciones para enviar y acceder a estadísticas, logros y tablas de clasificación.

Funciones miembro

Las funciones miembro para ISteamUserStats se llaman a través de la función de acceso global SteamUserStats().

AttachLeaderboardUGC

SteamAPICall_t AttachLeaderboardUGC( SteamLeaderboard_t hSteamLeaderboard, UGCHandle_t hUGC );
NombreTipoDescripción
hSteamLeaderboardSteamLeaderboard_tUn handle de la tabla de clasificación obtenida de FindLeaderboard o de FindOrCreateLeaderboard.
hUGCUGCHandle_tHandle a un elemento de contenido generado por los usuarios que se compartió utilizando ISteamRemoteStorage::FileShare.

Asocia un elemento de contenido generado por los usuarios a la entrada del usuario actual en una tabla de clasificación.

Este contenido podría ser una reproducción del usuario obteniendo un marcador o un usuario fantasma contra el que competir. El identificador adjunto estará disponible cuando la entrada se recupere y otros usuarios puedan acceder a ella usando GetDownloadedLeaderboardEntry que contiene LeaderboardEntry_t.m_hUGC. Para crear y descargar contenido generado por los usuarios, véase la documentación de Steam Workshop.

Una vez asociado, el contenido estará disponible incluso si el usuario modifica o elimina el archivo subyacente en la nube.

Debes llamar a FindLeaderboard o FindOrCreateLeaderboard para obtener un SteamLeaderboard_t antes de llamar a esta función.

Devuelve: SteamAPICall_t para usar con el resultado de la llamada LeaderboardUGCSet_t.

ClearAchievement

bool ClearAchievement( const char *pchName );
NombreTipoDescripción
pchNameconst char *El "nombre API" del logro a restablecer.

Restablece el estado de desbloqueo de un logro.

Se usa fundamental y casi exclusivamente en labores de testeo.

¡Debes haber llamado a RequestCurrentStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta!

Esta llamada solo modifica el estado en memoria de Steam, de forma que utiliza pocos recursos. Para enviar el estado de desbloqueo al servidor y activar la notificación de la interfaz de Steam, debe llamarse a StoreStats.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • El "nombre APl" del logro especificado existe en el administrador de aplicaciones del sitio web de Steamworks y los cambios están publicados.
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.

Véase también: ResetAllStats, GetAchievementAndUnlockTime, GetAchievement, SetAchievement

DownloadLeaderboardEntries

SteamAPICall_t DownloadLeaderboardEntries( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd );
NombreTipoDescripción
hSteamLeaderboardSteamLeaderboard_tUn handle de la tabla de clasificación obtenida de FindLeaderboard o de FindOrCreateLeaderboard.
eLeaderboardDataRequestELeaderboardDataRequestEl tipo de solicitud de datos a realizar.
nRangeStartintÍndice para comenzar a descargar las entradas relativas a eLeaderboardDataRequest.
nRangeEndintÚltimo índice para recuperar entradas relativas a eLeaderboardDataRequest.

Recupera una serie de entradas de clasificación para la tabla de clasificación especificada.

Se pueden solicitar más entradas de las existentes; en tal caso, la función devuelve tantas como existan.

Si se quieren descargar entradas para un conjunto arbitrario de usuarios, como por ejemplo todos los usuarios en un servidor, entonces podrá usarse DownloadLeaderboardEntriesForUsers, que recoge un vector de id. de Steam.

Debes llamar a FindLeaderboard o FindOrCreateLeaderboard para obtener un SteamLeaderboard_t antes de llamar a esta función.

Devuelve: SteamAPICall_t para usar con el resultado de la llamada LeaderboardScoresDownloaded_t.


Véase también: GetDownloadedLeaderboardEntry, UploadLeaderboardScore

DownloadLeaderboardEntriesForUsers

SteamAPICall_t DownloadLeaderboardEntriesForUsers( SteamLeaderboard_t hSteamLeaderboard, CSteamID *prgUsers, int cUsers );
NombreTipoDescripción
hSteamLeaderboardSteamLeaderboard_tUn handle de la tabla de clasificación obtenida de FindLeaderboard o de FindOrCreateLeaderboard.
prgUsersCSteamID *Vector de id. de Steam para el que se obtienen las entradas de la tabla de clasificación.
cUsersintEl número de elementos en la matriz prgUsers.

Recupera las entradas de la tabla de clasificación para un conjunto arbitrario de usuarios en una tabla de clasificación especificada.

Puede descargarse un máximo de 100 usuarios simultáneamente, con solo una llamada pendiente de cada vez. Si un usuario carece de entrada en una tabla de clasificación especificada, no será incluido en el resultado.

Si deseas descargar entradas basadas en tu clasificación o en amigos del usuario actual, debes usar DownloadLeaderboardEntries.

Debes llamar a FindLeaderboard o FindOrCreateLeaderboard para obtener un SteamLeaderboard_t antes de llamar a esta función.

Devuelve: SteamAPICall_t para usar con un LeaderboardScoresDownloaded_t resultado de la llamada.
Devuelve k_uAPICallInvalid si la entrada no es válida.

Véase también: GetDownloadedLeaderboardEntry, UploadLeaderboardScore

FindLeaderboard

SteamAPICall_t FindLeaderboard( const char *pchLeaderboardName );
NombreTipoDescripción
pchLeaderboardNameconst char *El nombre de la tabla de clasificación para encontrar. No debe de ser más largo que k_cchLeaderboardNameMax.

Obtiene una tabla de clasificación por nombre.

Se debe llamar a esta función o a FindOrCreateLeaderboard para obtener el identificador o handle de la tabla de clasificación válido para la sesión de juego para cada tabla clasificatoria a la que se desea acceder, antes de llamar a cualquier otra función de la tabla de clasificación.

Devuelve: SteamAPICall_t para usar con el resultado de la llamada LeaderboardFindResult_t.


Véase también: GetLeaderboardEntryCount, DownloadLeaderboardEntries, UploadLeaderboardScore

FindOrCreateLeaderboard

SteamAPICall_t FindOrCreateLeaderboard( const char *pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType );
NombreTipoDescripción
pchLeaderboardNameconst char *El nombre de la tabla de clasificación para encontrar o crear. No debe de ser más largo que k_cchLeaderboardNameMax.
eLeaderboardSortMethodELeaderboardSortMethodCriterio de ordenación de la nueva tabla de clasificación, si se crea.
eLeaderboardDisplayTypeELeaderboardDisplayTypeTipo de presentación (usado por la página web de la comunidad de Steam) de la nueva tabla de clasificación, si se crea.

Obtiene una tabla de clasificación por nombre; la creará si no está creada todavía.

Se debe llamar a esta función o a FindLeaderboard para obtener el identificador o handle de la tabla de clasificación válido para la sesión de juego para cada tabla clasificatoria a la que se desea acceder, antes de llamar a cualquier otra función de la tabla de clasificación.

Las tablas de clasificación creadas con esta función no se mostrarán automáticamente en la comunidad de Steam. Se debe establecer manualmente el campo Nombre en la Comunidad en el panel del administrador de apps del sitio web de Steamworks. Por ello, se recomienda por lo general crear las tablas de clasificación en el panel del administrador de apps en la página web de Steamworks y usar la función FindLeaderboard, a menos que se espere tener una gran cantidad de tablas de clasificación dinámicas creadas.

Nunca debes aprobar k_ELeaderboardSortMethodNone para eLeaderboardSortMethod o k_ELeaderboardDisplayTypeNone para eLeaderboardDisplayType como este siendo un comportamiento indefinido.

Devuelve: SteamAPICall_t para usar con el resultado de la llamada LeaderboardFindResult_t.


Véase también: GetLeaderboardEntryCount, DownloadLeaderboardEntries, UploadLeaderboardScore

GetAchievement

bool GetAchievement( const char *pchName, bool *pbAchieved );
NombreTipoDescripción
pchNameconst char *El "nombre API" del logro.
pbAchievedbool *Devuelve el estado de desbloqueo del logro.

Obtiene el estado de desbloqueo del logro.

La función equivalente para otros usuarios es GetUserAchievement.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.
  • El "nombre APl" del logro especificado existe en el administrador de aplicaciones del sitio web de Steamworks y los cambios están publicados.

Si la llamada es exitosa, el estado de desbloqueo se devuelve a través del parámetro pbAchieved.

Véase también: GetAchievementDisplayAttribute, GetAchievementName, GetAchievementIcon, GetAchievementAndUnlockTime, GetAchievementAchievedPercent

GetAchievementAchievedPercent

bool GetAchievementAchievedPercent( const char *pchName, float *pflPercent );
NombreTipoDescripción
pchNameconst char *El "nombre API" del logro
pflPercentfloat *Variable para devolver el porcentaje de personas que han desbloqueado este logro, entre 0 y 100.

Devuelve el porcentaje de usuarios que han desbloqueado el logro especificado.

Debes haber llamado a RequestGlobalAchievementPercentages y es necesario regresar con éxito a través de la función callback antes de llamar a esta.

Devuelve: bool
Devuelve true después del éxito; de lo contrario, false si RequestGlobalAchievementPercentages no ha sido llamado o si el "nombre API" especificado no existe en los porcentajes de logros globales.

Véase también: GetMostAchievedAchievementInfo, GetNextMostAchievedAchievementInfo

GetAchievementAndUnlockTime

bool GetAchievementAndUnlockTime( const char *pchName, bool *pbAchieved, uint32 *punUnlockTime );
NombreTipoDescripción
pchNameconst char *El "nombre API" del logro.
pbAchievedbool *Devuelve si el usuario actual ha desbloqueado el logro.
punUnlockTimeuint32 *Devuelve el momento en que se desbloqueó el logro si pbAchieved es true.

Obtiene el estado del logro y el momento en que se desbloqueó si está desbloqueado.

Si el valor devuelto es true, pero el tiempo de desbloqueo es cero, significa que se desbloqueó antes de que Steam comenzara a realizar un seguimiento de los tiempos de desbloqueo de logros (diciembre de 2009). El tiempo aparece en formato de tiempo Unix (segundos transcurridos desde el 1 de enero de 1970).

La función equivalente para otros usuarios es GetUserAchievementAndUnlockTime.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.
  • El "nombre APl" del logro especificado existe en el administrador de aplicaciones del sitio web de Steamworks y los cambios están publicados.

Si la llamada es exitosa, el estado alcanzado y el tiempo de desbloqueo se proporcionan a través de los argumentos pbAchieved y punUnlockTime.

Véase también: GetAchievement, GetAchievementDisplayAttribute, GetAchievementName, GetAchievementIcon

GetAchievementDisplayAttribute

const char * GetAchievementDisplayAttribute( const char *pchName, const char *pchKey );
NombreTipoDescripción
pchNameconst char *El "nombre API" del logro.
pchKeyconst char *La "clave" para la que se obtiene un valor.

Obtiene atributos generales para un logro. Actualmente proporciona: Nombre, Descripción y estado Oculto.

Recibe el valor de un almacén de valores clave de diccionario/mapa, de forma que se debe proporcionar una de las claves siguientes.
  • "name" para recuperar el nombre del logro localizado en UTF8.
  • "desc" para recuperar la descripción del logro localizado en UTF8.
  • "hidden" para recuperar si un logro está oculto. Devuelve "0" cuando no está oculto, "1" cuando esta oculto.

Esta traducción se proporciona en función del idioma del juego, si está establecido. En caso contrario, comprueba si hay disponible una traducción para el idioma de la IU de Steam del usuario. Si esto también falla, se emplea el inglés como idioma predeterminado.

Devuelve: const char *
Esta función devuelve el valor como una cadena en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, una cadena vacía: "".
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.
  • El logro especificado existe en el administrador de apps del sitio web de Steamworks y los cambios están publicados.
  • La pchKey especificada es válida.

Véase también: GetAchievement, GetAchievementName, GetAchievementIcon, GetAchievementAndUnlockTime

GetAchievementIcon

int GetAchievementIcon( const char *pchName );
NombreTipoDescripción
pchNameconst char *El "nombre API" del logro.

Obtiene el icono de un logro.

Devuelve: int
Activa una función callback UserAchievementIconFetched_t.
La imagen se devuelve como un identificador para usar con ISteamUtils::GetImageRGBA para obtener los datos de imagen reales.

Se devolverá un identificador no válido de 0 en las siguientes condiciones:
  • RequestCurrentStats no ha completado y devuelto exitosamente su función callback.
  • El logro especificado no existe en el administrador de apps del sitio web de Steamworks o los cambios no están publicados.
  • Steam sigue obteniendo los datos de la imagen del servidor. Esto activará una función callback UserAchievementIconFetched_t que te notificará cuando los datos de la imagen estén listos y te proporcionará un nuevo identificador. Si el m_nIconHandle en la función callback sigue siendo 0, entonces no hay ninguna imagen establecida para el logro especificado.

Véase también: GetAchievement, GetAchievementName, GetAchievementAndUnlockTime, GetAchievementAchievedPercent, GetAchievementDisplayAttribute

GetAchievementName

const char * GetAchievementName( uint32 iAchievement );
NombreTipoDescripción
iAchievementuint32Índice del logro.

Obtiene el "nombre API" para un índice de logro comprendido entre 0 y GetNumAchievements.

Esta función se debe usar en conjunción con GetNumAchievements para recorrer la lista de logros.

En general, los juegos no deberían necesitar estas funciones, ya que deberían llevar compilada una lista de logros.

Devuelve: const char *
El "Nombre de la API" del logro, devuelve una cadena vacía si iAchievement no es un índice válido. RequestCurrentStats no es un índice válido. Debe haberse hecho una llamada a y haberse realizado correctamente la función callback, y el id. de aplicación actual debe disponer de logros.

Ejemplo:
int numAchievements = SteamUserStats()->GetNumAchievements(); for ( int i = 0; i < numAchievements; ++i ) { const char *achName = SteamUserStats()->GetAchievementName( i ); if ( achName ) { printf( "%s", achName ); } }

GetDownloadedLeaderboardEntry

bool GetDownloadedLeaderboardEntry( SteamLeaderboardEntries_t hSteamLeaderboardEntries, int index, LeaderboardEntry_t *pLeaderboardEntry, int32 *pDetails, int cDetailsMax );
NombreTipoDescripción
hSteamLeaderboardEntriesSteamLeaderboardEntries_tUn handle de entradas de la tabla de clasificación se obtuvo del último resultado de la llamada LeaderboardScoresDownloaded_t.
indexintEl índice de la entrada de la tabla de clasificación para recibir debe estar entre 0 y LeaderboardScoresDownloaded_t.m_cEntryCount.
pLeaderboardEntryLeaderboardEntry_t *Variable a la que se devuelve la entrada.
pDetailsint32 *Vector previamente reservando en memoria al que se devuelven los detalles de esta entrada.
cDetailsMaxintLa longitud de la matriz pDetails.

Recupera los datos de una sola entrada en la tabla de clasificación.

Debes utilizar para un bucle de 0 a LeaderboardScoresDownloaded_t.m_cEntryCount para obtener todas las entradas descargadas. Una vez que hayas accedido a todas las entradas, los datos se liberarán y el identificador SteamLeaderboardEntries_t dejará de ser válido.

Opcionalmente, se pueden devolver detalles para la entrada a través de pDetails. Si es NULL, entonces cDetailsMax DEBE ser 0.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • hSteamLeaderboardEntries debe ser un identificador válido del último resultado de llamada LeaderboardScoresDownloaded_t.
  • index debe estar entre 0 y LeaderboardScoresDownloaded_t.m_cEntryCount

Si la llamada es exitosa, la entrada se devuelve a través del parámetro pLeaderboardEntry y si cDetailsMax no es 0, pDetails se rellena con los detalles de desbloqueo.

Véase también: DownloadLeaderboardEntries, UploadLeaderboardScore

Ejemplo:
void OnLeaderboardScoresDownloaded( LeaderboardScoresDownloaded_t *pCallback ) { for ( int i = 0; i < pCallback->m_cEntryCount; i++ ) { LeaderboardEntry_t leaderboardEntry; int32 details[3]; // We know that we store this many initially. SteamUserStats()->GetDownloadedLeaderboardEntry( pCallback->m_hSteamLeaderboardEntries, i, &leaderboardEntry, details, 3 ); assert( leaderboardEntry.m_cDetails == 3 ); //... } }

GetGlobalStat

bool GetGlobalStat( const char *pchStatName, int64 *pData ); bool GetGlobalStat( const char *pchStatName, double *pData );
NombreTipoDescripción
pchStatNameconst char *El "nombre API" de la estadística. No debe de ser más largo que k_cchStatNameMax.
pDataint64 * / double *Variable a la que se devuelve el valor de la estadística.

Obtiene los totales históricos de una estadística agregada.

¡Debes haber llamado a RequestGlobalStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta!

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • La estadística especificada existe en el administrador de apps del sitio web de Steamworks y los cambios están publicados.
  • RequestGlobalStats ha completado y devuelto exitosamente tu función callback.
  • El tipo coincide con el que figura en el panel del administrador de apps del sitio web de Steamworks.

Véase también: GetGlobalStatHistory

GetGlobalStatHistory

int32 GetGlobalStatHistory( const char *pchStatName, int64 *pData, uint32 cubData ); int32 GetGlobalStatHistory( const char *pchStatName, double *pData, uint32 cubData );
NombreTipoDescripción
pchStatNameconst char *El "nombre API" de la estadística. No debe de ser más largo que k_cchStatNameMax.
pDatadouble *Vector en el que se devuelve el historial diario.
cubDatauint32El tamaño total en bytes de la matriz pData.

Obtiene los totales históricos de una estadística agregada.

pData se llenará con los valores diarios, comenzando hoy.
Entonces, cuando se llame, pData[0] será hoy, pData[1] será ayer, y pData[2] será hace dos días, etc.

Debes haber llamado a RequestGlobalStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta.

Devuelve: int32
El número de elementos devueltos en la matriz pData.

Un valor de 0 indica un fallo por una de las siguientes razones:
  • La estadística especificada no existe en el administrador de apps del sitio web de Steamworks o los cambios no están publicados.
  • RequestGlobalStats no se ha llamado o devuelto su función callback, con al menos 1 día de historial.
  • El tipo no coincide con el que figura en el panel del administrador de apps del sitio web de Steamworks.
  • No hay historial disponible.

Véase también: GetGlobalStat

GetLeaderboardDisplayType

ELeaderboardDisplayType GetLeaderboardDisplayType( SteamLeaderboard_t hSteamLeaderboard );
NombreTipoDescripción
hSteamLeaderboardSteamLeaderboard_tUn handle de la tabla de clasificación obtenida de FindLeaderboard o de FindOrCreateLeaderboard.

Devuelve el tipo de presentación de un identificador o handle de la tabla de clasificación.

Devuelve: ELeaderboardDisplayType
El tipo de visualización de la tabla de clasificación. Devuelve k_ELeaderboardDisplayTypeNone si el handle de la tabla de clasificación no es válido.

Véase también: GetLeaderboardName, GetLeaderboardSortMethod, GetLeaderboardEntryCount

GetLeaderboardEntryCount

int GetLeaderboardEntryCount( SteamLeaderboard_t hSteamLeaderboard );
NombreTipoDescripción
hSteamLeaderboardSteamLeaderboard_tUn handle de la tabla de clasificación obtenida de FindLeaderboard o de FindOrCreateLeaderboard.

Devuelve el número total de entradas en una tabla de clasificación.

Esto se almacena en el caché por la tabla de clasificación en la primera llamada a FindLeaderboard o FindOrCreateLeaderboard y se actualiza en cada llamada exitosa a DownloadLeaderboardEntries, DownloadLeaderboardEntriesForUsers y UploadLeaderboardScore.

Devuelve: int
El número de entradas en la tabla de clasificación. Devuelve 0 si el identificador o handle de la tabla de clasificación no es válido.

Véase también: GetLeaderboardName, GetLeaderboardSortMethod, GetLeaderboardDisplayType

GetLeaderboardName

const char * GetLeaderboardName( SteamLeaderboard_t hSteamLeaderboard );
NombreTipoDescripción
hSteamLeaderboardSteamLeaderboard_tUn handle de la tabla de clasificación obtenida de FindLeaderboard o de FindOrCreateLeaderboard.

Devuelve el nombre de un identificador o handle de la tabla de clasificación.

Devuelve: const char *
El nombre de la tabla de clasificación. Devuelve una cadena vacía si el identificador o handle de la tabla de clasificación no es válido.

Véase también: GetLeaderboardEntryCount, GetLeaderboardSortMethod, GetLeaderboardDisplayType

GetLeaderboardSortMethod

ELeaderboardSortMethod GetLeaderboardSortMethod( SteamLeaderboard_t hSteamLeaderboard );
NombreTipoDescripción
hSteamLeaderboardSteamLeaderboard_tUn handle de la tabla de clasificación obtenida de FindLeaderboard o de FindOrCreateLeaderboard.

Devuelve el criterio de ordenación de un identificador o handle de la tabla de clasificación.

Devuelve: ELeaderboardSortMethod
El método de clasificación de la tabla de clasificación. Devuelve k_ELeaderboardSortMethodNone si el handle de la tabla de clasificación no es válido.

Véase también: GetLeaderboardName, GetLeaderboardDisplayType, GetLeaderboardEntryCount

GetMostAchievedAchievementInfo

int GetMostAchievedAchievementInfo( char *pchName, uint32 unNameBufLen, float *pflPercent, bool *pbAchieved );
NombreTipoDescripción
pchNamechar *Búfer de cadena en el que devolver el "nombre API" del logro.
unNameBufLenuint32Tamaño en bytes de pchName. Debe ser al menos tan largo como el "nombre API" de logro más largo.
pflPercentfloat *Variable para devolver el porcentaje de personas que han desbloqueado este logro, entre 0 y 100.
pbAchievedbool *Variable para devolver si el usuario actual ha desbloqueado o no este logro.

Obtiene información sobre el logro más avanzado que se ha alcanzado en el juego.

Debes haber llamado a RequestGlobalAchievementPercentages y es necesario regresar con éxito a través de la función callback antes de llamar a esta.

Devuelve: int
Devuelve -1 si RequestGlobalAchievementPercentages no ha sido llamado o si no hay porcentajes de logros globales para esta id. de aplicación.

Si la llamada es exitosa, devuelve un iterador que debe usarse con GetNextMostAchievedAchievementInfo.

Véase también: RequestCurrentStats, RequestGlobalAchievementPercentages, GetNextMostAchievedAchievementInfo, GetAchievementAchievedPercent

Ejemplo:
const int ACH_NAME_MAX_LENGTH = 64; char[ACH_NAME_MAX_LENGTH] achName; float achPercent; float achUnlocked; int i = SteamUserStats()->GetMostAchievedAchievementInfo( achName, ACH_NAME_MAX_LENGTH, achPercent, achUnlocked ); while ( i != -1 ) { printf( "AchievementInfo - name: %s, percent: %f, unlocked: %d", achName, achPercent, achUnlocked ); // Haz algo como agregar/actualizar esta información en tu objeto de logros local o muestresela al usuario. i = SteamUserStats()->GetNextMostAchievedAchievementInfo( i, achName, ACH_NAME_MAX_LENGTH, achPercent, achUnlocked ); }

GetNextMostAchievedAchievementInfo

int GetNextMostAchievedAchievementInfo( int iIteratorPrevious, char *pchName, uint32 unNameBufLen, float *pflPercent, bool *pbAchieved );
NombreTipoDescripción
iIteratorPreviousintEl iterador regresó de la llamada anterior a esta función o de GetMostAchievedAchievementInfo
pchNamechar *Búfer de cadena en el que devuelve el "nombre API" del logro.
unNameBufLenuint32Tamaño en bytes de pchName. Debe ser al menos tan largo como el "nombre API" del logro más largo.
pflPercentfloat *Variable para devolver el porcentaje de personas que han desbloqueado este logro, entre 0 y 100.
pbAchievedbool *Variable para devolver si el usuario actual ha desbloqueado o no este logro.

Obtiene información sobre el siguiente logro más avanzado que se ha alcanzado en el juego.

Debes haber llamado a RequestGlobalAchievementPercentages y es necesario regresar con éxito a través de la función callback antes de llamar a esta.

Devuelve: int
Devuelve -1 si RequestGlobalAchievementPercentages no ha sido llamado o si no hay porcentajes de logros globales para esta id. de aplicación.

Si la llamada se completa correctamente, devuelve un iterador que debe emplearse con llamadas posteriores a esta función.

Ejemplo:
const int ACH_NAME_MAX_LENGTH = 64; char[ACH_NAME_MAX_LENGTH] achName; float achPercent; float achUnlocked; int i = SteamUserStats()->GetMostAchievedAchievementInfo( achName, ACH_NAME_MAX_LENGTH, achPercent, achUnlocked ); while ( i != -1 ) { printf( "AchievementInfo - name: %s, percent: %f, unlocked: %d", achName, achPercent, achUnlocked ); // Haz algo como agregar/actualizar esta información en tu objeto de logros local o muestresela al usuario. i = SteamUserStats()->GetNextMostAchievedAchievementInfo( i, achName, ACH_NAME_MAX_LENGTH, achPercent, achUnlocked ); }

GetNumAchievements

uint32 GetNumAchievements();
Obtiene el número de logros definido en el panel del administrador de apps del sitio web de Steamworks.

Esto se usa para iterar a través de todos los logros con GetAchievementName.

En general, los juegos no deberían necesitar estas funciones, ya que deberían llevar compilada una lista de logros.

Devuelve: uint32
El número de logros. Devuelve 0 si RequestCurrentStats no se ha llamado y devuelto su función callback, o si el id. de la aplicación actual no tiene logros.

Véase también: RequestCurrentStats, GetAchievementName

Ejemplo:
nt numAchievements = SteamUserStats()->GetNumAchievements(); for ( int i = 0; i < numAchievements; ++i ) { const char *achName = SteamUserStats()->GetAchievementName( i ); if ( achName ) { printf( "%s", achName ); } }

GetNumberOfCurrentPlayers

SteamAPICall_t GetNumberOfCurrentPlayers();
Recupera de forma asíncrona el número total de jugadores en el juego actual, en modo tanto conectado como desconectado.

Devuelve: SteamAPICall_t para usar con el resultado de la llamada NumberOfCurrentPlayers_t.

GetStat

bool GetStat( const char *pchName, int32 *pData ); bool GetStat( const char *pchName, float *pData );
NombreTipoDescripción
pchNameconst char *El "nombre API" de la estadística. No debe de ser más largo que k_cchStatNameMax.
pDataint32 * / float *Variable a la que se devuelve el valor de la estadística.

Obtiene el valor de una estadística para el usuario actual.

Debes haber llamado a RequestCurrentStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta.

Para recibir estadísticas de otros usuarios, usa GetUserStat.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • La estadística especificada existe en el administrador de apps del sitio web de Steamworks y los cambios están publicados.
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.
  • El tipo que se pasa a esta función debe ser el mismo que figura en el panel del administrador de apps del sitio web de Steamworks.

Véase también: RequestCurrentStats, SetStat, UpdateAvgRateStat, StoreStats, ResetAllStats

GetTrophySpaceRequiredBeforeInstall

uint64 GetTrophySpaceRequiredBeforeInstall();
¡Obsoleta!

Devuelve: uint64

GetUserAchievement

bool GetUserAchievement( CSteamID steamIDUser, const char *pchName, bool *pbAchieved );
NombreTipoDescripción
steamIDUserCSteamIDId. de Steam del usuario al que se le da el logro.
pchNameconst char *El "nombre API" del logro.
pbAchievedbool *Devuelve el estado de desbloqueo del logro.

Obtiene el estado de desbloqueo del logro.

La función equivalente para el usuario local es GetAchievement, la función equivalente para los servidores del juego es ISteamGameServerStats::GetUserAchievement.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • RequestUserStats has completado y devuelto exitosamente tu función callback.
  • El "nombre APl" del logro especificado existe en el administrador de aplicaciones del sitio web de Steamworks y los cambios están publicados.

Si la llamada es exitosa, el estado de desbloqueo se devuelve a través del parámetro pbAchieved.

Véase también: RequestUserStats, GetUserStat, GetUserAchievementAndUnlockTime

GetUserAchievementAndUnlockTime

bool GetUserAchievementAndUnlockTime( CSteamID steamIDUser, const char *pchName, bool *pbAchieved, uint32 *punUnlockTime );
NombreTipoDescripción
steamIDUserCSteamIDId. de Steam del usuario al que se le da el logro.
pchNameconst char *El "nombre API" del logro.
pbAchievedbool *Devuelve si el usuario actual ha desbloqueado el logro.
punUnlockTimeuint32 *Devuelve el momento en que se desbloqueó el logro si pbAchieved es true.

Obtiene el estado del logro y el momento en que se desbloqueó si está desbloqueado.

Si el valor devuelto es true, pero el tiempo de desbloqueo es cero, significa que se desbloqueó antes de que Steam comenzara a realizar un seguimiento de los tiempos de desbloqueo de logros (diciembre de 2009). El tiempo aparece en formato de tiempo Unix (segundos transcurridos desde el 1 de enero de 1970).

La función equivalente para el usuario local es GetAchievementAndUnlockTime.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • RequestUserStats has completado y devuelto exitosamente tu función callback.
  • El "nombre APl" del logro especificado existe en el administrador de aplicaciones del sitio web de Steamworks y los cambios están publicados.

Si la llamada es exitosa, el estado alcanzado y el tiempo de desbloqueo se proporcionan a través de los argumentos pbAchieved y punUnlockTime.

Véase también: RequestUserStats, GetUserAchievement, GetUserStat

GetUserStat

bool GetUserStat( CSteamID steamIDUser, const char *pchName, int32 *pData ); bool GetUserStat( CSteamID steamIDUser, const char *pchName, float *pData );
NombreTipoDescripción
steamIDUserCSteamIDId. de Steam del usuario que obtiene la estadística.
pchNameconst char *El "nombre API" de la estadística. No debe de ser más largo que k_cchStatNameMax.
pDataint32 * / float *Variable a la que se devuelve el valor de la estadística.

Obtiene el valor de una estadística para el usuario especificado.

Debes haber llamado a RequestUserStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta.

La función equivalente para el usuario local es GetStat, la función equivalente para los servidores del juego es ISteamGameServerStats::GetUserStat.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • La estadística especificada existe en el administrador de apps del sitio web de Steamworks y los cambios están publicados.
  • RequestUserStats has completado y devuelto exitosamente tu función callback.
  • El tipo no coincide con el que figura en el panel del administrador de apps del sitio web de Steamworks.

Véase también: GetUserAchievement, GetUserAchievementAndUnlockTime

GetUserStatsData

bool GetUserStatsData( void *pvData, uint32 cubData, uint32 *pcubWritten );
NombreTipoDescripción
pvDatavoid *
cubDatauint32
pcubWrittenuint32 *

¡Obsoleta!

Devuelve: bool

IndicateAchievementProgress

bool IndicateAchievementProgress( const char *pchName, uint32 nCurProgress, uint32 nMaxProgress );
NombreTipoDescripción
pchNameconst char *El "nombre API" del logro.
nCurProgressuint32El progreso actual.
nMaxProgressuint32Progreso requerido para desbloquear el logro.

Muestra al usuario una notificación emergente con el progreso actual de un logro.

Llamar a esta función no establece el progreso o desbloquea el logro, el juego debe hacerlo manualmente mediante una llamada a SetStat.

La notificación se ve así:
achievement_progress.png

Devuelve: bool
Activa una función callback UserStatsStored_t.
Activa una función callback UserAchievementStored_t.
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.
  • El logro especificado existe en el administrador de apps del sitio web de Steamworks y los cambios están publicados.
  • El logro especificado no está ya desbloqueado.
  • nCurProgress es menos que nMaxProgress.

Véase también: RequestCurrentStats, SetAchievement, SetStat, StoreStats, ISteamUtils::SetOverlayNotificationPosition, ISteamUtils::SetOverlayNotificationInset

InstallPS3Trophies

bool InstallPS3Trophies();
¡Obsoleta!

Devuelve: bool

RequestCurrentStats

bool RequestCurrentStats();
Solicita de manera asíncrona al servidor los logros y estadísticas del usuario actual.

Siempre debes llamar a esto primero para obtener el estado inicial de las estadísticas y los logros.
Solo después de que vuelva la función callback resultante, podrás comenzar a llamar al resto de las funciones de estadísticas y logros del usuario actual.

La función equivalente para otros usuarios es RequestUserStats.

Devuelve: bool
Activa una función callback UserStatsReceived_t.
Solo devuelve false si no hay ningún usuario registrado; de lo contrario, true.

Véase también: GetStat, SetStat, SetAchievement, StoreStats

RequestGlobalAchievementPercentages

SteamAPICall_t RequestGlobalAchievementPercentages();
Captura de manera asíncrona los datos sobre el porcentaje de jugadores que han recibido cada logro del juego actual a nivel global.

¡Debes haber llamado a RequestCurrentStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta!

Devuelve: SteamAPICall_t para usar con el resultado de la llamada GlobalAchievementPercentagesReady_t.


Véase también: GetMostAchievedAchievementInfo, GetNextMostAchievedAchievementInfo, GetAchievementAchievedPercent

RequestGlobalStats

SteamAPICall_t RequestGlobalStats( int nHistoryDays );
NombreTipoDescripción
nHistoryDaysint¿Cuántos días del historial detallado se deben recuperar, además de los totales generales? El límite es 60.

Captura de manera asíncrona datos sobre las estadísticas globales, disponibles para las estadísticas marcadas como "agregadas" en el panel del administrador de apps del sitio web de Steamworks.

Debes haber llamado a RequestCurrentStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta.

Devuelve: SteamAPICall_t para usar con el resultado de la llamada GlobalStatsReceived_t.


Véase también: GetGlobalStat, GetGlobalStatHistory

RequestUserStats

SteamAPICall_t RequestUserStats( CSteamID steamIDUser );
NombreTipoDescripción
steamIDUserCSteamIDId. de Steam del usuario que pide las estadísticas.

Descarga de manera asíncrona las estadísticas y los logros para el usuario especificado desde el servidor.

Estas estadísticas no se actualizan de manera automática; se debe llamar de nuevo a la función para actualizar cualquier dato que pueda haber cambiado.

Para no usar demasiada memoria, se mantiene una caché LRU y se descargan ocasionalmente las demás estadísticas del usuario. Cuando esto sucede, se envía una función callback UserStatsUnloaded_t. Tras recibir la función callback, las estadísticas del usuario dejarán de estar disponibles hasta que vuelva a llamarse a la función.

La función equivalente para el usuario local es RequestCurrentStats, la función equivalente para los servidores del juego es ISteamGameServerStats::RequestUserStats.

Devuelve: SteamAPICall_t para usar con el resultado de la llamada UserStatsReceived_t.


Véase también: GetUserAchievement, GetUserAchievementAndUnlockTime, GetUserStat

ResetAllStats

bool ResetAllStats( bool bAchievementsToo );
NombreTipoDescripción
bAchievementsToobool¿También hay que restablecer los logros del usuario?

Restablece las estadísticas del usuario actual y, como opción, sus logros.

Esto llama automáticamente a StoreStats para conservar los cambios en el servidor. Normalmente solo se usará con fines de prueba, durante el proceso de desarrollo. Tras realizar esta llamada, hay que asegurarse de sincronizar las estadísticas con los nuevos valores proporcionados por Steam mediante una llamada a RequestCurrentStats.

Devuelve: bool
true indicando éxito si RequestCurrentStats ha sido llamado y ha devuelto su función callback con éxito; de lo contrario false.

SetAchievement

bool SetAchievement( const char *pchName );
NombreTipoDescripción
pchNameconst char *El "nombre API" del logro a desbloquear.

Desbloquea un logro.

¡Debes haber llamado a RequestCurrentStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta!

Se puede desbloquear varias veces un mismo logro, así que no hay que preocuparse de configurar solo aquellos que todavía no se hayan configurado. Esta llamada solo modifica el estado en memoria de Steam, de forma que utiliza pocos recursos. Para enviar el estado de desbloqueo al servidor y activar la notificación de la interfaz de Steam, debe llamarse a StoreStats.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • El "nombre APl" del logro especificado existe en el administrador de aplicaciones del sitio web de Steamworks y los cambios están publicados.
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.

Véase también: RequestCurrentStats, StoreStats, ResetAllStats, GetAchievementAndUnlockTime, GetAchievement

SetStat

bool SetStat( const char *pchName, int32 nData ); bool SetStat( const char *pchName, float fData );
NombreTipoDescripción
pchNameconst char *El "nombre API" de la estadística. No debe de ser más largo que k_cchStatNameMax.
nDataint32 / floatEl nuevo valor de la estadística. Debe ser un valor constante; no aumentará ni disminuirá.

Establece/actualiza el valor de una estadística dada para el usuario actual.

¡Debes haber llamado a RequestCurrentStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta!

Esta llamada solo modifica el estado en memoria de Steam, de forma que utiliza pocos recursos. Al hacerlo, Steam puede persistir en los cambios incluso en el caso de un bloqueo del juego o un cierre inesperado.
Para enviar las estadísticas al servidor debe llamar StoreStats.

Si devuelve false y todo lo demás parece correcto, hay que asegurarse de que estén publicados los cambios en el panel del administrador de apps del sitio web de Steamworks.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • La estadística especificada existe en el administrador de apps del sitio web de Steamworks y los cambios están publicados.
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.
  • El tipo que se pasa a esta función debe ser el mismo que figura en el panel del administrador de apps del sitio web de Steamworks.

Véase también: GetStat, UpdateAvgRateStat, ResetAllStats

SetUserStatsData

bool SetUserStatsData( const void *pvData, uint32 cubData );
NombreTipoDescripción
pvDataconst void *
cubDatauint32

¡Obsoleta!

Devuelve: bool

StoreStats

bool StoreStats();
Envía al servidor los nuevos logros y estadísticas para que se almacenen de manera permanente.

En caso de fallo, no se envía nada al servidor. Es aconsejable seguir intentándolo hasta que la llamada se complete correctamente.

Esta llamada puede tener limitación de frecuencia. La llamada debe repetirse en intervalos de minutos, y no de segundos. Solo se debe llamar durante cambios de estado importantes, como el final de una ronda, algún cambio en el mapa o la marcha del usuario del servidor. Esta llamada debe mostrar el diálogo de notificación de desbloqueo de logros, así que, si se ha llamado a la función SetAchievement, es aconsejable llamar a esta poco después.

En caso de tener estadísticas o logros guardados en local, pero no subidos aún con esta función cuando termine este proceso de la aplicación, se llamará automáticamente a esta función.

Puedes encontrar información de depuración adicional escrita en el archivo %steam_install%\logs\stats_log.txt.

Devuelve: bool
Activa una función callback UserStatsStored_t.
Activa una función callback UserAchievementStored_t.
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.
  • El juego actual tiene estadísticas asociadas en el backend de los asociados de Steamworks y dichas estadísticas están publicadas.

Si la llamada es exitosa, recibirás una función callback UserStatsStored_t.

Si m_eResult tiene un resultado de k_EResultInvalidParam, se rechazó una o más estadísticas cargadas, ya sea porque rompieron las restricciones o están desactualizadas. En ese caso, el servidor devuelve los valores actualizados y las estadísticas deben actualizarse en local para mantener la sincronización. En este caso, no es necesario que llames de nuevo a RequestCurrentStats.

Si uno o más logros han sido desbloqueados, esto también activará una función callback UserAchievementStored_t.

Véase también: SetStat, SetAchievement

UpdateAvgRateStat

bool UpdateAvgRateStat( const char *pchName, float flCountThisSession, double dSessionLength );
NombreTipoDescripción
pchNameconst char *El "nombre API" de la estadística. No debe de ser más largo que k_cchStatNameMax.
flCountThisSessionfloatAcumulación de valor desde la última llamada realizada a esta función.
dSessionLengthdoubleTiempo transcurrido (en segundos) desde la última llamada realizada a esta función.

Actualiza una estadística AVGRATE con nuevos valores.

¡Debes haber llamado a RequestCurrentStats y es necesario regresar con éxito a través de la función callback antes de llamar a esta!

Esta llamada solo modifica el estado en memoria de Steam, de forma que utiliza pocos recursos. Al hacerlo, Steam puede persistir en los cambios incluso en el caso de un bloqueo del juego o un cierre inesperado.
Para enviar las estadísticas al servidor debe llamar StoreStats.

Si devuelve false y todo lo demás parece correcto, hay que asegurarse de que estén publicados los cambios en el panel del administrador de apps del sitio web de Steamworks.

Devuelve: bool
Esta función devuelve true en caso de éxito si se cumplen todas las condiciones siguientes; de lo contrario, false.
  • La estadística especificada existe en el administrador de apps del sitio web de Steamworks y los cambios están publicados.
  • RequestCurrentStats has completado y devuelto exitosamente tu función callback.
  • El tipo debe ser AVGRATE en el backend de los asociados de Steamworks.

UploadLeaderboardScore

SteamAPICall_t UploadLeaderboardScore( SteamLeaderboard_t hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32 *pScoreDetails, int cScoreDetailsCount );
NombreTipoDescripción
hSteamLeaderboardSteamLeaderboard_tUn handle de la tabla de clasificación obtenida de FindLeaderboard o de FindOrCreateLeaderboard.
eLeaderboardUploadScoreMethodELeaderboardUploadScoreMethod¿Quieres forzar el cambio de la puntuación o mantener la anterior si era mejor?
nScoreint32Puntuación que se desea cargar.
pScoreDetailsconst int32 *Opcional: vector con los detalles concernientes al desbloqueo de la puntuación.
cScoreDetailsCountintEl número de elementos en pScoreDetails. No debe exceder k_cLeaderboardDetailsMax

Carga una puntuación de usuario a una tabla de clasificación especificada.

Los detalles (opcionales) son una información definida por el juego que especifica cómo obtuvo el usuario la puntuación. Por ejemplo, si se trata de una tabla de clasificación de un juego de carreras, se podrían guardar las marcas de tiempo en las que el jugador llegó a cada punto de control. Si hay objetos coleccionables por el camino, se pueden usar campos de bits como booleanos para almacenar los que recoja el jugador en la partida.

La subida de puntuaciones a Steam está limitada a un máximo de 10 subidas cada 10 minutos. Además, solo se puede tener una llamada sin completar a esta función a la vez.

Devuelve: SteamAPICall_t para usar con el resultado de la llamada LeaderboardScoreUploaded_t.


Véase también: DownloadLeaderboardEntries, AttachLeaderboardUGC

Devoluciones de llamada

Estas son funciones callback que pueden activarse llamando a SteamAPI_RunCallbacks. Muchas de estas se activarán directamente en respuesta a las funciones miembro de ISteamUserStats.

GlobalAchievementPercentagesReady_t

Se llama cuando se han recibido del servidor los porcentajes de logros globales.

NombreTipoDescripción
m_nGameIDuint64Id. del juego al que pertenecen estos porcentajes de logros.
m_eResultEResultResultado de la solicitud. Devuelve:
k_EResultOK que indica éxito.
k_EResultInvalidState, las estadísticas aún no se han cargado, llamada RequestCurrentStats.
k_EResultFail si falla la llamada remota o no hay porcentajes de logros globales para el id. de aplicación actual.

Funciones asociadas: RequestGlobalAchievementPercentages

GlobalStatsReceived_t

Se llama cuando se han recibido del servidor las estadísticas globales.

NombreTipoDescripción
m_nGameIDuint64Id. del juego al que pertenecen estas estadísticas globales.
m_eResultEResultEl resultado de la solicitud. Devuelve:

Funciones asociadas: RequestGlobalStats

LeaderboardFindResult_t

Resultado al encontrar una tabla de clasificación.

NombreTipoDescripción
m_hSteamLeaderboardSteamLeaderboard_tHandle de la tabla de clasificación que se buscaba. 0 si no se encontró una tabla de clasificación.
m_bLeaderboardFounduint8¿Se encontró la tabla de clasificación? 1 si lo fue, 0 si no lo fue.

Funciones asociadas: FindOrCreateLeaderboard, FindLeaderboard

LeaderboardScoresDownloaded_t

Se llama cuando se han descargado las puntuaciones de una tabla de clasificación y están listos para ser recuperados.
Después de llamar, debes usar GetDownloadedLeaderboardEntry para recuperar la información de cada entrada descargada.

NombreTipoDescripción
m_hSteamLeaderboardSteamLeaderboard_tIdentificador o handle de la tabla de clasificación a la que pertenecen las entradas.
m_hSteamLeaderboardEntriesSteamLeaderboardEntries_tEl identificador para pasar a GetDownloadedLeaderboardEntry para recuperar la información de cada entrada descargada.
m_cEntryCountintNúmero de entradas descargadas.

Funciones asociadas: DownloadLeaderboardEntries, DownloadLeaderboardEntriesForUsers

LeaderboardScoreUploaded_t

Resultado que indica que se ha subido una puntuación a un tabla de clasificación.

NombreTipoDescripción
m_bSuccessuint8¿La llamada se ha ejecutado correctamente? Devuelve 1 si la llamada fue exitosa, 0 en caso de error.
La cantidad de detalles enviados excede k_cLeaderboardDetailsMax.
La tabla de clasificación está configurada en "De confianza" en el Administrador de la aplicación en el sitio web de Steamworks, y solo aceptará las puntuaciones enviadas desde la API de Steam.
m_hSteamLeaderboardSteamLeaderboard_tIdentificador o handle de la tabla de clasificación a la que se subió esta puntuación.
m_nScoreint32La puntuación que se quería establecer.
m_bScoreChangeduint8true si la puntuación en la tabla de clasificación cambia, de lo contrario, false si la puntuación existente es mejor.
m_nGlobalRankNewintNueva posición global del usuario en la tabla de clasificación.
m_nGlobalRankPreviousintAnterior posición global del usuario en la tabla de clasificación; 0 si el usuario no tenía una entrada anterior en la tabla de clasificación.

Funciones asociadas: UploadLeaderboardScore

LeaderboardUGCSet_t

Resultado que indica que se ha adjuntado contenido generado por los usuarios a una de las entradas en la tabla de clasificación del usuario actual.

NombreTipoDescripción
m_eResultEResultResultado de la operación. Posibles valores:
m_hSteamLeaderboardSteamLeaderboard_tHandle a la tabla de clasificación que se adjunta a el UGC.

Funciones asociadas: AttachLeaderboardUGC

NumberOfCurrentPlayers_t

Obtiene el número actual de jugadores para el id. de aplicación actual.

NombreTipoDescripción
m_bSuccessuint8¿La llamada se ha ejecutado correctamente? Devuelve 1 si fue; de lo contrario, 0 en caso de error.
m_cPlayersint32Número de jugadores que están jugando en este momento.

Funciones asociadas: GetNumberOfCurrentPlayers

PS3TrophiesInstalled_t

Se llama cuando hay trofeos de PS3 disponibles.

NombreTipoDescripción
m_nGameIDuint64Juego al que pertenecen estas estadísticas.
m_eResultEResultResultado de la operación
m_ulRequiredDiskSpaceuint64Si m_eResult es k_EResultDiskFull, esto contendrá la cantidad de espacio necesario para instalar trofeos.

UserAchievementIconFetched_t

Resultado de un icono de logro obtenido.

NombreTipoDescripción
m_nGameIDCGameIDId. del juego al que pertenece el logro.
m_rgchAchievementNamechar[k_cchStatNameMaxNombre del logro al que corresponde esta función callback.
m_bAchievedboolDevuelve el icono de la versión conseguida (true) o no conseguida (false).
m_nIconHandleintHandle a la imagen, que se puede usar con ISteamUtils::GetImageRGBA para obtener los datos de la imagen. 0 significa que no se ha configurado ninguna imagen para el logro.

Funciones asociadas: GetAchievementIcon

UserAchievementStored_t

Resultado de una solicitud para guardar los logros en el servidor o de una llamada para "actualizar el progreso". Si tanto m_nCurProgress como m_nMaxProgress son cero, eso significa que el logro se ha desbloqueado por completo.

NombreTipoDescripción
m_nGameIDuint64Id. del juego al que pertenece el logro.
m_bGroupAchievementboolSin usar.
m_rgchAchievementNamechar[k_cchStatNameMaxNombre del logro.
m_nCurProgressuint32Progreso actual hacia la consecución del logro.
m_nMaxProgressuint32Progreso total requerido para desbloquear el logro.

Funciones asociadas: StoreStats, IndicateAchievementProgress

UserStatsReceived_t

Se llama cuando se han recibido del servidor los últimos logros y estadísticas de un usuario concreto (incluido el local).

NombreTipoDescripción
m_nGameIDuint64Id. del juego al que pertenecen las estadísticas.
m_eResultEResultDevuelve si la llamada fue exitosa o no. Si el usuario no tiene estadísticas, se establecerá en k_EResultFail.
m_steamIDUserCSteamIDUsuario cuyas estadísticas se han recuperado.

Funciones asociadas: RequestCurrentStats, RequestUserStats

UserStatsStored_t

Resultado de una solicitud para almacenar las estadísticas del usuario.

NombreTipoDescripción
m_nGameIDuint64Id. del juego al que pertenecen las estadísticas.
m_eResultEResultDevuelve si la llamada fue exitosa o no.

Funciones asociadas: StoreStats, IndicateAchievementProgress

UserStatsUnloaded_t

Devolución de llamada que indica que se han descargado las estadísticas de un usuario.

Llama a RequestUserStats de nuevo antes de acceder a las estadísticas de este usuario.

NombreTipoDescripción
m_steamIDUserCSteamIDUsuario cuyas estadísticas se han descargado.

Structs

Estas son las estructuras que las funciones de ISteamUserStats pueden devolver o con las que pueden interactuar.

LeaderboardEntry_t

Una sola entrada en una tabla de clasificación, según lo devuelto por GetDownloadedLeaderboardEntry.

NombreTipoDescripción
m_steamIDUserCSteamIDUsuario al que pertenece esta entrada. Puedes usar ISteamFriends::GetFriendPersonaName y ISteamFriends::GetSmallFriendAvatar para obtener más información.
m_nGlobalRankint32Posición global de la entrada en el intervalo [1..N], donde N es el número de usuarios con una entrada en la tabla de clasificación.
m_nScoreint32Puntuación absoluta, tal como figura en la tabla de clasificación.
m_cDetailsint32Número de detalles disponibles para la entrada.
m_hUGCUGCHandle_tHandle para el UGC adjunto a la entrada. k_UGCHandleInvalid si no hay ninguno.

Enums

Estas son las enumeraciones establecidas para usarse con ISteamUserStats.

ELeaderboardDataRequest

Tipo de solicitud de datos, utilizado al descargar entradas de la tabla de clasificación con DownloadLeaderboardEntries.

NombreValorDescripción
k_ELeaderboardDataRequestGlobal0Se usa para consultar por un intervalo secuencial de entradas de una tabla de clasificación por posición dentro de dicha tabla. Los parámetros inicial y final definen el intervalo solicitado. Por ejemplo, se pueden mostrar los 10 primeros de la tabla de clasificación de un juego asignando 1 como valor inicial y 10 como valor final.
k_ELeaderboardDataRequestGlobalAroundUser1Se usa para recuperar entradas de la tabla de clasificación en relación con la entrada de un usuario. El parámetro inicial es el número de entradas superiores a la entrada del usuario actual que se van a recuperar, y el parámetro final es el número de entradas inferiores a la entrada del usuario. La entrada del usuario actual se incluye siempre. Por ejemplo, si el usuario actual tiene el puesto 5 en la tabla de clasificación, estableciendo el inicio en -2 y el final en 2 se devuelven cinco entradas: los puestos del 3 al 7. Si la tabla de clasificación no contiene suficientes entradas superiores o inferiores a la del usuario, Steam ajustará el intervalo para intentar devolver la cantidad de entradas solicitadas. Por ejemplo, si el usuario actual tiene el primer puesto en la tabla de clasificación, estableciendo el inicio en -2 y el final en 2 Steam devolverá las cinco primeras entradas de la tabla de clasificación.
k_ELeaderboardDataRequestFriends2Se usa para recuperar todas las entradas de amigos del usuario actual en la tabla de clasificación. Los parámetros de inicio y final se omiten.
k_ELeaderboardDataRequestUsers3Usado internamente, no lo utilices con DownloadLeaderboardEntries. El resultado sería un comportamiento impredecible.

ELeaderboardDisplayType

Tipo de visualización empleado por el sitio web de la comunidad de Steam. Se usa para saber qué formato dar a las puntuaciones de la tabla de clasificación cuando se muestren. Puedes configurar el tipo de visualización al crear una tabla de clasificación con FindOrCreateLeaderboard o en el backend del socio de Steamworks. Puedes recuperar el tipo de visualización para una tabla de clasificación determinada con GetLeaderboardDisplayType.

NombreValorDescripción
k_ELeaderboardDisplayTypeNone0Solo se usa cuando una tabla de clasificación no es válida; no debe establecerse directamente.
k_ELeaderboardDisplayTypeNumeric1La puntuación es simplemente un valor numérico.
k_ELeaderboardDisplayTypeTimeSeconds2La puntuación representa un tiempo en segundos.
k_ELeaderboardDisplayTypeTimeMilliSeconds3La puntuación representa un tiempo en milisegundos.

ELeaderboardSortMethod

Método de ordenación. Se usa para establecer si es mejor una puntuación alta o una baja. Puedes configurar el método de clasificación al crear una tabla de clasificación con FindOrCreateLeaderboard o en App Admin en el sitio web de Steamworks. Puedes recuperar el método de clasificación para una tabla de clasificación determinada con GetLeaderboardSortMethod.

NombreValorDescripción
k_ELeaderboardSortMethodNone0Solo se usa cuando una tabla de clasificación no es válida; no debe establecerse directamente.
k_ELeaderboardSortMethodAscending1La mejor puntuación es el número más bajo.
k_ELeaderboardSortMethodDescending2La mejor puntuación es el número más alto.

ELeaderboardUploadScoreMethod



NombreValorDescripción
k_ELeaderboardUploadScoreMethodNone0
k_ELeaderboardUploadScoreMethodKeepBest1La tabla de clasificación conservará la mejor puntuación del usuario.
k_ELeaderboardUploadScoreMethodForceUpdate2La tabla de clasificación sustituirá siempre la puntuación con la especificada.

Typedefs

Estas son definiciones de tipo establecidas para usarse con ISteamUserStats.

NombreTipo de baseDescripción
SteamLeaderboardEntries_tuint64Identificador o handle de una lista de entradas descargadas en una tabla de clasificación. Esto es devuelto por LeaderboardScoresDownloaded_t y puede usarse para recorrer en iteración todas las entradas con GetDownloadedLeaderboardEntry
SteamLeaderboard_tuint64Identificador o handle para una sola tabla de clasificación.

Constantes

Estas son las constantes definidas para usarse con ISteamUserStats.

NombreTipoValorDescripción
k_cchLeaderboardNameMaxint128Número máximo de bytes para el nombre de una tabla de clasificación (codificado en UTF-8).
k_cchStatNameMaxint128Número máximo de bytes para los nombres de las estadísticas y los logros (codificado en UTF-8).
k_cLeaderboardDetailsMaxint64Número máximo de detalles que se pueden almacenar en una sola entrada de la tabla de clasificación.
STEAMUSERSTATS_INTERFACE_VERSIONconst char *"STEAMUSERSTATS_INTERFACE_VERSION011"