检查实例是否*不存在*->"非法成员"

"checkin不是PlayerGui的一个有效成员",位于第2行

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)
点赞
用户2616735
用户2616735

如果实例上不存在成员,Roblox 将立即抛出错误。

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


请注意,MouseClick 已经给出了玩家,所以执行 game.Players[plr.Name] 真的很冗余。

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

在服务器上不处理 GUI 是最佳实践。相反,可以通过 RemoteFunctions/RemoteEvents 通信告诉 LocalScripts 需要展示什么。

2018-06-28 00:43:04