Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

how do i make a kills detect system?

Asked by 2 years ago

So I'm trying to make a script that goes in every weapon to make it detect kills. Can someone help me make a script I can put that makes kills get detected. Here is a script I put in ServerScriptService. Also where in the weapon do I put it? In WeaponSystem? Thanks.

local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")

local winsStore = DataStoreService:GetDataStore("winsStore")
local killStore = DataStoreService:GetDataStore("killStore")
local deathStore = DataStoreService:GetDataStore("deathStore")
local coinsStore = DataStoreService:GetDataStore("coinsStore")

Players.PlayerAdded:Connect(function(player)
    player.CharacterAdded:Connect(function(character)
        local hasDied = Instance.new("BoolValue", character)
        hasDied.Name = "HasDied"
        hasDied.Value = false

        character.Humanoid:GetPropertyChangedSignal("Health"):Connect(function()
            if character.Humanoid.Health <= 0 and not character.HasDied.Value then  
                player.leaderstats.Deaths.Value = player.leaderstats.Deaths.Value + 1
            end
        end)
    end)
    player:WaitForChild("leaderstats")
    local cash = Instance.new("IntValue", player)
    cash.Name = "Cash"

    local wins = Instance.new("IntValue", player.leaderstats)
    wins.Name = "Wins"

    local kills = Instance.new("IntValue", player.leaderstats)
    kills.Name = "Kills"

    local deaths = Instance.new("IntValue", player.leaderstats)
    deaths.Name = "Deaths"
    local success, error = pcall(function()
        cash.Value = coinsStore:GetAsync(player.UserId)
        wins.Value = winsStore:GetAsync(player.UserId)
        kills.Value = killStore:GetAsync(player.UserId)
        deaths.Value = deathStore:GetAsync(player.UserId)
    end)
    if not success then
        warn("Error while finding data")
        warn(error)
    end

end)
Players.PlayerRemoving:Connect(function(player)
    local success, error = pcall(function()
        coinsStore:SetAsync(playe wr.UserId, player.Cash.Value)
        winsStore:SetAsync(player.UserId, player.leaderstats.Wins.Value)
        killStore:SetAsync(player.UserId, player.leaderstats.Kills.Value)
        deathStore:SetAsync(player.UserId, player.leaderstats.Deaths.Value)

    end)

    if not success then
        warn("Error while setting data")
        warn(error)
    end
end)

-- server is closing, sync everything
game:BindToClose(function()
    for i, player in pairs(Players:GetPlayers()) do
        local success, error = pcall(function()
            coinsStore:SetAsync(player.UserId, player.Cash.Value)
            winsStore:SetAsync(player.UserId, player.leaderstats.Wins.Value)
            killStore:SetAsync(player.UserId, player.leaderstats.Kills.Value)
            deathStore:SetAsync(player.UserId, player.leaderstats.Deaths.Value)
        end)

    if not success then
        warn("Error while setting data")
        warn(error)
    end
end

end)

Answer this question