steamworks.getUserStatValue()

类型 函数
返回值 数字
版本 版本 2024.3703
关键词 steam, steamworks, getUserStatValue
另请参阅 steamworks.setUserStatValues()
steamworks.requestUserProgress()
steamworks.*

概述

从用户获取一个数值统计值。请注意,统计数据在 Steamworks 网站的“统计与成就”部分下定义。统计数据用于存储开发者定义的用户游戏统计信息,例如已玩游戏数、获胜游戏数、失败游戏数等。统计与成就部分。统计数据用于存储开发者定义的用户游戏统计信息,例如已玩游戏数、获胜游戏数、失败游戏数等。

当从其他用户获取统计信息时,必须先使用该用户的 ID 调用 steamworks.requestUserProgress() 函数,并等待 userProgressUpdate 事件成功返回。

注意事项

在以下情况下,此函数将返回 nil

语法

steamworks.getUserStatValue( params )
params (必需)

包含统计参数的表 — 有关详细信息,请参阅下一节。

参数参考

params 表可以包含以下内容

statName (必需)

字符串 在 Steamworks 网站上,这是在“API 名称”列下设置的统计信息的唯一名称。

type (必需)

字符串 指示要获取的统计值的类型。必须设置为 "int"、"float" 或 "averageRate"。在 Steamworks 网站上,这必须与“类型”列下设置的值类型匹配,否则 Steam 将无法获取统计值。

userSteamId (可选)

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

示例

local steamworks = require( "plugin.steamworks" )

-- Called when user achievement/stat data has been received
local function onUserProgressUpdated( event )
    -- Do not continue if fetching user progression data failed
    if ( event.isError ) then
        return
    end

    -- We're only interested in the currently logged in user's stats (ignore info from other users)
    if ( event.userSteamId ~= steamworks.userSteamId ) then
        return
    end

    -- Fetch a stat from the currently logged in user
    local params =
    {
        statName = "Games Played",
        type = "int",
    }
    local statValue = steamworks.getUserStatValue( params )

    -- If the value is "nil", this stat has not yet been set for this user
    -- This is typically the case for new players
    if ( statValue == nil ) then
        statValue = 0
    end

    -- Print the stat value to the log
    print( "Games Played: " .. tostring(statValue) )
end

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