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

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

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

BGetDLCDataByIndex

bool BGetDLCDataByIndex( int iDLC, AppId_t *pAppID, bool *pbAvailable, char *pchName, int cchNameBufferSize );
НазваниеТипОписание
iDLCintПолучаемый индекс элемента доп. контента между 0 и GetDLCCount.
pAppIDAppId_t *Возвращает AppID данного элемента доп. контента.
pbAvailablebool *Возвращает информацию о том, доступен ли данный доп. контент в магазине Steam. Результат будет false, если у доп.контента нет видимой страницы в магазине.
pchNamechar *Возвращает название доп. контента, которое копируется в буфер.
cchNameBufferSizeintДлина буфера pchName.

Возвращает метаданные для доп. контента по индексу.

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

Пример:
int32 DLCCount = SteamApps()->GetDLCCount(); for ( int i = 0; i < DLCCount; ++i ) { AppId_t appId; bool available; char name[128]; bool success = SteamApps()->BGetDLCDataByIndex( i, &appId, &available, name, 128 ); if ( success ) { // Делаем что-то с данными о полученном элементе доп. контента } }

BIsAppInstalled

bool BIsAppInstalled( AppId_t appID );
НазваниеТипОписание
appIDAppId_tAppID проверяемого приложения.

Проверяет, установлено ли конкретное приложение.

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

Работает только для основных приложений, не для доп. контента. Для доп. контента используйте BIsDlcInstalled.

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

BIsCybercafe

bool BIsCybercafe();
Проверяет, предназначено ли текущее приложение для интернет-кафе.

Возвращает: bool
true, если лицензия предназначена для интернет-кафе, в противном случае false.
Устарело: больше не используется.

BIsDlcInstalled

bool BIsDlcInstalled( AppId_t appID );
НазваниеТипОписание
appIDAppId_tAppID проверяемого элемента доп. контента.

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

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

Обратите внимание: должен использоваться только для простых проверок на стороне клиента; не предназначен для выдачи внутриигровых предметов.

BIsLowViolence

bool BIsLowViolence();
Проверяет, предоставляет лицензия, которой владеет пользователь, хранилища с контентом с низким уровнем насилия.

Хранилища с контентом с низким уровнем насилия используются для продажи в странах с соответствующими ограничениями.

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

См. также: Правила подключения хранилищ

BIsSubscribed

bool BIsSubscribed();
Проверяет, подписан ли активный пользователь на текущий AppID.

Обратите внимание: при использовании DRM Steam или SteamAPI_RestartAppIfNecessary данный вызов всегда вернёт true.

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

BIsSubscribedApp

bool BIsSubscribedApp( AppId_t appID );
НазваниеТипОписание
appIDAppId_tПроверяемый AppID.

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

Используйте это только в том случае, если необходимо проверить владение игрой, связанной с вашей, у примеру, демоверсией.

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

BIsSubscribedFromFamilySharing

bool BIsSubscribedFromFamilySharing();

Проверяет, использует ли активный пользователь лицензию Family Library Sharing, принадлежащую другому пользователю, чтобы получить доступ к текущему AppID.

Чтобы определить SteamID владельца лицензии, воспользуйтесь функцией GetAppOwner.

Возвращает: bool
true, если активный пользователь использует приложение через Family Library Sharing, в противном случае false.

BIsSubscribedFromFreeWeekend

bool BIsSubscribedFromFreeWeekend();

Проверяет, подписан ли активный пользователь на текущий AppID в рамках акции «Бесплатные выходные».

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

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

BIsTimedTrial

bool BIsTimedTrial(uint32* punSecondsAllowed, uint32* punSecondsPlayed);
НазваниеТипОписание
punSecondsAlloweduint32 *Возвращает число секунд, сколько будет длиться временная пробная версия.
punSecondsPlayeduint32 *Возвращает число секунд, проведённых пользователем в игре на данный момент.

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

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

См. также: TimedTrialStatus_t

BIsVACBanned

bool BIsVACBanned();
Проверяет, есть ли на аккаунте пользователя блокировка VAC.

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

GetAppBuildId

int GetAppBuildId();
Получает ID сборки данного приложения. Значение может измениться в любое время, если на сервере произойдут изменения игры.

Возвращает: int
Текущий ID сборки данного приложения. Равен 0, если запущена сборка, не загруженная из Steam.

GetAppInstallDir

uint32 GetAppInstallDir( AppId_t appID, char *pchFolder, uint32 cchFolderBufferSize );
НазваниеТипОписание
appIDAppId_tAppID, для которого запрашивается информация о папке установки.
pchFolderchar *Строковой буфер, в который копируется путь к папке.
cchFolderBufferSizeuint32Размер буфера pchFolder в байтах.

Получает папку установки конкретного AppID.

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

Возвращаемые значения: uint32
Копирует путь к папке установки в виде строки в буфер pchFolder, а также возвращает число байтов, которые были скопированы в этот буфер.

GetAppOwner

CSteamID GetAppOwner();
Получает SteamID исходного владельца текущего приложения. Отличается от текущего пользователя, если он получил доступ к игре с помощью функции Family Sharing.

Возвращает: CSteamID
Исходный владелец текущего приложения.

GetAvailableGameLanguages

const char * GetAvailableGameLanguages();
Получает список языков, которые поддерживает текущее приложение, через запятую.

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

Возвращает: const char *
Возвращает список языков (разделитель — запятая).

См. также: GetCurrentGameLanguage, ISteamUtils::GetSteamUILanguage

GetCurrentBetaName

bool GetCurrentBetaName( char *pchName, int cchNameBufferSize );
НазваниеТипОписание
pchNamechar *Буфер, куда будет скопировано название бета-версии.
cchNameBufferSizeintРазмер буфера pchName.

Проверяет, что пользователь запустил приложение из бета-ветки, и если да — возвращает название ветки.

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

GetCurrentGameLanguage

const char * GetCurrentGameLanguage();
Получает текущий язык, выбранный пользователем.

Если пользователь не задал язык продукта отдельно, будет получен язык интерфейса Steam.

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

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


См. также: GetAvailableGameLanguages, ISteamUtils::GetSteamUILanguage

GetDLCCount

int GetDLCCount();
Возвращает число элементов доп. контента для текущего приложения.

Обычно используется для цикла, в котором проходят по всем элементам доп. контента и получают информацию о каждом из них с помощью BGetDLCDataByIndex.

Возвращаемые значения: int
Число элементов доп. контента для текущего приложения. Обратите внимание, что это значение может доходить до 64, в зависимости от того, сколько доп. контента есть у пользователя не во владении. Если у вашего приложения есть большое количество доп. контента, вы должны установить свой внутренний список известного доп. контента, с которым можно будет сверяться.

К примеру:
int32 DLCCount = SteamApps()->GetDLCCount(); for ( int i = 0; i < DLCCount; ++i ) { AppId_t appId; bool available; char name[128]; bool success = SteamApps()->BGetDLCDataByIndex( i, &appId, &available, name, 128 ); if ( success ) { // Делаем что-то с данными о полученном элементе доп. контента } }

GetDlcDownloadProgress

bool GetDlcDownloadProgress( AppId_t nAppID, uint64 *punBytesDownloaded, uint64 *punBytesTotal );
НазваниеТипОписание
nAppIDAppId_tAppID элемента доп. контента для отслеживания.
punBytesDownloadeduint64 *Возвращает число загруженных байтов.
punBytesTotaluint64 *Возвращает полный размер загрузки в байтах.

Получает данные о ходе загрузки необязательного доп. контента.

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

GetEarliestPurchaseUnixTime

uint32 GetEarliestPurchaseUnixTime( AppId_t nAppID );
НазваниеТипОписание
nAppIDAppId_tAppID, для которого запрашивается информация о времени покупки.

Получает время покупки указанного приложения в формате UNIX-времени (время с 1 января 1970 года).

Используется для награждения пользователей, исходя из времени изначальной покупки.

Возвращает: uint32
Самое раннее время покупки в формате UNIX-времени (секунды с 1 января 1970 года).

GetFileDetails

SteamAPICall_t GetFileDetails( const char*pszFileName );
НазваниеТипОписание
pszFileNameconst char*Абсолютный путь и название файла.

Асинхронно возвращает метаданные о конкретном файле в манифесте хранилища.

В данный момент предоставляет следующие данные:
Размер файла в байтах.
Хеш SHA-1 файла.
Флаги файла.

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

GetInstalledDepots

uint32 GetInstalledDepots( AppId_t appID, DepotId_t *pvecDepots, uint32 cMaxDepots );
НазваниеТипОписание
appIDAppId_tПриложение, для которого будут перечислены хранилища.
pvecDepotsDepotId_t *Предварительно выделенный массив, который будет заполнен списком хранилищ.
cMaxDepotsuint32Максимальное число получаемых хранилищ, обычно размер pvecDepots.

Получает список всех установленных хранилищ для данного AppID в порядке подключения.

Возвращаемые значения: uint32
Число возвращённых хранилищ.

GetLaunchCommandLine

int GetLaunchCommandLine( char *pszCommandLine, int cubCommandLine );
НазваниеТипОписание
pszCommandLinechar *Строковой буфер, в который копируется командная строка.
cubCommandLine intРазмер буфера pszCommandLine в байтах.

Получает командную строку, если игра запущена через ссылку на Steam, к примеру: steam://run/<appid>//<command line>/. Этот метод предпочтительнее, чем запуск с помощью командной строки через операционную систему, который может угрожать безопасности аккаунта. Чтобы обеспечить работу этого метода при входе с помощью расширенных статусов без помещения на командную строку ОС, необходимо включить параметр использования командной строки запуска со страницы Установка > Общие вашего приложения.

Возвращает: int
Возвращает команду в виде строки в буфер pszCommandLine, а также возвращает число байтов, которые были скопированы в этот буфер.

См. также: NewUrlLaunchParameters_t

GetLaunchQueryParam

const char * GetLaunchQueryParam( const char *pchKey );
НазваниеТипОписание
pchKeyconst char *Ключ запуска для проверки. К примеру, param1

Получает связанный параметр запуска, если игра запускается с помощью steam://run/<appid>/?param1=value1;param2=value2;param3=value3 и т.п.

Названия параметров, начинающиеся со знака «@», зарезервированы для внутреннего использования и всегда будут возвращать пустую строку.
Названия параметров, начинающиеся со знака «_», зарезервированы для функций Steam, они могут быть запрошены игрой, но рекомендуется не давать параметрам названия, начинающиеся с нижнего подчёркивания.

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

См. также: NewLaunchQueryParameters_t

InstallDLC

void InstallDLC( AppId_t nAppID );
НазваниеТипОписание
nAppIDAppId_tДополнительный контент, который вы хотите установить.

Позволяет установить необязательный элемент доп. контента.

Возвращаемые значения: void

Активирует обратный вызов DlcInstalled_t.

MarkContentCorrupt

bool MarkContentCorrupt( bool bMissingFilesOnly );
НазваниеТипОписание
bMissingFilesOnlyboolСканировать только отсутствующие файлы, не проверять контрольную сумму каждого файла.

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

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

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

RequestAllProofOfPurchaseKeys

void RequestAllProofOfPurchaseKeys();
Устарело.

RequestAppProofOfPurchaseKey

void RequestAppProofOfPurchaseKey( AppId_t nAppID );
НазваниеТипОписание
nAppIDAppId_t

Устарело.

UninstallDLC

void UninstallDLC( AppId_t nAppID );
НазваниеТипОписание
nAppIDAppId_tДополнительный контент, который вы хотите удалить.

Позволяет удалить необязательный элемент доп. контента.

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

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

AppProofOfPurchaseKeyResponse_t

Используется для внутренних целей в Steam.

НазваниеТипОписание
m_eResultEResult
m_nAppIDuint32
m_cchKeyLengthuint32
m_rgchKeychar[k_cubAppProofOfPurchaseKeyMax

DlcInstalled_t

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

НазваниеТипОписание
m_nAppIDAppId_tAppID установленного элемента доп. контента.

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

FileDetailsResult_t

Вызывается после запроса информации о конкретном файле.

НазваниеТипОписание
m_eResultEResultВызов был успешен? k_EResultOK, если да. В противном случае, если файл не был найден, k_EResultFileNotFound. Если же запрос не успешен, ни одно из этих полей не заполняется.
m_ulFileSizeuint64Размер исходного файла в байтах.
m_FileSHAuint8[20]Хеш SHA-1 исходного файла.
m_unFlagsuint32

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

NewUrlLaunchParameters_t

Отправляется после того, как пользователь при запущенной игре использует ссылку с командной строкой или параметрами запроса в Steam, к примеру, steam://run/<appid>//?param1=value1;param2=value2;param3=value3;. Новые параметры могут быть запрошены с помощью GetLaunchCommandLine и GetLaunchQueryParam.

У данного обратного вызова отсутствуют поля.

NewLaunchQueryParameters_t

Отправляется после того, как пользователь при запущенной игре использует ссылку с параметрами запроса в Steam, к примеру, steam://run/<appid>//?param1=value1;param2=value2;param3=value3;. Новые параметры могут быть запрошены с помощью GetLaunchQueryParam.

У данного обратного вызова отсутствуют поля.

RegisterActivationCodeResponse_t

Используется для внутренних целей в Steam.

НазваниеТипОписание
m_eResultERegisterActivationCodeResult
m_unPackageRegistereduint32

TimedTrialStatus_t

Отправляется каждую минуту, если доступ к приложению получен через временную пробную версию.

НазваниеТипОписание
m_unAppIDAppId_tAppID, участвующий во временной пробной версии.
m_bIsOfflineboolЕсли true, пользователь в данный момент не в сети. Разрешённое / проведённое в игре время относится ко времени не в сети, а не к общему времени.
m_unSecondsAlloweduint32Сколько секунд в сумме можно играть в приложение.
m_unSecondsPlayeduint32Сколько секунд уже было сыграно в приложении.

См. также: BIsTimedTrial

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

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

ERegisterActivationCodeResult

Используется для внутренних целей в Steam.

НазваниеЗначениеОписание
k_ERegisterActivationCodeResultOK0
k_ERegisterActivationCodeResultFail1
k_ERegisterActivationCodeResultAlreadyRegistered2
k_ERegisterActivationCodeResultTimeout3
k_ERegisterActivationCodeAlreadyOwned4

Константы

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

НазваниеТипЗначениеОписание
k_cubAppProofOfPurchaseKeyMaxint240Используется для внутренних целей в Steam.
STEAMAPPS_INTERFACE_VERSIONconst char *"STEAMAPPS_INTERFACE_VERSION008"