Skip to content

JoinData

概览

字段
KindData · 数据 Data
Realmcommon

JoinData 封装了玩家进入当前地图时的传送上下文信息,包括来源地图编号、一同传送的其他玩家列表以及传送时携带的自定义数据。通过 Player:GetJoinData 获取该实例后,可读取这些字段来了解玩家是如何到达当前地图的。

适用场景

在需要根据玩家来源地图或传送附带数据执行差异化逻辑时使用,例如在传送完成后读取 TeleportData 来恢复玩家状态,或根据 SourceMapId 判断是否来自特定地图。

使用要点

通过 Player 实例调用 GetJoinData 方法获取 JoinData 对象,然后直接访问其 SourceMapId、Members 和 TeleportData 属性。例如 local joinData = player:GetJoinData() 后,使用 joinData.SourceMapId 获取来源地图编号。

注意事项

JoinData 不可直接构造,必须通过 Player:GetJoinData 获取。TeleportData 的类型为 Any,其具体结构由传送发起方在 TeleportOptions 中设置,读取前应先检查。Members 的 Meta 类型是 Array<String>,其中每一项是同批传送玩家的标识字符串,不是 Player 实例;具体标识格式由传送系统提供。

代码示例

读取玩家的传送加入数据

lua
-- @runtime server
local Players = game:GetService('Players')
Players.PlayerAdded:Connect(function(player)
    local joinData = player:GetJoinData()
    if joinData == nil then return end
    print('来源地图:', joinData.SourceMapId)
    for _, memberId in ipairs(joinData.Members or {}) do
        print('同批传送玩家标识:', memberId)
    end
    print('传送附带数据:', joinData.TeleportData)
end)

属性 (3)

Name类型默认值说明
SourceMapIdString-来源地图编号。
MembersArray<String>-与该玩家一起被传送过来的其他玩家列表。
TeleportDataAny-传送附带数据。