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

Building health reduction script not working, no errors, fix???

Asked by 5 years ago
Edited 5 years ago

I made a script that lowers the health of a building that you are touching every 1 second. I have an IntValue in each building that is called Health. My script is:

game.Players.PlayerAdded:Connect(function(player)
    local debris = player:WaitForChild("leaderstats").Debris
    while true do
        wait(1)

        repeat wait (1) until game.Workspace:FindFirstChild("ClonedMap")

        local ClonedMap = game.Workspace:WaitForChild("Map")
        local destructible = ClonedMap.Buildings:GetChildren()

        wait(2)

        for i,v in pairs(destructible) do
            for a,k in pairs(v:GetChildren()) do
                if k:IsA("Part") or k:IsA("BasePart") then
                    k.Touched:Connect(function(hit)
                        if hit.Parent:FindFirstChild("Humanoid") then
                            v:FindFirstChild("Health").Value = v:FindFirstChild("Health").Value - game.Players.LocalPlayer:FindFirstChild("Morph").Damage.Value
                            if v:FindFirstChild("Health").Value == 0 then
                                v:Destroy()
                                print("Building destroyed.")
                            end
                            game.Players.LocalPlayer.leaderstats.Debris.Value = game.Players.LocalPlayer.leaderstats.Debris.Value + 10

                        end
                    end)
                end
            end
        end
    end
end)

No errors in the output. It's also meant to check if what you are touching is a building, hence "destructible," then give you a currency called debris.

Answer this question