Tài liệu Steamworks
Interface ISteamApps
Làm hiện diện hàng loạt các thông tin và hành động cho ứng dụng và Nội dung tải thêm (DLC).

Hàm thành viên

Các hàm thành viên (member function) cho ISteamApps được gọi qua hàm global accessor SteamApps().

BGetDLCDataByIndex

bool BGetDLCDataByIndex( int iDLC, AppId_t *pAppID, bool *pbAvailable, char *pchName, int cchNameBufferSize );
TênLoạiMô tả
iDLCintSố thứ tự DLC từ 0 đến GetDLCCount.
pAppIDAppId_t *Trả về App ID của DLC.
pbAvailablebool *Trả về liệu DLC hiện có mặt trên cửa hàng Steam không. Sẽ trả giá trị false nếu DLC không có trang cửa hàng công khai
pchNamechar *Trả về tên DLC bằng cách chép nó vào bộ nhớ đệm này.
cchNameBufferSizeintĐộ dài của bộ nhớ đệm pchName.

Trả về metadata cho một DLC theo số thứ tự.

Trả về: bool
true nếu App ID hiện tại có DLC liên quan tới nó và iDLC nằm giữa 0 tới GetDLCCount, không thì false.

Ví dụ:
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 ) { // Làm gì đó với dữ liệu DLC } }

BIsAppInstalled

bool BIsAppInstalled( AppId_t appID );
TênLoạiMô tả
appIDAppId_tApp ID của ứng dụng cần kiểm tra.

Kiểm tra liệu một ứng dụng cụ thể có được cài hay không.

Ứng dụng có thể không sở hữu bởi người dùng hiện tại, họ có thể có nó từ cuối tuần miễn phí v.v...

Chỉ hoạt động với ứng dụng gốc, không có tác dụng với Nội dung tải thêm (DLC). Thay vào đó dùng BIsDlcInstalled cho DLC.

Trả về: bool
true nếu App ID chỉ định đã được cài; còn không, false.

BIsCybercafe

bool BIsCybercafe();
Kiểm tra xem liệu App ID hiện tại là cho tiệm nét thuộc Cyber Cafe.

Trả về: bool
true nếu bản quyền hiện tại là cho tiệm nét; còn không, false.
Hiện không còn dùng.

BIsDlcInstalled

bool BIsDlcInstalled( AppId_t appID );
TênLoạiMô tả
appIDAppId_tApp ID của DLC cần kiểm tra.

Kiểm tra xem nếu người dùng có sở hữu một DLC cụ thể và nếu DLC đó được cài chưa

Trả về: bool
true nếu người dùng sở hữu DLC và nó hiện được cài, còn không false.

Lưu ý: Chỉ nên được dùng cho kiểm tra đơn giản bên phía client - không được thiết kế để trao vật phẩm trong trò chơi.

BIsLowViolence

bool BIsLowViolence();
Kiểm tra xem nếu bản quyền sở hữu bởi người dùng cho các depot bạo lực thấp.

Depot bạo lực thấp hữu dụng cho các phiên bản bán tại quốc gia có giới hạn về nội dung.

Trả về: bool
true nếu bản quyền sở hữu bởi người dùng cho các depot bạo lực thấp; còn không, false.

Xem thêm: Depot Mounting Rules

BIsSubscribed

bool BIsSubscribed();
Kiểm tra xem nếu người dùng hiện tại đã đăng ký sử dụng App ID hiện tại.

LƯU Ý: Luôn trả về true nếu bạn dùng Steam DRM hoặc gọi SteamAPI_RestartAppIfNecessary.

Trả về: bool
true nếu người dùng hiện tại sở hữu AppId hiện tại, còn không false.

BIsSubscribedApp

bool BIsSubscribedApp( AppId_t appID );
TênLoạiMô tả
appIDAppId_tApp ID cần kiểm tra.

Kiểm tra nếu người dùng hiện tại đã đăng ký một AppId cụ thể.

Chỉ dùng nếu bạn cần kiểm tra quyền sở hữu một trò chơi khác liên quan với trò chơi của bạn, ví dụ như demo.

Trả về: bool
true nếu người dùng đã đăng ký App ID đó, còn không false.

BIsSubscribedFromFamilySharing

bool BIsSubscribedFromFamilySharing();

Kiểm tra xem nếu người dùng hiện tại đang truy cập appID hiện qua một bản quyền chia sẻ gia đình tạm thời do người dùng khác sở hữu.

Nếu bạn cần xác định steamID người dùng cố hữu của bản quyền đó, dùng GetAppOwner.

Trả về: bool
true nếu người dùng hiện tại đang truy cập appID hiện tại qua tính năng chia sẻ gia đình, còn không false.

BIsSubscribedFromFreeWeekend

bool BIsSubscribedFromFreeWeekend();

Kiểm tra xem nếu người dùng đăng ký dùng appID hiện tại qua cuối tuần miễn phí.

Trước khi dùng vui lòng liên hệ một tài khoản quản lý kỹ thuật Valve qua diễn đàn thảo luận Steamworks để đóng gói và đảm bảo chương trình cuối tuần miễn phí của bạn hoạt động đúng.

Trả về: bool
true nếu người dùng hiện tại đăng ký với App Id hiện tại qua cuối tuần miễn phí, còn không false với bất kỳ loại bản quyền nào khác.

BIsTimedTrial

bool BIsTimedTrial(uint32* punSecondsAllowed, uint32* punSecondsPlayed);
TênLoạiMô tả
punSecondsAlloweduint32 *Trả về số giây mà thời gian dùng thử sẽ hiện.
punSecondsPlayeduint32 *Trả về số giây mà người dùng đã chơi qua.

Kiểm tra xem nếu người dùng đăng ký dùng appID hiện tại qua dùng thử giới hạn thời gian. Nếu đúng, trả về true và đưa ra tổng thời gian mà dùng thử cho phép chơi, cùng với thời lượng hiện tại mà người dùng đã chơi.

Trả về: bool
true nếu người dùng hiện tại đăng ký với appID hiện tại qua dùng thử giới hạn thời gian, còn không false với bất kỳ loại bản quyền nào khác.

Xem thêm: TimedTrialStatus_t

BIsVACBanned

bool BIsVACBanned();
Kiểm tra xem nếu người dùng có bị cấm VAC trên tài khoản hay không

Trả về: bool
true nếu người dùng bị cấm VAC trên tài khoản; còn không, false.

GetAppBuildId

int GetAppBuildId();
Lấy buildid của ứng dụng này, có thể thay đổi bất kỳ lúc nào dựa trên cập nhật backend cho trò chơi.

Trả về: int
Build Id hiện tại của ứng dụng này. Mặc định là 0 nếu bạn không chạy một bản build được tải về từ Steam.

GetAppInstallDir

uint32 GetAppInstallDir( AppId_t appID, char *pchFolder, uint32 cchFolderBufferSize );
TênLoạiMô tả
appIDAppId_tApp ID để lấy thư mục cài đặt.
pchFolderchar *Bộ nhớ đệm chuỗi mà đường dẫn thư mục sẽ được chép vào.
cchFolderBufferSizeuint32Kích cỡ theo byte của bộ nhớ đệm pchFolder.

Lấy thư mục cài đặt cho một AppID cụ thể.

Hoạt động kể cả khi ứng dụng chưa được cài, dựa trên vị trí mà trò chơi sẽ được cài theo vị trí thư viện Steam mặc định.

Trả về: uint32
Trả về đường dẫn cài đặt dưới dạng chuỗi vào bộ nhớ đệm cung cấp trong pchFolder và trả về số byte đã được chép vào bộ nhớ đệm đó.

GetAppOwner

CSteamID GetAppOwner();
Lấy Steam ID của chủ sở hữu thật cho ứng dụng hiện tại. Nó khác với người dùng hiện tại nếu họ truy cập ứng dụng này qua chia sẻ gia đình

Trả về: CSteamID
Người sở hữu gốc của ứng dụng hiện tại.

GetAvailableGameLanguages

const char * GetAvailableGameLanguages();
Lấy một danh sách các ngôn ngữ, phân cách bằng dấu phẩy mà ứng dụng hiện tại hỗ trợ.

Để xem danh sách toàn bộ các ngôn ngữ có thể được trả về, xem Bản địa hóa và ngôn ngữ.

Trả về: const char *
Trả về danh sách các ngôn ngữ, phân cách bằng dấu phẩy.

Xem thêm: GetCurrentGameLanguage, ISteamUtils::GetSteamUILanguage

GetCurrentBetaName

bool GetCurrentBetaName( char *pchName, int cchNameBufferSize );
TênLoạiMô tả
pchNamechar *Bộ nhớ đệm nơi mà tên beta sẽ được chép vào.
cchNameBufferSizeintTổng kích cỡ của bộ nhớ đệm pchName.

Kiểm tra xem nếu người dùng đang chạy từ nhánh beta, và lấy tên của nhánh nếu họ đang làm thế.

Trả về: bool
true nếu người dùng ở trên nhánh beta; còn không, false.

GetCurrentGameLanguage

const char * GetCurrentGameLanguage();
Lấy ngôn ngữ hiện tại mà người dùng đã đặt.

Nó sẽ dự phòng trở về ngôn ngữ giao diện Steam nếu người dùng chưa chủ đích chọn ngôn ngữ cho sản phẩm.

Để biết danh sách toàn bộ các ngôn ngữ xem các ngôn ngữ được hỗ trợ.

Trả về: const char *


Xem thêm: GetAvailableGameLanguages, ISteamUtils::GetSteamUILanguage

GetDLCCount

int GetDLCCount();
Lấy số lượng DLC cho ứng dụng hiện tại.

Thường được dùng để lặp qua từng phần DLC một và lấy thông tin về mỗi cái với BGetDLCDataByIndex.

Trả về: int
Số lượng DLC cho ứng dụng hiện tại. Lưu ý rằng giá trị này có thể đạt mức tối đa ở 64, tùy theo số DLC mà người dùng chưa sở hữu. Nếu ứng dụng của bạn có một số lượng lớn các DLC, bạn nên đặt một danh sách nội bộ các DLC đã biết để kiểm tra.

Ví dụ:
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 ) { // Làm gì đó với dữ liệu DLC } }

GetDlcDownloadProgress

bool GetDlcDownloadProgress( AppId_t nAppID, uint64 *punBytesDownloaded, uint64 *punBytesTotal );
TênLoạiMô tả
nAppIDAppId_tApp ID của DLC cần theo dõi
punBytesDownloadeduint64 *Trả về số byte đã tải về.
punBytesTotaluint64 *Trả về tổng số tải về dưới dạng byte.

Lấy tiến trình tải về cho các DLC không bắt buộc.

Trả về: bool
true nếu DLC chỉ định có tồn tại và hiện đang được tải về, còn không, false.

GetEarliestPurchaseUnixTime

uint32 GetEarliestPurchaseUnixTime( AppId_t nAppID );
TênLoạiMô tả
nAppIDAppId_tApp ID để lấy thông tin thời gian mua.

Lấy thời điểm mua của ứng dụng hiện tại dưới định dạng Unix (thời gian kể từ 1/1/1970).

Hữu dụng cho việc thưởng người dùng dựa trên thời gian mua ban đầu.

Trả về: uint32
Thời gian mua sớm nhất theo định dạng Unix (số giây kể từ 1/1/1970).

GetFileDetails

SteamAPICall_t GetFileDetails( const char*pszFileName );
TênLoạiMô tả
pszFileNameconst char*Đường dẫn tuyệt đối và tên tới file.

Lấy không đồng bộ chi tiết metadata về một file cụ thể trong manifest của depot.

Hiện cung cấp:
Kích cỡ file theo byte.
Hash SHA1 của file.
Các flag của file.

Trả về: SteamAPICall_t để dùng với một kết quả gọi từ FileDetailsResult_t.

GetInstalledDepots

uint32 GetInstalledDepots( AppId_t appID, DepotId_t *pvecDepots, uint32 cMaxDepots );
TênLoạiMô tả
appIDAppId_tỨng dụng để liệt kê các depot.
pvecDepotsDepotId_t *Một mảng được phân bổ trước sẽ được điền với danh sách các depot.
cMaxDepotsuint32Số depot tối đa để lấy, thông thường là kích cỡ của pvecDepots.

Lấy danh sách tất cả các depot đã cài theo một App ID, theo thứ tự được gắn vào.

Trả về: uint32
Số lượng depot trả về.

GetLaunchCommandLine

int GetLaunchCommandLine( char *pszCommandLine, int cubCommandLine );
TênLoạiMô tả
pszCommandLinechar *Bộ nhớ đệm chuỗi mà dòng lệnh (command line) sẽ được chép vào.
cubCommandLine intKích cỡ theo byte của bộ nhớ đệm pszCommandLine.

Lấy dòng lệnh nếu trò chơi được khởi chạy qua URL Steam, ví dụ steam://run/<appid>//<command line>/. Phương pháp này được ưa dùng để khởi chạy với một dòng lệnh qua hệ điều hành, đồng thời cũng có thể là rủi ro bảo mật. Để việc tham gia tích hợp trạng thái qua đường này mà không bị đặt lên dòng lệnh hệ điều hành, bạn phải bật "GetLaunchCommandLine()" từ trang Cài đặt > Cài đặt tổng quan trên app của mình.

Trả về: int
Trả về dòng lệnh dưới dạng chuỗi vào bộ nhớ đệm được cung cấp trong pszCommandLine và trả về số byte đã được chép vào bộ nhớ đệm đó.

Xem thêm: NewUrlLaunchParameters_t

GetLaunchQueryParam

const char * GetLaunchQueryParam( const char *pchKey );
TênLoạiMô tả
pchKeyconst char *Mã khởi chạy cần kiểm tra. Ví dụ: param1

Lấy tham số khởi chạy liên quan nếu trò chơi chạy qua steam://run/<appid>/?param1=value1;param2=value2;param3=value3 v.v...

Tên tham số bắt đầu với ký tự '@' được để dành cho dùng nội bộ và sẽ luôn trả về chuỗi trống.
Tên tham số bắt đầu với dấu gạch dưới '_' được để dành cho các tính năng Steam -- trò chơi có thể truy vấn chúng, nhưng chúng tôi khuyến nghị bạn không đặt tên tham số bắt đầu bằng dấu gạch dưới cho tính năng của riêng mình.

Trả về: const char *
Giá trị liên quan đến mã được cung cấp. Trả về một chuỗi trống ("") nếu mã chỉ định không tồn tại.

Xem thêm: NewLaunchQueryParameters_t

InstallDLC

void InstallDLC( AppId_t nAppID );
TênLoạiMô tả
nAppIDAppId_tDLC mà bạn muốn cài.

Cho phép bạn cài một DLC không bắt buộc.

Trả về: void

Kích hoạt một callback DlcInstalled_t.

MarkContentCorrupt

bool MarkContentCorrupt( bool bMissingFilesOnly );
TênLoạiMô tả
bMissingFilesOnlyboolChỉ quét các file bị thiếu, không thực hiện checksum cho từng file.

Cho phép bạn ép buộc xác thực nội dung trò chơi trong lần khởi chạy tiếp theo.

Nếu bạn phát hiện trò chơi lỗi thời (ví dụ, bằng cách dùng client phát hiện một phiên bản không khớp với máy chủ),
bạn có thể gọi MarkContentCorrupt để ép xác thực, hiện một thông điệp tới người dùng, rồi thoát.

Trả về: bool

RequestAllProofOfPurchaseKeys

void RequestAllProofOfPurchaseKeys();
Không còn dùng.

RequestAppProofOfPurchaseKey

void RequestAppProofOfPurchaseKey( AppId_t nAppID );
TênLoạiMô tả
nAppIDAppId_t

Không còn dùng.

UninstallDLC

void UninstallDLC( AppId_t nAppID );
TênLoạiMô tả
nAppIDAppId_tDLC mà bạn muốn xóa.

Cho phép bạn xóa một không bắt buộc.

Callback

Đây là các callback có thể kích hoạt bằng cách gọi SteamAPI_RunCallbacks. Rất nhiều trong số này sẽ được kích hoạt trực tiếp để phản hồi lại hàm thành viên của ISteamApps.

AppProofOfPurchaseKeyResponse_t

Chỉ dùng nội bộ trong Steam.

TênLoạiMô tả
m_eResultEResult
m_nAppIDuint32
m_cchKeyLengthuint32
m_rgchKeychar[k_cubAppProofOfPurchaseKeyMax

DlcInstalled_t

Được kích hoạt sau khi người dùng hiện tại nhận quyền sở hữu DLC và DLC đó được cài.

TênLoạiMô tả
m_nAppIDAppId_tApp ID của DLC được cài.

Hàm liên quan: InstallDLC

FileDetailsResult_t

Được gọi sau khi yêu cầu chi tiết của một file cụ thể.

TênLoạiMô tả
m_eResultEResultViệc gọi có thành công không? k_EResultOK nếu có; còn không, k_EResultFileNotFound nếu file không được tìm thấy. Không có trường nào khác được điền nếu việc gọi không thành công.
m_ulFileSizeuint64Kích cỡ file gốc theo byte.
m_FileSHAuint8[20]Hash SHA1 của file gốc.
m_unFlagsuint32

Hàm liên quan: GetFileDetails

NewUrlLaunchParameters_t

Được đăng sau khi người dùng thực thi một url Steam với dòng lệnh hoặc các tham số truy vấn như steam://run/<appid>//?param1=value1;param2=value2;param3=value3; trong khi trò chơi đã chạy. Các tham số mới có thể được truy vấn với GetLaunchCommandLineGetLaunchQueryParam.

Callback này không có trường nào.

NewLaunchQueryParameters_t

Được đăng sau khi người dùng thực thi một url Steam với các tham số truy vấn như steam://run/<appid>//?param1=value1;param2=value2;param3=value3; trong khi trò chơi đã chạy. Các tham số mới có thể được truy vấn với GetLaunchQueryParam.

Callback này không có trường nào.

RegisterActivationCodeResponse_t

Chỉ dùng nội bộ trong Steam.

TênLoạiMô tả
m_eResultERegisterActivationCodeResult
m_unPackageRegistereduint32

TimedTrialStatus_t

Được gửi đi mỗi phút khi một appID được sở hữu qua hình thức dùng thử giới hạn thời gian.

TênLoạiMô tả
m_unAppIDAppId_tAppID đang trong chế độ dùng thử giới hạn thời gian.
m_bIsOfflineboolNếu true, người dùng hiện tại không nối mạng. Thời gian cho phép / đã chơi là để nói đến thời gian ngắt mạng, không phải tổng thời gian.
m_unSecondsAlloweduint32Ứng dụng có thể được chơi trong bao lâu, tính theo giây.
m_unSecondsPlayeduint32Ứng dụng đã được chơi bao nhiêu giây.

Xem thêm: BIsTimedTrial

Enum

Đây là các enum được định nghĩa để dùng với ISteamApps.

ERegisterActivationCodeResult

Chỉ dùng nội bộ trong Steam.

TênGiá trịMô tả
k_ERegisterActivationCodeResultOK0
k_ERegisterActivationCodeResultFail1
k_ERegisterActivationCodeResultAlreadyRegistered2
k_ERegisterActivationCodeResultTimeout3
k_ERegisterActivationCodeAlreadyOwned4

Constant

Đây là các hằng số được định nghĩa để dùng với ISteamApps.

TênLoạiGiá trịMô tả
k_cubAppProofOfPurchaseKeyMaxint240Chỉ dùng nội bộ trong Steam.
STEAMAPPS_INTERFACE_VERSIONconst char *"STEAMAPPS_INTERFACE_VERSION008"