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 объект, прежде чем вставить его в проигрыватель.В противном случае он просто не будет отображаться.
Надеюсь, это поможет!