userInfoUpdate

类型 事件
修订版 发行版 2024.3703
关键词 steam、steamworks、userInfoUpdate
另请参见 steamworks.addEventListener()
steamworks.*

概览

当某个用户的相关信息发生改变时,会触发此事件。此事件还会提供标志,表示此用户的哪些信息在游戏进行期间发生改变。

在调用 steamworks.requestLeaderboardEntries() 函数时,Steam 会自动获取用户信息并针对每个请求的条目派发这些事件。通过这种方式,你可以立即通过调用 steamworks.getUserInfo() 函数来获取每个排行榜条目的用户信息。

此外,如果你调用 steamworks.getUserInfo() 函数但它返回 nil,Steam 将自动异步获取该用户的相关信息(假设它给定了一个有效的用户 ID),并在相关信息可用时派发此事件。收到此事件后,你可以再次调用 steamworks.getUserInfo() 函数来获取该用户的信息。

你可以通过 steamworks.addEventListener() 函数向插件添加 侦听器 来接收这些事件。

属性

event.facebookInfoChanged

event.largeAvatarChanged

event.mediumAvatarChanged

event.name

event.nameChanged

event.nicknameChanged

event.relationshipChanged

event.smallAvatarChanged

event.statusChanged

event.steamLevelChanged

event.userSteamId

示例

local steamworks = require( "plugin.steamworks" )

-- Called when info about one user has been received or changed
local function onUserInfoUpdated( event )
    -- Print information about the user
    local userInfo = steamworks.getUserInfo( event.userSteamId )
    if ( userInfo ) then
        print( "User Name: " .. userInfo.name )
        print( "User Nickname: " .. userInfo.nickname )
        print( "Steam Level: " .. tostring(userInfo.steamLevel) )
        print( "Status: " .. userInfo.status )
        print( "Relationship: " .. userInfo.relationship )
    end

    -- Print which aspects of the user info has changed
    print( "Has Name Changed: " .. tostring(event.nameChanged) )
    print( "Has Nickname Changed: " .. tostring(event.nicknameChanged) )
    print( "Has Steam Level Changed: " .. tostring(event.steamLevelChanged) )
    print( "Has Status Changed: " .. tostring(event.statusChanged) )
    print( "Has Relationship Changed: " .. tostring(event.relationshipChanged) )
    print( "Has Facebook Info Changed: " .. tostring(event.facebookInfoChanged) )
    print( "Has Small Avatar Changed: " .. tostring(event.smallAvatarChanged) )
    print( "Has Medium Avatar Changed: " .. tostring(event.mediumAvatarChanged) )
    print( "Has Large Avatar Changed: " .. tostring(event.largeAvatarChanged) )
end

-- Set up a listener to be invoked when user info has been received or changed
steamworks.addEventListener( "userInfoUpdate", onUserInfoUpdated )