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 );
Nombre | Tipo | Descripción |
pchDialog | const 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 );
Nombre | Tipo | Descripción |
steamIDLobby | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
nAppID | AppId_t | Id. de aplicación cuya página de la tienda se desea mostrar. |
eFlag | EOverlayToStoreFlag | Marcas 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 );
Nombre | Tipo | Descripción |
pchDialog | const char * | El diálogo que se abre. |
steamID | CSteamID | Id. 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 );
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 );
Nombre | Tipo | Descripción |
steamIDClanChat | CSteamID | Id. 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,
OpenClanChatWindowInSteamDownloadClanActivityCounts
SteamAPICall_t DownloadClanActivityCounts( CSteamID *psteamIDClans, int cClansToRequest );
Nombre | Tipo | Descripción |
psteamIDClans | CSteamID * | Lista de grupos de Steam para los que se van a obtener datos actualizados. |
cClansToRequest | int | Este 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 );
Nombre | Tipo | Descripción |
unStartIndex | uint32 | Í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 );
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: CSteamIDLos índices no válidos devuelven
k_steamIDNil.
GetClanActivityCounts
bool GetClanActivityCounts( CSteamID steamIDClan, int *pnOnline, int *pnInGame, int *pnChatting );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Grupo de Steam cuya actividad se desea obtener. |
pnOnline | int * | Devuelve el número de miembros que están conectados. |
pnInGame | int * | Devuelve el número de miembros que están en juegos (excluyendo aquellos con el estado desconectado). |
pnChatting | int * | 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 );
Nombre | Tipo | Descripción |
iClan | int | Un í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: CSteamIDLos índices no válidos devuelven
k_steamIDNil.
GetClanChatMemberCount
int GetClanChatMemberCount( CSteamID steamIDClan );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Grupo 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 );
Nombre | Tipo | Descripción |
steamIDClanChat | CSteamID | Id. de Steam de la sala de chat de grupo de Steam. |
iMessage | int | El índice del mensaje. Este debe ser el campo m_iMessageID de GameConnectedClanChatMsg_t. |
prgchText | void * | 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') |
cchTextMax | int | El tamaño de prgchText . |
peChatEntryType | EChatEntryType * | Devuelve el tipo de entrada de chat que se ha recibido. |
psteamidChatter | CSteamID * | 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 );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Grupo 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: DownloadClanActivityCountsGetClanOfficerByIndex
CSteamID GetClanOfficerByIndex( CSteamID steamIDClan, int iOfficer );
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: CSteamIDk_steamIDNil si
steamIDClan
o
iOfficer
son no válidos.
GetClanOfficerCount
int GetClanOfficerCount( CSteamID steamIDClan );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | El 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 );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Id. 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: CSteamIDDevuelve
k_steamIDNil si
steamIDClan
no es válido o si
RequestClanOfficerList no se ha llamado antes.
GetClanTag
const char * GetClanTag( CSteamID steamIDClan );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Grupo 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: DownloadClanActivityCountsGetCoplayFriend
CSteamID GetCoplayFriend( int iCoplayFriend );
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: CSteamIDLos í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 );
Nombre | Tipo | Descripción |
steamID | CSteamID | Usuario 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 );
Nombre | Tipo | Descripción |
iFriend | int | Un índice entre 0 y GetFriendCount. |
iFriendFlags | int | Una 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: CSteamIDLos índices no válidos devuelven
k_steamIDNil.
GetFriendCoplayGame
AppId_t GetFriendCoplayGame( CSteamID steamIDFriend );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. 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_tSi los id. de Steam no están en la lista de compañeros de juego recientes, devuelve
k_uAppIdInvalid.
GetFriendCoplayTime
int GetFriendCoplayTime( CSteamID steamIDFriend );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
iFriendFlags | int | Una 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 );
Nombre | Tipo | Descripción |
steamIDSource | CSteamID | Sala 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 );
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: CSteamIDLos índices no válidos devuelven
k_steamIDNil.
GetFriendGamePlayed
bool GetFriendGamePlayed( CSteamID steamIDFriend, FriendGameInfo_t *pFriendGameInfo );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. de Steam del otro usuario. |
pFriendGameInfo | FriendGameInfo_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 );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. de Steam del amigo que ha enviado este mensaje. |
iMessageID | int | El índice del mensaje. Este debe ser el campo m_iMessageID de GameConnectedFriendChatMsg_t. |
pvData | void * | Búfer en el que se copiará el mensaje de chat. |
cubData | int | El tamaño de pvData . |
peChatEntryType | EChatEntryType * | 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 );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. de Steam del otro usuario. |
iPersonaName | int | Í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 );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. 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: EPersonaStateEl estado amigo del usuario especificado. (Conectado, Desconectado, Jugando, etc.).
GetFriendRelationship
EFriendRelationship GetFriendRelationship( CSteamID steamIDFriend );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. de Steam del otro usuario. |
Obtiene una relación con un usuario especificado.
Devuelve: EFriendRelationshipCómo se conocen los usuarios.
GetFriendRichPresence
const char * GetFriendRichPresence( CSteamID steamIDFriend, const char *pchKey );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | El amigo para el que se obtiene el valor de presencia enriquecida. |
pchKey | const 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,
SetRichPresenceGetFriendRichPresenceKeyByIndex
const char * GetFriendRichPresenceKeyByIndex( CSteamID steamIDFriend, int iKey );
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 );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. 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 );
Obtiene el id. del grupo de amigos en el índice dado.
NOTA: Debes llamar a
GetFriendsGroupCount antes de llamar a esto.
Devuelve: FriendsGroupID_tLos índices no válidos devuelven
k_FriendsGroupID_Invalid.
GetFriendsGroupMembersCount
int GetFriendsGroupMembersCount( FriendsGroupID_t friendsGroupID );
Nombre | Tipo | Descripción |
friendsGroupID | FriendsGroupID_t | Id. 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: GetFriendsGroupCountGetFriendsGroupMembersList
void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, CSteamID *pOutSteamIDMembers, int nMembersCount );
Nombre | Tipo | Descripción |
friendsGroupID | FriendsGroupID_t | Id. del grupo de amigos del que se obtiene la lista de miembros. |
pOutSteamIDMembers | CSteamID * | Devuelve los id. de Steam de los amigos colocándolos en este vector. |
nMembersCount | int | Esto 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: GetFriendsGroupCountGetFriendsGroupName
const char * GetFriendsGroupName( FriendsGroupID_t friendsGroupID );
Nombre | Tipo | Descripción |
friendsGroupID | FriendsGroupID_t | Id. 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: GetFriendsGroupCountGetFriendSteamLevel
int GetFriendSteamLevel( CSteamID steamIDFriend );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | |
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,
GetSmallFriendAvatarGetMediumFriendAvatar
int GetMediumFriendAvatar( CSteamID steamIDFriend );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | |
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,
GetSmallFriendAvatarGetPersonaName
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: EPersonaStateEl estado de amigo del usuario actual. (Conectado, Desconectado, Jugando, etc.).
GetPlayerNickname
const char * GetPlayerNickname( CSteamID steamIDPlayer );
Nombre | Tipo | Descripción |
steamIDPlayer | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | |
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,
GetMediumFriendAvatarGetUserRestrictions
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: uint32Ver:
EUserRestrictionHasFriend
bool HasFriend( CSteamID steamIDFriend, int iFriendFlags );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | El usuario de Steam cuyo estado de amigo se desea comprobar. |
iFriendFlags | int | Una 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 );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. de Steam del amigo al que se va a invitar. |
pchConnectString | const 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::InviteUserToLobbyIsClanChatAdmin
bool IsClanChatAdmin( CSteamID steamIDClanChat, CSteamID steamIDUser );
Nombre | Tipo | Descripción |
steamIDClanChat | CSteamID | Id. de Steam de la sala de chat de grupo de Steam. |
steamIDUser | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
steamIDClanChat | CSteamID | El 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,
CloseClanChatWindowInSteamIsFollowing
SteamAPICall_t IsFollowing( CSteamID steamID );
Nombre | Tipo | Descripción |
steamID | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
steamIDUser | CSteamID | Usuario para el que se comprobará si está en el origen. |
steamIDSource | CSteamID | Origen 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 );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | El 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,
IsClanChatWindowOpenInSteamLeaveClanChatRoom
bool LeaveClanChatRoom( CSteamID steamIDClan );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Id. 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 );
Nombre | Tipo | Descripción |
steamIDClanChat | CSteamID | Id. 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,
CloseClanChatWindowInSteamReplyToFriendMessage
bool ReplyToFriendMessage( CSteamID steamIDFriend, const char *pchMsgToSend );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. de Steam del amigo al que se va a enviar el mensaje. |
pchMsgToSend | const 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 );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Grupo 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,
GetClanOfficerByIndexEjemplo: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 );
Nombre | Tipo | Descripción |
steamIDFriend | CSteamID | Id. 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,
SetRichPresenceRequestUserInformation
bool RequestUserInformation( CSteamID steamIDUser, bool bRequireNameOnly );
Nombre | Tipo | Descripción |
steamIDUser | CSteamID | Usuario cuya información se solicita. |
bRequireNameOnly | bool | ¿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 );
Nombre | Tipo | Descripción |
steamIDClanChat | CSteamID | Id. de Steam del chat de grupo al que se va a enviar el mensaje. |
pchText | const 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 );
Nombre | Tipo | Descripción |
steamIDUser | CSteamID | Sin usar. |
bSpeaking | bool | ¿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 );
Nombre | Tipo | Descripción |
bInterceptEnabled | bool | ¿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 );
Nombre | Tipo | Descripción |
pchPersonaName | const 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 );
Nombre | Tipo | Descripción |
steamIDUserPlayedWith | CSteamID | El 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 );
Nombre | Tipo | Descripción |
pchKey | const 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. |
pchValue | const 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);
Nombre | Tipo | Descripción |
steamID | CSteamID | El 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);
Nombre | Tipo | Descripción |
steamID | CSteamID | El usuario cuyos artículos equipados ya habías solicitado. |
itemType | ECommunityProfileItemType | Tipo 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, GetProfileItemPropertyUintGetProfileItemPropertyString
bool GetProfileItemPropertyString( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop);
Devuelve una propiedad de la cadena del artículo de perfil equipado del usuario.
Devuelve: const char *
Véase también: RequestEquippedProfileItems, GetProfileItemPropertyUintGetProfileItemPropertyUint
bool GetProfileItemPropertyUint( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop);
Devuelve una propiedad de entero sin signo para el objeto de perfil equipado de un usuario.
Devuelve: uint32
Véase también: RequestEquippedProfileItems, GetProfileItemPropertyStringFunciones 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.
Nombre | Tipo | Descripción |
m_steamID | CSteamID | Id. de Steam para el que se ha cargado el avatar. |
m_iImage | int | Handle de la imagen de Steam que se ha cargado ahora. |
m_iWide | int | Ancho de la imagen cargada. |
m_iTall | int | Altura de la imagen cargada. |
Funciones asociadas: GetLargeFriendAvatarClanOfficerListResponse_t
Marca la devolución de una llamada de solicitud de lista de oficiales.
Nombre | Tipo | Descripción |
m_steamIDClan | CSteamID | Grupo de Steam cuya lista de oficiales se acaba de obtener. |
m_cOfficers | int | Número de oficiales en el grupo. Esto es lo mismo que GetClanOfficerCount. |
m_bSuccess | uint8 | ¿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: RequestClanOfficerListDownloadClanActivityCountsResult_t
Se llama cuando se ha recibido la actividad de un grupo de Steam.
Nombre | Tipo | Descripción |
m_bSuccess | bool | ¿La llamada se ha ejecutado correctamente? |
Funciones asociadas: DownloadClanActivityCountsFriendRichPresenceUpdate_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.
Nombre | Tipo | Descripción |
m_steamIDFriend | CSteamID | Id. de Steam del usuario cuya presencia enriquecida ha cambiado. |
m_nAppID | AppId_t | Id. de aplicación del juego. Debe ser siempre el juego actual. |
Funciones asociadas: RequestFriendRichPresenceFriendsEnumerateFollowingList_t
Devuelve el resultado de EnumerateFollowingList.
Nombre | Tipo | Descripción |
m_eResult | EResult | Resultado de la operación. |
m_rgSteamID | CSteamID[k_cEnumerateFollowersMax] | Lista de usuarios que seguimos. |
m_nResultsReturned | int32 | El número de resultados devueltos en m_rgSteamID . |
m_nTotalResultCount | int32 | Nú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: EnumerateFollowingListFriendsGetFollowerCount_t
Devuelve los resultados de GetFollowerCount.
Nombre | Tipo | Descripción |
m_eResult | EResult | Resultado de la operación. |
m_steamID | CSteamID | Id. de Steam del usuario cuya cuenta de seguidores se ha solicitado. |
m_nCount | int | Número de seguidores que tiene el usuario. |
Funciones asociadas: GetFollowerCountFriendsIsFollowing_t
Devuelve los resultados de IsFollowing.
Nombre | Tipo | Descripción |
m_eResult | EResult | Resultado de la operación. |
m_steamID | CSteamID | Id. de Steam que se ha comprobado. |
m_bIsFollowing | bool | ¿Estamos siguiendo al usuario? ¿(true) o no? (false) |
Funciones asociadas: IsFollowingGameConnectedChatJoin_t
Se llama cuando un usuario se ha unido al chat de grupo de Steam en el que estamos actualmente.
Nombre | Tipo | Descripción |
m_steamIDClanChat | CSteamID | Id. de Steam del chat al que se ha unido un usuario. |
m_steamIDUser | CSteamID | Id. de Steam del usuario que se ha unido al chat. |
Funciones asociadas: JoinClanChatRoomGameConnectedChatLeave_t
Se llama cuando un usuario abandona el chat de grupo de Steam en el que estamos actualmente.
Nombre | Tipo | Descripción |
m_steamIDClanChat | CSteamID | Id. de Steam del chat que ha abandonado un usuario. |
m_steamIDUser | CSteamID | Id. de Steam del usuario que ha abandonado el chat. |
m_bKicked | bool | ¿El usuario fue echado por un oficial (true), o no (false)? |
m_bDropped | bool | ¿Se interrumpió la conexión a Steam de los usuarios (true) o se fueron por otros motivos (false)? |
Funciones asociadas: LeaveClanChatRoomGameConnectedClanChatMsg_t
Se llama cuando se ha recibido un mensaje de chat en un chat de grupo de Steam en el que estamos.
Nombre | Tipo | Descripción |
m_steamIDClanChat | CSteamID | Id. de Steam del chat en el que se ha recibido el mensaje. |
m_steamIDUser | CSteamID | Id. de Steam del usuario que ha enviado el mensaje. |
m_iMessageID | int | El índice del mensaje de donde obtener los datos actuales con GetClanChatMessage. |
Funciones asociadas: JoinClanChatRoomGameConnectedFriendChatMsg_t
Se llama cuando se ha recibido un mensaje de chat de un amigo.
Nombre | Tipo | Descripción |
m_steamIDUser | CSteamID | Id. de Steam del amigo que ha enviado el mensaje. |
m_iMessageID | int | El índice del mensaje de donde obtener los datos actuales con GetFriendMessage. |
Funciones asociadas: SetListenForFriendsMessagesGameLobbyJoinRequested_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>
.
Nombre | Tipo | Descripción |
m_steamIDLobby | CSteamID | Id. de Steam de la sala de espera a la que se va a conectar. |
m_steamIDFriend | CSteamID | Amigo 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.
Nombre | Tipo | Descripción |
m_bActive | uint8 | 1 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.
Nombre | Tipo | Descripción |
m_steamIDFriend | CSteamID | Amigo por medio del cual se une el usuario. No será válido si no es directamente a través de un amigo. |
m_rgchConnect | char[k_cchMaxRichPresenceValueLength] | El 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.
Nombre | Tipo | Descripción |
m_rgchServer | char[64] | Dirección del servidor (por ejemplo, «127.0.0.1:27015», «tf2.valvesoftware.com»). |
m_rgchPassword | char[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.
Nombre | Tipo | Descripción |
m_steamIDClanChat | CSteamID | Id. de Steam del chat al que se ha unido el usuario. |
m_eChatRoomEnterResponse | EChatRoomEnterResponse | Resultado de la operación. |
Funciones asociadas: JoinClanChatRoomPersonaStateChange_t
Se llama cuando el estado de un amigo cambia.
Nombre | Tipo | Descripción |
m_ulSteamID | uint64 | Id. de Steam del usuario que cambió. |
m_nChangeFlags | int | Una unión bit a bit de valores EPersonaChange. |
Funciones asociadas: RequestUserInformationSetPersonaNameResponse_t
Devuelve el resultado de un intento de modificar el nombre de perfil del usuario actual.
Nombre | Tipo | Descripción |
m_bSuccess | bool | true si el cambio de nombre se completó correctamente. |
m_bLocalSuccess | bool | true si el cambio de nombre se mantuvo localmente. Podría no haber sido posible la comunicación con Steam. |
m_result | EResult | Resultado de la operación. |
Funciones asociadas: SetPersonaNameEstructuras
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.
Nombre | Tipo | Descripción |
m_gameID | CGameID | El id. del juego al que está jugando el amigo. |
m_unGameIP | uint32 | La IP del servidor en el que el amigo está jugando. |
m_usGamePort | uint16 | El puerto del servidor donde el amigo está jugando. |
m_usQueryPort | uint16 | El puerto de consulta del servidor donde el amigo está jugando. |
m_steamIDLobby | CSteamID | Id. 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).
Nombre | Tipo | Descripción |
m_uiOnlineSessionInstances | uint32 | |
m_uiPublishedToFriendsSessionInstance | uint8 | |
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.
EquippedProfileItems_t
Resultado de la llamada a RequestEquippedProfileItems. También se envía como una función callback.
Nombre | Tipo | Descripción |
m_eResult | EResult | |
m_bHasAnimatedAvatar | CSteamID | |
m_bHasAvatarFrame | bool | |
m_bHasProfileModifier | bool | |
m_bHasProfileBackground | bool | |
m_bHasMiniProfileBackground | bool | |
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.
Nombre | Valor | Descripción |
k_EFriendFlagNone | 0x00 | Ninguna. |
k_EFriendFlagBlocked | 0x01 | Usuarios cuyo contacto ha bloqueado el usuario actual. |
k_EFriendFlagFriendshipRequested | 0x02 | Usuarios que han enviado una solicitud de amistad al usuario actual. |
k_EFriendFlagImmediate | 0x04 | Los amigos «habituales» del usuario actual. |
k_EFriendFlagClanMember | 0x08 | Usuarios que están en uno de los mismos grupos (pequeños) de Steam que el usuario actual. |
k_EFriendFlagOnGameServer | 0x10 | Usuarios que están en el mismo servidor de juego; según lo establecido por SetPlayedWith. |
k_EFriendFlagRequestingFriendship | 0x80 | Usuarios a los que el usuario actual ha enviado solicitudes de amistad. |
k_EFriendFlagRequestingInfo | 0x100 | Los usuarios que actualmente están enviando información adicional sobre ellos mismos después de una llamada a RequestUserInformation |
k_EFriendFlagIgnored | 0x200 | Usuarios a los que el usuario actual ha ignorado como contactos. |
k_EFriendFlagIgnoredFriend | 0x400 | Usuarios que han ignorado al usuario actual, pero el usuario actual todavía recibe información sobre ellos. |
k_EFriendFlagChatMember | 0x1000 | Usuarios en uno de los mismos chats. |
k_EFriendFlagAll | 0xFFFF | Devuelve todas las marcas de amigos. |
EFriendRelationship
Declara el conjunto de relaciones que puedan tener los usuarios de Steam.
Nombre | Valor | Descripción |
k_EFriendRelationshipNone | 0 | Los usuarios no tienen relación entre ellos. |
k_EFriendRelationshipBlocked | 1 | El usuario ha hecho clic en Ignorar para una solicitud de amistad. Esto no se almacena. |
k_EFriendRelationshipRequestRecipient | 2 | El usuario ha solicitado la amistad del usuario actual. |
k_EFriendRelationshipFriend | 3 | Un amigo «habitual». |
k_EFriendRelationshipRequestInitiator | 4 | El usuario actual ha enviado una solicitud de amistad. |
k_EFriendRelationshipIgnored | 5 | El usuario actual ha bloqueado de forma explícita a este otro usuario en comentarios, chat, etc. Esto se almacena. |
k_EFriendRelationshipIgnoredFriend | 6 | El usuario ha ignorado al usuario actual. |
k_EFriendRelationshipSuggested_DEPRECATED | 7 | Obsoleta/No se usa. |
k_EFriendRelationshipMax | 8 | El 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.
Nombre | Valor | Descripción |
k_EOverlayToStoreFlag_None | 0 | No |
k_EOverlayToStoreFlag_AddToCart | 1 | Obsoleta, ahora funciona igual que k_EOverlayToStoreFlag_AddToCartAndShow. |
k_EOverlayToStoreFlag_AddToCartAndShow | 2 | Agrega 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.
Nombre | Valor | Descripción |
k_EPersonaChangeName | 0x0001 | |
k_EPersonaChangeStatus | 0x0002 | |
k_EPersonaChangeComeOnline | 0x0004 | |
k_EPersonaChangeGoneOffline | 0x0008 | |
k_EPersonaChangeGamePlayed | 0x0010 | |
k_EPersonaChangeGameServer | 0x0020 | |
k_EPersonaChangeAvatar | 0x0040 | |
k_EPersonaChangeJoinedSource | 0x0080 | |
k_EPersonaChangeLeftSource | 0x0100 | |
k_EPersonaChangeRelationshipChanged | 0x0200 | |
k_EPersonaChangeNameFirstSet | 0x0400 | |
k_EPersonaChangeFacebookInfo | 0x0800 | |
k_EPersonaChangeNickname | 0x1000 | |
k_EPersonaChangeSteamLevel | 0x2000 | |
EPersonaState
Lista de estados en los que puede estar un amigo de Steam.
Nombre | Valor | Descripción |
k_EPersonaStateOffline | 0 | Amigo no conectado actualmente. |
k_EPersonaStateOnline | 1 | Amigo conectado. |
k_EPersonaStateBusy | 2 | Amigo conectado, pero con el estado «No molestar». |
k_EPersonaStateAway | 3 | Función automática de cambio de estado a ausente. |
k_EPersonaStateSnooze | 4 | Función automática de cambio de estado a ausencia prolongada. |
k_EPersonaStateLookingToTrade | 5 | En línea, buscando intercambio. |
k_EPersonaStateLookingToPlay | 6 | En línea, queriendo jugar. |
k_EPersonaStateMax | 7 | El 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.
Nombre | Valor | Descripción |
k_nUserRestrictionNone | 0 | No se conocen restricciones de chat o de contenidos. |
k_nUserRestrictionUnknown | 1 | Aún no se sabe (el usuario está desconectado). |
k_nUserRestrictionAnyChat | 2 | El usuario no tiene permiso para (o no puede) enviar o recibir mensajes desde ninguna sala de chat. |
k_nUserRestrictionVoiceChat | 4 | El usuario no tiene permiso para (o no puede) enviar o recibir ningún chat de voz. |
k_nUserRestrictionGroupChat | 8 | El usuario no tiene permiso para (o no puede) enviar o recibir chats de grupo. |
k_nUserRestrictionRating | 16 | El usuario es demasiado joven de acuerdo con la clasificación de edad de la región actual. |
k_nUserRestrictionGameInvites | 32 | El usuario no puede enviar o recibir invitaciones a partidas, por ejemplo, si está usando un dispositivo móvil. |
k_nUserRestrictionTrading | 64 | El 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.
ECommunityProfileItemProperty
Propiedades de un artículo del perfil de la comunidad de Steam. Ver GetProfileItemPropertyString y GetProfileItemPropertyUint.
EActivateGameOverlayToWebPageMode
Modos de la página web de la interfaz superpuesta en las partidas.
Nombre | Valor | Descripción |
k_EActivateGameOverlayToWebPageMode_Default | 0 | El 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_Modal | 1 | El 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.
Nombre | Tipo de base | Descripción |
FriendsGroupID_t | int16 | Identificador del grupo de amigos (etiquetas). |
Constantes
Estas son las constantes establecidas para usarse con ISteamFriends.
Nombre | Tipo | Valor | Descripción |
k_cchMaxFriendsGroupName | int | 64 | La longitud máxima que puede tener el nombre de un grupo de amigos (¡sin contar el carácter nulo!). |
k_cchMaxRichPresenceKeyLength | int | 64 | La longitud máxima que puede tener una clave de presencia enriquecida. |
k_cchMaxRichPresenceKeys | int | 20 | La cantidad máxima de claves de presencia enriquecida que pueden establecerse. |
k_cchMaxRichPresenceValueLength | int | 256 | La longitud máxima que puede tener un valor de presencia enriquecida. |
k_cchPersonaNameMax | int | 128 | Número máximo de bytes en UTF-8 en el nombre de perfil (mostrado) de un usuario. |
k_cEnumerateFollowersMax | int | 50 | El número máximo de seguidores que el resultado de la llamada FriendsEnumerateFollowingList_t devuelve a la vez. |
k_cFriendsGroupLimit | int | 100 | Obsoleta. No se usa. |
k_cubChatMetadataMax | uint32 | 8192 | Tamañ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_cwchPersonaNameMax | int | 32 | La cantidad máxima de caracteres UTF-16 en el nombre de perfil (mostrado) de un usuario. |
k_FriendsGroupID_Invalid | FriendsGroupID_t | -1 | Identificador no válido de grupo de amigos. |
STEAMFRIENDS_INTERFACE_VERSION | const 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.
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é"
}
}
}