Документация Steamworks
Интерфейс ISteamFriends
Интерфейс для доступа к информации об отдельных пользователях и взаимодействия с оверлеем.

Функции-члены

Функции-члены ISteamFriends вызываются с помощью глобальной функции доступа SteamFriends().

ActivateGameOverlay

void ActivateGameOverlay( const char *pchDialog );
НазваниеТипОписание
pchDialogconst char *Диалоговое окно, которое необходимо открыть. Допустимые варианты: "friends", "community", "players", "settings", "officialgamegroup", "stats", "achievements".

Открывает указанное диалоговое окно оверлея.

Эквивалент вызова ActivateGameOverlayToUser со steamID равным ISteamUser::GetSteamID.

Пример:
SteamFriends()->ActivateGameOverlay( "friends" );

ActivateGameOverlayInviteDialog

void ActivateGameOverlayInviteDialog( CSteamID steamIDLobby );
НазваниеТипОписание
steamIDLobbyCSteamIDSteamID лобби, в которое будут приглашены выбранные пользователи.

Открывает окно приглашения в оверлее. Приглашения, отправленные в данном окне, будут относиться к указанному лобби.

ActivateGameOverlayToStore

void ActivateGameOverlayToStore( AppId_t nAppID, EOverlayToStoreFlag eFlag );
НазваниеТипОписание
nAppIDAppId_tAppID, страницу в магазине которого необходимо показать.
eFlagEOverlayToStoreFlagФлаги, изменяющие поведение страницы, когда она открывается.

Открывает страницу указанного приложения в магазине Steam в оверлее.

При использовании k_uAppIdInvalid пользователь увидит главную страницу магазина Steam.

ActivateGameOverlayToUser

void ActivateGameOverlayToUser( const char *pchDialog, CSteamID steamID );
НазваниеТипОписание
pchDialogconst char *Диалоговое окно, которое необходимо открыть.
steamIDCSteamIDSteamID контекста, в котором открывается диалог.

Открывает указанное диалоговое окно оверлея.

Допустимые варианты pchDialog таковы:
  • "steamid" — открывает профиль указанного пользователя или указанную группу в веб-браузере оверлея.
  • "chat" — открывает окно чата для указанного пользователя, либо он присоединяется к групповому чату.
  • "jointrade" — открывает окно сессии системы обмена Steam, которая была начата с помощью ISteamEconomy/StartTrade.
  • "stats" — открывает статистику указанного пользователя в веб-браузере оверлея.
  • "achievements" — открывает достижения указанного пользователя в веб-браузере оверлея.
  • "friendadd" — открывает маленькое окно оверлея, где пользователь может добавить целевого пользователя в друзья.
  • "friendremove" — открывает маленькое окно оверлея, где пользователь может удалить целевого пользователя из друзей.
  • "friendrequestaccept" — открывает маленькое окно оверлея, где пользователь может принять приглашение в друзья.
  • "friendrequestignore" — открывает маленькое окно оверлея, где пользователь может проигнорировать приглашение в друзья.

ActivateGameOverlayToWebPage

void ActivateGameOverlayToWebPage( const char *pchURL );
НазваниеТипОписание
pchURLconst char *Веб-страница, которую необходимо открыть (полный адрес должен включать протокол, к примеру, "http://www.steampowered.com").
eModeEActivateGameOverlayToWebPageModeMode for the web page. Defaults to k_EActivateGameOverlayToWebPageMode_Default

Открывает указанную ссылку в веб-браузере оверлея.

ClearRichPresence

void ClearRichPresence();
Удаляет пары ключ-значение расширенного статуса текущего пользователя.

CloseClanChatWindowInSteam

bool CloseClanChatWindowInSteam( CSteamID steamIDClanChat );
НазваниеТипОписание
steamIDClanChatCSteamIDSteamID группового чата, который необходимо закрыть.

Закрывает указанный групповой чат в интерфейсе Steam.

Возвращает: bool
true, если пользователь покинул групповой чат Steam.
false, если пользователь не находится в указанном групповом чате Steam.

См. также: IsClanChatWindowOpenInSteam, OpenClanChatWindowInSteam

DownloadClanActivityCounts

SteamAPICall_t DownloadClanActivityCounts( CSteamID *psteamIDClans, int cClansToRequest );
НазваниеТипОписание
psteamIDClansCSteamID *Список групп Steam, для которых необходимо получить обновлённые данные.
cClansToRequestintЭто ОБЯЗАТЕЛЬНО должно быть число групп, указанных в psteamIDClans.

Обновить данные об активности группы Steam, либо получить данные групп, отличных от той, в которой состоит пользователь.

После получения обратного вызова вы можете использовать GetClanActivityCounts для получения обновлённой информации о числе пользователей.

Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова DownloadClanActivityCountsResult_t.

EnumerateFollowingList

SteamAPICall_t EnumerateFollowingList( uint32 unStartIndex );
НазваниеТипОписание
unStartIndexuint32Индекс, с которого необходимо начать получать список пользователей, подписчиком которых является текущий пользователь. При первом вызове индекс должен быть равен 0.

Получает список пользователей, подписчиком которых является текущий пользователь.

Вы можете подписаться на тех пользователей, которые не являются вашими друзьями. Подписка позволяет вам получать обновления, когда этот пользователь, к примеру, публикует новый контент в Мастерской Steam.

ВНИМАНИЕ: за один вызов возвращается до k_cEnumerateFollowersMax пользователей. Если текущий пользователь подписан на большее число пользователей, необходимо выполнить вызов несколько раз, и unStartIndex приравнять к числу пользователей, которое вы получили на данный момент.
К примеру, если вы получили 50 пользователей, а интересующий вас пользователь подписан на 105 человек, нужно будет повторить вызов с unStartIndex = 50 для получения следующих 50, и затем ещё раз с unStartIndex = 100 для получения остальных.

Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова FriendsEnumerateFollowingList_t.


К примеру:
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( "Getting the list of users that we follow.\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 failed with m_eResult: %d and bIOFailure: %d!", pCallback->m_eResult, bIOFailure ); return; } printf( "FriendsEnumerateFollowingList retrieved %d of %d people that we follow.\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; // Там больше тех, на кого подписан пользователь! Получаем следующий набор! 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 );
НазваниеТипОписание
steamIDClanCSteamIDЭто ОБЯЗАТЕЛЬНО должен быть тот же источник, что и в предыдущем вызове GetClanChatMemberCount!
iUserintИндекс между 0 и GetClanChatMemberCount.

Получает SteamID в групповом чате по указанному индексу.

ВНИМАНИЕ: вы должны вызвать GetClanChatMemberCount до того, как выполнить этот вызов.

Возвращает: CSteamID
Недопустимые индексы возвращают k_steamIDNil.

GetClanActivityCounts

bool GetClanActivityCounts( CSteamID steamIDClan, int *pnOnline, int *pnInGame, int *pnChatting );
НазваниеТипОписание
steamIDClanCSteamIDГруппа Steam, информацию о которой необходимо получить.
pnOnlineint *Возвращает число участников, которые находятся в сети.
pnInGameint *Возвращает число участников, которые находятся в игре (за исключением тех, кто указал свой статус как «Не в сети»).
pnChattingint *Возвращает число участников, которые находятся в групповом чате.

Получает наиболее актуальную информацию о том, что делают пользователи группы Steam.

Эта функция может получить только ту информацию, которая известна локальному клиенту. Чтобы обновить данные или получить данные групп, отличных от той, в которой состоит пользователь, необходимо вызвать DownloadClanActivityCounts.

Возвращает: bool
true, если данные получены.
false, если предоставленный SteamID недопустим, либо у локального клиента нет информации о группе Steam. Все остальные параметры будут равны 0.

GetClanByIndex

CSteamID GetClanByIndex( int iClan );
НазваниеТипОписание
iClanintИндекс между 0 и GetClanCount.

Получает SteamID группы Steam по указанному индексу.

ВНИМАНИЕ: вы должны вызвать GetClanCount до того, как выполнить этот вызов.

Возвращает: CSteamID
Недопустимые индексы возвращают k_steamIDNil.

GetClanChatMemberCount

int GetClanChatMemberCount( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClanCSteamIDГруппа Steam, информацию о количестве участников в чате которой необходимо получить.

Получает число пользователей в чате группы Steam.

ВНИМАНИЕ: итерация по локальному пользователю по большим группам Steam невозможна.

ВНИМАНИЕ: для получения SteamID других пользователей в этом лобби текущий пользователь должен также находиться в нём.

Используется для итерации. После данного вызова используйте GetChatMemberByIndex для получения SteamID всех участников чата.

Возвращает: int
0 если предоставленный SteamID недействителен, либо если данные недоступны локальному пользователю.

GetClanChatMessage

int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, CSteamID *psteamidChatter );
НазваниеТипОписание
steamIDClanChatCSteamIDSteamID группового чата Steam.
iMessageintИндекс сообщения. Это должно быть поле m_iMessageID обратного вызова GameConnectedClanChatMsg_t.
prgchTextvoid *Буфер, куда будет скопировано сообщение. (должен быть достаточно большим, чтобы содержать 2048 символов в кодировке UTF-8. Так что 8192 байтов + 1 для '\0')
cchTextMaxintРазмер prgchText.
peChatEntryTypeEChatEntryType *Возвращает тип сообщения в чате.
psteamidChatterCSteamID *Возвращает SteamID пользователя, отправившего сообщение.

Получает данные сообщения в групповом чате Steam.

Этот вызов выполняется только в ответ на обратный вызов GameConnectedClanChatMsg_t.

Возвращает: int
Число байтов, скопированных в prgchText.
Возвращает 0, а peChatEntryType приравнивается к k_EChatEntryTypeInvalid, если текущий пользователь не находится в указанном групповом чате, либо если предоставленный вiMessage индекс недопустим.

GetClanCount

int GetClanCount();
Получает число групп, в которых состоит текущий пользователь.

Используется для итерации. После данного вызова используйте GetClanByIndex для получения SteamID всех групп Steam.

Возвращает: int
Число групп, в которых состоит пользователь.

К примеру:
void ListSteamGroups() { int nGroups = SteamFriends()->GetClanCount(); printf( "Listing %d Steam Groups\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( "Group %d - ID: %lld - Name: '%s' - Tag: '%s'\n", i, groupSteamID.ConvertToUint64(), szGroupName, szGroupTag ); printf( " - Online: %d, In Game: %d, Chatting: %d\n", nOnline, nInGame, nChatting ); } }

GetClanName

const char * GetClanName( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClanCSteamIDГруппа Steam, название которой необходимо получить.

Получает отображаемое название указанной группы Steam, если оно известно локальному клиенту.

Возвращает: const char *
The Steam group's name in UTF-8 format. Возвращает пустую строку (""), если указанный SteamID недействителен или название неизвестно пользователю.

См. также: DownloadClanActivityCounts

GetClanOfficerByIndex

CSteamID GetClanOfficerByIndex( CSteamID steamIDClan, int iOfficer );
НазваниеТипОписание
steamIDClanCSteamIDЭто ОБЯЗАТЕЛЬНО должна быть так же группа Steam, что и в предыдущем вызове GetClanOfficerCount!
iOfficerintИндекс между 0 и GetClanOfficerCount.

Получает SteamID офицера группы Steam по указанному индексу.

ВНИМАНИЕ: вы должны вызвать GetClanOfficerCount до того, как выполнить этот вызов.

Возвращает: CSteamID
Если steamIDClan или iOfficer недействительны, то k_steamIDNil.

GetClanOfficerCount

int GetClanOfficerCount( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClanCSteamIDГруппа Steam, информацию о количестве офицеров которой необходимо получить.

Получает число офицеров (администраторов и модераторов) в указанной группе Steam.

В подсчёт также включается владелец группы.

Используется для итерации. После данного вызова используйте GetClanOfficerByIndex для получения SteamID офицеров.

ВНИМАНИЕ: вы должны вызвать RequestClanOfficerList, прежде чем получить требуемые данные.

Возвращает: int
Число офицеров группы Steam. Возвращает 0, если steamIDClan недействителен, либо если не был отправлен вызов RequestClanOfficerList.

GetClanOwner

CSteamID GetClanOwner( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClanCSteamIDSteamID группы, для которого необходимо получить владельца.

Получает владельца группы Steam.

ВНИМАНИЕ: вы должны вызвать RequestClanOfficerList, прежде чем получить требуемые данные.

Возвращает: CSteamID
Возвращает k_steamIDNil, если steamIDClan недействителен, либо если не был отправлен вызов RequestClanOfficerList.

GetClanTag

const char * GetClanTag( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClanCSteamIDГруппа Steam, метку которой необходимо получить.

Получает уникальную метку (аббревиатуру) указанной группы Steam, если оно известно локальному клиенту.

Аббревиатура группы — способ идентифицировать группу уникальным образом. Её длина — не более 12 символов. В некоторых играх она отображается рядом с именами участников группы.

Возвращает: const char *
Метка группы Steam в кодировке UTF-8. Возвращает пустую строку (""), если указанный SteamID недействителен или название неизвестно пользователю.

См. также: DownloadClanActivityCounts

GetCoplayFriend

CSteamID GetCoplayFriend( int iCoplayFriend );
НазваниеТипОписание
iCoplayFriendintИндекс между 0 и GetCoplayFriendCount.

Получает SteamID тех, кто недавно играл с данным пользователем, по указанному индексу.

ВНИМАНИЕ: вы должны вызвать GetCoplayFriendCount до того, как выполнить этот вызов.

Возвращает: CSteamID
Недопустимые индексы возвращают k_steamIDNil.

GetCoplayFriendCount

int GetCoplayFriendCount();
Gets the number of players that the current user has recently played with, across all games.

Используется для итерации. После данного вызова используйте GetCoplayFriend для получения SteamID игроков.

Эти игроки ранее отмечены как сыгравшие во время вызова SetPlayedWith.

Возвращает: int
Число пользователей, с которым текущий игрок сыграл недавно.

Пример:
void ListRecentlyPlayedWithList() { int nPlayers = SteamFriends()->GetCoplayFriendCount(); printf( "Listing %d Recently Played with Players\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( "Player %d - ID: %lld - Time: %d - App: %d\n", i, playerSteamID.ConvertToUint64(), iTimeStamp, app ); } }

GetFollowerCount

SteamAPICall_t GetFollowerCount( CSteamID steamID );
НазваниеТипОписание
steamIDCSteamIDПользователь, для которого необходимо получить число подписчиков.

Получает число пользователей, подписавшихся на указанного пользователя.

Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова FriendsGetFollowerCount_t.


К примеру:
class GetFollowerCountExample { public: void GetFollowerCount(); private: void OnFriendsGetFollowerCount( FriendsGetFollowerCount_t *pCallback, bool bIOFailure ); CCallResult< GetFollowerCountExample, FriendsGetFollowerCount_t > m_SteamCallResultFriendsGetFollowerCount; }; void GetFollowerCountExample::GetFollowerCount() { printf( "Getting the number of users who follow us.\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 );
НазваниеТипОписание
iFriendintИндекс между 0 и GetFriendCount.
iFriendFlagsintОбъединение множеств (бинарное «или») одного или нескольких EFriendFlags. Это обязательно должно быть то же значение, что и в предыдущем вызове GetFriendCount.

Получает SteamID пользователя по указанному индексу.

ВНИМАНИЕ: вы должны вызвать GetFriendCount до того, как выполнить этот вызов.

Возвращает: CSteamID
Недопустимые индексы возвращают k_steamIDNil.

GetFriendCoplayGame

AppId_t GetFriendCoplayGame( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID пользователя из списка «недавно играли вместе», для которого необходимо получить игру.

Получает AppID игры, в которою пользователь играл с кем-то из списка «недавно играли вместе».

Возвращает: AppId_t
Если SteamID не входит в список «недавно играли вместе», возвращается k_uAppIdInvalid.

GetFriendCoplayTime

int GetFriendCoplayTime( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID пользователя из списка «недавно играли вместе», для которого необходимо получить временную метку.

Получает время, когда пользователь играл с кем-то из списка «недавно играли вместе».

Возвращает: int
Время предоставляется в формате UNIX-времени (секунды с 1 января 1970 года).
Если SteamID не входит в список «недавно играли вместе», возвращается 0.

GetFriendCount

int GetFriendCount( int iFriendFlags );
НазваниеТипОписание
iFriendFlagsintОбъединение множеств (бинарное «или») одного или нескольких EFriendFlags.

Получает число пользователей, удовлетворяющих указанным критериям, о которых известно клиенту (друзья, заблокированные, пользователи на том же сервере и т.п.).

Используется для поиска по всем пользователям с помощью вызова функции GetFriendByIndex для получения SteamID каждого пользователя.

Возвращает: int
Число пользователей, удовлетворяющих указанным критериям.

ВНИМАНИЕ: Возвращает -1, если текущий пользователь не залогинен.

Пример:
int nFriends = SteamFriends()->GetFriendCount( k_EFriendFlagImmediate ); if ( nFriends == -1) { printf( "GetFriendCount returned -1, the current user is not logged in.\n" ); // Всегда рекомендуется сбрасывать до 0 в случае, если необходимо совершить распределение // массив с данным значением или цикл, не принимающий во внимание -1. nFriends = 0; } for ( int i = 0; i < nFriends; ++i ) { CSteamID friendSteamID = SteamFriends()->GetFriendByIndex( i, k_EFriendFlagImmediate ); const char *friendName = SteamFriends()->GetFriendPersonaName( friendSteamID ); printf( "Friend %d: %lld - %s\n", i, friendSteamID.ConvertToUint64(), friendName ); }

GetFriendCountFromSource

int GetFriendCountFromSource( CSteamID steamIDSource );
НазваниеТипОписание
steamIDSourceCSteamIDГруппа Steam, чат, лобби или игровой сервер, для которого необходимо посчитать пользователей.

Получает число пользователей в источнике (группе, чате, лобби или на игровом сервере).

ВНИМАНИЕ: итерация по локальному пользователю по большим группам Steam невозможна.

ВНИМАНИЕ: если вы получаете число участников лобби, вместо данной функции вам необходимо использовать ISteamMatchmaking::GetNumLobbyMembers.

Используется для итерации. После данного вызова используйте GetFriendFromSourceByIndex для получения SteamID всех участников источника.

Возвращает: int
0 если предоставленный SteamID недействителен, либо если данные недоступны локальному пользователю.

GetFriendFromSourceByIndex

CSteamID GetFriendFromSourceByIndex( CSteamID steamIDSource, int iFriend );
НазваниеТипОписание
steamIDSourceCSteamIDЭто ОБЯЗАТЕЛЬНО должен быть тот же источник, что и в предыдущем вызове GetFriendCountFromSource!
iFriendintИндекс между 0 и GetFriendCountFromSource.

Получает SteamID из источника (группы, чата, лобби или с игрового сервера) по указанному индексу.

ВНИМАНИЕ: вы должны вызвать GetFriendCountFromSource до того, как выполнить этот вызов.

Возвращает: CSteamID
Недопустимые индексы возвращают k_steamIDNil.

GetFriendGamePlayed

bool GetFriendGamePlayed( CSteamID steamIDFriend, FriendGameInfo_t *pFriendGameInfo );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID другого пользователя.
pFriendGameInfoFriendGameInfo_t *Сюда копируется информация об игре, если пользователь играет.

Проверяет, играет ли указанный пользователь в игру, и если да, получает информацию о ней.

Возвращает: bool
true, если пользователь — друг, и играет в игру. В противном случае false.

GetFriendMessage

int GetFriendMessage( CSteamID steamIDFriend, int iMessageID, void *pvData, int cubData, EChatEntryType *peChatEntryType );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID друга, который отправил данное сообщение.
iMessageIDintИндекс сообщения. Это должно быть поле m_iMessageID обратного вызова GameConnectedFriendChatMsg_t.
pvDatavoid *Буфер, куда будет скопировано сообщение.
cubDataintРазмер pvData.
peChatEntryTypeEChatEntryType *Возвращает тип сообщения в чате.

Получает данные сообщения от друга в Steam.

Этот вызов выполняется только в ответ на обратный вызов GameConnectedFriendChatMsg_t.

Возвращает: int
Число байтов, скопированных в pvData.
Возвращает 0, а peChatEntryType приравнивается к k_EChatEntryTypeInvalid, если текущий пользователь ограничен в пользовании чатами, если указанный SteamID не является другом, либо если предоставленный в iMessageID индекс недопустим.

GetFriendPersonaName

const char * GetFriendPersonaName( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID другого пользователя.

Получает имя профиля указанного пользователя.

Оно известно текущему пользователю, только если другой пользователь находится в списке его друзей, на том же игровом сервере, в чате или лобби, либо в небольшой группе Steam с локальным пользователем.

ВНИМАНИЕ: во время первого входа в лобби, чат или на игровой сервер текущему пользователю автоматически не будут известны имена профилей других пользователей. Эта информация будет получена асинхронно с помощью обратных вызовов PersonaStateChange_t.

Для получения имени профиля текущего пользователя используйте GetPersonaName.

Возвращает: const char *
Имя профиля текущего пользователя в кодировке UTF-8. Совершенно точно не будет равно NULL.

Возвращает пустую строку ("") или "[unknown]", если указанный SteamID недействителен или неизвестен вызывающему.

GetFriendPersonaNameHistory

const char * GetFriendPersonaNameHistory( CSteamID steamIDFriend, int iPersonaName );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID другого пользователя.
iPersonaNameintИндекс прежнего имени профиля пользователя, которое необходимо получить. 0 — текущее имя профиля, 1 — то, которое было перед текущим и т. д.

Получает одно из предыдущих имён профиля пользователя.

Работает только для тех имён профиля, которые текущий пользователь видел на локальном компьютере.

Возвращает: const char *
Одно из предыдущих имён профиля по указанному индексу. Возвращает пустую строку, когда дальнейших имён нет.

GetFriendPersonaState

EPersonaState GetFriendPersonaState( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID другого пользователя.

Получает текущее состояние указанного пользователя.

Оно известно текущему пользователю, только если другой пользователь находится в списке его друзей, на том же игровом сервере, в чате или лобби, либо в небольшой группе Steam с локальным пользователем.

Для получения состояния текущего пользователя используйте GetPersonaState.

Возвращает: EPersonaState
Получает текущее состояние друга указанного пользователя. (в сети, не в сети, в игре и т. д.).

GetFriendRelationship

EFriendRelationship GetFriendRelationship( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID другого пользователя.

Получает отношение к указанному пользователю.

Возвращает: EFriendRelationship
Как пользователи относятся друг к другу.

GetFriendRichPresence

const char * GetFriendRichPresence( CSteamID steamIDFriend, const char *pchKey );
НазваниеТипОписание
steamIDFriendCSteamIDДруг, для которого необходимо получить расширенный статус.
pchKeyconst char *Запрашиваемый ключ расширенного статуса.

Получает значение расширенного статуса указанного друга.

Возвращает: const char *
Возвращает пустую строку (""), если указанный ключ не задан.

См. также: RequestFriendRichPresence, SetRichPresence

GetFriendRichPresenceKeyByIndex

const char * GetFriendRichPresenceKeyByIndex( CSteamID steamIDFriend, int iKey );
НазваниеТипОписание
steamIDFriendCSteamIDЭто должен быть тот же самый пользователь, который указан в предыдущем вызове GetFriendRichPresenceKeyCount!
iKeyintИндекс между 0 и GetFriendRichPresenceKeyCount.



Возвращает: const char *
Возвращает пустую строку (""), если индекс недействителен, либо для указанного пользователя нет данных о расширенном статусе.

GetFriendRichPresenceKeyCount

int GetFriendRichPresenceKeyCount( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID пользователя, для которого необходимо подсчитать ключи расширенного статуса.

Получает число ключей расширенного статуса, заданных для указанного пользователя.

Используется для итерации. После данного вызова используйте GetFriendRichPresenceKeyByIndex для ключей расширенного статуса.

Обычно используется только для поиска и устранения ошибок.

Возвращает: int
Возвращает 0, если для указанного пользователя нет информации о расширенном статусе.

GetFriendsGroupCount

int GetFriendsGroupCount();
Получает число групп друзей (меток), созданных пользователем.

Используется для итерации. После данного вызова используйте GetFriendsGroupIDByIndex для получения ID каждой группы друзей.

Не путайте эти группы с группами Steam. Последние могут быть получены при вызове GetClanCount.

Возвращает: int
Число групп друзей (меток), созданных текущим пользователем.

Пример:
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( "Group %d - ID: %d - Name: '%s' - Members: %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( " - Member %d - ID: %lld\n", j, friends[j].ConvertToUint64() ); } } }

GetFriendsGroupIDByIndex

FriendsGroupID_t GetFriendsGroupIDByIndex( int iFG );
НазваниеТипОписание
iFGintИндекс между 0 и GetFriendsGroupCount.

Получает ID группы друзей по указанному индексу.

ВНИМАНИЕ: вы должны вызвать GetFriendsGroupCount до того, как выполнить этот вызов.

Возвращает: FriendsGroupID_t
Недопустимые индексы возвращают k_FriendsGroupID_Invalid.

GetFriendsGroupMembersCount

int GetFriendsGroupMembersCount( FriendsGroupID_t friendsGroupID );
НазваниеТипОписание
friendsGroupIDFriendsGroupID_tID группы друзей, в которой подсчитать друзей.

Получает число друзей в данной группе друзей.

Этот вызов необходимо сделать до получения списка друзей с помощью GetFriendsGroupMembersList.

Возвращает: int
Число друзей в указанной группе друзей.

См. также: GetFriendsGroupCount

GetFriendsGroupMembersList

void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, CSteamID *pOutSteamIDMembers, int nMembersCount );
НазваниеТипОписание
friendsGroupIDFriendsGroupID_tID группы друзей, для которой необходимо получить список друзей.
pOutSteamIDMembersCSteamID *Возвращает SteamID друзей, помещая их в данный массив.
nMembersCountintДолжно совпадать с числом элементов, выделенных pOutSteamIDMembers, и значением, возвращаемым GetFriendsGroupMembersCount.

Получает число друзей в данной группе друзей.

Если друзей меньше, чем запрошено, их позиции будут заполнены недействительными SteamID.

Вы должны вызвать GetFriendsGroupMembersCount, прежде чем выполнить этот вызов, чтобы задать подходящий размер массива pOutSteamIDMembers!

См. также: GetFriendsGroupCount

GetFriendsGroupName

const char * GetFriendsGroupName( FriendsGroupID_t friendsGroupID );
НазваниеТипОписание
friendsGroupIDFriendsGroupID_tID группы друзей, для которой необходимо получить название.

Получает название указанной группы друзей.

Возвращает: const char *
Название группы друзей в кодировке UTF-8. Возвращает NULL, если ID группы недействителен.

См. также: GetFriendsGroupCount

GetFriendSteamLevel

int GetFriendSteamLevel( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID пользователя.

Получает уровень Steam указанного пользователя.

Вы можете использовать SteamID локального пользователя (ISteamUser::GetSteamID), чтобы получить его уровень.

Возвращает: int
Уровень Steam, если он доступен.

Если уровень Steam указанного пользователя сразу не доступен, тогда возвращается 0, а также устанавливается очерёдность на загрузку значения с серверов Steam. Когда оно будет загружено, будет отправлен обратный вызов PersonaStateChange_t с флагами m_nChangeFlags, включающими k_EPersonaChangeSteamLevel.

GetLargeFriendAvatar

int GetLargeFriendAvatar( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamID

Получает дескриптор крупного аватара указанного пользователя (128 на 128 пикселей).

You can pass in ISteamUser::GetSteamID to get the current user's avatar.

ВНИМАНИЕ: это работает только для пользователей, которые известны локальному пользователю. Ему автоматически известны его друзья, пользователи из списка лидеров, которых он запросил, или люди того же источника, где находится он сам (группа Steam, чат, лобби или игровой сервер). Если они неизвестны, вы должны вызвать RequestUserInformation, чтобы кэшировать аватар локально.

Возвращает: int
Активирует обратный вызов AvatarImageLoaded_t.
Дескриптор изображения Steam, используемый с ISteamUtils::GetImageSize и ISteamUtils::GetImageRGBA.
Возвращает 0, если у пользователя не задан аватар.
Возвращает -1, если данные аватара пока не загружены, и отправляет запрос на загрузку. В этом случае дождитесь обратного вызова AvatarImageLoaded_t и отправьте данный вызов заново.

См. также: GetMediumFriendAvatar, GetSmallFriendAvatar

GetMediumFriendAvatar

int GetMediumFriendAvatar( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamID

Получает дескриптор среднего аватара указанного пользователя (64 на 64 пикселей).

You can pass in ISteamUser::GetSteamID to get the current user's avatar.

ВНИМАНИЕ: это работает только для пользователей, которые известны локальному пользователю. Ему автоматически известны его друзья, пользователи из списка лидеров, которых он запросил, или люди того же источника, где находится он сам (группа Steam, чат, лобби или игровой сервер). Если они неизвестны, вы должны вызвать RequestUserInformation, чтобы кэшировать аватар локально.

Возвращает: int
Дескриптор изображения Steam, используемый с ISteamUtils::GetImageSize и ISteamUtils::GetImageRGBA.
Возвращает 0, если у пользователя не задан аватар.

См. также: GetLargeFriendAvatar, GetSmallFriendAvatar

GetPersonaName

const char * GetPersonaName();
Получает имя профиля текущего пользователя.

This is the same name that is displayed the user's community profile page.

Для получения имён профилей других пользователей используйте GetFriendPersonaName.

Возвращает: const char *
Имя профиля текущего пользователя в кодировке UTF-8. Совершенно точно не будет равно NULL.

GetPersonaState

EPersonaState GetPersonaState();
Получает состояние текущего пользователя.

Для получения состояний других пользователей используйте GetFriendPersonaState.

Возвращает: EPersonaState
Состояние текущего пользователя. (в сети, не в сети, в игре и т. д.).

GetPlayerNickname

const char * GetPlayerNickname( CSteamID steamIDPlayer );
НазваниеТипОписание
steamIDPlayerCSteamIDSteamID пользователя.

Получает никнейм, который текущий пользователь установил для указанного пользователя.

Возвращает: const char *
NULL если ник для того пользователя не задан.

GetSmallFriendAvatar

int GetSmallFriendAvatar( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamID

Получает дескриптор маленького аватара указанного пользователя (32 на 32 пикселей).

You can pass in ISteamUser::GetSteamID to get the current user's avatar.

ВНИМАНИЕ: это работает только для пользователей, которые известны локальному пользователю. Ему автоматически известны его друзья, пользователи из списка лидеров, которых он запросил, или люди того же источника, где находится он сам (группа Steam, чат, лобби или игровой сервер). Если они неизвестны, вы должны вызвать RequestUserInformation, чтобы кэшировать аватар локально.

Возвращает: int
Дескриптор изображения Steam, используемый с ISteamUtils::GetImageSize и ISteamUtils::GetImageRGBA.
Возвращает 0, если у пользователя не задан аватар.

См. также: GetLargeFriendAvatar, GetMediumFriendAvatar

GetUserRestrictions

uint32 GetUserRestrictions();
Проверяет, есть ли у текущего пользователя ограничения на использование чата.

Если да, пользователь не может получать и отправлять сообщения в голосовых и обычных чатах, а также не может видеть пользовательские аватары.
Кроме того, он не может добавлять друзей и вступать в группы.
Ограниченные пользователи по-прежнему могут быть в сети и отправлять и получать приглашения в игру.

Возвращает: uint32
См.: EUserRestriction

HasFriend

bool HasFriend( CSteamID steamIDFriend, int iFriendFlags );
НазваниеТипОписание
steamIDFriendCSteamIDПользователь Steam, для которого необходимо проверить статус друга.
iFriendFlagsintОбъединение множеств (бинарное «или») одного или нескольких EFriendFlags.

Проверяет, отвечает ли пользователь указанным критериям. (друзья, заблокированные, пользователи на том же сервере и т.п.).

Возвращает: bool
true, если пользователь отвечает критериям, указанным в iFriendFlags, в противном случае false.

InviteUserToGame

bool InviteUserToGame( CSteamID steamIDFriend, const char *pchConnectString );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID друга, которого необходимо пригласить.
pchConnectStringconst char *Строка, по которой друг узнает, как присоединиться к игре (к примеру, IP игрового сервера). Не может быть длиннее, чем значение, указанное в k_cchMaxRichPresenceValueLength.

Приглашает друга или участника клана в текущую игру при помощи специальной строки приглашения.

Если целевой пользователь принимает приглашение, тогда pchConnectString добавляется к командной строке при запуске игры.
Если игра у него уже запущена, тогда он получит обратный вызов GameRichPresenceJoinRequested_t со строкой приглашения.

Возвращает: bool
Активирует обратный вызов GameRichPresenceJoinRequested_t.
true, если приглашение отправлено.
false при следующих условиях:
  • В steamIDFriend указан недействительный SteamID.
  • В steamIDFriendуказан SteamID, который не является другом текущего пользователя или не находится с ним в одной группе Steam.
  • Указанное в pchConnectString значение было слишком длинным.

См. также: ISteamMatchmaking::InviteUserToLobby

IsClanChatAdmin

bool IsClanChatAdmin( CSteamID steamIDClanChat, CSteamID steamIDUser );
НазваниеТипОписание
steamIDClanChatCSteamIDSteamID группового чата Steam.
steamIDUserCSteamIDSteamID пользователя, для которого необходимо проверить, является ли он администратором.

Проверяет, является ли пользователь администратором группового чата.

Возвращает: bool
true, если указанный пользователь является администратором.
false, если пользователь не является администратором, либо текущий пользователь не находится в указанном чате, либо указанный пользователь не находится в чате.

IsClanPublic

bool IsClanPublic( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClan CSteamIDSteamID группы Steam.

Проверяет. общедоступна ли группа Steam.

Возвращает: bool
true, если указанная группа общедоступна
false, если указанная группа имеет ограниченный доступ

IsClanOfficialGameGroup

bool IsClanOfficialGameGroup( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClan CSteamIDSteamID группы Steam.

Проверяет, является ли группа Steam официальной группой игры или центра сообщества.

Возвращает: bool
true, если указанная группа Steam является официальной группой игры или центра сообщества
false, если указанная группа Steam не является официальной группой игры или центра сообщества

IsClanChatWindowOpenInSteam

bool IsClanChatWindowOpenInSteam( CSteamID steamIDClanChat );
НазваниеТипОписание
steamIDClanChatCSteamIDSteamID группового чата, который необходимо проверить.

Проверяет, открыт ли групповой чат в пользовательском интерфейсе Steam.

Возвращает: bool
true, если определённый чат группы Steam открыт; в противном случае false.
Также возвращает false, если определённый чат группы Steam неизвестен.

См. также: OpenClanChatWindowInSteam, CloseClanChatWindowInSteam

IsFollowing

SteamAPICall_t IsFollowing( CSteamID steamID );
НазваниеТипОписание
steamIDCSteamIDSteamID, который необходимо проверить.

Проверяет, подписан ли текущий пользователь на указанного пользователя.

Возвращаемые значения: SteamAPICall_t, который необходимо использовать с результатом вызова FriendsIsFollowing_t.


Пример:
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 returned -1, the current user is not logged in.\n" ); m_nFriends = 0; } m_iFriendIndex = 0; } void CIsFollowingExample::CheckWhichFriendsWeAreFollowing() { if ( m_iFriendIndex < m_nFriends ) { CSteamID steamID = SteamFriends()->GetFriendByIndex( m_iFriendIndex, k_EFriendFlagImmediate ); printf( "Checking if we follow %lld (%d of %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 failed for %lld with m_eResult: %d and bIOFailure: %d!\n", pCallback->m_steamID.ConvertToUint64(), pCallback->m_eResult, bIOFailure ); return; } if ( pCallback->m_bIsFollowing ) printf( "We are following %lld\n", pCallback->m_steamID.ConvertToUint64() ); // Рекурсивно проверяем весь список друзей. m_iFriendIndex++; CheckWhichFriendsWeAreFollowing(); }

IsUserInSource

bool IsUserInSource( CSteamID steamIDUser, CSteamID steamIDSource );
НазваниеТипОписание
steamIDUserCSteamIDПроверяемый на нахождение в источнике пользователь.
steamIDSourceCSteamIDПроверяемый источник.

Проверяет, находится ли указанный пользователь в источнике (группе, чате, лобби или на игровом сервере).

Возвращает: bool
true, если локальному пользователю известно, что steamIDUser является участником или находится в steamIDSource. В противном случае false.

JoinClanChatRoom

SteamAPICall_t JoinClanChatRoom( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClanCSteamIDSteamID группы Steam, к которой присоединиться

Позволяет пользователю присоединиться к чату группы (клана) Steam прямо в игре.

Поведение несколько сложное, поскольку пользователь пользователь может быть, а может и не быть в чате группы — как извне игры, так и в оверлее.

Вы можете использовать ActivateGameOverlayToUser для открытия внутриигровой оверлей-версии чата.

Если вы присоединились к чату группы Steam, ожидайте следующих обратных вызовов:

Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова JoinClanChatRoomCompletionResult_t.
Активирует обратный вызов GameConnectedChatJoin_t.
Активирует обратный вызов GameConnectedClanChatMsg_t.


См. также: LeaveClanChatRoom, GetClanChatMemberCount, GetChatMemberByIndex, SendClanChatMessage, GetClanChatMessage, IsClanChatAdmin, IsClanChatWindowOpenInSteam

LeaveClanChatRoom

bool LeaveClanChatRoom( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClanCSteamIDSteamID группового чата Steam, из которого необходимо выйти.

Пользователь выходит из чата группы, в который он ранее вошёл с помощью JoinClanChatRoom.

Возвращает: bool
Активирует обратный вызов GameConnectedChatLeave_t.
true, если пользователь находится в указанном чате, в противном случае false.

OpenClanChatWindowInSteam

bool OpenClanChatWindowInSteam( CSteamID steamIDClanChat );
НазваниеТипОписание
steamIDClanChatCSteamIDSteamID группового чата, который необходимо открыть.

Открывает указанный групповой чат в интерфейсе Steam.

Возвращает: bool
true, если пользователь вошёл в групповой чат Steam.
false при одной из следующих ситуаций:
  • Указанный групповой чат не существует или у пользователя нет к нему доступа.
  • На текущего пользователя наложены ограничения в связи с большим числом запросов.
  • На текущего пользователя наложены ограничения на использование чата.

См. также: IsClanChatWindowOpenInSteam, CloseClanChatWindowInSteam

ReplyToFriendMessage

bool ReplyToFriendMessage( CSteamID steamIDFriend, const char *pchMsgToSend );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID друга, которому необходимо отправить сообщение.
pchMsgToSendconst char *Отправляемое сообщение в формате UTF-8.

Отправляет сообщение другу в Steam.

Возвращает: bool
true, если сообщение отправлено.
false, если на текущего пользователя наложены ограничения в связи с большим числом запросов или на использование чата.

RequestClanOfficerList

SteamAPICall_t RequestClanOfficerList( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClanCSteamIDГруппа Steam, список офицеров которой необходимо получить.

Запрашивает информацию об офицерах (администраторах и модераторах) групп Steam.

ВНИМАНИЕ: вы можете спрашивать только про группы, в которых состоит пользователь.
ВНИМАНИЕ: этот вызов не загружает аватары офицеров автоматически. Если аватары офицеров недоступны, вызовите RequestUserInformation для загрузки.

Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова ClanOfficerListResponse_t.


См. также: GetClanOwner, GetClanOfficerCount, GetClanOfficerByIndex

К примеру:
class CClanOfficerListExample { public: void RequestOfficerList(); private: void OnClanOfficerListResponse( ClanOfficerListResponse_t *pCallback, bool bIOFailure ); CCallResult< CClanOfficerListExample, ClanOfficerListResponse_t > m_SteamCallResultClanOfficerListResponse; }; void CClanOfficerListExample::RequestOfficerList() { printf( "Requesting the Clan Officer List\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( "Got a ClanOfficerListResponse for: %s (%lld)\n", SteamFriends()->GetClanName( pCallback->m_steamIDClan ), pCallback->m_steamIDClan.ConvertToUint64() ); CSteamID ownerSteamID = SteamFriends()->GetClanOwner(pCallback->m_steamIDClan); printf( " The owner of the clan is: %s (%lld) and there are %d officers.\n", SteamFriends()->GetFriendPersonaName( ownerSteamID ), ownerSteamID.ConvertToUint64(), pCallback->m_cOfficers ); int nOfficers = SteamFriends()->GetClanOfficerCount( pCallback->m_steamIDClan ); printf( " GetClanOfficerCount reports: %d", nOfficers ); for ( int i = 0; i < nOfficers; ++i ) { CSteamID officerSteamID = SteamFriends()->GetClanOfficerByIndex( pCallback->m_steamIDClan, i ); printf( " Officer %d: %s (%lld)\n", i, SteamFriends()->GetFriendPersonaName(officerSteamID), officerSteamID.ConvertToUint64() ); } }

RequestFriendRichPresence

void RequestFriendRichPresence( CSteamID steamIDFriend );
НазваниеТипОписание
steamIDFriendCSteamIDSteamID пользователя, для которого необходимо запросить расширенный статус.

Запрашивает данные расширенного статуса указанного пользователя.

Используется для получения информации о расширенном статусе пользователя, которые не является другом текущего пользователя, к примеру, кого-то в текущем лобби или на игровом сервере.

Число запросов к этой функции ограничено, если вы будете вызывать её слишком часто для того или иного пользователя, она немедленно вернёт обратный вызов, не запросив новые данные с сервера.

Возвращает: void
Активирует обратный вызов FriendRichPresenceUpdate_t.


См. также: GetFriendRichPresence, SetRichPresence

RequestUserInformation

bool RequestUserInformation( CSteamID steamIDUser, bool bRequireNameOnly );
НазваниеТипОписание
steamIDUserCSteamIDПользователь, для которого необходимо запросить информацию.
bRequireNameOnlyboolПолучить только имя профиля (true)? Или и имя, и аватар (false)?

Запрашивает имя профиля и опционально аватар указанного пользователя.

ВНИМАНИЕ: аватары загружаются медленно и забивают локальный кэш, поэтому если аватары вам не нужны, не запрашивайте их.

Возвращаемые значения: bool
Активирует обратный вызов PersonaStateChange_t.
true означает, что данные запрошены и после их получения будет отправлен обратный вызов PersonaStateChange_t.
false означает, что у нас уже есть вся необходимая информация об этом пользователе, и можно вызывать функции, которые используют её.

SendClanChatMessage

bool SendClanChatMessage( CSteamID steamIDClanChat, const char *pchText );
НазваниеТипОписание
steamIDClanChatCSteamIDSteamID группового чата, в который необходимо отправить сообщение.
pchTextconst char *Отправляемое сообщение в формате UTF-8. Длина: до 2048 знаков.

Отправляет сообщение в чат группы Steam.

Возвращает: bool
true, если сообщение отправлено.
false возвращается в одной из следующих ситуаций:
  • Текущий пользователь не находится в указанном чате группы.
  • Текущий пользователь не подключен к Steam.
  • На текущего пользователя наложены ограничения в связи с большим числом запросов.
  • На текущего пользователя наложены ограничения на использование чата.
  • Размер сообщения в pchText превышает 2048 знаков.

SetInGameVoiceSpeaking

void SetInGameVoiceSpeaking( CSteamID steamIDUser, bool bSpeaking );
НазваниеТипОписание
steamIDUserCSteamIDНе используется.
bSpeakingboolПользователь начал говорить в игре (true)? Или закончил говорить в игре (false)?

Сообщает Steam, что пользователь в данный момент использует голосовой чат в игре.

Подавляет микрофон во время всех голосовых сообщений в интерфейсе Steam.

SetListenForFriendsMessages

bool SetListenForFriendsMessages( bool bInterceptEnabled );
НазваниеТипОписание
bInterceptEnabledboolВключить (true) или выключить (false) перехват сообщений друзей?

Слушает сообщения друзей Steam.

Вы можете показать эти чаты в игре. For example, the chat system in Dota 2.

After enabling this you will receive GameConnectedFriendChatMsg_t callbacks whenever the user receives a chat message. Вы можете получить текст сообщения из этого обратного вызова с помощью GetFriendMessage. Вы можете отправлять сообщения с помощью ReplyToFriendMessage.

Возвращает: bool
Активирует обратный вызов GameConnectedFriendChatMsg_t.
Всегда возвращает true.

SetPersonaName

SteamAPICall_t SetPersonaName( const char *pchPersonaName );
НазваниеТипОписание
pchPersonaNameconst char *Новое имя профиля пользователя. Не может быть длиннее, чем k_cchPersonaNameMax (в байтах).

Задаёт имя профиля текущего пользователя, сохраняет его на сервере и отправляет изменения всем друзьям, которые находятся в сети.

Локально изменения происходят немедленно и отправляется подразумевающий успех обратный вызов PersonaStateChange_t.

Если сменить имя на сервере не удаётся, тогда будет отправлен дополнительный обратный вызов PersonaStateChange_t для возвращения имени. Кроме того, в результате вызова будет доступен итоговый результат.

Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова SetPersonaNameResponse_t.

SetPlayedWith

void SetPlayedWith( CSteamID steamIDUserPlayedWith );
НазваниеТипОписание
steamIDUserPlayedWithCSteamIDДругой пользователь, с которым мы поиграли.

Отмечает целевого пользователя как того, с кем «недавно играли вместе».

ВНИМАНИЕ: текущий пользователь должен быть в игре с другим игроком, чтобы связка сработала.

Просмотреть игроков, с кем вы недавно играли вместе можно здесь и в оверлее.

SetRichPresence

bool SetRichPresence( const char *pchKey, const char *pchValue );
НазваниеТипОписание
pchKeyconst char *Задаваемый ключ расширенного статуса. Не может быть длиннее, чем значение, указанное в k_cchMaxRichPresenceKeyLength.
pchValueconst char *Задаваемое значение расширенного статуса для pchKey. Не может быть длиннее, чем значение, указанное в k_cchMaxRichPresenceValueLength.
Если этот параметр приравнять к пустой строке ("") или NULL, ранее заданный ключ будет удалён.

Задаёт пару ключ-значение расширенного статуса текущего пользователя, который автоматически отправляется всем друзьям, играющим в ту же игру.

У каждого пользователя может быть до 20 ключей, как это определено в k_cchMaxRichPresenceKeys.

Существует два особых ключа, используемых для просмотра игр и присоединения к ним:
  • "status" — строка в формате UTF-8, которая появится в диалоговом окне «Об игре» в списке друзей.
  • "connect" — строка в формате UTF-8, которая содержит команду для присоединения друга к игре для командной строки. Если она задана, будет активна кнопка «Присоединиться к игре» при нажатии правой кнопки мыши по другу в списке друзей, а также из профиля в сообществе Steam. Be sure your app implements ISteamApps::GetLaunchCommandLine so you can disable the popup warning when launched via a command line.

Есть три дополнительных особых ключа, используемых в новом чате Steam:
  • "steam_display" - даёт название строке локализации расширенного статуса, которое будет указано в выбранном языке пользователя в интерфейсе клиента Steam. См. раздел о локализации расширенных статусов для дополнительной информации, включающей ссылку на страницу тестирования данных расширенных статусов. Если steam_display не установлен на действительную метку локализации, расширенные статусы не будут отображаться в клиенте Steam.
  • "steam_player_group". Если установлен, сообщает клиенту Steam, что пользователь состоит в определённой группе. Пользователи в одной и той же группе могут быть сгруппированы в различных разделах в интерфейсе Steam. Эта строка может найти группу, сервер или любое другое объединение, относящееся к вашей игре. Сама строка не видна пользователям.
  • "steam_player_group_size". Если установлен, указывает общее число игроков в steam_player_group. Клиент Steam может использовать это число для показа дополнительной информации о группе, если ни один пользователь не находится в списке друзей пользователя. (Например, «Bob, Pete и ещё 4».)



    Все ключи текущего пользователя можно очистить с помощью ClearRichPresence.

    Чтобы получить все ключи расширенного статуса, вызовите GetFriendRichPresence.

    Возвращает: bool
    true, если расширенный статус задан.
    false при следующих условиях:

    RequestEquippedProfileItems

    SteamAPICall_t RequestEquippedProfileItems( CSteamID steamID);
    НазваниеТипОписание
    steamIDCSteamIDThe user that you want to retrieve equipped items for.

    Requests the list of equipped Steam Community profile items for the given user from Steam.

    Возвращает: SteamAPICall_t to be used with a EquippedProfileItems_t call result.

    BHasEquippedProfileItem

    bool BHasEquippedProfileItem( CSteamID steamID, ECommunityProfileItemType itemType);
    НазваниеТипОписание
    steamIDCSteamIDThe user that you had already retrieved equipped items for
    itemTypeECommunityProfileItemTypeType of item you want to see is equipped or not

    After calling RequestEquippedProfileItems, you can use this function to check if the user has a type of profile item equipped or not.

    Возвращает: bool
    true, if the itemType is equipped for the user
    false if the itemType is not equipped for the user

    См. также: RequestEquippedProfileItems, GetProfileItemPropertyString, GetProfileItemPropertyUint

    GetProfileItemPropertyString

    bool GetProfileItemPropertyString( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop);
    НазваниеТипОписание
    steamIDCSteamIDThe user that you had already retrieved equipped items for
    itemTypeECommunityProfileItemTypeType of item you are retrieving the property for
    propECommunityProfileItemPropertyThe string property you want to retrieve

    Returns a string property for a user's equipped profile item.

    Возвращает: const char *

    См. также: RequestEquippedProfileItems, GetProfileItemPropertyUint

    GetProfileItemPropertyUint

    bool GetProfileItemPropertyUint( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop);
    НазваниеТипОписание
    steamIDCSteamIDThe user that you had already retrieved equipped items for
    itemTypeECommunityProfileItemTypeType of item you are retrieving the property for
    propECommunityProfileItemPropertyThe unsigned integer property you want to retrieve

    Returns an unsigned integer property for a user's equipped profile item.

    Возвращает: uint32

    См. также: RequestEquippedProfileItems, GetProfileItemPropertyString

    Обратные вызовы

    Далее приведён список обратных вызовов, которые могут быть получены при вызове SteamAPI_RunCallbacks. Многие из них могут быть получены сразу в ответ на функции-члены ISteamFriends.

    AvatarImageLoaded_t

    Вызывается при загрузке большого аватара, если вы пытались запросить его в тот момент, когда он был недоступен.

    НазваниеТипОписание
    m_steamIDCSteamIDSteamID, для которого загружается аватар.
    m_iImageintThe Steam image handle of the now loaded image.
    m_iWideintШирина загруженного изображения.
    m_iTallintВысота загруженного изображения.

    Связанные функции: GetLargeFriendAvatar

    ClanOfficerListResponse_t

    Marks the return of a request officer list call.

    НазваниеТипОписание
    m_steamIDClanCSteamIDThe Steam group that we just got the officer list for.
    m_cOfficersintЧисло офицеров в группе. This is the same as GetClanOfficerCount.
    m_bSuccessuint8Was the call successful? If it wasn't this may indicate a temporary loss of connection to Steam.
    If this returns true, this does not necessarily mean that all of the info for this Steam group has been downloaded.

    Связанные функции: RequestClanOfficerList

    DownloadClanActivityCountsResult_t

    Called when a Steam group activity has been received.

    НазваниеТипОписание
    m_bSuccessboolВызов был успешен?

    Связанные функции: DownloadClanActivityCounts

    FriendRichPresenceUpdate_t

    Вызывается, когда были обновлены данные расширенного статуса пользователя. Также это может произойти автоматически, когда друзья в той же игре обновляют свой расширенный статус, либо после вызова RequestFriendRichPresence.

    НазваниеТипОписание
    m_steamIDFriendCSteamIDSteamID пользователя, чей расширенный статус изменился.
    m_nAppIDAppId_tAppID игры. Это обязательно текущая игра.

    Связанные функции: RequestFriendRichPresence

    FriendsEnumerateFollowingList_t

    Возвращает результат EnumerateFollowingList.

    НазваниеТипОписание
    m_eResultEResultРезультат операции.
    m_rgSteamIDCSteamIDk_cEnumerateFollowersMaxThe list of users that we are following.
    m_nResultsReturnedint32Число результатов, возвращённых в m_rgSteamID.
    m_nTotalResultCountint32The total number of people we are following. If this is greater than m_nResultsReturned Then you should make a subsequent call to EnumerateFollowingList with m_nResultsReturned as the index to get the next portion of followers.

    Связанные функции: EnumerateFollowingList

    FriendsGetFollowerCount_t

    Возвращает результат GetFollowerCount.

    НазваниеТипОписание
    m_eResultEResultРезультат операции.
    m_steamIDCSteamIDThe Steam ID of the user we requested the follower count for.
    m_nCountintЧисло подписчиков пользователя.

    Связанные функции: GetFollowerCount

    FriendsIsFollowing_t

    Возвращает результат IsFollowing.

    НазваниеТипОписание
    m_eResultEResultРезультат операции.
    m_steamIDCSteamIDПроверенный SteamID.
    m_bIsFollowingboolAre we following the user? (true) or not? (false)

    Связанные функции: IsFollowing

    GameConnectedChatJoin_t

    Called when a user has joined a Steam group chat that we are in.

    НазваниеТипОписание
    m_steamIDClanChatCSteamIDSteamID чата, к которому присоединился пользователь.
    m_steamIDUserCSteamIDSteamID пользователя, который присоединился к чату.

    Связанные функции: JoinClanChatRoom

    GameConnectedChatLeave_t

    Called when a user has left a Steam group chat that the we are in.

    НазваниеТипОписание
    m_steamIDClanChatCSteamIDSteamID чата, из которого вышел пользователь.
    m_steamIDUserCSteamIDSteamID пользователя, который вышел из чата.
    m_bKickedboolWas the user kicked by an officer (true), or not (false)?
    m_bDroppedboolWas the user's connection to Steam dropped (true), or did they leave via other means (false)?

    Связанные функции: LeaveClanChatRoom

    GameConnectedClanChatMsg_t

    Called when a chat message has been received in a Steam group chat that we are in.

    НазваниеТипОписание
    m_steamIDClanChatCSteamIDSteamID чата, в котором получено сообщение.
    m_steamIDUserCSteamIDSteamID пользователя, отправившего сообщение.
    m_iMessageIDintThe index of the message to get the actual data from with GetClanChatMessage.

    Связанные функции: JoinClanChatRoom

    GameConnectedFriendChatMsg_t

    Called when chat message has been received from a friend.

    НазваниеТипОписание
    m_steamIDUserCSteamIDSteamID друга, отправившего сообщение.
    m_iMessageIDintThe index of the message to get the actual data from with GetFriendMessage.

    Связанные функции: SetListenForFriendsMessages

    GameLobbyJoinRequested_t

    Вызывается, когда пользователь пытается присоединиться к лобби из списка друзей или по приглашению. The game client should attempt to connect to specified lobby when this is received. If the game isn't running yet then the game will be automatically launched with the command line parameter +connect_lobby <64-bit lobby Steam ID> instead.

    НазваниеТипОписание
    m_steamIDLobbyCSteamIDThe Steam ID of the lobby to connect to.
    m_steamIDFriendCSteamIDДруг, через которого подключился текущий пользователь. This will be invalid if not directly via a friend.

    NOTE: This callback is made when joining a lobby. If the user is attempting to join a game but not a lobby, then the callback GameRichPresenceJoinRequested_t will be made.

    GameOverlayActivated_t

    Отправляется, когда оверлей открывается или закрывается. The game can use this to pause or resume single player games.

    НазваниеТипОписание
    m_bActiveuint81 if it's just been activated, otherwise 0.

    GameRichPresenceJoinRequested_t

    Called when the user tries to join a game from their friends list or after a user accepts an invite by a friend with InviteUserToGame.

    НазваниеТипОписание
    m_steamIDFriendCSteamIDДруг, через которого подключился текущий пользователь. This will be invalid if not directly via a friend.
    m_rgchConnectchar[k_cchMaxRichPresenceValueLengthThe value associated with the "connect" Rich Presence key.

    Связанные функции: InviteUserToGame

    NOTE: This callback is made when joining a game. If the user is attempting to join a lobby, then the callback GameLobbyJoinRequested_t will be made.

    GameServerChangeRequested_t

    Вызывается, когда пользователь пытается присоединиться к другому игровому серверу из списка друзей. The game client should attempt to connect to the specified server when this is received.

    НазваниеТипОписание
    m_rgchServerchar[64]Server address (e.g. "127.0.0.1:27015", "tf2.valvesoftware.com")
    m_rgchPasswordchar[64]Server password, if any.

    JoinClanChatRoomCompletionResult_t

    Posted when the user has attempted to join a Steam group chat via JoinClanChatRoom

    НазваниеТипОписание
    m_steamIDClanChatCSteamIDSteamID чата, к которому присоединился пользователь.
    m_eChatRoomEnterResponseEChatRoomEnterResponseРезультат операции.

    Связанные функции: JoinClanChatRoom

    PersonaStateChange_t

    Called whenever a friends' status changes.

    НазваниеТипОписание
    m_ulSteamIDuint64Steam ID of the user who changed.
    m_nChangeFlagsintA bit-wise union of EPersonaChange values.

    Связанные функции: RequestUserInformation

    SetPersonaNameResponse_t

    Сообщает результат попытки изменить имя профиля текущего пользователя.

    НазваниеТипОписание
    m_bSuccessbooltrue if name change completed successfully.
    m_bLocalSuccessbooltrue if name change was retained locally. We might not have been able to communicate with Steam.
    m_resultEResultРезультат операции.

    Связанные функции: SetPersonaName

    Структуры

    These are structs which functions in ISteamFriends may return and/or interact with.

    FriendGameInfo_t

    Information about the game a friend is playing.
    Obtainable from: GetFriendGamePlayed.

    НазваниеТипОписание
    m_gameIDCGameIDID игры, в которую играет друг.
    m_unGameIPuint32IP сервера, на котором играет друг.
    m_usGamePortuint16Порт сервера, на котором играет друг.
    m_usQueryPortuint16The query port of the server the friend is playing on.
    m_steamIDLobbyCSteamIDSteamID лобби, в котором находится друг.

    FriendSessionStateInfo_t

    Информация о пользовательских сессиях (Steam Internal usage only.)

    НазваниеТипОписание
    m_uiOnlineSessionInstancesuint32
    m_uiPublishedToFriendsSessionInstanceuint8

    EquippedProfileItemsChanged_t

    Callback for when a user's equipped Steam Community profile items have changed. This can be for the current user or their friends.

    НазваниеТипОписание
    m_steamIDCSteamID

    EquippedProfileItems_t

    CallResult from RequestEquippedProfileItems. Also sent as a Callback.

    НазваниеТипОписание
    m_eResultEResult
    m_bHasAnimatedAvatarCSteamID
    m_bHasAvatarFramebool
    m_bHasProfileModifierbool
    m_bHasProfileBackgroundbool
    m_bHasMiniProfileBackgroundbool

    Перечисления

    Далее приведён список перечислений, которые определены для использования с ISteamFriends.

    EFriendFlags

    Flags for enumerating friends list, or quickly checking the relationship between users.

    НазваниеЗначениеОписание
    k_EFriendFlagNone0x00Отсутствует.
    k_EFriendFlagBlocked0x01Пользователи, которых текущий игрок заблокировал.
    k_EFriendFlagFriendshipRequested0x02Пользователи, которые отправили приглашение в друзья текущему пользователю.
    k_EFriendFlagImmediate0x04«Обычные» друзья текущего пользователя.
    k_EFriendFlagClanMember0x08Пользователи, находящиеся в той же группе Steam (маленькой), что и текущий пользователь.
    k_EFriendFlagOnGameServer0x10Users that are on the same game server; as set by SetPlayedWith.
    k_EFriendFlagRequestingFriendship0x80Пользователи, которым текущий игрок отправил приглашения в друзья.
    k_EFriendFlagRequestingInfo0x100Пользователи, которые в данный момент отправляют дополнительную информацию о себе после вызова RequestUserInformation.
    k_EFriendFlagIgnored0x200Пользователи, которых текущий игрок проигнорировал.
    k_EFriendFlagIgnoredFriend0x400Пользователи, которые проигнорировали текущего пользователя, но ему всё равно доступна информация о них.
    k_EFriendFlagChatMember0x1000Пользователи в одном из чатов с текущим пользователем.
    k_EFriendFlagAll0xFFFFВозвращает все флаги друзей.

    EFriendRelationship

    Declares the set of relationships that Steam users may have.

    НазваниеЗначениеОписание
    k_EFriendRelationshipNone0У пользователей нет отношений.
    k_EFriendRelationshipBlocked1The user has just clicked Ignore on an friendship invite. This doesn't get stored.
    k_EFriendRelationshipRequestRecipient2Пользователь отправил запрос на дружбу с текущим пользователем.
    k_EFriendRelationshipFriend3«Обычный» друг.
    k_EFriendRelationshipRequestInitiator4Текущий игрок отправил приглашение в друзья.
    k_EFriendRelationshipIgnored5The current user has explicit blocked this other user from comments/chat/etc. Это значение сохраняется.
    k_EFriendRelationshipIgnoredFriend6Пользователь проигнорировал текущего пользователя.
    k_EFriendRelationshipSuggested_DEPRECATED7Deprecated -- Unused.
    k_EFriendRelationshipMax8Общее число отношений, используется в циклах и для проверок.

    EOverlayToStoreFlag

    These values are passed as parameters to the store with ActivateGameOverlayToStore and modify the behavior when the page opens.

    NameЗначениеОписание
    k_EOverlayToStoreFlag_None0No
    k_EOverlayToStoreFlag_AddToCart1Deprecated, now works the same as k_EOverlayToStoreFlag_AddToCartAndShow.
    k_EOverlayToStoreFlag_AddToCartAndShow2Add the specified app ID to the users cart and show the store page.

    EPersonaChange

    used in PersonaStateChange_t::m_nChangeFlags to describe what's changed about a user
    these flags describe what the client has learned has changed recently, so on startup you'll see a name, avatar & relationship change for every friend

    NameЗначениеОписание
    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

    List of states a Steam friend can be in.

    NameЗначениеОписание
    k_EPersonaStateOffline0Друг в данный момент не вошёл в аккаунт.
    k_EPersonaStateOnline1Друг вошёл в аккаунт.
    k_EPersonaStateBusy2Friend is logged on, but set to "Do not disturb."
    k_EPersonaStateAway3Друга нет на месте (автоматическая функция).
    k_EPersonaStateSnooze4Друга нет на месте долгое время (автоматическая функция).
    k_EPersonaStateLookingToTrade5Online, trading.
    k_EPersonaStateLookingToPlay6Online, wanting to play.
    k_EPersonaStateMax7Общее число состояний. Используется только в циклах и для проверок.

    EUserRestriction

    Флаги пользовательских ограничений. These are returned by GetUserRestrictions.

    NameЗначениеОписание
    k_nUserRestrictionNone0No known chat/content restriction.
    k_nUserRestrictionUnknown1We don't know yet, the user is offline.
    k_nUserRestrictionAnyChat2User is not allowed to (or can't) send/recv any chat.
    k_nUserRestrictionVoiceChat4User is not allowed to (or can't) send/recv voice chat.
    k_nUserRestrictionGroupChat8User is not allowed to (or can't) send/recv group chat.
    k_nUserRestrictionRating16User is too young according to rating in current region.
    k_nUserRestrictionGameInvites32User cannot send or recv game invites, for example if they are on mobile.
    k_nUserRestrictionTrading64User cannot participate in trading, for example if they are on a console or mobile.

    ECommunityProfileItemType

    Steam Community profile item types

    NameЗначениеОписание
    k_ECommunityProfileItemType_AnimatedAvatar0Animated avatar image (GIF)
    k_ECommunityProfileItemType_AvatarFrame1Avatar frame (may or may not be an animated PNG)
    k_ECommunityProfileItemType_ProfileModifier2Special profile modifier item, like Seasonal Profile or Artist Profile
    k_ECommunityProfileItemType_ProfileBackground3Profile background image or movie
    k_ECommunityProfileItemType_MiniProfileBackground4Background image or movie for the hover flyout for a user

    ECommunityProfileItemProperty

    Properties on a Steam Community profile item. See GetProfileItemPropertyString and GetProfileItemPropertyUint.

    NameЗначениеОписание
    k_ECommunityProfileItemProperty_ImageSmall0URL to the small or animated version of the image
    k_ECommunityProfileItemProperty_ImageLarge1URL to the large or static version of the image
    k_ECommunityProfileItemProperty_InternalName2Internal name entered on the partner site (for debugging)
    k_ECommunityProfileItemProperty_Title3Localized name of the item
    k_ECommunityProfileItemProperty_Description4Localized description of the item
    k_ECommunityProfileItemProperty_AppID5AppID of the item (unsigned integer)
    k_ECommunityProfileItemProperty_TypeID6Type id of the item, unique to the appid (unsigned integer)
    k_ECommunityProfileItemProperty_Class7"Class" or type of item (internal value, unsigned integer)
    k_ECommunityProfileItemProperty_MovieWebM8URL to the webm video file
    k_ECommunityProfileItemProperty_MovieMP49URL to the mp4 video file
    k_ECommunityProfileItemProperty_MovieWebMSmall10URL to the small webm video file
    k_ECommunityProfileItemProperty_MovieMP4Small11URL to the small mp4 video file

    EActivateGameOverlayToWebPageMode

    Game Overlay web page modes

    NameValueОписание
    k_EActivateGameOverlayToWebPageMode_Default0Browser will open next to all other windows that the user has open in the overlay. The window will remain open, even if the user closes then re-opens the overlay.
    k_EActivateGameOverlayToWebPageMode_Modal1Browser will be opened in a special overlay configuration which hides all other windows that the user has open in the overlay. When the user closes the overlay, the browser window will also close. When the user closes the browser window, the overlay will automatically close.

    Typedefs

    These are typedefs which are defined for use with ISteamFriends.

    NameBase typeDescription
    FriendsGroupID_tint16Friends group (tags) identifier.

    Константы

    These are constants which are defined for use with ISteamFriends.

    NameTypeValueDescription
    k_cchMaxFriendsGroupNameint64The maximum length that a friends group name can be (not including the null-terminator!)
    k_cchMaxRichPresenceKeyLengthint64The maximum length that a rich presence key can be.
    k_cchMaxRichPresenceKeysint20The maximum amount of rich presence keys that can be set.
    k_cchMaxRichPresenceValueLengthint256The maximum length that a rich presence value can be.
    k_cchPersonaNameMaxint128Maximum number of UTF-8 bytes in a users persona (display) name.
    k_cEnumerateFollowersMaxint50The maximum number of followers that will be returned in a FriendsEnumerateFollowingList_t call result at once.
    k_cFriendsGroupLimitint100Deprecated - Unused.
    k_cubChatMetadataMaxuint328192Maximum size in bytes that chat room, lobby, or chat/lobby member metadata may have.
    k_cwchPersonaNameMaxint32The maximum amount of UTF-16 characters in a users persona (display) name.
    k_FriendsGroupID_InvalidFriendsGroupID_t-1Invalid friends group identifier.
    STEAMFRIENDS_INTERFACE_VERSIONconst char *"SteamFriends015"

    Локализация расширенных статусов


    Localization for rich presence is a list of token names and values provided for each supported language. Token names begin a # and can contain any alphanumeric character and underscores. Token values contain localized text, and may also contain substitutions, which specify portions of the string to be replaced by other rich presence values.

  • Простейшая строка имеет форму локализованного текста:
    "#Status_AtMainMenu" «В главном меню»
    В примере выше: если steam_display установлен на #Status_AtMainMenu с использованием SetRichPresence, строка "«В главном меню»" будет отображаться рядом с информацией игрока в клиенте Steam.

  • Замена выглядит так:
    "#StatusWithScore" «Счёт: %score%»
    В этом случае если steam_display установлен на "#StatusWithScore" с использованием SetRichPresence и "score" задан как "3" с использованием того же самого API, тогда "«Счёт: 3»" будет отображаться рядом с информацией игрока в клиенте Steam.

  • Замены также могут вызвать дополнительную локализацию, заключив подстроку в кавычки. Например:
    "#PlayingHero" «В игре: {#Hero_%hero%}» "#Hero_Tidehunter" "Tidehunter"
    Замены подстрок, заключённых в кавычки, производится в первую очередь, а затем локализуется метка, образовавшаяся в результате. В этом случае если steam_display задан как "#PlayingHero" и "«герой»" задан как "Tidehunter", клиент Steam локализует "#Hero_Tidehunter" и отобразит "«В игре: Tidehunter»".

    Внимание: использованные при замене ключи расширенного статуса могут содержать только буквенно-цифровые символы, знаки «_» и двоеточия.

    В случае отсутствия строки локализации по умолчанию будет использоваться строка с английским языком. Если строка с английским языком также отсутствует, расширенные статусы не будут отображаться в клиенте Steam. Также если строка указывает на замену с использованием не заданного ключа расширенного статуса, расширенный статус не будет отображаться в клиенте Steam.

    Разработчик игры предоставляет файл локализации расширенных статусов в разделе расширенных статусов во вкладке сообщества на странице настроек приложения.

    rpedit.jpg

    Для тестирования можно использовать http://www.steamcommunity.com/dev/testrichpresence, чтобы отображать локализованную строку расширенных статусов для вошедших в свой аккаунт пользователей, а также информацию об ошибках при неполных или неверных данных. Строка будет локализована на любой язык, установленный на сайте Steam.

    Любой язык может быть отправлен индивидуально в виде файлов, которые выглядят следующим образом:

    "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" } } }

    Несколько языков можно загрузить в одном файле. Перезаписываются только языки, включённые в файл.
    "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é" } } }