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

This Slot Machine Script Will Only run once?

Asked by 5 years ago
Edited 5 years ago

So I have a script that when a part gets clicked it runs the rest of the script and does a slot machine-like thing, but now it won't run again after it is clicked once and finished the slot stuff. Code:

function LeverPull()
    script.Parent.Pull1.Click.Transparency = 1
    script.Parent.Pull1.P1.Transparency = 1
    script.Parent.Pull2.P1.Transparency = 0
    script.Parent.Pull2.P2.Transparency = 0
    wait(0.3)
    script.Parent.Pull1.Click.Transparency = 0
    script.Parent.Pull1.P1.Transparency = 0
    script.Parent.Pull2.P1.Transparency = 1
    script.Parent.Pull2.P2.Transparency = 1
end

function PlayWin()
    script.Parent.Logo.Win:Play()
    wait(1)
    script.Parent.Logo.Win:Stop()
end

Images={
"http://www.roblox.com/asset/?id=1976242599", --Coin
"http://www.roblox.com/asset/?id=1976271649", --Gem
"http://www.roblox.com/asset/?id=1976243494", --Face
"http://www.roblox.com/asset/?id=1976244535", --Sword
"http://www.roblox.com/asset/?id=1976120686"} --Controller

local Alarm1 = script.Parent.Alarm1
local Alarm2 = script.Parent.Alarm2
local CoinClone = script.Parent.CoinClone
local Pull1 = script.Parent.Pull1
local Pull2 = script.Parent.Pull2
local CD = script.Parent.Pull1.Click.ClickDetector
local WinSound = script.Parent.Logo.Win

local S1 = script.Parent.S1.Decal
local S2 = script.Parent.S2.Decal
local S3 = script.Parent.S3.Decal

function Alarm()
    for i = 1,10 do
        wait(0.15)
        Alarm1.PointLight.Enabled = true
        Alarm1.BrickColor = BrickColor.new("Really red")
        Alarm2.BrickColor = BrickColor.new("Really red")
        wait(0.15)
        Alarm1.BrickColor = BrickColor.new("Black")
        Alarm1.PointLight.Enabled = false
        Alarm2.BrickColor = BrickColor.new("Black")
    end
end

function Coin()
    for i = 1,20 do
        local Coin = script.Parent.CoinClone:Clone()
        Coin.Parent = script.Parent
        Coin.Name = "Coin"
        Coin.CanCollide = true
        Coin.Anchored = false
        Coin.Position = script.Parent.CoinClone.Position - Vector3.new(0,1,0)
        wait(0.2)
    end
end

---------------------------------------------------------------
function onClicked()
    CD.MaxActivationDistance = 0
    LeverPull()

    for i = 1,40 do
        wait(0.05)
        S1.Texture = Images[math.random(1,#Images)]
        S2.Texture = Images[math.random(1,#Images)]
        S3.Texture = Images[math.random(1,#Images)]
    end

    for i = 1,40 do
        wait(0.05)
        S2.Texture = Images[math.random(1,#Images)]
        S3.Texture = Images[math.random(1,#Images)]
    end

    for i = 1,40 do
        wait(0.05)
        S3.Texture = Images[math.random(1,#Images)]
    end
end



if S1.Texture == Images[1] and S2.Texture == Images[1] and S3.Texture == Images[1] then
    PlayWin()
    Alarm()
    Coin()
    wait(5)

for _, child in pairs(script.Parent:GetChildren()) do
    if child.Name == 'Coin' then
        child:Destroy()
else
    end
end

CD.MaxActivationDistance = 8


else if S1.Texture == Images[2] and S2.Texture == Images[2] and S3.Texture == Images[2] then
    PlayWin()
    Alarm()
    Coin()
    wait(5)

for _, child in pairs(script.Parent:GetChildren()) do
    if child.Name == 'Coin' then
        child:Destroy()
else
    end
end

CD.MaxActivationDistance = 8


else if S1.Texture == Images[3] and S2.Texture == Images[3] and S3.Texture == Images[3] then
    PlayWin()
    Alarm()
    Coin()
    wait(5)

for _, child in pairs(script.Parent:GetChildren()) do
    if child.Name == 'Coin' then
        child:Destroy()
else
    end
end

CD.MaxActivationDistance = 8


else if S1.Texture == Images[4] and S2.Texture == Images[4] and S3.Texture == Images[4] then
    PlayWin()
    Alarm()
    Coin()
    wait(5)

for _, child in pairs(script.Parent:GetChildren()) do
    if child.Name == 'Coin' then
        child:Destroy()
else
    end
end

CD.MaxActivationDistance = 8

else if S1.Texture == Images[5] and S2.Texture == Images[5] and S3.Texture == Images[5] then
    PlayWin()
    Alarm()
    Coin()
    wait(5)

for _, child in pairs(script.Parent:GetChildren()) do
    if child.Name == 'Coin' then
        child:Destroy()
else
    end
end

CD.MaxActivationDistance = 8

else

CD.MaxActivationDistance = 8

end
end
end
end

end
Pull1.Click.ClickDetector.MouseClick:Connect(onClicked)

The Game is FE btw.

0
I think you have too many "End"s in the last couple lines KingPig999 13 — 5y

Answer this question