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 ISteamApps::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 ISteamApps::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, jaka ma zostać sprawdzona.

Sprawdza, czy określona aplikacja jest zainstalowana.

Aplikacja może nie być faktycznie własnością obecnego użytkownika. Może ona być pozostałością po darmowym weekendzie itp.

Działa to tylko dla aplikacji bazowych, nie dla DLC. Zamiast tego skorzystaj z ISteamApps::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 – już nieużywane.

BIsDlcInstalled

bool BIsDlcInstalled( AppId_t appID );
NazwaTypOpis
appIDAppId_tID aplikacji DLC, jakie ma zostać sprawdzone.

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

Zwraca: bool
true – jeśli użytkownik posiada DLC i jest ono obecnie 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 ma magazyny zawartości 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 z DRM Steam 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, jaka ma zostać sprawdzona.

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ę posiadaną przez innego użytkownika w ramach funkcji rodzin na Steam.

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

Zwraca: bool
true – jeśli aktywny użytkownik uzyskuje dostęp do obecnego ID aplikacji poprzez funkcję rodzin na Steam; w przeciwnym wypadku false.

BIsSubscribedFromFreeWeekend

bool BIsSubscribedFromFreeWeekend();

Sprawdza, czy użytkownik posiada subskrypcję obecnego ID aplikacji poprzez darmowy weekend.

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żony 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 obecną ilością czasu, jaki użytkownik spędził w grze.

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

Zobacz również: ISteamApps::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();
Pobiera ID Steam faktycznego posiadacza bieżącej aplikacji. Jest inne niż to bieżącego użytkownika, jeśli korzysta on z tej aplikacji w ramach funkcji rodzin na Steam.

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ż: ISteamApps::GetCurrentGameLanguage oraz 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.

GetNumBetas

int GetNumBetas( int *pnAvailable, int *pnPrivate );
NazwaTypOpis
pnAvailableint*Liczba gałęzi beta dostępnych dla bieżącego użytkownika.
pnPrivate int*Ile z nich stanowi prywatne bety.

Zwraca całkowitą liczbę znanych gałęzi aplikacji (w tym domyślną gałąź „publiczną”), które można iterować za pomocą GetBetaInfo().

Zwraca: int
Liczba znanych gałęzi aplikacji.

GetBetaInfo

bool GetBetaInfo( int iBetaIndex, uint32 *punFlags, uint32 *punBuildID, char *pchBetaName, int cchBetaName, char *pchDescription, int cchDescription );
NazwaTypOpis
iBetaIndexintIndeks gałęzi rozpoczynający się od 0, które zawsze jest gałęzią domyślną.
punFlagsuint32 *Zestaw flag (ebetaBranchFlags) opisujący bieżący stan gałęzi.
punBuildIDuint32 *ID kompilacji zawartości aktywne dla tej gałęzi.
pchBetaNamechar *Nazwa gałęzi beta.
cchBetaNameintRozmiar pchBetaName podanego przez wywołującego.
pchDescriptionchar *Opis gałęzi beta.
cchDescriptionintRozmiar pchDescription podanego przez wywołującego.

Uzyskuje szczegóły na temat gałęzi beta aplikacji takie jak nazwa, opis i stan.

Zwraca: bool
Wynosi „true”, jeśli przekazywany indeks gałęzi jest ważny. W przeciwnym wypadku „false”.

Przykład:
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 );
NazwaTypOpis
pchBetaName const char *.Nazwa beta, na którą gra chce się przełączyć.

Wybierz gałąź beta dla tej aplikacji jako aktywną. Może być wymagany restart gry, by Steam zaktualizował zawartość dla tej gałęzi.

Zwraca: bool

GetCurrentGameLanguage

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

Jeżeli użytkownik nie wybrał wprost języka dla tego tytułu, zapasową wartością będzie język interfejsu użytkownika Steam.

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

Zwraca: const char *


Zobacz również: ISteamApps::GetAvailableGameLanguages oraz 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ą ISteamApps::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 ma dużą liczbę DLC, to powinieneś 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, jakie ma być monitorowane.
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 ma zostać pobrana 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 );
NazwaTypOpis
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 o rozmiarze 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 polecenia.
cubCommandLine intRozmiar bufora pszCommandLine wyrażony w bajtach.

Pobiera wiersz polecenia, 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 polecenia poprzez system operacyjny, ponieważ druga opcja może stanowić ryzyko dla bezpieczeństwa. Aby dołączanie za pośrednictwem funkcji rich presence korzystało z tej funkcji zamiast z wiersza polecenia systemu operacyjnego, zaznacz opcję używania wiersza polecenia, przechodząc kolejno do menu Instalacja > Ogólne na stronie twojej aplikacji.

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

Zobacz również: ISteamApps::NewUrlLaunchParameters_t.

GetLaunchQueryParam

const char * GetLaunchQueryParam( const char *pchKey );
NazwaTypOpis
pchKeyconst char *Klucz uruchomienia, jaki ma zostać przetestowany, 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 „_” są zarezerwowane dla funkcji Steam – mogą one być odpytywane przez grę, ale zaleca się, by nie nadawać parametrom nazw zaczynających się od znaku podkreślenia dla twoich własnych funkcji.

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

Zobacz również: ISteamApps::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
bMissingFilesOnlybool.Skanuj 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 metody 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: ISteamApps::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: ISteamApps::GetFileDetails.

NewUrlLaunchParameters_t

Przesyłane 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ą ISteamApps::GetLaunchCommandLine oraz ISteamApps::GetLaunchQueryParam.

To wywołanie zwrotne nie posiada pól.

NewLaunchQueryParameters_t

Przesyłane 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ą ISteamApps::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 użytkownik posiada dane ID aplikacji poprzez ograniczony czasowo okres próbny.

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ż: ISteamApps::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"
  翻译: