local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local itemDataStore = DataStoreService:GetDataStore("PlayerItems")
-- Функция для загрузки предметов игрока
local function loadPlayerItems(player)
local success, data = pcall(function()
return itemDataStore:GetAsync(player.UserId)
end)
if success then
if data then -- Проверяем, есть ли данные
for _, item in ipairs(data) do
local itemTemplate = game.ReplicatedStorage:FindFirstChild(item)
if itemTemplate then -- Проверяем существование предмета
local newItem = itemTemplate:Clone()
newItem.Parent = player.Backpack
end
end
end
else
warn("Ошибка при загрузке данных игрока")
end
end
-- Функция для сохранения предметов игрока
local function savePlayerItems(player)
local items = {}
for _, item in ipairs(player.Backpack:GetChildren()) do
table.insert(items, item.Name)
end
-- Добавляем повторные попытки сохранения
local attempts = 3
local saved = false
while attempts > 0 and not saved do
local success, err = pcall(function()
itemDataStore:SetAsync(player.UserId, items)
end)
if success then
saved = true
print("Данные игрока успешно сохранены")
else
attempts = attempts - 1
warn("Попытка сохранения не удалась. Осталось попыток: " .. attempts)
wait(1) -- Ждем секунду перед следующей попыткой
end
end
end
Players.PlayerAdded:Connect(loadPlayerItems)
Players.PlayerRemoving:Connect(savePlayerItems)