steamworks.requestUserProgress()

类型 函数
返回值 布尔值
修订 版本 2024.3703
关键词 steam, steamworks, requestUserProgress
另请参阅 steamworks.getAchievementInfo()
steamworks.getUserStatValue()
userProgressUpdate
steamworks.*

概述

从 Steam 服务器异步获取一位用户的游戏进度数据,例如成就和统计数据。如果userProgressUpdate事件的isError属性设置为false,表示请求成功,则steamworks.getAchievementInfo()steamworks.getUserStatValue()函数将提供该用户的更新进度数据。

如果请求已成功发送到 Steam,则返回true。请注意,这并不一定意味着请求的操作将会成功。例如,如果没有互联网连接,此函数仍将返回true。因此,监听器必须检查userProgressUpdate事件的isError属性,如上所述。

如果给定无效参数或steamworks.isLoggedOn属性也为false,则返回false

注意

Steam 插件会在应用启动时自动获取当前登录用户的进度数据。因此,您通常不会在游戏过程中为此用户调用此函数来重新获取他们的进度数据。相反,您通常会为其他用户调用此函数。

注意事项

如果网络不可用,Steam 可能需要超过 1 分钟才能超时并分派userProgressUpdate事件。

语法

steamworks.requestUserProgress( [userSteamId] )
userSteamId (可选)

字符串用户的唯一字符串 ID。如果未提供此参数,则 ID 将默认为当前用户。

示例

local steamworks = require( "plugin.steamworks" )

-- Set the user ID of the friend to fetch progression data from
local friendSteamId = "FRIEND_ID"

-- Called when user achievement/stat data has been received
local function onUserProgressUpdated( event )
    if ( event.isError ) then
        -- Failed to receive updated progression data
    else
        -- User progression was successfully loaded
        -- You might want to reload achievement and stat data for user here
        if ( event.userSteamId == steamworks.userSteamId ) then
            -- The currently logged in user's progression data has been updated
        elseif ( event.userSteamId == friendSteamId ) then
            -- The friend's progression data has been updated
        end
    end
end

-- Set up a listener to be invoked when achievement and stat data has been updated
steamworks.addEventListener( "userProgressUpdate", onUserProgressUpdated )

-- Fetch the achievement and stat data from another user
steamworks.requestUserProgress( friendSteamId )