roblox studio plr.Name == "" - PullRequest
       9

roblox studio plr.Name == ""

0 голосов
/ 02 марта 2019

Я делаю сценарий, который обнаруживает человека, использующего его имя, однако я не могу заставить его работать.Пожалуйста, укажите на любые ошибки, которые я допустил в своем сценарии, это очень помогло бы.

game.Workspace:WaitForChild("Console")
print("Waited")
game.Players.PlayerAdded:Connect(function(plr)
    print("Connected")
    if game.Workspace.Console and plr.Name == "wojciechpa2007" then
        local Console = game.Lighting.Console:Clone()
        Console.Parent = plr.Startergui
        print("Cloned")
    elseif
        not game.Workspace.Console and plr.Name == "wojciechpa2007" then
            plr.Startergui.Console:Destroy()
            print("Destroyed")
    end
end)

1 Ответ

0 голосов
/ 03 марта 2019

Heyo,

В этом сценарии есть условие гонки.Ваша первая строка game.Workspace:WaitForChild("Console") будет блокировать выполнение остальной части вашего сценария до тех пор, пока объект не будет загружен или не истечет время ожидания.

Это означает, что возможно, что игрок может присоединиться к игре, прежде чем сценарий сможетпрослушайте сигнал game.Players.PlayerAdded.

Также StarterGui не существует на конкретном игроке.Он существует на уровне игры и представляет собой контейнер, который выгружает свои вещи в PlayerGui игрока, когда персонаж этого игрока загружается в игру.

Так что, чтобы исправить свой сценарий, вы можете попробовать что-то вродеэто:

-- right away connect to the PlayerAdded signal
game.Players.PlayerAdded:Connect(function(plr)
    print("Player Joined!", plr.Name, plr.UserId)

    -- do something special if wojciechpa2007 joins
    if plr.Name == "wojciechpa2007" then
        print("wojciechpa2007 joined! Adding console!")

        -- add the special console into the player's PlayerGui for when they load
        local Console = game.Lighting.Console:Clone()
        Console.Parent = plr.PlayerGui
     end
end)

Некоторые рекомендации и вещи, которые следует соблюдать здесь:

  • Безопаснее проверить UserId игрока , чем проверить его имя,Roblox позволяет вам изменить свое имя, но ваш UserId всегда один и тот же.
  • При добавлении чего-либо в ваш StarterGui оно появится в вашем PlayerGui при следующей загрузке вашего персонажа.Но если ваш персонаж уже загружен, вы не увидите его до следующего возрождения.
  • Если ваш объект Console является своего рода элементом GUI, убедитесь, что он связан с ScreenGui объект, прежде чем вставить его в проигрыватель.В противном случае он просто не будет отображаться.

Надеюсь, это поможет!

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