Документація Steamworks
Інтерфейс ISteamApps
Надає докладну інформацію про застосунки та завантажуваний вміст.

Функції-члени

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

BGetDLCDataByIndex

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

Повертає метадані завантажуваного вмісту за індексом.

Повернені значення: bool
true якщо поточний застосунок має пов’язаний із ним завантажуваний вміст, і iDLC потрапляє за значенням у діапазон між 0 і ISteamApps::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 застосунку, який перевіряється.

Перевіряє, чи інстальовано вказаний застосунок.

Поточний користувач може не володіти застосунком, якщо, приміром, він лишився від безкоштовних вихідних тощо.

Працює лише для базових застосунків, не для завантажуваного вмісту. Використовуйте ISteamApps::BIsDlcInstalled для завантажуваного вмісту.

Повернені значення: bool
true якщо вказаний застосунок інстальовано, інакше false.

BIsCybercafe

bool BIsCybercafe();
Перевіряє, чи призначений поточний AppID для Інтернет-кафе.

Повернені значення: 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 якщо активний користувач володіє поточним AppID, інакше false.

BIsSubscribedApp

bool BIsSubscribedApp( AppId_t appID );
НазваТипОпис
AppIDAppId_tAppID, що перевіряється.

Перевіряє, чи підписаний активний користувач на вказаний AppID.

Використовуйте лише в тому випадку, якщо необхідно перевірити володіння грою, пов’язаною з вашою, як-от демоверсією.

Повернені значення: bool
true якщо активний користувач підписаний на вказаний AppID, інакше false.

BIsSubscribedFromFamilySharing

bool BIsSubscribedFromFamilySharing();

Перевіряє, чи використовує активний користувач тимчасову ліцензію сімейної бібліотеки, що належить іншому користувачу, для отримання доступу до поточного AppID.

Щоби визначити SteamID власника ліцензії, скористайтеся функцією GetAppOwner.

Повернені значення: bool
true якщо активний користувач використовує застосунок через сімейну бібліотеку, інакше false.

BIsSubscribedFromFreeWeekend

bool BIsSubscribedFromFreeWeekend();

Перевіряє, чи користувач підписався на поточний AppID на безкоштовних вихідних.

Перед використанням зверніться до технічного менеджера акаунтів Valve через обговорення Steamworks, щоби правильно запакувати й захистити свої безкоштовні вихідні.

Повернені значення: bool
true якщо активний користувач підписався на поточний AppID на безкоштовних вихідних; інакше false у разі будь-якої іншої ліцензії.

BIsTimedTrial

bool BIsTimedTrial(uint32* punSecondsAllowed, uint32* punSecondsPlayed);
НазваТипОпис
punSecondsAlloweduint32 *Повертає час дії обмеженого пробного доступу (у секундах).
punSecondsPlayeduint32 *Повертає зіграний користувачем час (у секундах).

Перевіряє, чи користувач підписався на поточний AppID під час обмеженого пробного доступу. Якщо так, то повертає true й передає назад загальний дозволений пробним доступом час гри, а також кількість часу, що користувач уже зіграв.

Повернені значення: bool
true якщо активний користувач підписався на поточний AppID через обмежений у часі доступ; інакше false у разі будь-якого іншого типу ліцензії.

Див. також: ISteamApps::TimedTrialStatus_t

BIsVACBanned

bool BIsVACBanned();
Перевіряє, чи користувач не має блокування VAC на своєму акаунті

Повернені значення: bool
true у разі наявності блокування VAC на акаунті користувача; інакше false.

GetAppBuildId

int GetAppBuildId();
Отримує ідентифікатор збірки цього застосунку, може змінюватися в будь-який момент відповідно до серверних оновлень гри.

Повернені значення: int
Поточний ідентифікатор збірки для цього застосунку. 0 означає, що запущена збірка не була завантажена зі Steam.

GetAppInstallDir

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

Отримує теку інсталяції для вказаного AppID.

Працює, навіть якщо застосунок не інстальований: показує стандартну теку інсталяції бібліотеки Steam.

Повернені значення: uint32
Повертає шлях до теки інсталяції як рядок до буфера, що надається pchFolder, а також повертає кількість байтів, які було скопійовано до цього буфера.

GetAppOwner

CSteamID GetAppOwner();
Отримує SteamID справжнього власника поточного застосунку. Відрізняється від поточного користувача, якщо гру отримано через сімейну бібліотеку.

Повернені значення: CSteamID
Оригінальний власник поточного застосунку.

GetAvailableGameLanguages

const char * GetAvailableGameLanguages();
Отримує розділений комою список мов, які підтримує поточний застосунок.

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

Повернені значення: const char *
Повертає розділений комою список мов.

Див. також: ISteamApps::GetCurrentGameLanguage, ISteamUtils::GetSteamUILanguage

GetCurrentBetaName

bool GetCurrentBetaName( char *pchName, int cchNameBufferSize );
НазваТипОпис
pchNamechar *Буфер, куди копіюється назва бети.
cchNameBufferSizeintЗагальний розмір буфера pchName.

Перевіряє, чи користувач запустив застосунок із бета-гілки. Якщо так, то повертає назву гілки.

Повернені значення: bool
true у разі запуску з бета-гілки; інакше false.

GetNumBetas

