Проверка, если экземпляр * не * существует -> «Недопустимый член» - PullRequest
0 голосов
/ 28 июня 2018

"регистрация не является действительным членом 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)

1 Ответ

0 голосов
/ 28 июня 2018

Если участник не существует в экземпляре, Roblox немедленно выдаст ошибку.

Если вы не уверены, существует ли ребенок с данным именем, используйте :FindFirstChild(name). Вместо того, чтобы выдавать ошибку, он просто возвращает nil.


Обратите внимание, что MouseClick уже дает игроку, поэтому выполнение game.Players[plr.Name] действительно избыточно.

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

Рекомендуется не обрабатывать графические интерфейсы на сервере. Вместо этого вы можете сообщить LocalScripts, что им нужно показать, используя RemoteFunctions / RemoteEvents.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...