类型 函数 返回值 数字 版本 版本 2024.3703 关键词 steam, steamworks, getUserStatValue 另请参阅 steamworks.setUserStatValues() steamworks.requestUserProgress() steamworks.*
从用户获取一个数值统计值。请注意,统计数据在 Steamworks 网站的“统计与成就”部分下定义。统计数据用于存储开发者定义的用户游戏统计信息,例如已玩游戏数、获胜游戏数、失败游戏数等。
当从其他用户获取统计信息时,必须先使用该用户的 ID 调用 steamworks.requestUserProgress() 函数,并等待 userProgressUpdate 事件成功返回。
在以下情况下,此函数将返回 nil
steamworks.getUserStatValue( params )
表。 包含统计参数的表 — 有关详细信息,请参阅下一节。
params 表可以包含以下内容
字符串。 在 Steamworks 网站上,这是在“API 名称”列下设置的统计信息的唯一名称。
字符串。 指示要获取的统计值的类型。必须设置为 "int"、"float" 或 "averageRate"。在 Steamworks 网站上,这必须与“类型”列下设置的值类型匹配,否则 Steam 将无法获取统计值。
字符串。 用户的唯一字符串 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 )