Представляет подробную информацию о приложениях и
доп. контенте, а также позволяет выполнять над ними те или иные действия.
Функции-члены
Функции-члены
ISteamApps
вызываются с помощью глобальной функции доступа
SteamApps()
.
BGetDLCDataByIndex
bool BGetDLCDataByIndex( int iDLC, AppId_t *pAppID, bool *pbAvailable, char *pchName, int cchNameBufferSize );
Название | Тип | Описание |
iDLC | int | Получаемый индекс элемента доп. контента между 0 и GetDLCCount. |
pAppID | AppId_t * | Возвращает AppID данного элемента доп. контента. |
pbAvailable | bool * | Возвращает информацию о том, доступен ли данный доп. контент в магазине Steam. Результат будет false, если у доп.контента нет видимой страницы в магазине. |
pchName | char * | Возвращает название доп. контента, которое копируется в буфер. |
cchNameBufferSize | int | Длина буфера 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 );
Название | Тип | Описание |
appID | AppId_t | AppID проверяемого приложения. |
Проверяет, установлено ли конкретное приложение.
Текущий пользователь может и не владеть приложением, если, к примеру, оно осталось с бесплатных выходных и проч.
Работает только для основных приложений, не для
доп. контента. Для доп. контента используйте
BIsDlcInstalled.
Возвращаемые значения: bool
true, если указанное приложение установлено, в противном случае
false.
BIsCybercafe
bool BIsCybercafe();
Проверяет, предназначено ли текущее приложение для интернет-кафе.
Возвращает: bool
true, если лицензия предназначена для интернет-кафе, в противном случае
false.
Устарело: больше не используется.
BIsDlcInstalled
bool BIsDlcInstalled( AppId_t appID );
Название | Тип | Описание |
appID | AppId_t | AppID проверяемого элемента доп. контента. |
Проверяет, владеет ли пользователь конкретным доп. контентом, и установлен ли он.
Возвращает: 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 );
Название | Тип | Описание |
appID | AppId_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);
Название | Тип | Описание |
punSecondsAllowed | uint32 * | Возвращает число секунд, сколько будет длиться временная пробная версия. |
punSecondsPlayed | uint32 * | Возвращает число секунд, проведённых пользователем в игре на данный момент. |
Проверяет, подписан ли активный пользователь на текущий AppID в рамках временной пробной версии. Если это так, возвращает true и показывает общее время, в течение которого можно играть во временную пробную версию, а также текущее количество времени, затраченное пользователем на игру.
Возвращает: bool
true если активный пользователь подписан на текущий AppID в рамках временной пробной версии, в противном случае
false.
См. также: TimedTrialStatus_tBIsVACBanned
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 );
Название | Тип | Описание |
appID | AppId_t | AppID, для которого запрашивается информация о папке установки. |
pchFolder | char * | Строковой буфер, в который копируется путь к папке. |
cchFolderBufferSize | uint32 | Размер буфера pchFolder в байтах. |
Получает папку установки конкретного AppID.
Работает, даже если приложение не установлено. В этом случае показывает папку библиотеки Steam, куда игра устанавливается по умолчанию.
Возвращаемые значения: uint32Копирует путь к папке установки в виде строки в буфер pchFolder, а также возвращает число байтов, которые были скопированы в этот буфер.
GetAppOwner
CSteamID GetAppOwner();
Получает SteamID исходного владельца текущего приложения. Отличается от текущего пользователя, если он получил доступ к игре с помощью функции Family Sharing.
Возвращает: CSteamIDИсходный владелец текущего приложения.
GetAvailableGameLanguages
const char * GetAvailableGameLanguages();
Получает список языков, которые поддерживает текущее приложение, через запятую.
Полный список языков, которые могут быть возвращены, см. в разделе «
Локализация и настройки языка».
Возвращает: const char *
Возвращает список языков (разделитель — запятая).
См. также: GetCurrentGameLanguage,
ISteamUtils::GetSteamUILanguageGetCurrentBetaName
bool GetCurrentBetaName( char *pchName, int cchNameBufferSize );
Название | Тип | Описание |
pchName | char * | Буфер, куда будет скопировано название бета-версии. |
cchNameBufferSize | int | Размер буфера pchName. |
Проверяет, что пользователь запустил приложение из бета-ветки, и если да — возвращает название ветки.
Возвращает: bool
true если пользователь запустил приложение из бета-ветки, в противном случае
false.
GetCurrentGameLanguage
const char * GetCurrentGameLanguage();
Получает текущий язык, выбранный пользователем.
Если пользователь не задал язык продукта отдельно, будет получен язык интерфейса Steam.
Полный список языков, которые могут быть возвращены, см. в разделе
«Поддерживаемые языки».
Возвращает: const char *
См. также: GetAvailableGameLanguages,
ISteamUtils::GetSteamUILanguageGetDLCCount
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 );
Название | Тип | Описание |
nAppID | AppId_t | AppID элемента доп. контента для отслеживания. |
punBytesDownloaded | uint64 * | Возвращает число загруженных байтов. |
punBytesTotal | uint64 * | Возвращает полный размер загрузки в байтах. |
Получает данные о ходе загрузки необязательного доп. контента.
Возвращает: bool
true, если указанный доп. контент существует и в данный момент загружается, в противном случае
false.
GetEarliestPurchaseUnixTime
uint32 GetEarliestPurchaseUnixTime( AppId_t nAppID );
Название | Тип | Описание |
nAppID | AppId_t | AppID, для которого запрашивается информация о времени покупки. |
Получает время покупки указанного приложения в формате UNIX-времени (время с 1 января 1970 года).
Используется для награждения пользователей, исходя из времени изначальной покупки.
Возвращает: uint32Самое раннее время покупки в формате UNIX-времени (секунды с 1 января 1970 года).
GetFileDetails
SteamAPICall_t GetFileDetails( const char*pszFileName );
Название | Тип | Описание |
pszFileName | const char* | Абсолютный путь и название файла. |
Асинхронно возвращает метаданные о конкретном файле в манифесте хранилища.
В данный момент предоставляет следующие данные:
Размер файла в байтах.
Хеш SHA-1 файла.
Флаги файла.
Возвращаемые значения: SteamAPICall_t, который необходимо использовать с результатом вызова
FileDetailsResult_t.
GetInstalledDepots
uint32 GetInstalledDepots( AppId_t appID, DepotId_t *pvecDepots, uint32 cMaxDepots );
Название | Тип | Описание |
appID | AppId_t | Приложение, для которого будут перечислены хранилища. |
pvecDepots | DepotId_t * | Предварительно выделенный массив, который будет заполнен списком хранилищ. |
cMaxDepots | uint32 | Максимальное число получаемых хранилищ, обычно размер pvecDepots. |
Получает список всех установленных хранилищ для данного AppID в порядке подключения.
Возвращаемые значения: uint32Число возвращённых хранилищ.
GetLaunchCommandLine
int GetLaunchCommandLine( char *pszCommandLine, int cubCommandLine );
Название | Тип | Описание |
pszCommandLine | char * | Строковой буфер, в который копируется командная строка. |
cubCommandLine | int | Размер буфера pszCommandLine в байтах. |
Получает командную строку, если игра запущена через ссылку на Steam, к примеру: steam://run/<appid>//<command line>/. Этот метод предпочтительнее, чем запуск с помощью командной строки через операционную систему, который может угрожать безопасности аккаунта. Чтобы обеспечить работу этого метода при входе с помощью расширенных статусов без помещения на командную строку ОС, необходимо включить параметр использования командной строки запуска со страницы Установка > Общие вашего приложения.
Возвращает: int
Возвращает команду в виде строки в буфер pszCommandLine, а также возвращает число байтов, которые были скопированы в этот буфер.
См. также: NewUrlLaunchParameters_tGetLaunchQueryParam
const char * GetLaunchQueryParam( const char *pchKey );
Название | Тип | Описание |
pchKey | const char * | Ключ запуска для проверки. К примеру, param1 |
Получает связанный параметр запуска, если игра запускается с помощью steam://run/<appid>/?param1=value1;param2=value2;param3=value3 и т.п.
Названия параметров, начинающиеся со знака «@», зарезервированы для внутреннего использования и всегда будут возвращать пустую строку.
Названия параметров, начинающиеся со знака «_», зарезервированы для функций Steam, они могут быть запрошены игрой, но рекомендуется не давать параметрам названия, начинающиеся с нижнего подчёркивания.
Возвращает: const char *
Значение, связанное с предоставленным ключом. Возвращает пустую строку (""), если указанный ключ не существует.
См. также: NewLaunchQueryParameters_tInstallDLC
void InstallDLC( AppId_t nAppID );
Название | Тип | Описание |
nAppID | AppId_t | Дополнительный контент, который вы хотите установить. |
Позволяет установить необязательный элемент доп. контента.
Возвращаемые значения: void
Активирует обратный вызов
DlcInstalled_t.
MarkContentCorrupt
bool MarkContentCorrupt( bool bMissingFilesOnly );
Название | Тип | Описание |
bMissingFilesOnly | bool | Сканировать только отсутствующие файлы, не проверять контрольную сумму каждого файла. |
Позволяет принудительно проверять контент игры при следующем запуске.
Если вы обнаружите, что игра устарела (к примеру, если клиент определит, что версия не совпадает с версией на сервере),
вы можете вызвать MarkContentCorrupt для принудительной проверки, показать сообщение пользователю и выйти из игры.
Возвращает: bool
RequestAllProofOfPurchaseKeys
void RequestAllProofOfPurchaseKeys();
Устарело.
RequestAppProofOfPurchaseKey
void RequestAppProofOfPurchaseKey( AppId_t nAppID );
Устарело.
UninstallDLC
void UninstallDLC( AppId_t nAppID );
Название | Тип | Описание |
nAppID | AppId_t | Дополнительный контент, который вы хотите удалить. |
Позволяет удалить необязательный элемент доп. контента.
Обратные вызовы
Далее приведён список обратных вызовов, которые могут быть получены при вызове
SteamAPI_RunCallbacks. Многие из них могут быть получены сразу в ответ на функции-члены
ISteamApps
.
AppProofOfPurchaseKeyResponse_t
Используется для внутренних целей в Steam.
DlcInstalled_t
Инициируется после того, как текущий пользователь завладел доп. контентом и этот доп. контент установлен.
Название | Тип | Описание |
m_nAppID | AppId_t | AppID установленного элемента доп. контента. |
Связанные функции: InstallDLCFileDetailsResult_t
Вызывается после запроса информации о конкретном файле.
Название | Тип | Описание |
m_eResult | EResult | Вызов был успешен? k_EResultOK, если да. В противном случае, если файл не был найден, k_EResultFileNotFound. Если же запрос не успешен, ни одно из этих полей не заполняется. |
m_ulFileSize | uint64 | Размер исходного файла в байтах. |
m_FileSHA | uint8[20] | Хеш SHA-1 исходного файла. |
m_unFlags | uint32 | |
Связанные функции: GetFileDetailsNewUrlLaunchParameters_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.
TimedTrialStatus_t
Отправляется каждую минуту, если доступ к приложению получен через временную пробную версию.
Название | Тип | Описание |
m_unAppID | AppId_t | AppID, участвующий во временной пробной версии. |
m_bIsOffline | bool | Если true, пользователь в данный момент не в сети. Разрешённое / проведённое в игре время относится ко времени не в сети, а не к общему времени. |
m_unSecondsAllowed | uint32 | Сколько секунд в сумме можно играть в приложение. |
m_unSecondsPlayed | uint32 | Сколько секунд уже было сыграно в приложении. |
См. также: BIsTimedTrialПеречисления
Далее приведён список перечислений, которые определены для использования с ISteamApps.
ERegisterActivationCodeResult
Используется для внутренних целей в Steam.
Название | Значение | Описание |
k_ERegisterActivationCodeResultOK | 0 | |
k_ERegisterActivationCodeResultFail | 1 | |
k_ERegisterActivationCodeResultAlreadyRegistered | 2 | |
k_ERegisterActivationCodeResultTimeout | 3 | |
k_ERegisterActivationCodeAlreadyOwned | 4 | |
Константы
Далее приведён список констант, которые определены для использования с ISteamApps.
Название | Тип | Значение | Описание |
k_cubAppProofOfPurchaseKeyMax | int | 240 | Используется для внутренних целей в Steam. |
STEAMAPPS_INTERFACE_VERSION | const char * | "STEAMAPPS_INTERFACE_VERSION008" | |