Dokumentacja Steamworks
Interfejs ISteamApps
Daje dostęp do wielu informacji oraz działań przeznaczonych dla aplikacji oraz zawartości do pobrania (DLC).

Metody

Metody interfejsu ISteamApps są wywoływane poprzez akcesor globalny SteamApps().

BGetDLCDataByIndex

bool BGetDLCDataByIndex( int iDLC, AppId_t *pAppID, bool *pbAvailable, char *pchName, int cchNameBufferSize );
NazwaTypOpis
iDLCintIndeks DLC do pobrania z zakresu od 0 do GetDLCCount.
pAppIDAppId_t *Zwraca ID aplikacji danego DLC.
pbAvailablebool *Zwraca wartość zależną od tego, czy DLC jest obecnie dostępne w Sklepie Steam. Wartość wyniesie „false”, jeżeli DLC nie posiada widocznej strony w sklepie.
pchNamechar *Zwraca nazwę DLC poprzez skopiowanie jej do tego bufora.
cchNameBufferSizeintDługość bufora pchName.

Zwraca metadane dla DLC według indeksu.

Zwraca: bool
true – jeśli obecne ID aplikacji ma DLC powiązane z nią i iDLC znajduje się w zakresie od 0 do GetDLCCount; w przeciwnym wypadku false.

