Интерфейс для доступа к информации об отдельных пользователях и взаимодействия с
оверлеем.
Функции-члены
Функции-члены
ISteamFriends
вызываются с помощью глобальной функции доступа
SteamFriends()
.
ActivateGameOverlay
void ActivateGameOverlay( const char *pchDialog );
Название | Тип | Описание |
pchDialog | const char * | Диалоговое окно, которое необходимо открыть. Допустимые варианты: "friends", "community", "players", "settings", "officialgamegroup", "stats", "achievements". |
Открывает указанное диалоговое окно
оверлея.
Эквивалент вызова
ActivateGameOverlayToUser со
steamID
равным
ISteamUser::GetSteamID.
Пример:SteamFriends()->ActivateGameOverlay( "friends" );
ActivateGameOverlayInviteDialog
void ActivateGameOverlayInviteDialog( CSteamID steamIDLobby );
Название | Тип | Описание |
steamIDLobby | CSteamID | SteamID лобби, в которое будут приглашены выбранные пользователи. |
Открывает окно приглашения в
оверлее. Приглашения, отправленные в данном окне, будут относиться к указанному лобби.
ActivateGameOverlayToStore
void ActivateGameOverlayToStore( AppId_t nAppID, EOverlayToStoreFlag eFlag );
Название | Тип | Описание |
nAppID | AppId_t | AppID, страницу в магазине которого необходимо показать. |
eFlag | EOverlayToStoreFlag | Флаги, изменяющие поведение страницы, когда она открывается. |
Открывает страницу указанного приложения в магазине Steam в
оверлее.
При использовании
k_uAppIdInvalid пользователь увидит главную страницу магазина Steam.
ActivateGameOverlayToUser
void ActivateGameOverlayToUser( const char *pchDialog, CSteamID steamID );
Название | Тип | Описание |
pchDialog | const char * | Диалоговое окно, которое необходимо открыть. |
steamID | CSteamID | SteamID контекста, в котором открывается диалог. |
Открывает указанное диалоговое окно
оверлея.
Допустимые варианты
pchDialog
таковы:
- "steamid" — открывает профиль указанного пользователя или указанную группу в веб-браузере оверлея.
- "chat" — открывает окно чата для указанного пользователя, либо он присоединяется к групповому чату.
- "jointrade" — открывает окно сессии системы обмена Steam, которая была начата с помощью ISteamEconomy/StartTrade.
- "stats" — открывает статистику указанного пользователя в веб-браузере оверлея.
- "achievements" — открывает достижения указанного пользователя в веб-браузере оверлея.
- "friendadd" — открывает маленькое окно оверлея, где пользователь может добавить целевого пользователя в друзья.
- "friendremove" — открывает маленькое окно оверлея, где пользователь может удалить целевого пользователя из друзей.
- "friendrequestaccept" — открывает маленькое окно оверлея, где пользователь может принять приглашение в друзья.
- "friendrequestignore" — открывает маленькое окно оверлея, где пользователь может проигнорировать приглашение в друзья.
ActivateGameOverlayToWebPage
void ActivateGameOverlayToWebPage( const char *pchURL );
Открывает указанную ссылку в веб-браузере
оверлея.
ClearRichPresence
void ClearRichPresence();
Удаляет пары ключ-значение расширенного статуса текущего пользователя.
CloseClanChatWindowInSteam
bool CloseClanChatWindowInSteam( CSteamID steamIDClanChat );
Название | Тип | Описание |
steamIDClanChat | CSteamID | SteamID группового чата, который необходимо закрыть. |
Закрывает указанный групповой чат в интерфейсе Steam.
Возвращает: bool
true, если пользователь покинул групповой чат Steam.
false, если пользователь не находится в указанном групповом чате Steam.
См. также: IsClanChatWindowOpenInSteam,
OpenClanChatWindowInSteamDownloadClanActivityCounts
SteamAPICall_t DownloadClanActivityCounts( CSteamID *psteamIDClans, int cClansToRequest );
Название | Тип | Описание |
psteamIDClans | CSteamID * | Список групп Steam, для которых необходимо получить обновлённые данные. |
cClansToRequest | int | Это ОБЯЗАТЕЛЬНО должно быть число групп, указанных в psteamIDClans . |
Обновить данные об активности группы Steam, либо получить данные групп, отличных от той, в которой состоит пользователь.
После получения обратного вызова вы можете использовать
GetClanActivityCounts для получения обновлённой информации о числе пользователей.
Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова
DownloadClanActivityCountsResult_t.
EnumerateFollowingList
SteamAPICall_t EnumerateFollowingList( uint32 unStartIndex );
Название | Тип | Описание |
unStartIndex | uint32 | Индекс, с которого необходимо начать получать список пользователей, подписчиком которых является текущий пользователь. При первом вызове индекс должен быть равен 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 );
Получает SteamID в групповом чате по указанному индексу.
ВНИМАНИЕ: вы должны вызвать
GetClanChatMemberCount до того, как выполнить этот вызов.
Возвращает: CSteamIDНедопустимые индексы возвращают
k_steamIDNil.
GetClanActivityCounts
bool GetClanActivityCounts( CSteamID steamIDClan, int *pnOnline, int *pnInGame, int *pnChatting );
Название | Тип | Описание |
steamIDClan | CSteamID | Группа Steam, информацию о которой необходимо получить. |
pnOnline | int * | Возвращает число участников, которые находятся в сети. |
pnInGame | int * | Возвращает число участников, которые находятся в игре (за исключением тех, кто указал свой статус как «Не в сети»). |
pnChatting | int * | Возвращает число участников, которые находятся в групповом чате. |
Получает наиболее актуальную информацию о том, что делают пользователи группы Steam.
Эта функция может получить только ту информацию, которая известна локальному клиенту. Чтобы обновить данные или получить данные групп, отличных от той, в которой состоит пользователь, необходимо вызвать
DownloadClanActivityCounts.
Возвращает: bool
true, если данные получены.
false, если предоставленный SteamID недопустим, либо у локального клиента нет информации о группе Steam. Все остальные параметры будут равны
0.
GetClanByIndex
CSteamID GetClanByIndex( int iClan );
Получает SteamID группы Steam по указанному индексу.
ВНИМАНИЕ: вы должны вызвать
GetClanCount до того, как выполнить этот вызов.
Возвращает: CSteamIDНедопустимые индексы возвращают
k_steamIDNil.
GetClanChatMemberCount
int GetClanChatMemberCount( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | Группа Steam, информацию о количестве участников в чате которой необходимо получить. |
Получает число пользователей в чате группы Steam.
ВНИМАНИЕ: итерация по локальному пользователю по большим группам Steam невозможна.
ВНИМАНИЕ: для получения SteamID других пользователей в этом лобби текущий пользователь должен также находиться в нём.
Используется для итерации. После данного вызова используйте
GetChatMemberByIndex для получения SteamID всех участников чата.
Возвращает: int
0 если предоставленный SteamID недействителен, либо если данные недоступны локальному пользователю.
GetClanChatMessage
int GetClanChatMessage( CSteamID steamIDClanChat, int iMessage, void *prgchText, int cchTextMax, EChatEntryType *peChatEntryType, CSteamID *psteamidChatter );
Название | Тип | Описание |
steamIDClanChat | CSteamID | SteamID группового чата Steam. |
iMessage | int | Индекс сообщения. Это должно быть поле m_iMessageID обратного вызова GameConnectedClanChatMsg_t. |
prgchText | void * | Буфер, куда будет скопировано сообщение. (должен быть достаточно большим, чтобы содержать 2048 символов в кодировке UTF-8. Так что 8192 байтов + 1 для '\0') |
cchTextMax | int | Размер prgchText . |
peChatEntryType | EChatEntryType * | Возвращает тип сообщения в чате. |
psteamidChatter | CSteamID * | Возвращает 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 );
Название | Тип | Описание |
steamIDClan | CSteamID | Группа Steam, название которой необходимо получить. |
Получает отображаемое название указанной группы Steam, если оно известно локальному клиенту.
Возвращает: const char *
The Steam group's name in UTF-8 format. Возвращает пустую строку (""), если указанный SteamID недействителен или название неизвестно пользователю.
См. также: DownloadClanActivityCountsGetClanOfficerByIndex
CSteamID GetClanOfficerByIndex( CSteamID steamIDClan, int iOfficer );
Получает SteamID офицера группы Steam по указанному индексу.
ВНИМАНИЕ: вы должны вызвать
GetClanOfficerCount до того, как выполнить этот вызов.
Возвращает: CSteamIDЕсли
steamIDClan
или
iOfficer
недействительны, то
k_steamIDNil.
GetClanOfficerCount
int GetClanOfficerCount( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | Группа Steam, информацию о количестве офицеров которой необходимо получить. |
Получает число офицеров (администраторов и модераторов) в указанной группе Steam.
В подсчёт также включается владелец группы.
Используется для итерации. После данного вызова используйте
GetClanOfficerByIndex для получения SteamID офицеров.
ВНИМАНИЕ: вы должны вызвать
RequestClanOfficerList, прежде чем получить требуемые данные.
Возвращает: int
Число офицеров группы Steam. Возвращает
0, если
steamIDClan
недействителен, либо если не был отправлен вызов
RequestClanOfficerList.
GetClanOwner
CSteamID GetClanOwner( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | SteamID группы, для которого необходимо получить владельца. |
Получает владельца группы Steam.
ВНИМАНИЕ: вы должны вызвать
RequestClanOfficerList, прежде чем получить требуемые данные.
Возвращает: CSteamIDВозвращает
k_steamIDNil, если
steamIDClan
недействителен, либо если не был отправлен вызов
RequestClanOfficerList.
GetClanTag
const char * GetClanTag( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | Группа Steam, метку которой необходимо получить. |
Получает уникальную метку (аббревиатуру) указанной группы Steam, если оно известно локальному клиенту.
Аббревиатура группы — способ идентифицировать группу уникальным образом. Её длина — не более 12 символов. В некоторых играх она отображается рядом с именами участников группы.
Возвращает: const char *
Метка группы Steam в кодировке UTF-8. Возвращает пустую строку (""), если указанный SteamID недействителен или название неизвестно пользователю.
См. также: DownloadClanActivityCountsGetCoplayFriend
CSteamID GetCoplayFriend( int iCoplayFriend );
Получает 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 );
Название | Тип | Описание |
steamID | CSteamID | Пользователь, для которого необходимо получить число подписчиков. |
Получает число пользователей, подписавшихся на указанного пользователя.
Возвращает: 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 );
Название | Тип | Описание |
iFriend | int | Индекс между 0 и GetFriendCount. |
iFriendFlags | int | Объединение множеств (бинарное «или») одного или нескольких EFriendFlags. Это обязательно должно быть то же значение, что и в предыдущем вызове GetFriendCount. |
Получает SteamID пользователя по указанному индексу.
ВНИМАНИЕ: вы должны вызвать
GetFriendCount до того, как выполнить этот вызов.
Возвращает: CSteamIDНедопустимые индексы возвращают
k_steamIDNil.
GetFriendCoplayGame
AppId_t GetFriendCoplayGame( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID пользователя из списка «недавно играли вместе», для которого необходимо получить игру. |
Получает AppID игры, в которою пользователь играл с кем-то из списка «недавно играли вместе».
Возвращает: AppId_tЕсли SteamID не входит в список «недавно играли вместе», возвращается
k_uAppIdInvalid.
GetFriendCoplayTime
int GetFriendCoplayTime( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID пользователя из списка «недавно играли вместе», для которого необходимо получить временную метку. |
Получает время, когда пользователь играл с кем-то из списка «недавно играли вместе».
Возвращает: int
Время предоставляется в формате UNIX-времени (секунды с 1 января 1970 года).
Если SteamID не входит в список «недавно играли вместе», возвращается
0.
GetFriendCount
int GetFriendCount( int iFriendFlags );
Название | Тип | Описание |
iFriendFlags | int | Объединение множеств (бинарное «или») одного или нескольких 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 );
Название | Тип | Описание |
steamIDSource | CSteamID | Группа Steam, чат, лобби или игровой сервер, для которого необходимо посчитать пользователей. |
Получает число пользователей в источнике (группе, чате, лобби или на игровом сервере).
ВНИМАНИЕ: итерация по локальному пользователю по большим группам Steam невозможна.
ВНИМАНИЕ: если вы получаете число участников лобби, вместо данной функции вам необходимо использовать
ISteamMatchmaking::GetNumLobbyMembers.
Используется для итерации. После данного вызова используйте
GetFriendFromSourceByIndex для получения SteamID всех участников источника.
Возвращает: int
0 если предоставленный SteamID недействителен, либо если данные недоступны локальному пользователю.
GetFriendFromSourceByIndex
CSteamID GetFriendFromSourceByIndex( CSteamID steamIDSource, int iFriend );
Получает SteamID из источника (группы, чата, лобби или с игрового сервера) по указанному индексу.
ВНИМАНИЕ: вы должны вызвать
GetFriendCountFromSource до того, как выполнить этот вызов.
Возвращает: CSteamIDНедопустимые индексы возвращают
k_steamIDNil.
GetFriendGamePlayed
bool GetFriendGamePlayed( CSteamID steamIDFriend, FriendGameInfo_t *pFriendGameInfo );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID другого пользователя. |
pFriendGameInfo | FriendGameInfo_t * | Сюда копируется информация об игре, если пользователь играет. |
Проверяет, играет ли указанный пользователь в игру, и если да, получает информацию о ней.
Возвращает: bool
true, если пользователь — друг, и играет в игру. В противном случае
false.
GetFriendMessage
int GetFriendMessage( CSteamID steamIDFriend, int iMessageID, void *pvData, int cubData, EChatEntryType *peChatEntryType );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID друга, который отправил данное сообщение. |
iMessageID | int | Индекс сообщения. Это должно быть поле m_iMessageID обратного вызова GameConnectedFriendChatMsg_t. |
pvData | void * | Буфер, куда будет скопировано сообщение. |
cubData | int | Размер pvData . |
peChatEntryType | EChatEntryType * | Возвращает тип сообщения в чате. |
Получает данные сообщения от друга в Steam.
Этот вызов выполняется только в ответ на обратный вызов
GameConnectedFriendChatMsg_t.
Возвращает: int
Число байтов, скопированных в
pvData
.
Возвращает
0, а
peChatEntryType
приравнивается к
k_EChatEntryTypeInvalid, если текущий пользователь ограничен в пользовании чатами, если указанный SteamID не является другом, либо если предоставленный в
iMessageID
индекс недопустим.
GetFriendPersonaName
const char * GetFriendPersonaName( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID другого пользователя. |
Получает имя профиля указанного пользователя.
Оно известно текущему пользователю, только если другой пользователь находится в списке его друзей, на том же игровом сервере, в чате или лобби, либо в небольшой группе Steam с локальным пользователем.
ВНИМАНИЕ: во время первого входа в лобби, чат или на игровой сервер текущему пользователю автоматически не будут известны имена профилей других пользователей. Эта информация будет получена асинхронно с помощью обратных вызовов
PersonaStateChange_t.
Для получения имени профиля текущего пользователя используйте
GetPersonaName.
Возвращает: const char *
Имя профиля текущего пользователя в кодировке UTF-8. Совершенно точно не будет равно
NULL.
Возвращает пустую строку ("") или "[unknown]", если указанный SteamID недействителен или неизвестен вызывающему.
GetFriendPersonaNameHistory
const char * GetFriendPersonaNameHistory( CSteamID steamIDFriend, int iPersonaName );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID другого пользователя. |
iPersonaName | int | Индекс прежнего имени профиля пользователя, которое необходимо получить. 0 — текущее имя профиля, 1 — то, которое было перед текущим и т. д. |
Получает одно из предыдущих имён профиля пользователя.
Работает только для тех имён профиля, которые текущий пользователь видел на локальном компьютере.
Возвращает: const char *
Одно из предыдущих имён профиля по указанному индексу. Возвращает пустую строку, когда дальнейших имён нет.
GetFriendPersonaState
EPersonaState GetFriendPersonaState( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID другого пользователя. |
Получает текущее состояние указанного пользователя.
Оно известно текущему пользователю, только если другой пользователь находится в списке его друзей, на том же игровом сервере, в чате или лобби, либо в небольшой группе Steam с локальным пользователем.
Для получения состояния текущего пользователя используйте
GetPersonaState.
Возвращает: EPersonaStateПолучает текущее состояние друга указанного пользователя. (в сети, не в сети, в игре и т. д.).
GetFriendRelationship
EFriendRelationship GetFriendRelationship( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID другого пользователя. |
Получает отношение к указанному пользователю.
Возвращает: EFriendRelationshipКак пользователи относятся друг к другу.
GetFriendRichPresence
const char * GetFriendRichPresence( CSteamID steamIDFriend, const char *pchKey );
Название | Тип | Описание |
steamIDFriend | CSteamID | Друг, для которого необходимо получить расширенный статус. |
pchKey | const char * | Запрашиваемый ключ расширенного статуса. |
Получает значение расширенного статуса указанного друга.
Возвращает: const char *
Возвращает пустую строку (""), если указанный ключ не задан.
См. также: RequestFriendRichPresence,
SetRichPresenceGetFriendRichPresenceKeyByIndex
const char * GetFriendRichPresenceKeyByIndex( CSteamID steamIDFriend, int iKey );
Возвращает: const char *
Возвращает пустую строку (""), если индекс недействителен, либо для указанного пользователя нет данных о расширенном статусе.
GetFriendRichPresenceKeyCount
int GetFriendRichPresenceKeyCount( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID пользователя, для которого необходимо подсчитать ключи расширенного статуса. |
Получает число ключей расширенного статуса, заданных для указанного пользователя.
Используется для итерации. После данного вызова используйте
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 );
Получает ID группы друзей по указанному индексу.
ВНИМАНИЕ: вы должны вызвать
GetFriendsGroupCount до того, как выполнить этот вызов.
Возвращает: FriendsGroupID_tНедопустимые индексы возвращают
k_FriendsGroupID_Invalid.
GetFriendsGroupMembersCount
int GetFriendsGroupMembersCount( FriendsGroupID_t friendsGroupID );
Название | Тип | Описание |
friendsGroupID | FriendsGroupID_t | ID группы друзей, в которой подсчитать друзей. |
Получает число друзей в данной группе друзей.
Этот вызов необходимо сделать до получения списка друзей с помощью
GetFriendsGroupMembersList.
Возвращает: int
Число друзей в указанной группе друзей.
См. также: GetFriendsGroupCountGetFriendsGroupMembersList
void GetFriendsGroupMembersList( FriendsGroupID_t friendsGroupID, CSteamID *pOutSteamIDMembers, int nMembersCount );
Название | Тип | Описание |
friendsGroupID | FriendsGroupID_t | ID группы друзей, для которой необходимо получить список друзей. |
pOutSteamIDMembers | CSteamID * | Возвращает SteamID друзей, помещая их в данный массив. |
nMembersCount | int | Должно совпадать с числом элементов, выделенных pOutSteamIDMembers , и значением, возвращаемым GetFriendsGroupMembersCount. |
Получает число друзей в данной группе друзей.
Если друзей меньше, чем запрошено, их позиции будут заполнены недействительными SteamID.
Вы должны вызвать
GetFriendsGroupMembersCount, прежде чем выполнить этот вызов, чтобы задать подходящий размер массива
pOutSteamIDMembers
!
См. также: GetFriendsGroupCountGetFriendsGroupName
const char * GetFriendsGroupName( FriendsGroupID_t friendsGroupID );
Название | Тип | Описание |
friendsGroupID | FriendsGroupID_t | ID группы друзей, для которой необходимо получить название. |
Получает название указанной группы друзей.
Возвращает: const char *
Название группы друзей в кодировке UTF-8. Возвращает
NULL, если ID группы недействителен.
См. также: GetFriendsGroupCountGetFriendSteamLevel
int GetFriendSteamLevel( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID пользователя. |
Получает уровень Steam указанного пользователя.
Вы можете использовать SteamID локального пользователя (
ISteamUser::GetSteamID), чтобы получить его уровень.
Возвращает: int
Уровень Steam, если он доступен.
Если уровень Steam указанного пользователя сразу не доступен, тогда возвращается
0, а также устанавливается очерёдность на загрузку значения с серверов Steam. Когда оно будет загружено, будет отправлен обратный вызов
PersonaStateChange_t с флагами
m_nChangeFlags
, включающими
k_EPersonaChangeSteamLevel
.
GetLargeFriendAvatar
int GetLargeFriendAvatar( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | |
Получает дескриптор крупного аватара указанного пользователя (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,
GetSmallFriendAvatarGetMediumFriendAvatar
int GetMediumFriendAvatar( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | |
Получает дескриптор среднего аватара указанного пользователя (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,
GetSmallFriendAvatarGetPersonaName
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 );
Название | Тип | Описание |
steamIDPlayer | CSteamID | SteamID пользователя. |
Получает никнейм, который текущий пользователь установил для указанного пользователя.
Возвращает: const char *
NULL если ник для того пользователя не задан.
GetSmallFriendAvatar
int GetSmallFriendAvatar( CSteamID steamIDFriend );
Название | Тип | Описание |
steamIDFriend | CSteamID | |
Получает дескриптор маленького аватара указанного пользователя (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,
GetMediumFriendAvatarGetUserRestrictions
uint32 GetUserRestrictions();
Проверяет, есть ли у текущего пользователя ограничения на использование чата.
Если да, пользователь не может получать и отправлять сообщения в голосовых и обычных чатах, а также не может видеть пользовательские аватары.
Кроме того, он не может добавлять друзей и вступать в группы.
Ограниченные пользователи по-прежнему могут быть в сети и отправлять и получать приглашения в игру.
Возвращает: uint32См.:
EUserRestrictionHasFriend
bool HasFriend( CSteamID steamIDFriend, int iFriendFlags );
Название | Тип | Описание |
steamIDFriend | CSteamID | Пользователь Steam, для которого необходимо проверить статус друга. |
iFriendFlags | int | Объединение множеств (бинарное «или») одного или нескольких EFriendFlags. |
Проверяет, отвечает ли пользователь указанным критериям. (друзья, заблокированные, пользователи на том же сервере и т.п.).
Возвращает: bool
true, если пользователь отвечает критериям, указанным в
iFriendFlags
, в противном случае
false.
InviteUserToGame
bool InviteUserToGame( CSteamID steamIDFriend, const char *pchConnectString );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID друга, которого необходимо пригласить. |
pchConnectString | const char * | Строка, по которой друг узнает, как присоединиться к игре (к примеру, IP игрового сервера). Не может быть длиннее, чем значение, указанное в k_cchMaxRichPresenceValueLength. |
Приглашает друга или участника клана в текущую игру при помощи специальной строки приглашения.
Если целевой пользователь принимает приглашение, тогда pchConnectString добавляется к командной строке при запуске игры.
Если игра у него уже запущена, тогда он получит обратный вызов
GameRichPresenceJoinRequested_t со строкой приглашения.
Возвращает: bool
Активирует обратный вызов
GameRichPresenceJoinRequested_t.
true, если приглашение отправлено.
false при следующих условиях:
- В
steamIDFriend
указан недействительный SteamID.
- В
steamIDFriend
указан SteamID, который не является другом текущего пользователя или не находится с ним в одной группе Steam.
- Указанное в
pchConnectString
значение было слишком длинным.
См. также: ISteamMatchmaking::InviteUserToLobbyIsClanChatAdmin
bool IsClanChatAdmin( CSteamID steamIDClanChat, CSteamID steamIDUser );
Название | Тип | Описание |
steamIDClanChat | CSteamID | SteamID группового чата Steam. |
steamIDUser | CSteamID | SteamID пользователя, для которого необходимо проверить, является ли он администратором. |
Проверяет, является ли пользователь администратором группового чата.
Возвращает: bool
true, если указанный пользователь является администратором.
false, если пользователь не является администратором, либо текущий пользователь не находится в указанном чате, либо указанный пользователь не находится в чате.
IsClanPublic
bool IsClanPublic( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | SteamID группы Steam. |
Проверяет. общедоступна ли группа Steam.
Возвращает: bool
true, если указанная группа общедоступна
false, если указанная группа имеет ограниченный доступ
IsClanOfficialGameGroup
bool IsClanOfficialGameGroup( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | SteamID группы Steam. |
Проверяет, является ли группа Steam официальной группой игры или центра сообщества.
Возвращает: bool
true, если указанная группа Steam является официальной группой игры или центра сообщества
false, если указанная группа Steam не является официальной группой игры или центра сообщества
IsClanChatWindowOpenInSteam
bool IsClanChatWindowOpenInSteam( CSteamID steamIDClanChat );
Название | Тип | Описание |
steamIDClanChat | CSteamID | SteamID группового чата, который необходимо проверить. |
Проверяет, открыт ли групповой чат в пользовательском интерфейсе Steam.
Возвращает: bool
true, если определённый чат группы Steam открыт; в противном случае
false.
Также возвращает
false, если определённый чат группы Steam неизвестен.
См. также: OpenClanChatWindowInSteam,
CloseClanChatWindowInSteamIsFollowing
SteamAPICall_t IsFollowing( CSteamID steamID );
Название | Тип | Описание |
steamID | CSteamID | SteamID, который необходимо проверить. |
Проверяет, подписан ли текущий пользователь на указанного пользователя.
Возвращаемые значения: 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 );
Название | Тип | Описание |
steamIDUser | CSteamID | Проверяемый на нахождение в источнике пользователь. |
steamIDSource | CSteamID | Проверяемый источник. |
Проверяет, находится ли указанный пользователь в источнике (группе, чате, лобби или на игровом сервере).
Возвращает: bool
true, если локальному пользователю известно, что
steamIDUser
является участником или находится в
steamIDSource
. В противном случае
false.
JoinClanChatRoom
SteamAPICall_t JoinClanChatRoom( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | SteamID группы Steam, к которой присоединиться |
Позволяет пользователю присоединиться к чату группы (клана) Steam прямо в игре.
Поведение несколько сложное, поскольку пользователь пользователь может быть, а может и не быть в чате группы — как извне игры, так и в оверлее.
Вы можете использовать
ActivateGameOverlayToUser для открытия внутриигровой оверлей-версии чата.
Если вы присоединились к чату группы Steam, ожидайте следующих обратных вызовов:
Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова
JoinClanChatRoomCompletionResult_t.
Активирует обратный вызов
GameConnectedChatJoin_t.
Активирует обратный вызов
GameConnectedClanChatMsg_t.
См. также: LeaveClanChatRoom,
GetClanChatMemberCount,
GetChatMemberByIndex,
SendClanChatMessage,
GetClanChatMessage,
IsClanChatAdmin,
IsClanChatWindowOpenInSteamLeaveClanChatRoom
bool LeaveClanChatRoom( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | SteamID группового чата Steam, из которого необходимо выйти. |
Пользователь выходит из чата группы, в который он ранее вошёл с помощью
JoinClanChatRoom.
Возвращает: bool
Активирует обратный вызов
GameConnectedChatLeave_t.
true, если пользователь находится в указанном чате, в противном случае
false.
OpenClanChatWindowInSteam
bool OpenClanChatWindowInSteam( CSteamID steamIDClanChat );
Название | Тип | Описание |
steamIDClanChat | CSteamID | SteamID группового чата, который необходимо открыть. |
Открывает указанный групповой чат в интерфейсе Steam.
Возвращает: bool
true, если пользователь вошёл в групповой чат Steam.
false при одной из следующих ситуаций:
- Указанный групповой чат не существует или у пользователя нет к нему доступа.
- На текущего пользователя наложены ограничения в связи с большим числом запросов.
- На текущего пользователя наложены ограничения на использование чата.
См. также: IsClanChatWindowOpenInSteam,
CloseClanChatWindowInSteamReplyToFriendMessage
bool ReplyToFriendMessage( CSteamID steamIDFriend, const char *pchMsgToSend );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID друга, которому необходимо отправить сообщение. |
pchMsgToSend | const char * | Отправляемое сообщение в формате UTF-8. |
Отправляет сообщение другу в Steam.
Возвращает: bool
true, если сообщение отправлено.
false, если на текущего пользователя наложены ограничения в связи с большим числом запросов или на использование чата.
RequestClanOfficerList
SteamAPICall_t RequestClanOfficerList( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | Группа 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 );
Название | Тип | Описание |
steamIDFriend | CSteamID | SteamID пользователя, для которого необходимо запросить расширенный статус. |
Запрашивает данные расширенного статуса указанного пользователя.
Используется для получения информации о расширенном статусе пользователя, которые не является другом текущего пользователя, к примеру, кого-то в текущем лобби или на игровом сервере.
Число запросов к этой функции ограничено, если вы будете вызывать её слишком часто для того или иного пользователя, она немедленно вернёт обратный вызов, не запросив новые данные с сервера.
Возвращает: void
Активирует обратный вызов
FriendRichPresenceUpdate_t.
См. также: GetFriendRichPresence,
SetRichPresenceRequestUserInformation
bool RequestUserInformation( CSteamID steamIDUser, bool bRequireNameOnly );
Название | Тип | Описание |
steamIDUser | CSteamID | Пользователь, для которого необходимо запросить информацию. |
bRequireNameOnly | bool | Получить только имя профиля (true)? Или и имя, и аватар (false)? |
Запрашивает имя профиля и опционально аватар указанного пользователя.
ВНИМАНИЕ: аватары загружаются медленно и забивают локальный кэш, поэтому если аватары вам не нужны, не запрашивайте их.
Возвращаемые значения: bool
Активирует обратный вызов
PersonaStateChange_t.
true означает, что данные запрошены и после их получения будет отправлен обратный вызов
PersonaStateChange_t.
false означает, что у нас уже есть вся необходимая информация об этом пользователе, и можно вызывать функции, которые используют её.
SendClanChatMessage
bool SendClanChatMessage( CSteamID steamIDClanChat, const char *pchText );
Название | Тип | Описание |
steamIDClanChat | CSteamID | SteamID группового чата, в который необходимо отправить сообщение. |
pchText | const char * | Отправляемое сообщение в формате UTF-8. Длина: до 2048 знаков. |
Отправляет сообщение в чат группы Steam.
Возвращает: bool
true, если сообщение отправлено.
false возвращается в одной из следующих ситуаций:
- Текущий пользователь не находится в указанном чате группы.
- Текущий пользователь не подключен к Steam.
- На текущего пользователя наложены ограничения в связи с большим числом запросов.
- На текущего пользователя наложены ограничения на использование чата.
- Размер сообщения в
pchText
превышает 2048 знаков.
SetInGameVoiceSpeaking
void SetInGameVoiceSpeaking( CSteamID steamIDUser, bool bSpeaking );
Название | Тип | Описание |
steamIDUser | CSteamID | Не используется. |
bSpeaking | bool | Пользователь начал говорить в игре (true)? Или закончил говорить в игре (false)? |
Сообщает Steam, что пользователь в данный момент использует голосовой чат в игре.
Подавляет микрофон во время всех голосовых сообщений в интерфейсе Steam.
SetListenForFriendsMessages
bool SetListenForFriendsMessages( bool bInterceptEnabled );
Название | Тип | Описание |
bInterceptEnabled | bool | Включить (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 );
Название | Тип | Описание |
pchPersonaName | const char * | Новое имя профиля пользователя. Не может быть длиннее, чем k_cchPersonaNameMax (в байтах). |
Задаёт имя профиля текущего пользователя, сохраняет его на сервере и отправляет изменения всем друзьям, которые находятся в сети.
Локально изменения происходят немедленно и отправляется подразумевающий успех обратный вызов
PersonaStateChange_t.
Если сменить имя на сервере не удаётся, тогда будет отправлен дополнительный обратный вызов
PersonaStateChange_t для возвращения имени. Кроме того, в результате вызова будет доступен итоговый результат.
Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова
SetPersonaNameResponse_t.
SetPlayedWith
void SetPlayedWith( CSteamID steamIDUserPlayedWith );
Название | Тип | Описание |
steamIDUserPlayedWith | CSteamID | Другой пользователь, с которым мы поиграли. |
Отмечает целевого пользователя как того, с кем «недавно играли вместе».
ВНИМАНИЕ: текущий пользователь должен быть в игре с другим игроком, чтобы связка сработала.
Просмотреть игроков, с кем вы недавно играли вместе можно
здесь и в оверлее.
SetRichPresence
bool SetRichPresence( const char *pchKey, const char *pchValue );
Название | Тип | Описание |
pchKey | const char * | Задаваемый ключ расширенного статуса. Не может быть длиннее, чем значение, указанное в k_cchMaxRichPresenceKeyLength. |
pchValue | const 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);
Название | Тип | Описание |
steamID | CSteamID | The 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);
Название | Тип | Описание |
steamID | CSteamID | The user that you had already retrieved equipped items for |
itemType | ECommunityProfileItemType | Type 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, GetProfileItemPropertyUintGetProfileItemPropertyString
bool GetProfileItemPropertyString( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop);
Returns a string property for a user's equipped profile item.
Возвращает: const char *
См. также: RequestEquippedProfileItems, GetProfileItemPropertyUintGetProfileItemPropertyUint
bool GetProfileItemPropertyUint( CSteamID steamID, ECommunityProfileItemType itemType, ECommunityProfileItemProperty prop);
Returns an unsigned integer property for a user's equipped profile item.
Возвращает: uint32
См. также: RequestEquippedProfileItems, GetProfileItemPropertyStringОбратные вызовы
Далее приведён список обратных вызовов, которые могут быть получены при вызове SteamAPI_RunCallbacks. Многие из них могут быть получены сразу в ответ на функции-члены ISteamFriends
.AvatarImageLoaded_t
Вызывается при загрузке большого аватара, если вы пытались запросить его в тот момент, когда он был недоступен.
Название | Тип | Описание |
m_steamID | CSteamID | SteamID, для которого загружается аватар. |
m_iImage | int | The Steam image handle of the now loaded image. |
m_iWide | int | Ширина загруженного изображения. |
m_iTall | int | Высота загруженного изображения. |
Связанные функции: GetLargeFriendAvatarClanOfficerListResponse_t
Marks the return of a request officer list call.
Название | Тип | Описание |
m_steamIDClan | CSteamID | The Steam group that we just got the officer list for. |
m_cOfficers | int | Число офицеров в группе. This is the same as GetClanOfficerCount. |
m_bSuccess | uint8 | Was 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. |
Связанные функции: RequestClanOfficerListDownloadClanActivityCountsResult_t
Called when a Steam group activity has been received.
Название | Тип | Описание |
m_bSuccess | bool | Вызов был успешен? |
Связанные функции: DownloadClanActivityCountsFriendRichPresenceUpdate_t
Вызывается, когда были обновлены данные расширенного статуса пользователя. Также это может произойти автоматически, когда друзья в той же игре обновляют свой расширенный статус, либо после вызова RequestFriendRichPresence.
Название | Тип | Описание |
m_steamIDFriend | CSteamID | SteamID пользователя, чей расширенный статус изменился. |
m_nAppID | AppId_t | AppID игры. Это обязательно текущая игра. |
Связанные функции: RequestFriendRichPresenceFriendsEnumerateFollowingList_t
Возвращает результат EnumerateFollowingList.
Название | Тип | Описание |
m_eResult | EResult | Результат операции. |
m_rgSteamID | CSteamID[k_cEnumerateFollowersMax] | The list of users that we are following. |
m_nResultsReturned | int32 | Число результатов, возвращённых в m_rgSteamID . |
m_nTotalResultCount | int32 | The 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. |
Связанные функции: EnumerateFollowingListFriendsGetFollowerCount_t
Возвращает результат GetFollowerCount.
Название | Тип | Описание |
m_eResult | EResult | Результат операции. |
m_steamID | CSteamID | The Steam ID of the user we requested the follower count for. |
m_nCount | int | Число подписчиков пользователя. |
Связанные функции: GetFollowerCountFriendsIsFollowing_t
Возвращает результат IsFollowing.
Название | Тип | Описание |
m_eResult | EResult | Результат операции. |
m_steamID | CSteamID | Проверенный SteamID. |
m_bIsFollowing | bool | Are we following the user? (true) or not? (false) |
Связанные функции: IsFollowingGameConnectedChatJoin_t
Called when a user has joined a Steam group chat that we are in.
Название | Тип | Описание |
m_steamIDClanChat | CSteamID | SteamID чата, к которому присоединился пользователь. |
m_steamIDUser | CSteamID | SteamID пользователя, который присоединился к чату. |
Связанные функции: JoinClanChatRoomGameConnectedChatLeave_t
Called when a user has left a Steam group chat that the we are in.
Название | Тип | Описание |
m_steamIDClanChat | CSteamID | SteamID чата, из которого вышел пользователь. |
m_steamIDUser | CSteamID | SteamID пользователя, который вышел из чата. |
m_bKicked | bool | Was the user kicked by an officer (true), or not (false)? |
m_bDropped | bool | Was the user's connection to Steam dropped (true), or did they leave via other means (false)? |
Связанные функции: LeaveClanChatRoomGameConnectedClanChatMsg_t
Called when a chat message has been received in a Steam group chat that we are in.
Название | Тип | Описание |
m_steamIDClanChat | CSteamID | SteamID чата, в котором получено сообщение. |
m_steamIDUser | CSteamID | SteamID пользователя, отправившего сообщение. |
m_iMessageID | int | The index of the message to get the actual data from with GetClanChatMessage. |
Связанные функции: JoinClanChatRoomGameConnectedFriendChatMsg_t
Called when chat message has been received from a friend.
Название | Тип | Описание |
m_steamIDUser | CSteamID | SteamID друга, отправившего сообщение. |
m_iMessageID | int | The index of the message to get the actual data from with GetFriendMessage. |
Связанные функции: SetListenForFriendsMessagesGameLobbyJoinRequested_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_steamIDLobby | CSteamID | The Steam ID of the lobby to connect to. |
m_steamIDFriend | CSteamID | Друг, через которого подключился текущий пользователь. 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_bActive | uint8 | 1 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_steamIDFriend | CSteamID | Друг, через которого подключился текущий пользователь. This will be invalid if not directly via a friend. |
m_rgchConnect | char[k_cchMaxRichPresenceValueLength] | The 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_rgchServer | char[64] | Server address (e.g. "127.0.0.1:27015", "tf2.valvesoftware.com") |
m_rgchPassword | char[64] | Server password, if any. |
JoinClanChatRoomCompletionResult_t
Posted when the user has attempted to join a Steam group chat via JoinClanChatRoom
Название | Тип | Описание |
m_steamIDClanChat | CSteamID | SteamID чата, к которому присоединился пользователь. |
m_eChatRoomEnterResponse | EChatRoomEnterResponse | Результат операции. |
Связанные функции: JoinClanChatRoomPersonaStateChange_t
Called whenever a friends' status changes.
Название | Тип | Описание |
m_ulSteamID | uint64 | Steam ID of the user who changed. |
m_nChangeFlags | int | A bit-wise union of EPersonaChange values. |
Связанные функции: RequestUserInformationSetPersonaNameResponse_t
Сообщает результат попытки изменить имя профиля текущего пользователя.
Название | Тип | Описание |
m_bSuccess | bool | true if name change completed successfully. |
m_bLocalSuccess | bool | true if name change was retained locally. We might not have been able to communicate with Steam. |
m_result | EResult | Результат операции. |
Связанные функции: 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_gameID | CGameID | ID игры, в которую играет друг. |
m_unGameIP | uint32 | IP сервера, на котором играет друг. |
m_usGamePort | uint16 | Порт сервера, на котором играет друг. |
m_usQueryPort | uint16 | The query port of the server the friend is playing on. |
m_steamIDLobby | CSteamID | SteamID лобби, в котором находится друг. |
FriendSessionStateInfo_t
Информация о пользовательских сессиях (Steam Internal usage only.)
Название | Тип | Описание |
m_uiOnlineSessionInstances | uint32 | |
m_uiPublishedToFriendsSessionInstance | uint8 | |
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.
EquippedProfileItems_t
CallResult from RequestEquippedProfileItems. Also sent as a Callback.
Название | Тип | Описание |
m_eResult | EResult | |
m_bHasAnimatedAvatar | CSteamID | |
m_bHasAvatarFrame | bool | |
m_bHasProfileModifier | bool | |
m_bHasProfileBackground | bool | |
m_bHasMiniProfileBackground | bool | |
Перечисления
Далее приведён список перечислений, которые определены для использования с ISteamFriends.EFriendFlags
Flags for enumerating friends list, or quickly checking the relationship between users.
Название | Значение | Описание |
k_EFriendFlagNone | 0x00 | Отсутствует. |
k_EFriendFlagBlocked | 0x01 | Пользователи, которых текущий игрок заблокировал. |
k_EFriendFlagFriendshipRequested | 0x02 | Пользователи, которые отправили приглашение в друзья текущему пользователю. |
k_EFriendFlagImmediate | 0x04 | «Обычные» друзья текущего пользователя. |
k_EFriendFlagClanMember | 0x08 | Пользователи, находящиеся в той же группе Steam (маленькой), что и текущий пользователь. |
k_EFriendFlagOnGameServer | 0x10 | Users that are on the same game server; as set by SetPlayedWith. |
k_EFriendFlagRequestingFriendship | 0x80 | Пользователи, которым текущий игрок отправил приглашения в друзья. |
k_EFriendFlagRequestingInfo | 0x100 | Пользователи, которые в данный момент отправляют дополнительную информацию о себе после вызова RequestUserInformation. |
k_EFriendFlagIgnored | 0x200 | Пользователи, которых текущий игрок проигнорировал. |
k_EFriendFlagIgnoredFriend | 0x400 | Пользователи, которые проигнорировали текущего пользователя, но ему всё равно доступна информация о них. |
k_EFriendFlagChatMember | 0x1000 | Пользователи в одном из чатов с текущим пользователем. |
k_EFriendFlagAll | 0xFFFF | Возвращает все флаги друзей. |
EFriendRelationship
Declares the set of relationships that Steam users may have.
Название | Значение | Описание |
k_EFriendRelationshipNone | 0 | У пользователей нет отношений. |
k_EFriendRelationshipBlocked | 1 | The user has just clicked Ignore on an friendship invite. This doesn't get stored. |
k_EFriendRelationshipRequestRecipient | 2 | Пользователь отправил запрос на дружбу с текущим пользователем. |
k_EFriendRelationshipFriend | 3 | «Обычный» друг. |
k_EFriendRelationshipRequestInitiator | 4 | Текущий игрок отправил приглашение в друзья. |
k_EFriendRelationshipIgnored | 5 | The current user has explicit blocked this other user from comments/chat/etc. Это значение сохраняется. |
k_EFriendRelationshipIgnoredFriend | 6 | Пользователь проигнорировал текущего пользователя. |
k_EFriendRelationshipSuggested_DEPRECATED | 7 | Deprecated -- Unused. |
k_EFriendRelationshipMax | 8 | Общее число отношений, используется в циклах и для проверок. |
EOverlayToStoreFlag
These values are passed as parameters to the store with ActivateGameOverlayToStore and modify the behavior when the page opens.
Name | Значение | Описание |
k_EOverlayToStoreFlag_None | 0 | No |
k_EOverlayToStoreFlag_AddToCart | 1 | Deprecated, now works the same as k_EOverlayToStoreFlag_AddToCartAndShow. |
k_EOverlayToStoreFlag_AddToCartAndShow | 2 | Add 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_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
List of states a Steam friend can be in.
Name | Значение | Описание |
k_EPersonaStateOffline | 0 | Друг в данный момент не вошёл в аккаунт. |
k_EPersonaStateOnline | 1 | Друг вошёл в аккаунт. |
k_EPersonaStateBusy | 2 | Friend is logged on, but set to "Do not disturb." |
k_EPersonaStateAway | 3 | Друга нет на месте (автоматическая функция). |
k_EPersonaStateSnooze | 4 | Друга нет на месте долгое время (автоматическая функция). |
k_EPersonaStateLookingToTrade | 5 | Online, trading. |
k_EPersonaStateLookingToPlay | 6 | Online, wanting to play. |
k_EPersonaStateMax | 7 | Общее число состояний. Используется только в циклах и для проверок. |
EUserRestriction
Флаги пользовательских ограничений. These are returned by GetUserRestrictions.
Name | Значение | Описание |
k_nUserRestrictionNone | 0 | No known chat/content restriction. |
k_nUserRestrictionUnknown | 1 | We don't know yet, the user is offline. |
k_nUserRestrictionAnyChat | 2 | User is not allowed to (or can't) send/recv any chat. |
k_nUserRestrictionVoiceChat | 4 | User is not allowed to (or can't) send/recv voice chat. |
k_nUserRestrictionGroupChat | 8 | User is not allowed to (or can't) send/recv group chat. |
k_nUserRestrictionRating | 16 | User is too young according to rating in current region. |
k_nUserRestrictionGameInvites | 32 | User cannot send or recv game invites, for example if they are on mobile. |
k_nUserRestrictionTrading | 64 | User cannot participate in trading, for example if they are on a console or mobile. |
ECommunityProfileItemType
Steam Community profile item types
ECommunityProfileItemProperty
Properties on a Steam Community profile item. See GetProfileItemPropertyString and GetProfileItemPropertyUint.
EActivateGameOverlayToWebPageMode
Game Overlay web page modes
Name | Value | Описание |
k_EActivateGameOverlayToWebPageMode_Default | 0 | Browser 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_Modal | 1 | Browser 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.
Name | Base type | Description |
FriendsGroupID_t | int16 | Friends group (tags) identifier. |
Константы
These are constants which are defined for use with ISteamFriends.
Name | Type | Value | Description |
k_cchMaxFriendsGroupName | int | 64 | The maximum length that a friends group name can be (not including the null-terminator!) |
k_cchMaxRichPresenceKeyLength | int | 64 | The maximum length that a rich presence key can be. |
k_cchMaxRichPresenceKeys | int | 20 | The maximum amount of rich presence keys that can be set. |
k_cchMaxRichPresenceValueLength | int | 256 | The maximum length that a rich presence value can be. |
k_cchPersonaNameMax | int | 128 | Maximum number of UTF-8 bytes in a users persona (display) name. |
k_cEnumerateFollowersMax | int | 50 | The maximum number of followers that will be returned in a FriendsEnumerateFollowingList_t call result at once. |
k_cFriendsGroupLimit | int | 100 | Deprecated - Unused. |
k_cubChatMetadataMax | uint32 | 8192 | Maximum size in bytes that chat room, lobby, or chat/lobby member metadata may have. |
k_cwchPersonaNameMax | int | 32 | The maximum amount of UTF-16 characters in a users persona (display) name. |
k_FriendsGroupID_Invalid | FriendsGroupID_t | -1 | Invalid friends group identifier. |
STEAMFRIENDS_INTERFACE_VERSION | const 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.
Разработчик игры предоставляет файл локализации расширенных статусов в разделе расширенных статусов во вкладке сообщества на странице настроек приложения.
Для тестирования можно использовать 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é"
}
}
}