-- Серверный скрипт
local DataStoreService = game:GetService("DataStoreService")
local KillsDataStore = DataStoreService:GetDataStore("KillsDataStore")
local MoneyDataStore = DataStoreService:GetDataStore("MoneyDataStore")
local function onPlayerAdded(player)
-- Создаем лидерборды для игрока
local leaderstats =
Instance.new ("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local kills =
Instance.new ("IntValue")
kills.Name = "Kills"
kills.Value = 0
kills.Parent = leaderstats
local money =
Instance.new ("IntValue")
money.Name = "Money"
money.Value = 0
money.Parent = leaderstats
-- Загружаем сохраненные данные
local success, killsSaved = pcall(function() return KillsDataStore:GetAsync(player.UserId) end)
if success and killsSaved then
kills.Value = killsSaved
end
local success, moneySaved = pcall(function() return MoneyDataStore:GetAsync(player.UserId) end)
if success and moneySaved then
money.Value = moneySaved
end
player.CharacterAdded:Connect(function(character)
character:WaitForChild("Humanoid").Died:Connect(function()
local tag = character.Humanoid:FindFirstChild("creator")
if tag and tag:IsA("ObjectValue") and tag.Value then
onPlayerKilled(player, tag.Value)
end
end)
end)
end
game.Players.PlayerAdded:Connect(onPlayerAdded)
game.Players.PlayerRemoving:Connect(function(player)
-- Сохраняем данные при выходе игрока
if player:FindFirstChild("leaderstats") then
local success, errorMessage = pcall(function()
KillsDataStore:SetAsync(player.UserId, player.leaderstats.Kills.Value)
MoneyDataStore:SetAsync(player.UserId,
player.leaderstats.Money .Value)
end)
if not success then
warn("Failed to save data: " .. errorMessage)
end
end
end)
-- Скрипт для начисления очков и денег
local function onPlayerKilled(victim, killer)
if killer and killer:IsA("Player") then
local leaderstats = killer:FindFirstChild("leaderstats")
if leaderstats then
local kills = leaderstats:FindFirstChild("Kills")
local money = leaderstats:FindFirstChild("Money")
if kills and money then
kills.Value = kills.Value + 1
money.Value = money.Value + 10
end
end
end
end
local DataStoreService = game:GetService("DataStoreService")
local KillsDataStore = DataStoreService:GetDataStore("KillsDataStore")
local MoneyDataStore = DataStoreService:GetDataStore("MoneyDataStore")
game.Players.PlayerAdded:Connect(function(player)
-- Создаем лидерборды для игрока
local leaderstats = Instance.new ("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local kills = Instance.new ("IntValue")
kills.Name = "Kills"
kills.Value = 0
kills.Parent = leaderstats
local money = Instance.new ("IntValue")
money.Name = "Money"
money.Value = 0
money.Parent = leaderstats
-- Загружаем сохраненные данные
local killsSaved = KillsDataStore:GetAsync(player.UserId)
if killsSaved then
kills.Value = killsSaved
end
local moneySaved = MoneyDataStore:GetAsync(player.UserId)
if moneySaved then
money.Value = moneySaved
end
end)
game.Players.PlayerRemoving:Connect(function(player)
-- Сохраняем данные при выходе игрока
KillsDataStore:SetAsync(player.UserId, player.leaderstats.Kills.Value)
MoneyDataStore:SetAsync(player.UserId, player.leaderstats.Money .Value)
end)
-- Скрипт для начисления очков и денег
local function onPlayerKilled(victim, killer)
if killer and killer:IsA("Player") then
killer.leaderstats.Kills.Value = killer.leaderstats.Kills.Value + 1
killer.leaderstats.Money .Value = killer.leaderstats.Money .Value + 10
end
end
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
character:WaitForChild("Humanoid").Died:Connect(function()
local tag = character.Humanoid:FindFirstChild("creator")
if tag and tag:IsA("ObjectValue") and tag.Value then
onPlayerKilled(player, tag.Value)
end
end)
end)
end)
Спасибо тем, кто поможет!