ISteamApps 接口 (Steamworks 文献库) 您所在的位置:网站首页 steam读取游戏路径 ISteamApps 接口 (Steamworks 文献库)

ISteamApps 接口 (Steamworks 文献库)

2024-07-16 10:59| 来源: 网络整理| 查看: 265

为应用程序和可下载内容(DLC)暴露各类信息与操作。成员函数ISteamApp 的成员函数通过全局访问器函数 SteamApp() 调用。BGetDLCDataByIndexbool BGetDLCDataByIndex( int iDLC, AppId_t *pAppID, bool *pbAvailable, char *pchName, int cchNameBufferSize ); 名称类型描述 iDLCint获得 0 与 GetDLCCount 之间的 DLC 索引。 pAppIDAppId_t *返回该 DLC 的 AppID。 pbAvailablebool *返回 DLC 当前是否在 Steam 商店中可用。 如果 DLC 没有可见的商店页面,则为 false。 pchNamechar *将 DLC 名称复制入此缓冲区后返回。 cchNameBufferSizeintpchName 的缓冲区长度。按索引返回 DLC 元数据。

返回: booltrue 表明当前 AppID 关联有 DLC 且 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 ) { // 处理 DLC 数据 } }BIsAppInstalledbool BIsAppInstalled( AppId_t appID ); 名称类型描述 appIDAppId_t要检查的应用程序的 AppID。检查某特定应用是否已安装。

当前用户也许并不拥有此应用,只是通过免费周末等活动进行过安装。

此函数只对基础应用程序有效,对可下载内容(DLC) 无效。 针对 DLC 请使用 BIsDlcInstalled。

返回: booltrue 表明指定 AppID 已安装;否则返回 false。

BIsCybercafebool BIsCybercafe();检查当前 AppID 是否供网吧使用。

返回: booltrue 表明此许可用于网吧;否则返回 false。已弃用 - 不再使用。

BIsDlcInstalledbool BIsDlcInstalled( AppId_t appID ); 名称类型描述 appIDAppId_t要检查的 DLC 的 AppID。检查用户是否拥有特定 DLC 且该 DLC 已安装。

返回: booltrue 表明该用户拥有 DLC 且已安装;否则返回 false。

注意: 应只用于简单的客户端检查,不能用于授予游戏中物品。

BIsLowViolencebool BIsLowViolence();检查用户拥有的许可是否提供低暴力 depot。

在对内容有限制的国家,低暴力 depot 有利于游戏销售。

返回: booltrue 表明用户拥有的许可提供低暴力 depot;否则返回 false。

另见: Depot 装载规则

BIsSubscribedbool BIsSubscribed();检查活跃用户是否订阅了当前 App ID。

注意: 如果您使用 Steam DRM 或调用 SteamAPI_RestartAppIfNecessary,此函数将始终返回 true。

返回: booltrue 表明该活跃用户拥有当前 AppId;否则返回 false。

BIsSubscribedAppbool BIsSubscribedApp( AppId_t appID ); 名称类型描述 appIDAppId_t要检查的 AppID。检查活跃用户是否订阅了特定 AppId。

只有在需要检查与您游戏有关的另一个游戏(如试用版)的所有权时,才使用此函数。

返回: booltrue 表明该活跃用户订阅了特定 App ID;否则返回 false。

BIsSubscribedFromFamilySharingbool BIsSubscribedFromFamilySharing();检查活跃用户是否正通过其他用户拥有的临时家庭共享许可访问当前 AppID。

如果需要确定该许可的永久所有者的 Steam ID,请使用GetAppOwner。

返回: booltrue 表明该活跃用户正在通过家庭共享访问当前 appID,否则返回 false。

BIsSubscribedFromFreeWeekendbool BIsSubscribedFromFreeWeekend();检查该用户是否通过免费周末订阅了当前 appID。

在使用此函数前请通过 Steamworks 讨论板联系 Valve 技术客户经理,来为免费周末活动制作相应程序包,确保活动能顺利开展。

返回: booltrue 表明该活跃用户通过免费周末订阅了当前 App Id;如果为其他任何类型的许可,则返回 false 。

BIsTimedTrialbool BIsTimedTrial(uint32* punSecondsAllowed, uint32* punSecondsPlayed); 名称类型描述 punSecondsAlloweduint32 *返回限时试用将列出的秒数。 punSecondsPlayeduint32 *返回用户到目前为止游玩的秒数。检查该用户是否通过限时试用订阅了当前 appID。 如果是,返回 true 并给出限时试用可以玩的总时间,以及用户当前共玩了多少时间。

返回: booltrue 表明该活跃用户通过限时试用订阅了当前 appID;如果为其他任何类型的许可,则返回 false 。

另见: TimedTrialStatus_t

BIsVACBannedbool BIsVACBanned();检查用户帐户是否受到 VAC 封禁。

返回: booltrue 表明该用户帐户受到 VAC 封禁;否则返回 false。

GetAppBuildIdint GetAppBuildId();获取此应用的 buildid,可能根据游戏的后端更新而随时改变。

返回: int此应用的当前 Build Id。如您未运行从 Steam 下载的生成版本,则默认为 0。

GetAppInstallDiruint32 GetAppInstallDir( AppId_t appID, char *pchFolder, uint32 cchFolderBufferSize ); 名称类型描述 appIDAppId_t要获得安装目录的 AppID。 pchFolderchar *文件夹路径将被复制入的字符串缓冲区。 cchFolderBufferSizeuint32pchFolder 缓冲区的字节大小。获取特定 AppID 的安装文件夹。

即使应用程序未安装,该函数仍可按游戏将在 Steam 库的默认安装位置进行调用。

返回: uint32 将安装目录路径作为字符串返回至 pchFolder 中提供的缓冲区,并返回复制入该缓冲区的字节数。

GetAppOwnerCSteamID GetAppOwner();获取当前应用真正拥有者的 Steam ID。如当前用户是通过“家庭共享”访问的游戏,则与当前用户的不同。

返回: CSteamID当前应用的原拥有者。

GetAvailableGameLanguagesconst char * GetAvailableGameLanguages();获取当前应用支持的语言列表,以逗号分隔。

参见本地化和语言,了解可能会返回的语言的完整列表。

返回: const char *返回以逗号分隔的语言列表。

另见: GetCurrentGameLanguage, ISteamUtils::GetSteamUILanguage

GetCurrentBetaNamebool GetCurrentBetaName( char *pchName, int cchNameBufferSize ); 名称类型描述 pchNamechar *测试版名称要复制入的缓冲区。 cchNameBufferSizeintpchName 缓冲区的总大小。检查用户是否从一个测试版分支运行。如是,获取测试版分支名称。

返回: booltrue 表示用户运行的是测试版分支;否则返回 false。

GetCurrentGameLanguageconst char * GetCurrentGameLanguage();获取用户当前设置的语言。

如果用户未明确选择产品语言,则回退至 Steam UI 语言。

参见支持的语言,查看完整语言列表。

返回: const char *

另见: GetAvailableGameLanguages, ISteamUtils::GetSteamUILanguage

GetDLCCountint GetDLCCount();获取当前应用的 DLC 数量。

此函数通常与 BGetDLCDataByIndex 一起使用,在各 DLC 之间循环,获取各 DLC 的信息。

返回: int当前应用的 DLC 数量。请注意,视用户有多少未拥有的 DLC 而定,可能仅显示最大值 64。 如果您的应用有大量的 DLC,您应当设置自己内部的已知 DLC 列表,以进行对比查看。

示例:

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 ) { // 处理 DLC 数据 } }GetDlcDownloadProgressbool GetDlcDownloadProgress( AppId_t nAppID, uint64 *punBytesDownloaded, uint64 *punBytesTotal ); 名称类型描述 nAppIDAppId_t要监控的 DLC 的 AppID。 punBytesDownloadeduint64 *返回已下载的字节数。 punBytesTotaluint64 *返回已下载的总字节大小。获取可选 DLC 的下载进度。

返回: booltrue 表明指定 DLC 存在且当前正在下载;否则返回 false。

GetEarliestPurchaseUnixTimeuint32 GetEarliestPurchaseUnixTime( AppId_t nAppID ); 名称类型描述 nAppIDAppId_t要获得其购买时间的 App ID。获取指定应用的购买时间,以 Unix 时间戳(1970 年 1 月 1 日起的秒数)表示。

这可有助于根据用户的初始购买日期来奖励用户。

返回: uint32最早购买时间,以 Unix 时间戳(1970 年 1 月 1 日起的秒数)表示。

GetFileDetailsSteamAPICall_t GetFileDetails( const char*pszFileName ); 名称类型描述 pszFileNameconst char*文件的绝对路径及名称。在 depot 清单中异步获取特定文件的元数据详情。

目前提供:文件字节大小。文件的 SHA1 哈希。文件标志。

返回: SteamAPICall_t,与 FileDetailsResult_t 调用结果一起使用。

GetInstalledDepotsuint32 GetInstalledDepots( AppId_t appID, DepotId_t *pvecDepots, uint32 cMaxDepots ); 名称类型描述 appIDAppId_t要为其列出 depot 的应用。 pvecDepotsDepotId_t *将填入 depot 列表的预分配数组。 cMaxDepotsuint32可获得的 depot 的最大数量,通常为 pvecDepot 的大小。按装入顺序获取给定 AppID 所有已安装的 depot 列表。

返回: uint32返回的 depot 数量。

GetLaunchCommandLineint GetLaunchCommandLine( char *pszCommandLine, int cubCommandLine ); 名称类型描述 pszCommandLinechar *命令行将被复制入的字符串缓冲区。 cubCommandLine intpszCommandLine 缓冲区的字节大小。如果游戏通过 Steam URL 如 steam://run//// 启动,获取命令行。 此方法优于通过操作系统用命令行启动,后者可能存在安全隐患。 为了使丰富状态加入能使用此方式,而不被置于操作系统命令行,您必须在您应用的“安装”>“通用安装”页面上启用“使用启动命令行”。

返回: int将命令行作为字符串返回至 pszCommandLine 提供的缓冲区,并返回复制入该缓冲区的字节数。

另见: NewUrlLaunchParameters_t

GetLaunchQueryParamconst char * GetLaunchQueryParam( const char *pchKey ); 名称类型描述 pchKeyconst char *要测试的启动序列号, 例:param1如果游戏通过 steam://run//?param1=value1;param2=value2;param3=value3 等运行,则获取关联的启动参数。

以“@”字符开始的参数名保留作内部使用,始终返回空字符串。以下划线“_”开始的参数名保留供 Steam 功能使用,可由游戏查询,但建议您自己的功能的参数名不要以下划线开始。

返回: const char *所提供的序列号关联的值。 若指定键并不存在,则返回空白字符串("")。

另见: NewLaunchQueryParameters_t

InstallDLCvoid InstallDLC( AppId_t nAppID ); 名称类型描述 nAppIDAppId_t您要安装的 DLC。允许您安装可选的 DLC。

返回: void

触发 DlcInstalled_t 回调。

MarkContentCorruptbool MarkContentCorrupt( bool bMissingFilesOnly ); 名称类型描述 bMissingFilesOnlybool只扫描丢失文件,不验证每个文件的校验和。允许您下次启动时强制验证游戏内容。

如果您检测到游戏已过期(比如客户端检测到与服务器版本不匹配),您可以调用 MarkContentCorrupt 强制进行验证,向用户显示一条消息,然后退出。

返回: bool

RequestAllProofOfPurchaseKeysvoid RequestAllProofOfPurchaseKeys();已弃用。RequestAppProofOfPurchaseKeyvoid RequestAppProofOfPurchaseKey( AppId_t nAppID ); 名称类型描述 nAppIDAppId_t已弃用。UninstallDLCvoid UninstallDLC( AppId_t nAppID ); 名称类型描述 nAppIDAppId_t要卸载的 DLC。允许您卸载可选的 DLC。回调以下是可以通过调用 SteamAPI_RunCallbacks 触发的回调。 其中许多将响应 ISteamApps 的成员函数直接触发。AppProofOfPurchaseKeyResponse_t只在 Steam 内部使用。

名称类型描述 m_eResultEResult m_nAppIDuint32 m_cchKeyLengthuint32 m_rgchKeychar[k_cubAppProofOfPurchaseKeyMax]DlcInstalled_t在当前用户获得 DLC 所有权且该 DLC 安装后触发。

名称类型描述 m_nAppIDAppId_t已安装的 DLC 的 App ID。关联函数: InstallDLCFileDetailsResult_t在请求指定文件的详情后调用。

名称类型描述 m_eResultEResult调用是否成功? 如果成功,为 k_EResultOK;否则,如果未找到文件,为 k_EResultFileNotFound。 如果调用不成功,就不会填入其他字段。 m_ulFileSizeuint64原始文件的字节大小。 m_FileSHAuint8[20]原始文件的 SHA1 哈希。 m_unFlagsuint32关联函数: GetFileDetailsNewUrlLaunchParameters_t在用户于游戏已运行时使用命令行或查询参数(如 steam://run///?param1=value1;param2=value2;param3=value3; )执行 Steam URL 后发布。 可使用 GetLaunchCommandLine 和 GetLaunchQueryParam 查询新的参数。

此回调无字段。

NewLaunchQueryParameters_t在用户于游戏已运行时使用查询参数(如 steam://run///?param1=value1;param2=value2;param3=value3; )执行 Steam URL 后发布。 可使用 GetLaunchQueryParam 查询新的参数。

此回调无字段。

RegisterActivationCodeResponse_t只在 Steam 内部使用。

名称类型描述 m_eResultERegisterActivationCodeResult m_unPackageRegistereduint32TimedTrialStatus_t如果是通过限时试用拥有 appID 的,每分钟发送一次。

名称类型描述 m_unAppIDAppId_t限时试用中的 AppID。 m_bIsOfflinebool若为 true,表示用户当前离线。 允许/游玩的时间是指离线时间,而不是总时间。 m_unSecondsAlloweduint32应用程序总共可以玩多少秒。 m_unSecondsPlayeduint32应用程序已游玩了多少秒。另见: 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"


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有