Обычный код:
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(Player)
for _, v in script.PlayerValues:GetChildren() do
v:Clone().Parent = Player
end
end)
Улучшенный код
local Players = game:GetService("Players")
local PlayerValues = script:WaitForChild("PlayerValues")
Players.PlayerAdded:Connect(function(player)
-- Проверяем, существует ли PlayerValues
if PlayerValues then
-- Создаем таблицу для хранения клонов
local clonedValues = {}
-- Клонируем все значения игрока
for _, value in ipairs(PlayerValues:GetChildren()) do
local clonedValue = value:Clone()
table.insert(clonedValues, clonedValue) -- Добавляем клон в таблицу
end
-- Устанавливаем родителя для всех клонов
for _, clonedValue in ipairs(clonedValues) do
clonedValue.Parent = player
end
else
warn("PlayerValues не найден!")
end
end)
Улучшения:
- Проверка на существование: Скрипт теперь проверяет, существует ли объект PlayerValues, прежде чем пытаться его использовать.
- Использование :WaitForChild(): Это гарантирует, что объект будет доступен перед его использованием.
- Оптимизация клонирования: Клоны сначала собираются в таблицу, а затем устанавливается их родитель, что может быть более эффективно в некоторых случаях.
- Читаемость: Улучшенные имена переменных и добавленные комментарии делают код более понятным.
скрипт:
local Player = game:GetService("Players")
Players.PlayerAdded:Connect(function(Player)
for _, v in script.PlayerValues:GetChildren() do
v:Clone().Parent = Player
end
end)