int GetNumBetas( int *pnAvailable, int *pnPrivate );
НазваТипОпис
pnAvailableint*Кількість бета-гілок, доступних поточному користувачеві.
pnPrivate int*Скільки з них приватних.

Повертає загальну кількість відомих гілок застосунку (включно зі стандартною «публічною» гілкою), дані про які можна отримати за допомогою функції GetBetaInfo().

Повернені значення: int
Кількість відомих гілок застосунку.

GetBetaInfo

bool GetBetaInfo( int iBetaIndex, uint32 *punFlags, uint32 *punBuildID, char *pchBetaName, int cchBetaName, char *pchDescription, int cchDescription );
НазваТипОпис
iBetaIndexintІндекс гілки, який починається з 0, що завжди є стандартною гілкою.
punFlagsuint32 *Набір прапорів (EBetaBranchFlags), які описують поточний стан гілки.
punBuildIDuint32 *BuildID вмісту, зробленого загальнодоступним на цій гілці.
pchBetaNamechar *Назва бета-гілки.
cchBetaNameintРозмір pchBetaName, який надав викликач.
pchDescriptionchar *Опис бета-гілки.
cchDescriptionintРозмір pchDescription, який надав викликач.

Отримує інформацію про бета-гілку застосунку, як-от назву, опис і стан.

Повернені значення: bool
Повертає true, якщо індекс гілки дійсний; інакше false.

Приклад:
int32 betaCount = SteamApps()->GetNumBetas( nullptr, nullptr ); for ( int betaIndex = 0; betaIndex < betaCount; ++betaIndex ) { char name[128]; char description[1024]; uint32 flags = 0; // EBetaBranchFlags uint32 buildID = 0; SteamApps()->GetBetaInfo( betaIndex, &flags, &buildID, name, sizeof( name ), description, sizeof( description ) ); }

SetActiveBeta

bool SetActiveBeta( const char *pchBetaName );
НазваТипОпис
pchBetaName const char *Назва бета-гілки, на яку гра хоче перемкнутися.

Вибирає активну бета-гілку для цього застосунку. Можливо, потрібен перезапуск гри, щоб Steam міг оновити цю гілку.

Повернені значення: bool

GetCurrentGameLanguage

const char * GetCurrentGameLanguage();
Отримує поточну встановлену користувачем мову.

Перемикає на мову інтерфейсу Steam, якщо користувач не вибрав мову для цього продукту безпосередньо.

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

Повернені значення: const char *


Див. також: ISteamApps::GetAvailableGameLanguages, ISteamUtils::GetSteamUILanguage

GetDLCCount

int GetDLCCount();
Отримує кількість елементів завантажуваного вмісту для поточного застосунку.

Типово використовується для проходження всім списком елементів завантажуваного вмісту й отримання інформації про кожен із них за допомогою ISteamApps::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*Абсолютний шлях до файлу і його назва.

Асинхронно отримує подробиці метаданих про вказаний файл у маніфесті сховища.

Наразі надає:
Розмір файлу в байтах.
Хеш SHA1 файлу.
Прапорці файлу.

Повернені значення: 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, а також повертає кількість байтів, які було скопійовано до цього буфера.

Див. також: ISteamApps::NewUrlLaunchParameters_t

GetLaunchQueryParam

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

Отримує пов’язані параметри запуску, якщо гра була запущена через steam://run/<appid>/?param1=value1;param2=value2;param3=value3 тощо.

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

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

Див. також: ISteamApps::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 інстальованого завантажуваного вмісту.

Пов’язані функції: ISteamApps::InstallDLC

FileDetailsResult_t

Викликається після запиту подробиць вказаного файлу.

НазваТипОпис
m_eResultEResultЧи був виклик успішним? k_EResultOK, якщо так; інакше k_EResultFileNotFound, якщо файл не знайдено. Жодні інші поля не заповнюються, якщо виклик не був успішним.
m_ulFileSizeuint64Оригінальний розмір файлу в байтах.
m_FileSHAuint8[20]Оригінальний хеш SHA1 файлу.
m_unFlagsuint32

Пов’язані функції: ISteamApps::GetFileDetails

NewUrlLaunchParameters_t

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

Цей зворотний виклик не має полів.

NewLaunchQueryParameters_t

Надсилається, коли користувач виконує посилання Steam із параметрами запиту, як-от steam://run/<appid>//?param1=value1;param2=value2;param3=value3;, коли гра вже запущена. Нові параметри можна запитати за допомогою ISteamApps::GetLaunchQueryParam.

Цей зворотний виклик не має полів.

RegisterActivationCodeResponse_t

Використовується лише внутрішньо в Steam.

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

TimedTrialStatus_t

Надсилається щохвилини, коли AppID знаходиться у власності через обмежений у часі пробний доступ.

НазваТипОпис
m_unAppIDAppId_tAppID, що має обмежений у часі пробний доступ.
m_bIsOfflineboolЯкщо true, то користувач наразі не в мережі. Дозволений / зіграний час стосується часу не в мережі, а не загального часу.
m_unSecondsAlloweduint32Скільки секунд загалом можна користуватися застосунком.
m_unSecondsPlayeduint32Скільки секунд ви вже користувалися застосунком.

Див. також: ISteamApps::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"
  翻译: