检查实例*不存在*->“不是有效成员”

时间:2018-06-28 00:28:03

标签: lua roblox

第2行的“签到不是PlayerGui的有效成员”

function onClick(plr)
    if game.Players[plr.Name].PlayerGui.checkin ~= nil then
        print('player already has gui')
    else
        if game.ServerStorage.Players[plr.Name].Value == 0 then
            local gui = game.ServerStorage.GUIs.checkin:Clone()
            gui.Parent = plr.PlayerGui
            print('fresh gui being handed to '.. plr.Name)
        end
    end
end
script.Parent.ClickDetector.MouseClick:connect(onClick)

1 个答案:

答案 0 :(得分:0)

如果实例上不存在成员,则Roblox将立即引发错误。

如果不确定是否存在给定名称的子代,请使用:FindFirstChild(name)。不会引发错误,它只会返回nil


请注意,MouseClick已经给了玩家,所以game.Players[plr.Name]确实是多余的。

if plr.PlayerGui:FindFirstChild("checkin") then

最佳做法是不处理服务器上的GUI。相反,您可以使用RemoteFunctions / RemoteEvents向LocalScripts传达需要显示的内容。