第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)
答案 0 :(得分:0)
如果实例上不存在成员,则Roblox将立即引发错误。
如果不确定是否存在给定名称的子代,请使用:FindFirstChild(name)
。不会引发错误,它只会返回nil
。
请注意,MouseClick
已经给了玩家,所以game.Players[plr.Name]
确实是多余的。
if plr.PlayerGui:FindFirstChild("checkin") then
最佳做法是不处理服务器上的GUI。相反,您可以使用RemoteFunctions / RemoteEvents向LocalScripts传达需要显示的内容。