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

How can I make it so that when everyone dies it ends?

Asked by 10 years ago

I need it so that when everyone dies the disaster will end automatically. I have provided the script for you to look at and help me with it.

disasters = {"Glass House [Made By: ROBLOX]", "Crossroads [Made By: ROBLOX]", "Chaos Canyon [Made By: ROBLOX]", "Tiny Town [Made By: Firaxus]", "The Five Layers [Made By: Firaxus]", "House Of Dreams [Made By: Quinnhawkins13]"} -- This is where you list the names models that you want to use for disasters.
-- The list must look like this {"Model","Model","Model","Model","Model"} and so on.
-- Disaster names are case-sensitive and all disaster models must be in the lighting

countdownTime = 40 -- The ammount of time to wait between each disaster.
disasterTime = 480 -- The ammount of time that the disaster will be in the game before it is removed.

countdownMessage = "The next map will be chosen in %s seconds." -- The message displayed between disasters. %s will be replaced with the number of seconds left.
disasterMessage = "Map: %s" -- The message displayed when a disaster occurs. %s will be replaced with the disaster name. Set to nil if you do not want a message

-- Unless you know what you are doing, please leave the below code alone.
items = {}
leaderboard = game.Workspace:findFirstChild("BTS Leaderboard") -- Used to work with my BTS leaderboard
local w = game.Workspace:getChildren()
for i=1,#w do
    if w[i].Name == "leaderboard" and w[i]:findFirstChild("running") ~= nil and w[i]:findFirstChild("points") ~= ni then
        leaderboard = w[i]
    end
end
for i=1,#disasters do
    local item = game.Lighting:findFirstChild(disasters[i])
    if item ~= nil then
        item.Parent = nil
        table.insert(items, item)
    else
        print("Error! ", disasters[i], " was not found!")
    end
end

function chooseDisaster()
    return items[math.random(#items)]
end

function sethint(text)
    local hint = game.Workspace:findFirstChild("hint")
    if (hint ~= nil) then
        hint.Text = text
    else
        print("Hint does not exist, creating...")
        h = Instance.new("Hint")
        h.Name = "hint"
        h.Text = text
        h.Parent = game.Workspace
    end
    --print("Hint set to: ", text)
end

function removeHint()
    hint = game.Workspace:findFirstChild("hint")
    if (hint ~= nil) then hint:remove() end
end

function countdown(time)
    sethint(string.format(countdownMessage, tostring(time)))
    while (time > 0) do
        wait(1)
        time = time - 1
        sethint(string.format(countdownMessage, tostring(time)))
    end
    removeHint()
    return true
end

while true do
    countdown(countdownTime)

    if leaderboard ~= nil and leaderboard:findFirstChild("running") and leaderboard:findFirstChild("points") then -- For use with my BTS leaderboard.
        leaderboard.points.Value = 30 --Points after you survive disasters.
        leaderboard.running.Value = true
    end

    local m = chooseDisaster():clone()

    if disasterMessage ~= nil then
        local msg = Instance.new("Message")
        msg.Name = "DisasterMsg"
        msg.Text = string.format(disasterMessage, m.Name)
        msg.Parent = game.Workspace
        wait(3)
        msg.Parent = nil
    end

    m.Parent = game.Workspace
    m:makeJoints()
    wait(disasterTime)
    m:remove()

    if leaderboard ~= nil then -- For use with the bts leaderboard.
        leaderboard.running.Value = false
    end
end

1 answer

Log in to vote
0
Answered by
Seraine 103
10 years ago
for _,v in pairs(game.Players:GetChildren()) do -- everything in players
if v.Character ~= nil then -- if the person exists
v.Character:BreakJoints -- kills
end end -- ends function

Hopefully that works.

0
Will this end the delete the map and make a new round begin? Opptitronica 0 — 10y
0
idk just test it :/ Seraine 103 — 10y
Ad

Answer this question