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

Diaster script not running?

Asked by 8 years ago

I am making a new surivive the diasters and the models in lighting will not load.

disasters = {"Minotaurs!!!", "Zombies", "", "", "", ""} --Disaster names are case-sensitive and all disaster models must be in the lighting

getpoints = 100 --Points you will get after Disaster
countdownTime = 1 -- The ammount of time to wait between each disaster.
disasterTime = 100 -- The ammount of time that the disaster will be in the game before it is removed.

countdownMessage = "The next Disaster will occur in %s seconds." -- The message displayed between disasters. %s will be replaced with the number of seconds left.
WdisasterMessage = "Disaster Choosen: %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
disasterTimeMessage = "The Disasters will stop in %s"

---------------------------------Don't do anything there!Only if u know how!----------------------------------------------------------------------------------------
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

function disaster(time)
    sethint(string.format(disasterTimeMessage, tostring(time)))
    while (time > 0) do
        wait(1)
        time = time - 1
        sethint(string.format(disasterTimeMessage, 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 = getpoints
        leaderboard.running.Value = true
    end

    local m = chooseDisaster():clone()

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

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

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


When it starts, it says in a bold red text: 20:39:26.972 - Workspace.ZombieRoundScript:31: bad argument #1 to 'random' (interval is empty) Please help me! Thanks!

0
Side note, you might want to use replicated storage instead of lighting to store all the models. That is the purpose of it. GoldenPhysics 474 — 8y

1 answer

Log in to vote
2
Answered by 8 years ago

I'm pretty sure it might be because of the spare "" in the disasters. If this is the case this is the script (I haven't tried it yet so it might not work):

disasters = {"Minotaurs!!!", "Zombies"} --Disaster names are case-sensitive and all disaster models must be in the lighting. To add disasters, add ,"..." (example , "Aliens")

getpoints = 100 --Points you will get after Disaster
countdownTime = 1 -- The ammount of time to wait between each disaster.
disasterTime = 100 -- The ammount of time that the disaster will be in the game before it is removed.

countdownMessage = "The next Disaster will occur in %s seconds." -- The message displayed between disasters. %s will be replaced with the number of seconds left.
WdisasterMessage = "Disaster Choosen: %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
disasterTimeMessage = "The Disasters will stop in %s"

---------------------------------Don't do anything there!Only if u know how!----------------------------------------------------------------------------------------
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

function disaster(time)
    sethint(string.format(disasterTimeMessage, tostring(time)))
    while (time > 0) do
        wait(1)
        time = time - 1
        sethint(string.format(disasterTimeMessage, 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 = getpoints
        leaderboard.running.Value = true
    end

    local m = chooseDisaster():clone()

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

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

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

Answer this question