Documentación de Steamworks
Interfaz ISteamFriends
Interfaz para acceder a la información sobre usuarios individuales e interactuar con la Interfaz de Steam.

Funciones miembro

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

ActivateGameOverlay

void ActivateGameOverlay( const char *pchDialog );
NombreTipoDescripción
pchDialogconst char *El diálogo que se abre. Las opciones válidas son «friends», «community», «players», «settings», «officialgamegroup», «stats» y «achievements».

Activa la Interfaz de Steam en un cuadro de diálogo específico.

Esto es equivalente a llamar a ActivateGameOverlayToUser con steamID igual al valor obtenido de ISteamUser::GetSteamID.

Ejemplo:
SteamFriends()->ActivateGameOverlay( "friends" );

ActivateGameOverlayInviteDialog

void ActivateGameOverlayInviteDialog( CSteamID steamIDLobby );
NombreTipoDescripción
steamIDLobbyCSteamIDId. de Steam de la sala de espera a la que se invitará a los usuarios seleccionados.

Activa la Interfaz de Steam para abrir el cuadro de diálogo de invitación. Las invitaciones enviadas desde este diálogo serán para la sala proporcionada.

ActivateGameOverlayToStore

void ActivateGameOverlayToStore( AppId_t nAppID, EOverlayToStoreFlag eFlag );
NombreTipoDescripción
nAppIDAppId_tId. de aplicación cuya página de la tienda se desea mostrar.
eFlagEOverlayToStoreFlagMarcas para modificar el comportamiento cuando la página se abre.

Activa la Interfaz de Steam en la página de la tienda de Steam para la aplicación provista.

El uso de k_uAppIdInvalid lleva al usuario a la página principal de la tienda Steam.

ActivateGameOverlayToUser

void ActivateGameOverlayToUser( const char *pchDialog, CSteamID steamID );
NombreTipoDescripción
pchDialogconst char *El diálogo que se abre.
steamIDCSteamIDId. de Steam del contexto para el que se va abrir este cuadro de diálogo.

Activa la Interfaz de Steam para un cuadro de diálogo específico.

Las opciones válidas de pchDialog son:
  • "steamid": Abre una interfaz superpuesta del navegador con el perfil de usuario o grupo especificado.
  • "chat": Abre una ventana de chat para el usuario especificado o se une al chat de grupo.
  • "jointrade": Abre una ventana a una sesión de intercambio de Steam que se inició con la Web API ISteamEconomy/StartTrade.
  • "stats": Abre la interfaz superpuesta del navegador con las estadísticas del usuario especificado.
  • "achievements": Abre una interfaz superpuesta del navegador con los logros del usuario especificado.
  • "friendadd": Abre la interfaz superpuesta en modo mínimo y le pide al usuario que agregue al usuario objetivo como amigo.
  • "friendremove": Abre una interfaz superpuesta en modo mínimo y le pide al usuario que elimine al amigo objetivo.
  • "friendrequestaccept": Abre la interfaz superpuesta en modo mínimo y le pide al usuario que acepte una invitación entrante de amigo.
  • "friendrequestignore": Abre la interfaz superpuesta en modo mínimo y le pide al usuario que ignore una invitación entrante de amigo.

ActivateGameOverlayToWebPage

void ActivateGameOverlayToWebPage( const char *pchURL );
NombreTipoDescripción
pchURLconst char *La página web que se abre. Es necesaria una dirección completa con el protocolo, por ejemplo, http://www.steampowered.com.
eModeEActivateGameOverlayToWebPageModeModo para la página web. El valor predeterminado es k_EActivateGameOverlayToWebPageMode_Default.

Activa la Interfaz de Steam en el navegador directamente con el URL especificado.

ClearRichPresence

void ClearRichPresence();
Borra todos los pares clave/valor de presencia enriquecida del usuario actual.

CloseClanChatWindowInSteam

bool CloseClanChatWindowInSteam( CSteamID steamIDClanChat );
NombreTipoDescripción
steamIDClanChatCSteamIDId. de Steam de la sala de chat de grupo de Steam que se va a cerrar.

Cierra la sala de chat de grupo de Steam especificada en la IU de Steam.

Devuelve: bool
true si el usuario abandonó la sala de chat de grupo de Steam.
false si el usuario no está en la sala de chat de grupo de Steam indicada.

Véase también: IsClanChatWindowOpenInSteam, OpenClanChatWindowInSteam

DownloadClanActivityCounts

SteamAPICall_t DownloadClanActivityCounts( CSteamID *psteamIDClans, int cClansToRequest );
NombreTipoDescripción
psteamIDClansCSteamID *Lista de grupos de Steam para los que se van a obtener datos actualizados.
cClansToRequestintEste DEBE ser el número de grupos en psteamIDClans.

Actualiza los datos de actividad del grupo de Steam u obtiene los datos de grupos distintos de aquellos a los que pertenece el usuario actual.

Después de recibir la función callback, puedes usar GetClanActivityCounts para obtener los recuentos de usuarios actualizados.

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

EnumerateFollowingList

SteamAPICall_t EnumerateFollowingList( uint32 unStartIndex );
NombreTipoDescripción
unStartIndexuint32Índice desde el que empezar a recibir seguidores. Debería ser 0 en la llamada inicial.

Obtiene la lista de usuarios a los que sigue el usuario actual.

Es posible seguir a usuarios que no son tus amigos. Seguir a un usuario permite recibir actualizaciones cuando la persona realiza actividades como publicar nuevo contenido en Steam Workshop.

NOTA: Esto devuelve hasta k_cEnumerateFollowersMax usuarios a la vez. Si el usuario actual está siguiendo a más, tendrás que llamar a esta función varias veces, estableciendo unStartIndex en el número total de seguidores que has recibido hasta ahora.
Es decir, si has recibido 50 seguidores y el usuario está siguiendo a 105, tendrás que volver a llamar con unStartIndex = 50 para obtener los próximos 50, y luego nuevamente con unStartIndex = 100 para obtener los 5 usuarios restantes.

Devuelve: SteamAPICall_t para que se use con el resultado de la llamada a FriendsEnumerateFollowingList_t.


Ejemplo:
class CEnumerateFollowingListExample { public: void GetWhoWeFollow(); private: void OnFriendsEnumerateFollowingList( FriendsEnumerateFollowingList_t *pCallback, bool bIOFailure ); CCallResult< CEnumerateFollowingListExample, FriendsEnumerateFollowingList_t > m_SteamCallResultFriendsEnumerateFollowingList; int m_nFollowersParsed; }; void CEnumerateFollowingListExample::GetWhoWeFollow() { m_nFollowersParsed = 0; printf( "Obteniendo la lista de usuarios que seguimos.\n" ); SteamAPICall_t handle = SteamFriends()->EnumerateFollowingList( 0 ); m_SteamCallResultFriendsEnumerateFollowingList.Set( handle, this, &CEnumerateFollowingListExample::OnFriendsEnumerateFollowingList ); } void CEnumerateFollowingListExample::OnFriendsEnumerateFollowingList( FriendsEnumerateFollowingList_t *pCallback, bool bIOFailure ) { if ( pCallback->m_eResult != k_EResultOK || bIOFailure ) { printf( "OnFriendsEnumerateFollowingList ha fallado con m_eResult: %d y bIOFailure: %d!", pCallback->m_eResult, bIOFailure ); return; } printf( "FriendsEnumerateFollowingList obtuvo %d de %d de la gente que seguimos.\n", pCallback->m_nResultsReturned, pCallback->m_nTotalResultCount ); for ( int i = 0; i < pCallback->m_nResultsReturned; ++i ) { printf( " %d: %lld\n", i, pCallback->m_rgSteamID[i].ConvertToUint64() ); } [/i] m_nFollowersParsed += pCallback->m_nResultsReturned; // ¡Hay más seguidores! ¡Obtiene la siguiente tanda! if ( m_nFollowersParsed < pCallback->m_nTotalResultCount ) { SteamAPICall_t handle = SteamFriends()->EnumerateFollowingList( pCallback->m_nResultsReturned ); m_SteamCallResultFriendsEnumerateFollowingList.Set( handle, this, &CEnumerateFollowingListExample::OnFriendsEnumerateFollowingList ); } }

GetChatMemberByIndex

CSteamID GetChatMemberByIndex( CSteamID steamIDClan, int iUser );
NombreTipoDescripción
steamIDClanCSteamID¡DEBE ser el mismo origen utilizado en la llamada anterior a GetClanChatMemberCount!
iUserintUn índice entre 0 y GetClanChatMemberCount.

Obtiene el id. de Steam del usuario en el índice dado en un chat de grupo de Steam.

NOTA: Debes llamar a GetClanChatMemberCount antes de llamar a esta función.

Devuelve: CSteamID
Los índices no válidos devuelven k_steamIDNil.

GetClanActivityCounts

bool GetClanActivityCounts( CSteamID steamIDClan, int *pnOnline, int *pnInGame, int *pnChatting );
NombreTipoDescripción
steamIDClanCSteamIDGrupo de Steam cuya actividad se desea obtener.
pnOnlineint *Devuelve el número de miembros que están conectados.
pnInGameint *Devuelve el número de miembros que están en juegos (excluyendo aquellos con el estado desconectado).
pnChattingint *Devuelve el número de miembros en la sala de chat de grupo.

Obtiene la información más reciente de la que disponemos sobre lo que están haciendo los usuarios de un grupo de Steam.

Esta función solo obtiene datos conocidos por el cliente local. Para actualizar los datos u obtener datos de un grupo distinto del que es miembro el usuario actual, debes llamar a DownloadClanActivityCounts.

Devuelve: bool
true si los datos se obtienen correctamente.
false si el id. de Steam proporcionado no es válido o el cliente local no tiene información sobre el grupo de Steam y establece todos los demás parámetros en 0.

GetClanByIndex

CSteamID GetClanByIndex( int iClan );
NombreTipoDescripción
iClanintUn índice entre 0 y GetClanCount.

Obtiene el id. de Steam del grupo en el índice dado.

NOTA: Debes llamar a GetClanCount antes de llamar a esta función.

Devuelve: CSteamID
Los índices no válidos devuelven k_steamIDNil.

GetClanChatMemberCount

int GetClanChatMemberCount( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClanCSteamIDGrupo de Steam cuyo recuento de chat se desea obtener.

Obtiene el número de usuarios en un chat de grupo de Steam.

NOTA: Los grupos de Steam grandes no pueden ser iterados por el usuario local.

NOTA: El usuario actual debe estar en la sala de espera para recuperar los id. de Steam de los demás usuarios en esa sala.

Se usa para iterar; tras realizarse la llamada, se puede utilizar GetChatMemberByIndex para obtener el id. de Steam de todas las personas en el chat.

Devuelve: int
0 si el id. de Steam especificado no es válido o si el usuario local no tiene disponibles los datos.

GetClanChatMessage

int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, CSteamID *psteamidChatter );
NombreTipoDescripción
steamIDClanChatCSteamIDId. de Steam de la sala de chat de grupo de Steam.
iMessageintEl índice del mensaje. Este debe ser el campo m_iMessageID de GameConnectedClanChatMsg_t.
prgchTextvoid *Búfer en el que se copiará el mensaje de chat. (Debe ser lo bastante grande para albergar 2048 caracteres UTF-8. Por tanto, 8192 bytes + 1 para '\0')
cchTextMaxintEl tamaño de prgchText.
peChatEntryTypeEChatEntryType *Devuelve el tipo de entrada de chat que se ha recibido.
psteamidChatterCSteamID *Devuelve el id. de Steam del usuario que ha enviado el mensaje.

Obtiene los datos de un mensaje de sala de chat de grupo de Steam.

Esta función solo se debe llamar como respuesta a la función callback GameConnectedClanChatMsg_t.

Devuelve: int
El número de bytes copiados en prgchText.
Devuelve 0 y establece peChatEntryType en k_EChatEntryTypeInvalid si el usuario actual no está en la sala de chat de grupo de Steam especificada o si el índice proporcionado en iMessage no es válido.

GetClanCount

int GetClanCount();
Obtiene el número de grupos de Steam a los que pertenece el usuario actual.

Se usa para iterar. Una vez llamada, se puede usar GetClanByIndex para obtener el id. de Steam de cada grupo de Steam.

Devuelve: int
La cantidad de grupos de Steam de los que el usuario es miembro.

Ejemplo:
void ListSteamGroups() { int nGroups = SteamFriends()->GetClanCount(); printf( "Listado %d grupos de Steam\n", nGroups ); for ( int i = 0; i < nGroups; ++i ) { CSteamID groupSteamID = SteamFriends()->GetClanByIndex( i ); const char *szGroupName = SteamFriends()->GetClanName( groupSteamID ); const char *szGroupTag = SteamFriends()->GetClanTag( groupSteamID ); int nOnline, nInGame, nChatting; bool success = SteamFriends()->GetClanActivityCounts( groupSteamID, &nOnline, &nInGame, &nChatting ); printf( "Grupo %d - Id.: %lld - Nombre: '%s' - Etiqueta: '%s'\n", i, groupSteamID.ConvertToUint64(), szGroupName, szGroupTag ); printf( " - Conectados: %d, Jugando: %d, En el chat: %d\n", nOnline, nInGame, nChatting ); } }

GetClanName

const char * GetClanName( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClanCSteamIDGrupo de Steam cuyo nombre se desea obtener.

Proporciona el nombre de pantalla del grupo de Steam especificado, si el cliente local lo conoce.

Devuelve: const char *
El nombre del grupo de Steam en formato UTF-8. Devuelve una cadena vacía ("") si el id. de Steam no es válido o si el usuario no tiene información sobre el grupo.

Véase también: DownloadClanActivityCounts

GetClanOfficerByIndex

CSteamID GetClanOfficerByIndex( CSteamID steamIDClan, int iOfficer );
NombreTipoDescripción
steamIDClanCSteamID¡Este debe ser el mismo grupo de Steam utilizado en la llamada anterior a GetClanOfficerCount!
iOfficerintUn índice entre 0 y GetClanOfficerCount.

Obtiene el id. de Steam del oficial en el índice dado en un grupo de Steam.

NOTA: Debes llamar a GetClanOfficerCount antes de llamar a esto.

Devuelve: CSteamID
k_steamIDNil si steamIDClan o iOfficer son no válidos.

GetClanOfficerCount

int GetClanOfficerCount( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClanCSteamIDEl grupo de Steam para obtener el recuento de oficiales.

Obtiene el número de oficiales (administradores y moderadores) en un grupo de Steam especificado.

También se incluye al propietario del grupo de Steam.

Esto se usa para iterar. Una vez llamada, se puede usar GetClanOfficerByIndex para obtener el id. de Steam de cada oficial.

NOTA: ¡Debes llamar a RequestClanOfficerList antes de esto para obtener los datos requeridos!

Devuelve: int
El número de oficiales en el grupo de Steam. Devuelve 0 si steamIDClan no es válido o si RequestClanOfficerList no se ha llamado antes.

GetClanOwner

CSteamID GetClanOwner( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClanCSteamIDId. de Steam del grupo de Steam cuyo propietario se desea obtener.

Obtiene el propietario de un grupo de Steam.

NOTA: ¡Debes llamar a RequestClanOfficerList antes de esto para obtener los datos requeridos!

Devuelve: CSteamID
Devuelve k_steamIDNil si steamIDClan no es válido o si RequestClanOfficerList no se ha llamado antes.

GetClanTag

const char * GetClanTag( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClanCSteamIDGrupo de Steam cuya etiqueta se desea obtener.

Obtiene la etiqueta única (abreviatura) del grupo de Steam especificado, si el cliente local la conoce.

La abreviatura del grupo de Steam es una identificación única, específica del grupo y tiene un máximo de 12 caracteres. En algunos juegos aparecerá junto al nombre de los miembros del grupo.

Devuelve: const char *
La etiqueta de los grupos de Steam en formato UTF-8. Devuelve una cadena vacía ("") si el id. de Steam no es válido o si el usuario no tiene información sobre el grupo.

Véase también: DownloadClanActivityCounts

GetCoplayFriend

CSteamID GetCoplayFriend( int iCoplayFriend );
NombreTipoDescripción
iCoplayFriendintUn índice entre 0 y GetCoplayFriendCount.

Obtiene el id. de Steam del usuario con el que se ha jugado recientemente en el índice dado.

NOTA: Debes llamar a GetCoplayFriendCount antes de llamar a esta función.

Devuelve: CSteamID
Los índices no válidos devuelven k_steamIDNil.

GetCoplayFriendCount

int GetCoplayFriendCount();
Obtiene el número de jugadores con los que el usuario actual ha jugado recientemente en todos los juegos.

Esto se usa para iterar. Tras esta llamada, se puede llamar a GetCoplayFriend para obtener el id. de Steam de cada jugador.

Estos jugadores se establecieron con llamadas anteriores a SetPlayedWith.

Devuelve: int
La cantidad de usuarios con los que el usuario actual ha jugado recientemente.

Ejemplo:
void ListRecentlyPlayedWithList() { int nPlayers = SteamFriends()->GetCoplayFriendCount(); printf( "Listado %d jugadores con los que se ha jugado recientemente\n", nPlayers ); for ( int i = 0; i < nPlayers; ++i ) { CSteamID playerSteamID = SteamFriends()->GetCoplayFriend( i ); int iTimeStamp = SteamFriends()->GetFriendCoplayTime( playerSteamID ); AppId_t app = SteamFriends()->GetFriendCoplayGame( playerSteamID ); printf( "Jugador %d - Id.: %lld - Duración: %d - Aplicación: %d\n", i, playerSteamID.ConvertToUint64(), iTimeStamp, app ); } }

GetFollowerCount

SteamAPICall_t GetFollowerCount( CSteamID steamID );
NombreTipoDescripción
steamIDCSteamIDUsuario del que se desea obtener el número de seguidores.

Obtiene el número de usuarios que siguen al usuario especificado.

Devuelve: SteamAPICall_t para usarse con el resultado de la llamada a FriendsGetFollowerCount_t.


Ejemplo:
class GetFollowerCountExample { public: void GetFollowerCount(); private: void OnFriendsGetFollowerCount( FriendsGetFollowerCount_t *pCallback, bool bIOFailure ); CCallResult< GetFollowerCountExample, FriendsGetFollowerCount_t > m_SteamCallResultFriendsGetFollowerCount; }; void GetFollowerCountExample::GetFollowerCount() { printf( "Obteniendo el número de usuarios que nos siguen.\n" ); SteamAPICall_t handle = SteamFriends()->GetFollowerCount( SteamUser()->GetSteamID() ); m_SteamCallResultFriendsGetFollowerCount.Set( handle, this, &GetFollowerCountExample::OnFriendsGetFollowerCount ); } void GetFollowerCountExample::OnFriendsGetFollowerCount( FriendsGetFollowerCount_t *pCallback, bool bIOFailure ) { if ( pCallback->m_eResult != k_EResultOK || bIOFailure ) { printf( "OnFriendsGetFollowerCount failed for %lld with m_eResult: %d and bIOFailure: %d!", pCallback->m_steamID.ConvertToUint64(), pCallback->m_eResult, bIOFailure ); return; } printf( "Got a FriendsGetFollowerCount_t, we have %d followers.\n", pCallback->m_nCount ); }

GetFriendByIndex

CSteamID GetFriendByIndex( int iFriend, int iFriendFlags );
NombreTipoDescripción
iFriendintUn índice entre 0 y GetFriendCount.
iFriendFlagsintUna unión combinada («or» binario) de EFriendFlags. ¡Este debe ser el mismo grupo de Steam utilizado en la llamada anterior a GetFriendCount!

Obtiene el id. de Steam del usuario en el índice dado.

NOTA: Debes llamar a GetFriendCount antes de llamar a esto.

Devuelve: CSteamID
Los índices no válidos devuelven k_steamIDNil.

GetFriendCoplayGame

AppId_t GetFriendCoplayGame( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del usuario de la lista de compañeros de juego recientes para obtener el juego al que se ha jugado.

Obtiene el id. de aplicación del juego al que ha jugado el usuario con alguien de la lista de compañeros de juego recientes.

Devuelve: AppId_t
Si los id. de Steam no están en la lista de compañeros de juego recientes, devuelve k_uAppIdInvalid.

GetFriendCoplayTime

int GetFriendCoplayTime( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del usuario de la lista de compañeros de juego recientes para obtener la marca de tiempo.

Obtiene la marca de tiempo del momento en el que jugó el usuario con alguien de la lista de compañeros de juego recientes.

Devuelve: int
La hora se proporciona en formato de tiempo Unix (segundos transcurridos desde el 1 de enero de 1970).
Si los id. de Steam no están en la lista de compañeros de juego recientes, devuelve 0.

GetFriendCount

int GetFriendCount( int iFriendFlags );
NombreTipoDescripción
iFriendFlagsintUna unión combinada («or» binario) de uno o más EFriendFlags.

Obtiene el número de usuarios, dentro de los que conoce el cliente, que cumplen unos criterios especificados: amigos, bloqueados, usuarios en el mismo servidor, etc.

Esto se puede usar para iterar sobre todos los usuarios llamando a GetFriendByIndex para obtener los id. de Steam de cada usuario.

Devuelve: int
El número de usuarios que cumplen los criterios especificados.

NOTA: Devuelve -1 si el usuario actual no ha iniciado sesión.

Ejemplo:
int nFriends = SteamFriends()->GetFriendCount( k_EFriendFlagImmediate ); if ( nFriends == -1) { printf( "GetFriendCount ha devuelto -1, este usuario no ha iniciado sesión.\n" ); // Siempre recomendamos restablecer a 0 en caso de que tengas que hacer algo como asignar // un vector con este valor o recorrerlo de una manera que no tenga en cuenta el -1. nFriends = 0; } for ( int i = 0; i < nFriends; ++i ) { CSteamID friendSteamID = SteamFriends()->GetFriendByIndex( i, k_EFriendFlagImmediate ); const char *friendName = SteamFriends()->GetFriendPersonaName( friendSteamID ); printf( "Amigo %d: %lld - %s\n", i, friendSteamID.ConvertToUint64(), friendName ); }

GetFriendCountFromSource

int GetFriendCountFromSource( CSteamID steamIDSource );
NombreTipoDescripción
steamIDSourceCSteamIDSala de espera, sala de chat o grupo de Steam de los que se desea obtener el número de usuarios.

Obtiene el número de usuarios en un origen (servidor de juego, sala de espera, sala de chat o grupo de Steam).

NOTA: Los grupos de Steam grandes no pueden ser iterados por el usuario local.

NOTA: Si lo que quieres es obtener el número de miembros de la sala de espera, deberías usar la función ISteamMatchmaking::GetNumLobbyMembers en su lugar.

Esto se usa para la iteración, después de llamar a esta, entonces GetFriendFromSourceByIndex puede usarse para obtener el id. de Steam de cada persona en el origen.

Devuelve: int
0 si el id. de Steam especificado no es válido o si el usuario local no tiene disponibles los datos.

GetFriendFromSourceByIndex

CSteamID GetFriendFromSourceByIndex( CSteamID steamIDSource, int iFriend );
NombreTipoDescripción
steamIDSourceCSteamID¡DEBE ser el mismo origen utilizado en la llamada anterior a GetFriendCountFromSource!
iFriendintUn índice entre 0 y GetFriendCountFromSource.

Obtiene el id. de Steam en el índice dado en un origen (servidor de juego, sala de espera, sala de chat o grupo de Steam).

NOTA: Debes llamar a GetFriendCountFromSource antes de llamar a esto.

Devuelve: CSteamID
Los índices no válidos devuelven k_steamIDNil.

GetFriendGamePlayed

bool GetFriendGamePlayed( CSteamID steamIDFriend, FriendGameInfo_t *pFriendGameInfo );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del otro usuario.
pFriendGameInfoFriendGameInfo_t *Completa los detalles si el usuario está en un juego.

Comprueba si el amigo especificado está en un juego, en cuyo caso obtiene información sobre el juego.

Devuelve: bool
true si el usuario es un amigo y está en un juego; de lo contrario, false.

GetFriendMessage

int GetFriendMessage( CSteamID steamIDFriend, int iMessageID, void *pvData, int cubData, EChatEntryType *peChatEntryType );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del amigo que ha enviado este mensaje.
iMessageIDintEl índice del mensaje. Este debe ser el campo m_iMessageID de GameConnectedFriendChatMsg_t.
pvDatavoid *Búfer en el que se copiará el mensaje de chat.
cubDataintEl tamaño de pvData.
peChatEntryTypeEChatEntryType *Devuelve el tipo de entrada de chat que se ha recibido.

Obtiene los datos de un mensaje de un amigo de Steam.

Esto solo debería llamarse en respuesta a la función callback GameConnectedFriendChatMsg_t.

Devuelve: int
El número de bytes copiados en pvData.
Devuelve 0 y establece peChatEntryType en k_EChatEntryTypeInvalid si el usuario actual está restringido en el chat, si el id. de Steam proporcionado no es un amigo o si el índice proporcionado en iMessageID no es válido.

GetFriendPersonaName

const char * GetFriendPersonaName( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del otro usuario.

Obtiene el nombre de perfil (mostrado) del usuario especificado.

El usuario actual solo lo verá si el otro está en su lista de amigos, en el mismo servidor de juego, en una sala de espera o de chat, o en un grupo de Steam pequeño con el usuario local.

NOTA: Al entrar por primera vez en un servidor de juego, en una sala de espera o en una sala de chat, el usuario actual no pasará a conocer de manera automática los nombres de los demás, sino que recibirá esta información de manera asíncrona a través de las funciones callback de PersonaStateChange_t.

Para obtener el nombre de perfil del usuario actual usa GetPersonaName.

Devuelve: const char *
El nombre de perfil del usuario actual en formato UTF-8. Garantizado para no ser NULL.

Devuelve una cadena vacía ("") o "[unknown]" si el id. de Steam no es válido o no lo conoce el que llama.

GetFriendPersonaNameHistory

const char * GetFriendPersonaNameHistory( CSteamID steamIDFriend, int iPersonaName );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del otro usuario.
iPersonaNameintÍndice del historial que se quiere recibir. 0 es su nombre de perfil actual, 1 es el más reciente antes de haberlo cambiado, etc.

Obtiene uno de los nombres mostrados anteriores del usuario especificado.

Solo funciona con nombres mostrados que el usuario actual ha visto en su equipo local.

Devuelve: const char *
El nombre de perfil antiguo del jugador en el índice dado. Devuelve una cadena vacía cuando no hay más elementos en el historial.

GetFriendPersonaState

EPersonaState GetFriendPersonaState( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del otro usuario.

Obtiene el estado actual del usuario especificado.

El usuario actual solo lo verá si el otro está en su lista de amigos, en el mismo servidor de juego, en una sala de espera o de chat, o en un grupo de Steam pequeño con el usuario local.

Para obtener el estado del usuario actual, usa GetPersonaState.

Devuelve: EPersonaState
El estado amigo del usuario especificado. (Conectado, Desconectado, Jugando, etc.).

GetFriendRelationship

EFriendRelationship GetFriendRelationship( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del otro usuario.

Obtiene una relación con un usuario especificado.

Devuelve: EFriendRelationship
Cómo se conocen los usuarios.

GetFriendRichPresence

const char * GetFriendRichPresence( CSteamID steamIDFriend, const char *pchKey );
NombreTipoDescripción
steamIDFriendCSteamIDEl amigo para el que se obtiene el valor de presencia enriquecida.
pchKeyconst char *La clave presencia enriquecida para solicitar.

Obtiene un valor de presencia enriquecida para un amigo especificado.

Devuelve: const char *
Devuelve una cadena vacía ("") si la clave especificada no está establecida.

Véase también: RequestFriendRichPresence, SetRichPresence

GetFriendRichPresenceKeyByIndex

const char * GetFriendRichPresenceKeyByIndex( CSteamID steamIDFriend, int iKey );
NombreTipoDescripción
steamIDFriendCSteamID¡Este debe ser el mismo usuario proporcionado a la llamada anterior a GetFriendRichPresenceKeyCount!
iKeyintUn índice entre 0 y GetFriendRichPresenceKeyCount.



Devuelve: const char *
Devuelve una cadena vacía ("") si el índice no es válido o el usuario especificado no tiene datos de Presencia enriquecida disponibles.

GetFriendRichPresenceKeyCount

int GetFriendRichPresenceKeyCount( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del usuario del que se obtiene el número de claves de Presencia enriquecida.

Obtiene el número de claves de Presencia enriquecida establecidas para el usuario especificado.

Se usa para iterar. Una vez llamada, se puede usar GetFriendRichPresenceKeyByIndex para obtener las claves de presencia enriquecida.

Lo normal es que se use solo con fines de depuración.

Devuelve: int
Devuelve 0 si no hay información de Presencia enriquecida para el usuario especificado.

GetFriendsGroupCount

int GetFriendsGroupCount();
Obtiene el número de grupos de amigos (etiquetas) que ha creado el usuario.

Se usa para iterar. Una vez llamada, se puede usar GetFriendsGroupIDByIndex para obtener el id. de cada grupo de amigos.

No se debe confundir con los grupos de Steam. Estos últimos se pueden obtener con GetClanCount.

Devuelve: int
El número de grupos de amigos que tiene el usuario actual.

Ejemplo:
void ListFriendsGroups() { int nGroups = SteamFriends()->GetFriendsGroupCount(); for ( int i = 0; i < nGroups; ++i ) { FriendsGroupID_t friendsGroupID = SteamFriends()->GetFriendsGroupIDByIndex( i ); const char *szFriendsGroupName = SteamFriends()->GetFriendsGroupName( friendsGroupID ); int nFriendsGroupMembers = SteamFriends()->GetFriendsGroupMembersCount( friendsGroupID ); printf( "Grupo %d - Id.: %d - Nombre: '%s' - Miembros: %d\n", i, friendsGroupID, szFriendsGroupName, nFriendsGroupMembers ); std::vector<CSteamID> friends( nFriendsGroupMembers ); SteamFriends()->GetFriendsGroupMembersList( friendsGroupID, friends.data(), nFriendsGroupMembers ); for ( int j = 0; j < nFriendsGroupMembers; ++j ) { printf( " - Miembro %d - Id.: %lld\n", j, friends[j].ConvertToUint64() ); } } }

GetFriendsGroupIDByIndex

FriendsGroupID_t GetFriendsGroupIDByIndex( int iFG );
NombreTipoDescripción
iFGintUn índice entre 0 y GetFriendsGroupCount.

Obtiene el id. del grupo de amigos en el índice dado.

NOTA: Debes llamar a GetFriendsGroupCount antes de llamar a esto.

Devuelve: FriendsGroupID_t
Los índices no válidos devuelven k_FriendsGroupID_Invalid.

GetFriendsGroupMembersCount

int GetFriendsGroupMembersCount( FriendsGroupID_t friendsGroupID );
NombreTipoDescripción
friendsGroupIDFriendsGroupID_tId. del grupo de amigos del que se quiere obtener el número de miembros.

Obtiene el número de miembros de un grupo de amigos determinado.

Debe llamarse antes de obtener la lista de amigos con GetFriendsGroupMembersList.

Devuelve: int
El número de amigos en el grupo de amigos especificado.

Véase también: GetFriendsGroupCount

GetFriendsGroupMembersList

void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, CSteamID *pOutSteamIDMembers, int nMembersCount );
NombreTipoDescripción
friendsGroupIDFriendsGroupID_tId. del grupo de amigos del que se obtiene la lista de miembros.
pOutSteamIDMembersCSteamID *Devuelve los id. de Steam de los amigos colocándolos en este vector.
nMembersCountintEsto debe coincidir con el número de elementos asignados pOutSteamIDMembers y el valor devuelto por GetFriendsGroupMembersCount.

Obtiene el número de miembros de un grupo de amigos determinado.

Si hay menos amigos de los solicitados, los id. de Steam de dichas posiciones no serán válidos.

¡Debes llamar a GetFriendsGroupMembersCount antes de llamar a esto para configurar el vector pOutSteamIDMembers con el tamaño adecuado!

Véase también: GetFriendsGroupCount

GetFriendsGroupName

const char * GetFriendsGroupName( FriendsGroupID_t friendsGroupID );
NombreTipoDescripción
friendsGroupIDFriendsGroupID_tId. del grupo de amigos del que se obtiene el nombre.

Obtiene el nombre del grupo de amigos indicado.

Devuelve: const char *
El nombre de los grupos de amigos en formato UTF-8. Devuelve NULL si el id. del grupo no es válido.

Véase también: GetFriendsGroupCount

GetFriendSteamLevel

int GetFriendSteamLevel( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del usuario.

Obtiene el nivel de Steam del usuario especificado.

Puedes usar el id. de Steam de los usuarios locales (ISteamUser::GetSteamID) para obtener su nivel.

Devuelve: int
El nivel de Steam si está disponible.

Si el nivel de Steam no está disponible de manera inmediata para el usuario especificado, devuelve 0 y pone en cola su descarga desde los servidores de Steam. Cuando se descargue, la función callback PersonaStateChange_t se enviará con m_nChangeFlags incluyendo k_EPersonaChangeSteamLevel.

GetLargeFriendAvatar

int GetLargeFriendAvatar( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamID

Obtiene el handle del avatar grande (128 × 128 px) para el usuario especificado.

Puedes pasarle ISteamUser::GetSteamID para obtener el avatar del usuario actual.

NOTA: Solo funciona con usuarios conocidos por el usuario local. Conocerá de manera automática a sus amigos, la gente que figure en las tablas de clasificación que haya solicitado o quienes estén en su mismo origen (servidor de juego, sala de espera, sala de chat o grupo de Steam). Si no saben sobre ellos, debes llamar a RequestUserInformation para guardar localmente el avatar en la caché.

Devuelve: int
Activa la función callback AvatarImageLoaded_t.
Un handle de imagen de Steam que se usa con ISteamUtils::GetImageSize y ISteamUtils::GetImageRGBA.
Devuelve 0 si el usuario no tiene avatar.
Devuelve -1 si los datos de la imagen del avatar aún no se han cargado y solicita que se descarguen. En este caso, espera a la función callback AvatarImageLoaded_t y luego vuelve a llamar.

Véase también: GetMediumFriendAvatar, GetSmallFriendAvatar

GetMediumFriendAvatar

int GetMediumFriendAvatar( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamID

Obtiene el handle del avatar mediano (64 × 64 px) del usuario especificado.

Puedes pasarle ISteamUser::GetSteamID para obtener el avatar del usuario actual.

NOTA: Solo funciona con usuarios conocidos por el usuario local. Conocerá de manera automática a sus amigos, la gente que figure en las tablas de clasificación que haya solicitado o quienes estén en su mismo origen (servidor de juego, sala de espera, sala de chat o grupo de Steam). Si no saben sobre ellos, debes llamar a RequestUserInformation para guardar localmente el avatar en la caché.

Devuelve: int
Un handle de imagen de Steam que se usa con ISteamUtils::GetImageSize y ISteamUtils::GetImageRGBA.
Devuelve 0 si el usuario no tiene avatar.

Véase también: GetLargeFriendAvatar, GetSmallFriendAvatar

GetPersonaName

const char * GetPersonaName();
Obtiene el nombre (mostrado) del usuario actual.

Este es el mismo nombre que aparece en la página del perfil de usuario en la comunidad.

Para obtener el nombre de perfil de otros usuarios, usa GetFriendPersonaName.

Devuelve: const char *
El nombre de perfil del usuario actual en formato UTF-8. El valor nunca va a ser NULL.

GetPersonaState

EPersonaState GetPersonaState();
Obtiene el estado de amigo del usuario actual.

Para obtener el estado de otros usuarios, utiliza GetFriendPersonaState.

Devuelve: EPersonaState
El estado de amigo del usuario actual. (Conectado, Desconectado, Jugando, etc.).

GetPlayerNickname

const char * GetPlayerNickname( CSteamID steamIDPlayer );
NombreTipoDescripción
steamIDPlayerCSteamIDId. de Steam del usuario.

Obtiene el alias que el usuario actual ha establecido para el usuario especificado.

Devuelve: const char *
NULL si no se le ha añadido un alias al usuario en cuestión.

GetSmallFriendAvatar

int GetSmallFriendAvatar( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamID

Obtiene el handle del avatar pequeño (32 × 32 px) del usuario especificado.

Puedes pasarle ISteamUser::GetSteamID para obtener el avatar del usuario actual.

NOTA: Solo funciona con usuarios conocidos por el usuario local. Conocerá de manera automática a sus amigos, la gente que figure en las tablas de clasificación que haya solicitado o quienes estén en su mismo origen (servidor de juego, sala de espera, sala de chat o grupo de Steam). Si no saben sobre ellos, debes llamar a RequestUserInformation para guardar localmente el avatar en la caché.

Devuelve: int
Un handle de imagen de Steam que se usa con ISteamUtils::GetImageSize y ISteamUtils::GetImageRGBA.
Devuelve 0 si el usuario no tiene avatar.

Véase también: GetLargeFriendAvatar, GetMediumFriendAvatar

GetUserRestrictions

uint32 GetUserRestrictions();
Comprueba si el usuario actual tiene restricciones de chat.

Si está restringido, no puede enviar ni recibir mensajes de chat de texto o de voz, no puede ver avatares personalizados.
Un usuario con chat restringido no puede agregar amigos ni unirse a ningún grupo.
Los usuarios restringidos aún pueden estar en línea y enviar/recibir invitaciones a juegos.

Devuelve: uint32
Ver: EUserRestriction

HasFriend

bool HasFriend( CSteamID steamIDFriend, int iFriendFlags );
NombreTipoDescripción
steamIDFriendCSteamIDEl usuario de Steam cuyo estado de amigo se desea comprobar.
iFriendFlagsintUna unión combinada («or» binario) de uno o más EFriendFlags.

Comprueba si el usuario cumple los criterios especificados: amigos, bloqueados, usuarios en el mismo servidor, etc.

Devuelve: bool
true si el usuario especificado cumple con alguno de los criterios especificados en iFriendFlags; de lo contrario, false.

InviteUserToGame

bool InviteUserToGame( CSteamID steamIDFriend, const char *pchConnectString );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del amigo al que se va a invitar.
pchConnectStringconst char *Cadena que le indica al amigo cómo unirse a la partida (es decir, la dirección IP del servidor de juego). Esto no puede ser más largo que el especificado en k_cchMaxRichPresenceValueLength.

Invita a un amigo o miembro del clan a unirse a la partida actual usando una cadena especial de invitación.

Si el usuario de destino acepta la invitación, el valor de pchConnectString se agrega a la línea de comandos al iniciar el juego.
Si el usuario ya está ejecutando ese juego, recibirá la función callback GameRichPresenceJoinRequested_t con la cadena de conexión.

Devuelve: bool
Activa la función callback GameRichPresenceJoinRequested_t.
true si la invitación se ha enviado.
false en las siguientes condiciones:
  • El id. de Steam proporcionado a steamIDFriend no era válido.
  • El id. de Steam proporcionado a steamIDFriend no es un amigo o no comparte el mismo Grupo de Steam que el usuario actual.
  • El valor proporcionado a pchConnectString fue demasiado largo.

Véase también: ISteamMatchmaking::InviteUserToLobby

IsClanChatAdmin

bool IsClanChatAdmin( CSteamID steamIDClanChat, CSteamID steamIDUser );
NombreTipoDescripción
steamIDClanChatCSteamIDId. de Steam de la sala de chat de grupo de Steam.
steamIDUserCSteamIDId. de Steam del usuario cuyo estado de administrador se va a comprobar.

Comprueba si un usuario de la sala de chat de grupo de Steam es un administrador.

Devuelve: bool
true si el usuario especificado es un administrador.
false si el usuario no es un administrador, si el usuario actual no se encuentra en la sala de chat especificada o si el usuario especificado no se encuentra en la sala de chat.

IsClanPublic

bool IsClanPublic( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClan CSteamIDId. de Steam del grupo de Steam.

Comprueba si el grupo de Steam es público.

Devuelve: bool
true si el grupo especificado es público.
false si el grupo especificado no es público.

IsClanOfficialGameGroup

bool IsClanOfficialGameGroup( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClan CSteamIDId. de Steam del grupo de Steam.

Comprueba si el grupo de Steam es un punto de encuentro o un grupo de juegos oficial.

Devuelve: bool
true si el grupo de Steam es un punto de encuentro o grupo de juegos oficial.
false si el grupo especificado no es un punto de encuentro o grupo de juegos oficial.

IsClanChatWindowOpenInSteam

bool IsClanChatWindowOpenInSteam( CSteamID steamIDClanChat );
NombreTipoDescripción
steamIDClanChatCSteamIDEl id. de Steam de la sala de chat del grupo de Steam para verificar.

Comprueba si la sala de chat de grupo está abierta en la IU de Steam.

Devuelve: bool
true si la sala de chat del grupo Steam especificada está abierta; de lo contrario, false.
Esto también devuelve false si se desconoce la sala de chat especificada del grupo Steam.

Véase también: OpenClanChatWindowInSteam, CloseClanChatWindowInSteam

IsFollowing

SteamAPICall_t IsFollowing( CSteamID steamID );
NombreTipoDescripción
steamIDCSteamIDId. de Steam para comprobar si se está siguiendo.

Comprueba si el usuario actual está siguiendo al usuario especificado.

Devuelve: SteamAPICall_t para usar con el resultado que obtenemos al llamar a FriendsIsFollowing_t.


Ejemplo:
class CIsFollowingExample { public: CIsFollowingExample(); void CheckWhichFriendsWeAreFollowing(); private: void OnFriendsIsFollowing( FriendsIsFollowing_t *pCallback, bool bIOFailure ); CCallResult< CIsFollowingExample, FriendsIsFollowing_t > m_SteamCallResultFriendsIsFollowing; int m_nFriends; int m_iFriendIndex; }; CIsFollowingExample::CIsFollowingExample() { m_nFriends = SteamFriends()->GetFriendCount( k_EFriendFlagImmediate ); if ( m_nFriends == -1 ) { printf( "GetFriendCount ha devuelto -1, el usuario actual no ha iniciado sesión.\n" ); m_nFriends = 0; } m_iFriendIndex = 0; } void CIsFollowingExample::CheckWhichFriendsWeAreFollowing() { if ( m_iFriendIndex < m_nFriends ) { CSteamID steamID = SteamFriends()->GetFriendByIndex( m_iFriendIndex, k_EFriendFlagImmediate ); printf( "Comprobando si seguimos: %lld (%d de %d).\n", steamID.ConvertToUint64(), m_iFriendIndex, m_nFriends ); SteamAPICall_t handle = SteamFriends()->IsFollowing( steamID ); m_SteamCallResultFriendsIsFollowing.Set( handle, this, &CIsFollowingExample::OnFriendsIsFollowing ); } } void CIsFollowingExample::OnFriendsIsFollowing( FriendsIsFollowing_t *pCallback, bool bIOFailure ) { if ( pCallback->m_eResult != k_EResultOK || bIOFailure ) { printf( "OnFriendsIsFollowing ha fallado en %lld con m_eResult: %d and bIOFailure: %d!\n", pCallback->m_steamID.ConvertToUint64(), pCallback->m_eResult, bIOFailure ); return; } if ( pCallback->m_bIsFollowing ) printf( "Seguimos a %lld\n", pCallback->m_steamID.ConvertToUint64() ); // Recursivamente revisa toda nuestra lista de amigos. m_iFriendIndex++; CheckWhichFriendsWeAreFollowing(); }

IsUserInSource

bool IsUserInSource( CSteamID steamIDUser, CSteamID steamIDSource );
NombreTipoDescripción
steamIDUserCSteamIDUsuario para el que se comprobará si está en el origen.
steamIDSourceCSteamIDOrigen en el que se buscará el usuario.

Comprueba si el usuario especificado está en un origen (servidor de juego, sala de espera, sala de chat o grupo de Steam).

Devuelve: bool
true si el usuario local puede ver que steamIDUser es un miembro o se encuentra en steamIDSource; de lo contrario, false.

JoinClanChatRoom

SteamAPICall_t JoinClanChatRoom( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClanCSteamIDEl id. de Steam del grupo de Steam al que se quiere unir.

Permite al usuario unirse a chats de grupo (clanes) de Steam directamente desde el juego.

El comportamiento es algo complicado, porque no se sabe si el usuario ha entrado ya en el chat de grupo desde fuera del juego o en la interfaz.

Puedes usar ActivateGameOverlayToUser para abrir la versión de interfaz superpuesta del chat en el juego.

Si te has unido a un chat de grupo de Steam, estas son las funciones callback que pueden activarse:

Devuelve: SteamAPICall_t para usar con el resultado de la llamada a JoinClanChatRoomCompletionResult_t.
Activa la función callback GameConnectedChatJoin_t.
Activa la función callback GameConnectedClanChatMsg_t.


Véase también: LeaveClanChatRoom, GetClanChatMemberCount, GetChatMemberByIndex, SendClanChatMessage, GetClanChatMessage, IsClanChatAdmin, IsClanChatWindowOpenInSteam

LeaveClanChatRoom

bool LeaveClanChatRoom( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClanCSteamIDId. de Steam de la sala de chat de grupo que se va a abandonar.

Abandona un chat de grupo de Steam al que el usuario ha entrado anteriormente con JoinClanChatRoom.

Devuelve: bool
Activa la función callback GameConnectedChatLeave_t.
true si el usuario está en la sala de chat especificada, de lo contrario, false.

OpenClanChatWindowInSteam

bool OpenClanChatWindowInSteam( CSteamID steamIDClanChat );
NombreTipoDescripción
steamIDClanChatCSteamIDId. de Steam de la sala de chat de grupo de Steam que se va a abrir.

Abre la sala de chat de grupo de Steam especificada en la IU de Steam.

Devuelve: bool
true si el usuario entró en la sala de chat de grupo de Steam.
false en cualquiera de las situaciones siguientes:
  • La sala de chat de grupo de Steam no existe o el usuario no tiene acceso para unirse.
  • El usuario actual tiene limitadas las solicitudes.
  • El usuario actual tiene restricciones de chat.

Véase también: IsClanChatWindowOpenInSteam, CloseClanChatWindowInSteam

ReplyToFriendMessage

bool ReplyToFriendMessage( CSteamID steamIDFriend, const char *pchMsgToSend );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del amigo al que se va a enviar el mensaje.
pchMsgToSendconst char *El mensaje para enviar, con formato UTF-8.

Envía un mensaje a un amigo de Steam.

Devuelve: bool
true si el mensaje se ha enviado correctamente.
false si el usuario actual tiene limitadas las solicitudes o tiene restricciones de chat.

RequestClanOfficerList

SteamAPICall_t RequestClanOfficerList( CSteamID steamIDClan );
NombreTipoDescripción
steamIDClanCSteamIDGrupo de Steam cuya lista de oficiales se desea obtener.

Solicita información sobre los oficiales de un grupo de Steam (administradores y moderadores).

NOTA: Solo se puede solicitar de grupos de Steam a los que pertenezca el usuario.
NOTA: Los avatares de los oficiales no se descargan automáticamente. Si no hay una imagen de avatar disponible para un oficial, llama a RequestUserInformation para descargar el avatar.

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


Véase también: GetClanOwner, GetClanOfficerCount, GetClanOfficerByIndex

Ejemplo:
class CClanOfficerListExample { public: void RequestOfficerList(); private: void OnClanOfficerListResponse( ClanOfficerListResponse_t *pCallback, bool bIOFailure ); CCallResult< CClanOfficerListExample, ClanOfficerListResponse_t > m_SteamCallResultClanOfficerListResponse; }; void CClanOfficerListExample::RequestOfficerList() { printf( "Solicitud de la lista de oficiales de grupo\n" ); const CSteamID SteamworksDevGroup = 103582791433474333ull; SteamAPICall_t handle = SteamFriends()->RequestClanOfficerList( SteamworksDevGroup ); m_SteamCallResultClanOfficerListResponse.Set( handle, this, &CClanOfficerListExample::OnClanOfficerListResponse ); } void CClanOfficerListExample::OnClanOfficerListResponse( ClanOfficerListResponse_t *pCallback, bool bIOFailure ) { if ( !pCallback->m_bSuccess || bIOFailure ) { printf( "ClanOfficerListResponse failed for %lld!", pCallback->m_steamIDClan.ConvertToUint64() ); return; } printf( "Se obtuvo ClanOfficerListResponse para: %s (%lld)\n", SteamFriends()->GetClanName( pCallback->m_steamIDClan ), pCallback->m_steamIDClan.ConvertToUint64() ); CSteamID ownerSteamID = SteamFriends()->GetClanOwner(pCallback->m_steamIDClan); printf( " El propietario del grupo es: %s (%lld) y hay %d oficiales.\n", SteamFriends()->GetFriendPersonaName( ownerSteamID ), ownerSteamID.ConvertToUint64(), pCallback->m_cOfficers ); int nOfficers = SteamFriends()->GetClanOfficerCount( pCallback->m_steamIDClan ); printf( " GetClanOfficerCount informes: %d", nOfficers ); for ( int i = 0; i < nOfficers; ++i ) { CSteamID officerSteamID = SteamFriends()->GetClanOfficerByIndex( pCallback->m_steamIDClan, i ); printf( " Oficiales %d: %s (%lld)\n", i, SteamFriends()->GetFriendPersonaName(officerSteamID), officerSteamID.ConvertToUint64() ); } }

RequestFriendRichPresence

void RequestFriendRichPresence( CSteamID steamIDFriend );
NombreTipoDescripción
steamIDFriendCSteamIDId. de Steam del usuario cuyos datos de presencia enriquecida se van a solicitar.

Solicita datos de presencia enriquecida de un usuario determinado.

Sirve para obtener información de presencia enriquecida de un usuario que no es amigo del usuario actual, como alguien que está en la misma sala de espera o servidor de juego.

Esta función tiene una limitación de solicitudes: si se la llama demasiadas veces para un usuario concreto, recibirá el resultado de la función callback inmediatamente sin haber solicitado nuevos datos del servidor.

Devuelve: void
Activa la función callback FriendRichPresenceUpdate_t.


Véase también: GetFriendRichPresence, SetRichPresence

RequestUserInformation

bool RequestUserInformation( CSteamID steamIDUser, bool bRequireNameOnly );
NombreTipoDescripción
steamIDUserCSteamIDUsuario cuya información se solicita.
bRequireNameOnlybool¿Obtener solo el nombre de perfil (true)? ¿O el nombre y el avatar (false)?

Solicita el nombre de perfil y, opcionalmente, el avatar del usuario especificado.

NOTA: Descargar avatares es mucho más lento y satura el caché local; si no son necesarios, es mejor no solicitar los avatares.

Devuelve: bool
Activa la función callback PersonaStateChange_t.
true significa que los datos han sido solicitados y, una vez recibidos, se activará la función callback PersonaStateChange_t.
false significa que ya se tienen todos los datos de ese usuario y se pueden usar inmediatamente las funciones que requieren esta información.

SendClanChatMessage

bool SendClanChatMessage( CSteamID steamIDClanChat, const char *pchText );
NombreTipoDescripción
steamIDClanChatCSteamIDId. de Steam del chat de grupo al que se va a enviar el mensaje.
pchTextconst char *El mensaje para enviar, con formato UTF-8. Puede contener hasta 2048 caracteres.

Envía un mensaje a una sala de chat de grupo de Steam.

Devuelve: bool
true si el mensaje se ha enviado correctamente.
false en cualquiera de las situaciones siguientes:
  • El usuario actual no está en la sala de chat de grupo de Steam especificada.
  • El usuario actual no está conectado a Steam.
  • El usuario actual tiene limitadas las solicitudes.
  • El usuario actual tiene restricciones de chat.
  • El mensaje en pchText supera los 2048 caracteres.

SetInGameVoiceSpeaking

void SetInGameVoiceSpeaking( CSteamID steamIDUser, bool bSpeaking );
NombreTipoDescripción
steamIDUserCSteamIDSin usar.
bSpeakingbool¿El usuario comenzó a hablar en el juego (true) o dejó de hablar en el juego (false)?

Informa a Steam de que el usuario está usando el chat de voz del juego.

De esta manera se anulará el micrófono para todas las comunicaciones de voz de la IU de Steam.

SetListenForFriendsMessages

bool SetListenForFriendsMessages( bool bInterceptEnabled );
NombreTipoDescripción
bInterceptEnabledbool¿Activar la intercepción de mensajes de amigos (true) o desactivar (false)?

Escucha a ver si hay mensajes entrantes de chat de amigos de Steam.

De esta manera es posible mostrarlos insertados en el juego. Por ejemplo, el sistema de chat en Dota 2.

Después de habilitar esto, recibirás funciones callback GameConnectedFriendChatMsg_t cuando el usuario reciba un mensaje de chat. Puedes obtener los datos del mensaje de esta función callback con GetFriendMessage. Puedes enviar mensajes con ReplyToFriendMessage.

Devuelve: bool
Activa la función callback GameConnectedFriendChatMsg_t.
Siempre devuelve true.

SetPersonaName

SteamAPICall_t SetPersonaName( const char *pchPersonaName );
NombreTipoDescripción
pchPersonaNameconst char *El nuevo nombre de perfil del usuario. No puede ser más largo que k_cchPersonaNameMax bytes.

Establece el nombre de perfil del usuario actual, lo almacena en el servidor y comunica los cambios a todos los amigos que estén en línea.

Los cambios se realizan localmente de inmediato, y se envía la función callback PersonaStateChange_t, asumiendo que se realizaron con éxito.

Si no tiene lugar el cambio de nombre en el servidor, se envía otra vez la función callback PersonaStateChange_t para volver a cambiar el nombre, además del resultado final que se mostrará en el resultado de la llamada.

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

SetPlayedWith

void SetPlayedWith( CSteamID steamIDUserPlayedWith );
NombreTipoDescripción
steamIDUserPlayedWithCSteamIDEl otro usuario con el que hemos jugado.

Marca al usuario de destino como alguien con quien se ha jugado.

NOTA: El usuario actual debe estar en el juego junto con el otro jugador para que se establezca la asociación.

Puedes ver los jugadores con los que has jugado recientemente aquí en la comunidad de Steam y en la Interfaz de Steam.

SetRichPresence

bool SetRichPresence( const char *pchKey, const char *pchValue );
NombreTipoDescripción
pchKeyconst char *La «clave» de la presencia enriquecida que se va a establecer. Esto no puede ser más largo que lo especificado en k_cchMaxRichPresenceKeyLength.
pchValueconst char *El «valor» de presencia enriquecida que se asociará a pchKey. Esto no puede ser más largo que lo especificado en k_cchMaxRichPresenceValueLength.
Si se establece como cadena vacía ("") o NULL entonces la clave se elimina, de estar establecida.

Establece el par clave/valor para la presencia enriquecida del usuario actual y se comparte automáticamente con todos los amigos que están jugando al mismo juego.

Cada usuario puede tener hasta 20 claves establecidas según lo definido por k_cchMaxRichPresenceKeys.

Hay dos claves especiales utilizadas para ver/unirse a juegos:
  • "status": cadena en formato UTF-8 que se mostrará en el cuadro de diálogo «Ver información del juego» en la lista de amigos de Steam.
  • "connect": cadena UTF-8 que contiene la línea de comandos con la forma en que un amigo se puede conectar a una partida. Habilita el botón «Unirse a la partida» en el cuadro de diálogo «Ver información del juego», en el menú contextual de la lista de amigos de Steam y en el perfil del jugador de la comunidad de Steam. Asegúrate de que tu aplicación implementa ISteamApps::GetLaunchCommandLine para que puedas desactivar la ventana emergente de advertencia cuando se inicia a través de la línea de comandos.

Hay tres claves especiales adicionales utilizadas por el nuevo chat de Steam:
  • "steam_display": Nombre del token de localización de presencia enriquecida que se mostrará en el idioma seleccionado por el usuario en la interfaz de usuario del cliente de Steam. Consulta Localización de presencia enriquecida para obtener más información, incluido un enlace a una página para probar estos datos de presencia enriquecida. Si steam_display no está configurado con una etiqueta de localización válida, la presencia enriquecida no se mostrará en el cliente de Steam.
  • "steam_player_group": cuando se establece, indica al cliente de Steam que el jugador es miembro de un grupo en particular. Los jugadores del mismo grupo pueden organizarse juntos en varios lugares en la interfaz de usuario de Steam. Esta cadena podría identificar un grupo, un servidor o cualquier agrupación que sea relevante para tu juego. La cadena en sí no se muestra a los usuarios.
  • "steam_player_group_size": Cuando se establece, indica el número total de jugadores en steam_player_group. El cliente de Steam puede usar este número para mostrar información adicional sobre un grupo cuando ninguno de sus miembros forma parte de la lista de amigos de un usuario. (Por ejemplo, «Pedro, Antonio y 4 más»).



    Puedes borrar todas las claves para el usuario actual con ClearRichPresence.

    Para obtener claves de presencia enriquecida para los amigos, consulta: GetFriendRichPresence.

    Devuelve: bool
    true si presencia enriquecida se ha establecido correctamente.
    false En las siguientes condiciones:

    RequestEquippedProfileItems

    SteamAPICall_t RequestEquippedProfileItems( CSteamID steamID);
    NombreTipoDescripción
    steamIDCSteamIDEl usuario cuyos artículos equipados quieres solicitar.

    Solicita la lista de artículos del perfil de la comunidad de Steam equipados del usuario de Steam en cuestión.

    Devuelve: SteamAPICall_t para usarse con el resultado que obtenemos al llamar a EquippedProfileItems_t.

    BHasEquippedProfileItem

    bool BHasEquippedProfileItem( CSteamID steamID, ECommunityProfileItemType itemType);
    NombreTipoDescripción
    steamIDCSteamIDEl usuario cuyos artículos equipados ya habías solicitado.
    itemTypeECommunityProfileItemTypeTipo de artículo que deseas ver si está equipado o no.

    Después de llamar a RequestEquippedProfileItems, puedes utilizar esta función para comprobar si el usuario tiene el tipo de artículo de perfil equipado o no.

    Devuelve: bool
    true si el itemType está equipado para el usuario.
    false si el itemType no está equipado para el usuario.

    Véase también: RequestEquippedProfileItems, GetProfileItemPropertyString, GetProfileItemPropertyUint

    GetProfileItemPropertyString

    bool GetProfileItemPropertyString( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop);
    NombreTipoDescripción
    steamIDCSteamIDEl usuario cuyos artículos equipados ya habías solicitado.
    itemTypeECommunityProfileItemTypeTipo de artículo para el que se está recuperando la propiedad.
    propECommunityProfileItemPropertyLa propiedad de la cadena que quieres solicitar.

    Devuelve una propiedad de la cadena del artículo de perfil equipado del usuario.

    Devuelve: const char *

    Véase también: RequestEquippedProfileItems, GetProfileItemPropertyUint

    GetProfileItemPropertyUint

    bool GetProfileItemPropertyUint( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop);
    NombreTipoDescripción
    steamIDCSteamIDEl usuario cuyos artículos equipados ya habías solicitado.
    itemTypeECommunityProfileItemTypeTipo de artículo para el que se está recuperando la propiedad.
    propECommunityProfileItemPropertyLa propiedad de entero sin signo que deseas solicitar.

    Devuelve una propiedad de entero sin signo para el objeto de perfil equipado de un usuario.

    Devuelve: uint32

    Véase también: RequestEquippedProfileItems, GetProfileItemPropertyString

    Funciones callback

    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 ISteamFriends.

    AvatarImageLoaded_t

    Se llama cuando se carga un avatar grande, en caso de que se haya solicitado cuando no estaba disponible.

    NombreTipoDescripción
    m_steamIDCSteamIDId. de Steam para el que se ha cargado el avatar.
    m_iImageintHandle de la imagen de Steam que se ha cargado ahora.
    m_iWideintAncho de la imagen cargada.
    m_iTallintAltura de la imagen cargada.

    Funciones asociadas: GetLargeFriendAvatar

    ClanOfficerListResponse_t

    Marca la devolución de una llamada de solicitud de lista de oficiales.

    NombreTipoDescripción
    m_steamIDClanCSteamIDGrupo de Steam cuya lista de oficiales se acaba de obtener.
    m_cOfficersintNúmero de oficiales en el grupo. Esto es lo mismo que GetClanOfficerCount.
    m_bSuccessuint8¿La llamada se ha ejecutado correctamente? De lo contrario, esto puede indicar una pérdida temporal de conexión a Steam.
    Si esto devuelve true, no significa necesariamente que se haya descargado toda la información de este grupo de Steam.

    Funciones asociadas: RequestClanOfficerList

    DownloadClanActivityCountsResult_t

    Se llama cuando se ha recibido la actividad de un grupo de Steam.

    NombreTipoDescripción
    m_bSuccessbool¿La llamada se ha ejecutado correctamente?

    Funciones asociadas: DownloadClanActivityCounts

    FriendRichPresenceUpdate_t

    Se llama cuando los datos de presencia enriquecida de un usuario se han actualizado; esto puede ocurrir automáticamente, o bien cuando los amigos que están en el mismo juego actualizan su presencia enriquecida o bien después de una llamada a RequestFriendRichPresence.

    NombreTipoDescripción
    m_steamIDFriendCSteamIDId. de Steam del usuario cuya presencia enriquecida ha cambiado.
    m_nAppIDAppId_tId. de aplicación del juego. Debe ser siempre el juego actual.

    Funciones asociadas: RequestFriendRichPresence

    FriendsEnumerateFollowingList_t

    Devuelve el resultado de EnumerateFollowingList.

    NombreTipoDescripción
    m_eResultEResultResultado de la operación.
    m_rgSteamIDCSteamIDk_cEnumerateFollowersMaxLista de usuarios que seguimos.
    m_nResultsReturnedint32El número de resultados devueltos en m_rgSteamID.
    m_nTotalResultCountint32Número total de personas a las que seguimos. Si es mayor que m_nResultsReturned, debes hacer una llamada subsiguiente a EnumerateFollowingList con m_nResultsReturned como el índice para obtener la siguiente porción de seguidores.

    Funciones asociadas: EnumerateFollowingList

    FriendsGetFollowerCount_t

    Devuelve los resultados de GetFollowerCount.

    NombreTipoDescripción
    m_eResultEResultResultado de la operación.
    m_steamIDCSteamIDId. de Steam del usuario cuya cuenta de seguidores se ha solicitado.
    m_nCountintNúmero de seguidores que tiene el usuario.

    Funciones asociadas: GetFollowerCount

    FriendsIsFollowing_t

    Devuelve los resultados de IsFollowing.

    NombreTipoDescripción
    m_eResultEResultResultado de la operación.
    m_steamIDCSteamIDId. de Steam que se ha comprobado.
    m_bIsFollowingbool¿Estamos siguiendo al usuario? ¿(true) o no? (false)

    Funciones asociadas: IsFollowing

    GameConnectedChatJoin_t

    Se llama cuando un usuario se ha unido al chat de grupo de Steam en el que estamos actualmente.

    NombreTipoDescripción
    m_steamIDClanChatCSteamIDId. de Steam del chat al que se ha unido un usuario.
    m_steamIDUserCSteamIDId. de Steam del usuario que se ha unido al chat.

    Funciones asociadas: JoinClanChatRoom

    GameConnectedChatLeave_t

    Se llama cuando un usuario abandona el chat de grupo de Steam en el que estamos actualmente.

    NombreTipoDescripción
    m_steamIDClanChatCSteamIDId. de Steam del chat que ha abandonado un usuario.
    m_steamIDUserCSteamIDId. de Steam del usuario que ha abandonado el chat.
    m_bKickedbool¿El usuario fue echado por un oficial (true), o no (false)?
    m_bDroppedbool¿Se interrumpió la conexión a Steam de los usuarios (true) o se fueron por otros motivos (false)?

    Funciones asociadas: LeaveClanChatRoom

    GameConnectedClanChatMsg_t

    Se llama cuando se ha recibido un mensaje de chat en un chat de grupo de Steam en el que estamos.

    NombreTipoDescripción
    m_steamIDClanChatCSteamIDId. de Steam del chat en el que se ha recibido el mensaje.
    m_steamIDUserCSteamIDId. de Steam del usuario que ha enviado el mensaje.
    m_iMessageIDintEl índice del mensaje de donde obtener los datos actuales con GetClanChatMessage.

    Funciones asociadas: JoinClanChatRoom

    GameConnectedFriendChatMsg_t

    Se llama cuando se ha recibido un mensaje de chat de un amigo.

    NombreTipoDescripción
    m_steamIDUserCSteamIDId. de Steam del amigo que ha enviado el mensaje.
    m_iMessageIDintEl índice del mensaje de donde obtener los datos actuales con GetFriendMessage.

    Funciones asociadas: SetListenForFriendsMessages

    GameLobbyJoinRequested_t

    Se llama cuando el usuario intenta unirse a una sala de espera desde su lista de amigos o desde una invitación. El cliente de juego deberá intentar conectarse a la sala de espera especificada al recibir la llamada. Si el juego aún no se está ejecutando, se iniciará automáticamente en su lugar con el parámetro de línea de comando +connect_lobby <64-bit lobby Steam ID>.

    NombreTipoDescripción
    m_steamIDLobbyCSteamIDId. de Steam de la sala de espera a la que se va a conectar.
    m_steamIDFriendCSteamIDAmigo por medio del cual se une el usuario. No será válido si no es directamente a través de un amigo.

    NOTA: Esta función callback se ejecuta al unirse a una sala. Si el usuario está intentando unirse a un juego pero no a una sala, entonces se activa la función callback GameRichPresenceJoinRequested_t.

    GameOverlayActivated_t

    Se envía cuando la Interfaz de Steam se activa o desactiva. Al juego le sirve para poner en pausa o reanudar partidas de un solo usuario.

    NombreTipoDescripción
    m_bActiveuint81 si se acaba de activar, en caso contrario 0.

    GameRichPresenceJoinRequested_t

    Se llama cuando el usuario intenta unirse a una partida desde su lista de amigos o cuando el usuario acepta la invitación de un amigo con InviteUserToGame.

    NombreTipoDescripción
    m_steamIDFriendCSteamIDAmigo por medio del cual se une el usuario. No será válido si no es directamente a través de un amigo.
    m_rgchConnectchar[k_cchMaxRichPresenceValueLengthEl valor asociado a la clave «connect» de la presencia enriquecida.

    Funciones asociadas: InviteUserToGame

    NOTA: Esta función callback se ejecuta al unirse a una partida. Si el usuario está intentando unirse a una sala, se activa la función callback GameLobbyJoinRequested_t.

    GameServerChangeRequested_t

    Se llama cuando el usuario intenta unirse a un servidor de juegos diferente desde su lista de amigos. El cliente de juego deberá intentar conectarse al servidor especificado al recibir la llamada.

    NombreTipoDescripción
    m_rgchServerchar[64]Dirección del servidor (por ejemplo, «127.0.0.1:27015», «tf2.valvesoftware.com»).
    m_rgchPasswordchar[64]Contraseña del servidor, en su caso.

    JoinClanChatRoomCompletionResult_t

    Se envía cuando el usuario ha intentado unirse a un chat de grupo de Steam a través de JoinClanChatRoom.

    NombreTipoDescripción
    m_steamIDClanChatCSteamIDId. de Steam del chat al que se ha unido el usuario.
    m_eChatRoomEnterResponseEChatRoomEnterResponseResultado de la operación.

    Funciones asociadas: JoinClanChatRoom

    PersonaStateChange_t

    Se llama cuando el estado de un amigo cambia.

    NombreTipoDescripción
    m_ulSteamIDuint64Id. de Steam del usuario que cambió.
    m_nChangeFlagsintUna unión bit a bit de valores EPersonaChange.

    Funciones asociadas: RequestUserInformation

    SetPersonaNameResponse_t

    Devuelve el resultado de un intento de modificar el nombre de perfil del usuario actual.

    NombreTipoDescripción
    m_bSuccessbooltrue si el cambio de nombre se completó correctamente.
    m_bLocalSuccessbooltrue si el cambio de nombre se mantuvo localmente. Podría no haber sido posible la comunicación con Steam.
    m_resultEResultResultado de la operación.

    Funciones asociadas: SetPersonaName

    Estructuras

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

    FriendGameInfo_t

    Información sobre el juego que está jugando un amigo.
    Se puede obtener de: GetFriendGamePlayed.

    NombreTipoDescripción
    m_gameIDCGameIDEl id. del juego al que está jugando el amigo.
    m_unGameIPuint32La IP del servidor en el que el amigo está jugando.
    m_usGamePortuint16El puerto del servidor donde el amigo está jugando.
    m_usQueryPortuint16El puerto de consulta del servidor donde el amigo está jugando.
    m_steamIDLobbyCSteamIDId. de Steam de la sala de espera donde está el amigo.

    FriendSessionStateInfo_t

    Información acerca de las sesiones de usuario. (Solo para uso interno de Steam).

    NombreTipoDescripción
    m_uiOnlineSessionInstancesuint32
    m_uiPublishedToFriendsSessionInstanceuint8

    EquippedProfileItemsChanged_t

    Devolución de llamada para cuando los artículos equipados en el perfil de la comunidad de Steam de un usuario han cambiado. Puede ser para el usuario actual o para sus amigos.

    NombreTipoDescripción
    m_steamIDCSteamID

    EquippedProfileItems_t

    Resultado de la llamada a RequestEquippedProfileItems. También se envía como una función callback.

    NombreTipoDescripción
    m_eResultEResult
    m_bHasAnimatedAvatarCSteamID
    m_bHasAvatarFramebool
    m_bHasProfileModifierbool
    m_bHasProfileBackgroundbool
    m_bHasMiniProfileBackgroundbool

    Enumeraciones

    Estas son las enumeraciones definidas para usarse con ISteamFriends.

    EFriendFlags

    Marcas para la enumeración de la lista de amigos o para la comprobación rápida de la relación entre usuarios.

    NombreValorDescripción
    k_EFriendFlagNone0x00Ninguna.
    k_EFriendFlagBlocked0x01Usuarios cuyo contacto ha bloqueado el usuario actual.
    k_EFriendFlagFriendshipRequested0x02Usuarios que han enviado una solicitud de amistad al usuario actual.
    k_EFriendFlagImmediate0x04Los amigos «habituales» del usuario actual.
    k_EFriendFlagClanMember0x08Usuarios que están en uno de los mismos grupos (pequeños) de Steam que el usuario actual.
    k_EFriendFlagOnGameServer0x10Usuarios que están en el mismo servidor de juego; según lo establecido por SetPlayedWith.
    k_EFriendFlagRequestingFriendship0x80Usuarios a los que el usuario actual ha enviado solicitudes de amistad.
    k_EFriendFlagRequestingInfo0x100Los usuarios que actualmente están enviando información adicional sobre ellos mismos después de una llamada a RequestUserInformation
    k_EFriendFlagIgnored0x200Usuarios a los que el usuario actual ha ignorado como contactos.
    k_EFriendFlagIgnoredFriend0x400Usuarios que han ignorado al usuario actual, pero el usuario actual todavía recibe información sobre ellos.
    k_EFriendFlagChatMember0x1000Usuarios en uno de los mismos chats.
    k_EFriendFlagAll0xFFFFDevuelve todas las marcas de amigos.

    EFriendRelationship

    Declara el conjunto de relaciones que puedan tener los usuarios de Steam.

    NombreValorDescripción
    k_EFriendRelationshipNone0Los usuarios no tienen relación entre ellos.
    k_EFriendRelationshipBlocked1El usuario ha hecho clic en Ignorar para una solicitud de amistad. Esto no se almacena.
    k_EFriendRelationshipRequestRecipient2El usuario ha solicitado la amistad del usuario actual.
    k_EFriendRelationshipFriend3Un amigo «habitual».
    k_EFriendRelationshipRequestInitiator4El usuario actual ha enviado una solicitud de amistad.
    k_EFriendRelationshipIgnored5El usuario actual ha bloqueado de forma explícita a este otro usuario en comentarios, chat, etc. Esto se almacena.
    k_EFriendRelationshipIgnoredFriend6El usuario ha ignorado al usuario actual.
    k_EFriendRelationshipSuggested_DEPRECATED7Obsoleta/No se usa.
    k_EFriendRelationshipMax8El número total de relaciones de amistad, empleado para iteración y verificación.

    EOverlayToStoreFlag

    Estos valores se pasan como parámetros a la tienda con ActivateGameOverlayToStore y modifican el comportamiento cuando se abre la página.

    NombreValorDescripción
    k_EOverlayToStoreFlag_None0No
    k_EOverlayToStoreFlag_AddToCart1Obsoleta, ahora funciona igual que k_EOverlayToStoreFlag_AddToCartAndShow.
    k_EOverlayToStoreFlag_AddToCartAndShow2Agrega el id. de la aplicación especificada al carro de la compra del usuario y muestra la página de la tienda.

    EPersonaChange

    Utilizado en PersonaStateChange_t::m_nChangeFlags para describir lo que ha cambiado acerca de un usuario.
    Estas marcas describen lo que el cliente de juego ha aprendido sobre lo que ha cambiado recientemente, por lo que al iniciar verás los cambios en el nombre, avatar y relación de todos los amigos.

    NombreValorDescripción
    k_EPersonaChangeName0x0001
    k_EPersonaChangeStatus0x0002
    k_EPersonaChangeComeOnline0x0004
    k_EPersonaChangeGoneOffline0x0008
    k_EPersonaChangeGamePlayed0x0010
    k_EPersonaChangeGameServer0x0020
    k_EPersonaChangeAvatar0x0040
    k_EPersonaChangeJoinedSource0x0080
    k_EPersonaChangeLeftSource0x0100
    k_EPersonaChangeRelationshipChanged0x0200
    k_EPersonaChangeNameFirstSet0x0400
    k_EPersonaChangeFacebookInfo0x0800
    k_EPersonaChangeNickname0x1000
    k_EPersonaChangeSteamLevel0x2000

    EPersonaState

    Lista de estados en los que puede estar un amigo de Steam.

    NombreValorDescripción
    k_EPersonaStateOffline0Amigo no conectado actualmente.
    k_EPersonaStateOnline1Amigo conectado.
    k_EPersonaStateBusy2Amigo conectado, pero con el estado «No molestar».
    k_EPersonaStateAway3Función automática de cambio de estado a ausente.
    k_EPersonaStateSnooze4Función automática de cambio de estado a ausencia prolongada.
    k_EPersonaStateLookingToTrade5En línea, buscando intercambio.
    k_EPersonaStateLookingToPlay6En línea, queriendo jugar.
    k_EPersonaStateMax7El número total de estados. Solo se usa para iteración y validación.

    EUserRestriction

    Marcas de restricción de usuario. Estas son devueltas por GetUserRestrictions.

    NombreValorDescripción
    k_nUserRestrictionNone0No se conocen restricciones de chat o de contenidos.
    k_nUserRestrictionUnknown1Aún no se sabe (el usuario está desconectado).
    k_nUserRestrictionAnyChat2El usuario no tiene permiso para (o no puede) enviar o recibir mensajes desde ninguna sala de chat.
    k_nUserRestrictionVoiceChat4El usuario no tiene permiso para (o no puede) enviar o recibir ningún chat de voz.
    k_nUserRestrictionGroupChat8El usuario no tiene permiso para (o no puede) enviar o recibir chats de grupo.
    k_nUserRestrictionRating16El usuario es demasiado joven de acuerdo con la clasificación de edad de la región actual.
    k_nUserRestrictionGameInvites32El usuario no puede enviar o recibir invitaciones a partidas, por ejemplo, si está usando un dispositivo móvil.
    k_nUserRestrictionTrading64El usuario no puede participar en intercambios, por ejemplo, si está en una consola o dispositivo móvil.

    ECommunityProfileItemType

    Tipos de artículos de perfil de la comunidad de Steam.

    NombreValorDescripción
    k_ECommunityProfileItemType_AnimatedAvatar0Imagen de avatar animada (GIF).
    k_ECommunityProfileItemType_AvatarFrame1Marco de avatar (puede o no ser un PNG animado).
    k_ECommunityProfileItemType_ProfileModifier2Artículo especial que modifica el perfil, como el perfil de temporada o el perfil de artista.
    k_ECommunityProfileItemType_ProfileBackground3Imagen o vídeo del fondo de perfil.
    k_ECommunityProfileItemType_MiniProfileBackground4Imagen o vídeo de fondo que aparece al pasar el cursor por un usuario.

    ECommunityProfileItemProperty

    Propiedades de un artículo del perfil de la comunidad de Steam. Ver GetProfileItemPropertyString y GetProfileItemPropertyUint.

    NombreValorDescripción
    k_ECommunityProfileItemProperty_ImageSmall0URL de la versión pequeña o animada de la imagen.
    k_ECommunityProfileItemProperty_ImageLarge1URL de la versión más grande o estática de la imagen.
    k_ECommunityProfileItemProperty_InternalName2Nombre interno introducido en el sitio de asociados (para depuración).
    k_ECommunityProfileItemProperty_Title3Nombre localizado del artículo.
    k_ECommunityProfileItemProperty_Description4Descripción traducida del artículo.
    k_ECommunityProfileItemProperty_AppID5Id. de aplicación del artículo (entero sin signo).
    k_ECommunityProfileItemProperty_TypeID6Tipo de id. del artículo, único por id. de aplicación (entero sin signo).
    k_ECommunityProfileItemProperty_Class7«Clase» o tipo de artículo (valor interno, entero sin signo).
    k_ECommunityProfileItemProperty_MovieWebM8URL del archivo de vídeo webm.
    k_ECommunityProfileItemProperty_MovieMP49URL del archivo de vídeo mp4.
    k_ECommunityProfileItemProperty_MovieWebMSmall10URL del pequeño archivo de vídeo webm.
    k_ECommunityProfileItemProperty_MovieMP4Small11URL del pequeño archivo de vídeo mp4.

    EActivateGameOverlayToWebPageMode

    Modos de la página web de la interfaz superpuesta en las partidas.

    NombreValorDescripción
    k_EActivateGameOverlayToWebPageMode_Default0El navegador se abrirá junto a todas las demás ventanas que el usuario tenga abiertas en la interfaz superpuesta. La ventana permanecerá abierta, incluso si el usuario cierra y vuelve a abrir la interfaz superpuesta.
    k_EActivateGameOverlayToWebPageMode_Modal1El navegador se abrirá con una configuración especial de la interfaz superpuesta en la que se ocultan todas las demás ventanas que el usuario tenga abiertas de la interfaz dentro del juego. La ventana del navegador también se cierra cuando el usuario cierra la interfaz superpuesta. La interfaz superpuesta se cierra de forma automática cuando el usuario cierra la ventana del navegador.

    Definiciones de tipo

    Estas son las definiciones de tipo que se han establecido para su uso con ISteamFriends.

    NombreTipo de baseDescripción
    FriendsGroupID_tint16Identificador del grupo de amigos (etiquetas).

    Constantes

    Estas son las constantes establecidas para usarse con ISteamFriends.

    NombreTipoValorDescripción
    k_cchMaxFriendsGroupNameint64La longitud máxima que puede tener el nombre de un grupo de amigos (¡sin contar el carácter nulo!).
    k_cchMaxRichPresenceKeyLengthint64La longitud máxima que puede tener una clave de presencia enriquecida.
    k_cchMaxRichPresenceKeysint20La cantidad máxima de claves de presencia enriquecida que pueden establecerse.
    k_cchMaxRichPresenceValueLengthint256La longitud máxima que puede tener un valor de presencia enriquecida.
    k_cchPersonaNameMaxint128Número máximo de bytes en UTF-8 en el nombre de perfil (mostrado) de un usuario.
    k_cEnumerateFollowersMaxint50El número máximo de seguidores que el resultado de la llamada FriendsEnumerateFollowingList_t devuelve a la vez.
    k_cFriendsGroupLimitint100Obsoleta. No se usa.
    k_cubChatMetadataMaxuint328192Tamaño máximo posible en bytes que pueden tener los metadatos de un chat, de una sala de espera o de un miembro de un chat o de una sala de espera.
    k_cwchPersonaNameMaxint32La cantidad máxima de caracteres UTF-16 en el nombre de perfil (mostrado) de un usuario.
    k_FriendsGroupID_InvalidFriendsGroupID_t-1Identificador no válido de grupo de amigos.
    STEAMFRIENDS_INTERFACE_VERSIONconst char *«SteamFriends015»

    Localización de la presencia enriquecida


    La localización para la presencia enriquecida está compuesta por una lista de nombres y valores de tokens para cada idioma disponible. Los nombres de los tokens empiezan por # y pueden incluir cualquier carácter alfanumérico y guiones bajos. Los valores de los tokens incluyen el texto traducido y pueden incluir también sustituciones, que indican las partes de la cadena que deben sustituirse por otros valores de presencia enriquecida.

  • El token más sencillo es texto simple localizado:
    "#Status_AtMainMenu" "en el menú principal"
    En el ejemplo anterior, si steam_display se establece en #Status_AtMainMenu usando SetRichPresence, entonces "en el menú principal" se mostrará junto con la información del jugador en el cliente de Steam.

  • Una sustitución se ve así:
    "#StatusWithScore" "Puntuación: %score%"
    En este caso, si steam_display se establece en "#StatusWithScore" usando SetRichPresence y "puntuación" se establece en "3" utilizando la misma API, luego "Puntuación: 3" se mostrará junto con la información del jugador en el cliente de Steam.

  • Las sustituciones también pueden desencadenar una localización adicional encerrando una subcadena entre llaves. Ejemplo:
    "#PlayingHero" "Jugando a: {#Hero_%hero%}" "#Hero_Tidehunter" "Tidehunter"
    Las sustituciones en la subcadena delimitada entre llaves se realizan primero, luego se localiza la etiqueta resultante. En este caso, si steam_display se establece en "#PlayingHero" y "hero" se establece en "Tidehunter", el cliente de Steam localizará "#Hero_Tidehunter" y mostrará "Jugando con: Tidehunter".

    Nota: Las claves de presencia enriquecida utilizadas en las sustituciones solo pueden contener caracteres alfanuméricos, guiones bajos y dos puntos.

    En el caso de que no se encuentre un token de localización, el sistema tratará de recurrir al inglés. Si tampoco se encuentra el inglés, la presencia enriquecida no se mostrará en el cliente de Steam. De manera similar, si un token especifica una sustitución utilizando una clave de presencia enriquecida que no está establecida, entonces la presencia enriquecida no se mostrará en el cliente de Steam.

    El desarrollador del juego proporciona el archivo de localización de presencia enriquecida en la sección Presencia enriquecida en la pestaña Comunidad que se puede encontrar en la página Editar configuración de Steamworks.

    rpedit.jpg

    Para las pruebas, http://www.steamcommunity.com/dev/testrichpresence se puede usar para mostrar la cadena de presencia enriquecida localizada del usuario que ha iniciado sesión, así como algunos datos de error sobre datos incompletos o incorrectos. La cadena se localizará en el idioma que se haya establecido para el sitio web de Steam.

    Cada idioma puede cargarse individualmente en archivos que pueden ser como este:

    "lang" { "english" { "tokens" { "#StatusWithoutScore" "{#Status_%gamestatus%}" "#StatusWithScore" "{#Status_%gamestatus%}: %score%" "#Status_AtMainMenu" "At the main menu" "#Status_WaitingForMatch" "Waiting for match" "#Status_Winning" "Winning" "#Status_Losing" "Losing" "#Status_Tied" "Tied" } } }

    También se pueden incluir varios idiomas en una sola carga. Solo se sobrescriben los idiomas presentes en el archivo.
    "lang" { "english" { "tokens" { "#StatusWithoutScore" "{#Status_%gamestatus%}" "#StatusWithScore" "{#Status_%gamestatus%}: %score%" "#Status_AtMainMenu" "At the main menu" "#Status_WaitingForMatch" "Waiting for match" "#Status_Winning" "Winning" "#Status_Losing" "Losing" "#Status_Tied" "Tied" } } "french" { "tokens" { "#Status_AtMainMenu" "Au menu principal" "#Status_WaitingForMatch" "En attente de match" "#Status_Winning" "Gagnant" "#Status_Losing" "Perdant" "#Status_Tied" "Egalité" } } }