Przykład:
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 ) { // zrób coś z danymi DLC } }

BIsAppInstalled

bool BIsAppInstalled( AppId_t appID );
NazwaTypOpis
appIDAppId_tID danej aplikacji do sprawdzenia.

Sprawdza, czy określona aplikacja jest zainstalowana.

Aplikacja może nie być faktycznie własnością obecnego użytkownika, mogła pozostać po darmowym weekendzie itp.

Działa to tylko dla aplikacji bazowych, nie dla DLC. Zamiast tego skorzystaj z BIsDlcInstalled dla DLC.

Zwraca: bool
true – jeśli określone ID aplikacji jest zainstalowane; w przeciwnym wypadku false.

BIsCybercafe

bool BIsCybercafe();
Sprawdza, czy obecne ID aplikacji jest przeznaczone dla kafejek internetowych.

Zwraca: bool
true – jeśli licencja przeznaczona jest dla kafejek internetowych; w przeciwnym wypadku false.
Przestarzałe – nieużywane.

BIsDlcInstalled

bool BIsDlcInstalled( AppId_t appID );
NazwaTypOpis
appIDAppId_tID aplikacji dla DLC do sprawdzenia.

Sprawdza, czy użytkownik posiada dane DLC i czy zostało ono zainstalowane.

Zwraca: bool
true – jeśli użytkownik używa DLC, które jest zainstalowane; w przeciwnym wypadku false.

Uwaga: funkcja powinna być używana tylko do podstawowych sprawdzeń po stronie klienta, a nie do przyznawania przedmiotów w grze.

BIsLowViolence

bool BIsLowViolence();
Sprawdza, czy licencja posiadana przez użytkownika dostarcza magazyny zawartości z niskim poziomem brutalności.

Magazyny zawartości z niskim poziomem brutalności są użyteczne w przypadku kopii sprzedawanych w krajach z ograniczeniami dotyczącymi zawartości.

Zwraca: bool
true – jeśli licencja użytkownika posiada magazyny zawartości z treściami z niskim poziomem brutalności; w przeciwnym wypadku false.

Zobacz również: Zasady montowania magazynów zawartości.

BIsSubscribed

bool BIsSubscribed();
Sprawdza, czy aktywny użytkownik posiada subskrypcję obecnego ID aplikacji.

UWAGA: ta funkcja zawsze będzie zwracać wartość true, jeżeli korzystasz ze Steam DRM lub wywołujesz SteamAPI_RestartAppIfNecessary.

Zwraca: bool
true – jeśli aktywny użytkownik posiada obecne ID aplikacji; w przeciwnym wypadku false.

BIsSubscribedApp

bool BIsSubscribedApp( AppId_t appID );
NazwaTypOpis
appIDAppId_tID aplikacji do sprawdzenia.

Sprawdza, czy aktywny użytkownik posiada subskrypcję obecnego ID aplikacji.

Korzystaj z tego tylko, gdy musisz sprawdzić, czy użytkownik posiada inną grę powiązaną z twoją, np. demo.

Zwraca: bool
true – jeśli aktywny użytkownik posiada subskrypcję do obecnego ID aplikacji; w przeciwnym wypadku false.

BIsSubscribedFromFamilySharing

bool BIsSubscribedFromFamilySharing();

Sprawdza, czy aktywny użytkownik uzyskuje dostęp do obecnego ID aplikacji poprzez tymczasową licencję funkcji Udostępniania gier posiadaną przez innego użytkownika.

Aby określić ID Steam stałego właściciela licencji, użyj funkcji GetAppOwner.

Zwraca: bool
true – jeśli aktywny użytkownik korzysta z obecnego ID aplikacji poprzez funkcję Udostępniania gier; w przeciwnym wypadku false.

BIsSubscribedFromFreeWeekend

bool BIsSubscribedFromFreeWeekend();

Sprawdza, czy użytkownik posiada subskrypcję obecnego ID aplikacji w czasie darmowego weekendu.

Przed skorzystaniem z tego skontaktuj się z pracownikiem technicznym Valve poprzez forum dyskusyjne Steamworks, by odpowiednio spakować i zabezpieczyć swój darmowy weekend.

Zwraca: bool
true – jeśli aktywny użytkownik posiada subskrypcję obecnego ID aplikacji poprzez darmowy weekend; false w przypadku każdego innego typu licencji.

BIsTimedTrial

bool BIsTimedTrial(uint32* punSecondsAllowed, uint32* punSecondsPlayed);
NazwaTypOpis
punSecondsAlloweduint32 *Zwraca czas trwania ograniczonego czasowo okresu próbnego wyrażonego w sekundach.
punSecondsPlayeduint32 *Zwraca czas spędzony dotychczas przez gracza w grze wyrażony w sekundach.

Sprawdza, czy użytkownik posiada subskrypcję obecnego ID aplikacji poprzez ograniczony czasowo okres próbny. Jeśli tak, to zwracane jest „true” i podawany jest całkowity czas, przez który można grać w ramach ograniczonego okresu próbnego wraz z jego obecną ilością wykorzystaną w grze przez użytkownika.

Zwraca: bool
true – jeśli aktywny użytkownik posiada subskrypcję obecnego appID poprzez ograniczony czasowo okres próbny; false w przypadku każdego innego typu licencji.

Zobacz również: TimedTrialStatus_t

BIsVACBanned

bool BIsVACBanned();
Sprawdza, czy na konto użytkownika nałożona jest blokada VAC.

Zwraca: bool
true – jeśli użytkownik posiada blokadę VAC na swoim koncie; w przeciwnym wypadku false.

GetAppBuildId

int GetAppBuildId();
Pobiera ID kompilacji dla tej aplikacji. Może się ono zmienić w każdej chwili w zależności od aktualizacji gry.

Zwraca: int
Obecne ID kompilacji tej aplikacji. Domyślna wartość to 0, jeśli nie korzystasz z kompilacji pobranej ze Steam.

GetAppInstallDir

uint32 GetAppInstallDir( AppId_t appID, char *pchFolder, uint32 cchFolderBufferSize );
NazwaTypOpis
appIDAppId_tID aplikacji, dla której zostanie pobrana ścieżka instalacyjna.
pchFolderchar *Bufor stringa, do którego zostanie skopiowana ścieżka.
cchFolderBufferSizeuint32Rozmiar bufora pchFolder wyrażony w bajtach.

Pobiera folder instalacyjny dla określonego ID aplikacji.

Działa to nawet, gdy aplikacja nie jest zainstalowana. W takim przypadku będzie to domyślna ścieżka instalacyjna w bibliotece Steam.

Zwraca: uint32
Zwraca ścieżkę instalacyjną jako string do bufora zawartego w pchFolder oraz liczbę bajtów skopiowanych do tego bufora.

GetAppOwner

CSteamID GetAppOwner();
Gets the Steam ID of the true owner of the current app. This is different from the current user if they are accessing this app via Family Sharing

Zwraca: CSteamID
Oryginalny właściciel bieżącej aplikacji.

GetAvailableGameLanguages

const char * GetAvailableGameLanguages();
Pobiera listę języków wspieranych przez obecną aplikację. Języki są oddzielone przecinkami.

Aby poznać pełną listę zwracanych języków, sprawdź artykuł o lokalizacji i językach.

Zwraca: const char *
Zwraca listę języków oddzielonych przecinkami.

Zobacz również: GetCurrentGameLanguage, ISteamUtils::GetSteamUILanguage.

GetCurrentBetaName

bool GetCurrentBetaName( char *pchName, int cchNameBufferSize );
NazwaTypOpis
pchNamechar *Bufor, do którego zostanie skopiowana nazwa wersji beta.
cchNameBufferSizeintŁączny rozmiar bufora pchName.

Sprawdza, czy użytkownik uruchamia aplikację z gałęzi beta i pobiera nazwę tej gałęzi, jeżeli tak jest.

Zwraca: bool
true – jeśli użytkownik korzysta z gałęzi beta; w przeciwnym wypadku false.

GetCurrentGameLanguage

const char * GetCurrentGameLanguage();
Pobiera język, który jest obecnie ustawiony przez użytkownika.

Zwraca to język interfejsu użytkownika (UI) Steam, jeżeli użytkownik nie wybrał wprost języka dla tego tytułu.

Pełna lista obsługiwanych języków znajduje się tutaj.

Zwraca: const char *


Zobacz również: GetAvailableGameLanguages, ISteamUtils::GetSteamUILanguage.

GetDLCCount

int GetDLCCount();
Pobiera liczbę części DLC dla bieżącej aplikacji.

Zazwyczaj korzysta się z tego do iterowania po każdym DLC i uzyskiwaniu informacji dla każdego z nich za pomocą BGetDLCDataByIndex.

Zwraca: int
Liczba DLC dla bieżącej aplikacji. Miej na uwadze, że ta liczba może zostać ograniczona do 64 w zależności od liczby DLC, które nie są posiadane przez użytkownika. Jeśli twoja aplikacja posiada dużą liczbę DLC, to musisz ustawić swoją własną wewnętrzną listę znanych DLC dla porównania.

Przykład:
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 ) { // zrób coś z danymi DLC } }

GetDlcDownloadProgress

bool GetDlcDownloadProgress( AppId_t nAppID, uint64 *punBytesDownloaded, uint64 *punBytesTotal );
NazwaTypOpis
nAppIDAppId_tID aplikacji określonego DLC do monitorowania.
punBytesDownloadeduint64 *Zwraca liczbę pobranych bajtów.
punBytesTotaluint64 *Zwraca łączny rozmiar danych do pobrania w bajtach.

Pobiera postęp pobierania dla opcjonalnego DLC.

Zwraca: bool
true – jeśli określone DLC istnieje i jest obecnie pobierane; w przeciwnym wypadku false.

GetEarliestPurchaseUnixTime

uint32 GetEarliestPurchaseUnixTime( AppId_t nAppID );
NazwaTypOpis
nAppIDAppId_tID aplikacji, dla której pobierana jest data zakupu.

Pobiera datę zakupu określonej aplikacji w czasie uniksowym (czas od 1 stycznia 1970).

Jest to przydatne, gdy chcesz nagrodzić swoich użytkowników w zależności od daty zakupu przez nich produktu.

Zwraca: uint32
Najwcześniejszy zakup wyrażony w czasie uniksowym (liczba sekund liczonych od 1 stycznia 1970 roku).

GetFileDetails

SteamAPICall_t GetFileDetails( const char*pszFileName );
NazwaTypDescription
pszFileNameconst char*Ścieżka absolutna i nazwa tego pliku.

Asynchronicznie pobiera szczegółowe metadane określonego pliku w manifeście magazynu zawartości.

Obecnie podaje:
Rozmiar pliku w bajtach.
Hash SHA1 pliku.
Flagi pliku.

Zwraca: SteamAPICall_t do wykorzystania z wynikiem wywołania FileDetailsResult_t.

GetInstalledDepots

uint32 GetInstalledDepots( AppId_t appID, DepotId_t *pvecDepots, uint32 cMaxDepots );
NazwaTypOpis
appIDAppId_tAplikacja, dla której zostanie pobrana lista magazynów zawartości.
pvecDepotsDepotId_t *Prealokowana tablica, która zostanie wypełniona listą magazynów zawartości.
cMaxDepotsuint32Maksymalna liczba magazynów zawartości do pobrania, zazwyczaj rozmiar pvecDepots.

Pobiera listę wszystkich zainstalowanych magazynów zawartości dla danego ID aplikacji w kolejności montowania.

Zwraca: uint32
Liczba zwróconych magazynów.

GetLaunchCommandLine

int GetLaunchCommandLine( char *pszCommandLine, int cubCommandLine );
NazwaTypOpis
pszCommandLinechar *Bufor stringa, do którego zostanie skopiowany wiersz poleceń.
cubCommandLine intRozmiar bufora pszCommandLine wyrażony w bajtach.

Pobiera wiersz poleceń, jeśli gra została uruchomiona poprzez adres URL Steam, np. steam://run/<ID aplikacji>//<polecenie>/. Ta metoda jest bardziej preferowana od uruchomienia przy użyciu wiersza poleceń poprzez system operacyjny, ponieważ druga opcja może stanowić zagrożenie dla bezpieczeństwa. Aby dołączanie za pośrednictwem funkcji rich presence korzystało z tej funkcji zamiast z wiersza polecenia systemu operacyjnego, użyj opcji „Korzystaj z wiersza polecenia”, przechodząc kolejno do menu Instalacja > Ogólne na stronie twojej aplikacji.

Zwraca: int
Zwraca wiersz polecenia jako string bufora podanego w pszCommandLine oraz liczbę bajtów, które zostały skopiowane do tego bufora.

Zobacz również: NewUrlLaunchParameters_t

GetLaunchQueryParam

const char * GetLaunchQueryParam( const char *pchKey );
NazwaTypOpis
pchKeyconst char *Klucz uruchomienia do przetestowania, np. param1.

Pobiera powiązany parametr uruchomienia, jeżeli gra jest uruchamiana poprzez steam://run/<ID aplikacji>/?param1=value1;param2=value2;param3=value3 itd.

Nazwy parametrów zaczynające się od znaku „@” są zarezerwowane dla użytku wewnętrznego i zawsze zwrócą puste stringi.
Nazwy parametrów zaczynające się od znaku podkreślenia „_” są zarezerwowane dla funkcji Steam – można tworzyć od nich zapytania w grze, ale zalecane jest nienadawanie nazw zaczynających się od znaku podkreślenia swoim własnym funkcjom.

Zwraca: const char *
Wartość powiązana z przekazanym kluczem. Zwraca pusty string (""), jeżeli określony klucz nie istnieje.

Zobacz również: NewLaunchQueryParameters_t

InstallDLC

void InstallDLC( AppId_t nAppID );
NazwaTypOpis
nAppIDAppId_tDLC, które chcesz zainstalować.

Pozwala zainstalować opcjonalne DLC.

Zwraca: void

Wykonuje wywołanie zwrotne DlcInstalled_t.

MarkContentCorrupt

bool MarkContentCorrupt( bool bMissingFilesOnly );
NazwaTypOpis
bMissingFilesOnlyboolSkanuj wyłącznie w poszukiwaniu brakujących plików, nie weryfikuj sumy kontrolnej każdego pliku.

Pozwala na wymuszenie weryfikacji zawartości gry przy następnym uruchomieniu.

Jeżeli wykrywasz, że gra jest nieaktualna (np. chcesz, żeby klient wykrywał niezgodność wersji z serwerem),
możesz użyć MarkContentCorrupt, by wymusić weryfikację, wyświetlić wiadomość użytkownikowi, a następnie wyjść.

Zwraca: bool

RequestAllProofOfPurchaseKeys

void RequestAllProofOfPurchaseKeys();
Przestarzałe.

RequestAppProofOfPurchaseKey

void RequestAppProofOfPurchaseKey( AppId_t nAppID );
NazwaTypOpis
nAppIDAppId_t

Przestarzałe.

UninstallDLC

void UninstallDLC( AppId_t nAppID );
NazwaTypOpis
nAppIDAppId_tDLC, które chcesz odinstalować.

Pozwala ci na odinstalowanie opcjonalnego DLC.

Wywołania zwrotne

Są to wywołania zwrotne, które można wykonać poprzez wywołanie SteamAPI_RunCallbacks. Wiele z nich zostanie wywołanych bezpośrednio w odpowiedzi na funkcje składowe interfejsu ISteamApps.

AppProofOfPurchaseKeyResponse_t

Używane wyłącznie wewnętrznie w Steam.

NazwaTypOpis
m_eResultEResult
m_nAppIDuint32
m_cchKeyLengthuint32
m_rgchKeychar[k_cubAppProofOfPurchaseKeyMax

DlcInstalled_t

Wykonywane po tym, gdy obecny użytkownik wejdzie w posiadanie DLC i to DLC jest zainstalowane.

NazwaTypOpis
m_nAppIDAppId_tID aplikacji zainstalowanego DLC.

Powiązane funkcje: InstallDLC

FileDetailsResult_t

Wywoływane po wysłaniu żądania o szczegóły określonego pliku.

NazwaTypOpis
m_eResultEResultCzy wywołanie było pomyślne? k_EResultOK, jeżeli było, w przeciwnym wypadku k_EResultFileNotFound, jeżeli plik nie został znaleziony. Żadne inne pola nie przyjmują wartości, jeżeli wywołanie nie zostało zakończone powodzeniem.
m_ulFileSizeuint64Oryginalny rozmiar pliku w bajtach.
m_FileSHAuint8[20]Oryginalny hash SHA1 pliku.
m_unFlagsuint32

Powiązane funkcje: GetFileDetails

NewUrlLaunchParameters_t

Wyświetlane po uruchomieniu przez użytkownika adresu URL Steam z wierszem polecenia lub parametrami zapytania takimi jak steam://run/<ID aplikacji>//?param1=value1;param2=value2;param3=value3; gdy gra jest już uruchomiona. Nowych parametrów można użyć w zapytaniu za pomocą GetLaunchCommandLine i GetLaunchQueryParam.

To wywołanie zwrotne nie posiada pól.

NewLaunchQueryParameters_t

Zamieszczane po uruchomieniu przez użytkownika adresu URL Steam z parametrami zapytania takimi jak steam://run/<ID aplikacji>//?param1=value1;param2=value2;param3=value3; gdy gra jest już uruchomiona. Nowych parametrów można użyć w zapytaniu za pomocą GetLaunchQueryParam.

To wywołanie zwrotne nie posiada pól.

RegisterActivationCodeResponse_t

Używane wyłącznie wewnętrznie w Steam.

NazwaTypOpis
m_eResultERegisterActivationCodeResult
m_unPackageRegistereduint32

TimedTrialStatus_t

Wysyłane co minutę, gdy ID aplikacji posiadane jest za pośrednictwem ograniczonego czasowo okresu próbnego.

NazwaTypOpis
m_unAppIDAppId_tID aplikacji, dla której ograniczony czasowo okres próbny jest w toku.
m_bIsOfflineboolJeśli zwracane jest „true”, to użytkownik jest obecnie offline. Czas dozwolony/spędzony w grze odnosi się do czasu spędzonego offline, a nie jego łącznej ilości.
m_unSecondsAlloweduint32Łączna liczba sekund, przez które można korzystać z aplikacji.
m_unSecondsPlayeduint32Liczba sekund, przez które korzystano z aplikacji.

Zobacz również: BIsTimedTrial

Zmienne wyliczeniowe

Są to zmienne wyliczeniowe, które zostały zdefiniowane do wykorzystania z interfejsem ISteamApps.

ERegisterActivationCodeResult

Używane wyłącznie wewnętrznie w Steam.

NazwaWartośćOpis
k_ERegisterActivationCodeResultOK0
k_ERegisterActivationCodeResultFail1
k_ERegisterActivationCodeResultAlreadyRegistered2
k_ERegisterActivationCodeResultTimeout3
k_ERegisterActivationCodeAlreadyOwned4

Stałe

Są to stałe, które zostały zdefiniowane do wykorzystania z interfejsem ISteamApps.

NazwaTypWartośćOpis
k_cubAppProofOfPurchaseKeyMaxint240Używane wyłącznie wewnętrznie w Steam.
STEAMAPPS_INTERFACE_VERSIONconst char *"STEAMAPPS_INTERFACE_VERSION008"