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

Why am I having function issues?

Asked by 7 years ago
Edited 7 years ago

This script is simply supposed to turn on the lights when a switch is pressed, and turn them off when its pressed again. No errors appear in output.

local L11 = script.Parent.Parent.Parent.CeilingLight1.Light1
local L12 = script.Parent.Parent.Parent.CeilingLight1.Light2
local L13 = script.Parent.Parent.Parent.CeilingLight1.Light3
local L21 = script.Parent.Parent.Parent.CeilingLight2.Light1
local L22 = script.Parent.Parent.Parent.CeilingLight2.Light2
local L23 = script.Parent.Parent.Parent.CeilingLight2.Light3
local L31 = script.Parent.Parent.Parent.CeilingLight3.Light1
local L32 = script.Parent.Parent.Parent.CeilingLight3.Light2
local L33 = script.Parent.Parent.Parent.CeilingLight3.Light3

function buttonPressed()
    if script.Parent.Parent.On.Value == true then
        turnOn()
    else
        turnOff()
    end
end

function turnOn()
    script.Parent.Parent.On.Value = true
    script.Parent.Rotation = Vector3.new(0, 0, 12.5)
    local L11 = script.Parent.Parent.Parent.CeilingLight1.Light1
    local L12 = script.Parent.Parent.Parent.CeilingLight1.Light2
    local L13 = script.Parent.Parent.Parent.CeilingLight1.Light3
    local L21 = script.Parent.Parent.Parent.CeilingLight2.Light1
    local L22 = script.Parent.Parent.Parent.CeilingLight2.Light2
    local L23 = script.Parent.Parent.Parent.CeilingLight2.Light3
    local L31 = script.Parent.Parent.Parent.CeilingLight3.Light1
    local L32 = script.Parent.Parent.Parent.CeilingLight3.Light2
    local L33 = script.Parent.Parent.Parent.CeilingLight3.Light3
    L11.BrickColor = BrickColor.White()
    L12.BrickColor = BrickColor.White()
    L13.BrickColor = BrickColor.White()
    L21.BrickColor = BrickColor.White()
    L22.BrickColor = BrickColor.White()
    L23.BrickColor = BrickColor.White()
    L31.BrickColor = BrickColor.White()
    L32.BrickColor = BrickColor.White()
    L33.BrickColor = BrickColor.White()

    L11.Material = "Neon"
    L12.Material = "Neon"
    L13.Material = "Neon"
    L21.Material = "Neon"
    L22.Material = "Neon"
    L23.Material = "Neon"
    L31.Material = "Neon"
    L32.Material = "Neon"
    L33.Material = "Neon"
end

function turnOff()
    script.Parent.Parent.On.Value = false
    script.Parent.Rotation = Vector3.new(0, 0, -12.5)
    local L11 = script.Parent.Parent.Parent.CeilingLight1.Light1
    local L12 = script.Parent.Parent.Parent.CeilingLight1.Light2
    local L13 = script.Parent.Parent.Parent.CeilingLight1.Light3
    local L21 = script.Parent.Parent.Parent.CeilingLight2.Light1
    local L22 = script.Parent.Parent.Parent.CeilingLight2.Light2
    local L23 = script.Parent.Parent.Parent.CeilingLight2.Light3
    local L31 = script.Parent.Parent.Parent.CeilingLight3.Light1
    local L32 = script.Parent.Parent.Parent.CeilingLight3.Light2
    local L33 = script.Parent.Parent.Parent.CeilingLight3.Light3
    L11.BrickColor = BrickColor.Gray()
    L12.BrickColor = BrickColor.Gray()
    L13.BrickColor = BrickColor.Gray()
    L21.BrickColor = BrickColor.Gray()
    L22.BrickColor = BrickColor.Gray()
    L23.BrickColor = BrickColor.Gray()
    L31.BrickColor = BrickColor.Gray()
    L32.BrickColor = BrickColor.Gray()
    L33.BrickColor = BrickColor.Gray()

    L11.Material = "Plastic"
    L12.Material = "Plastic"
    L13.Material = "Plastic"
    L21.Material = "Plastic"
    L22.Material = "Plastic"
    L23.Material = "Plastic"
    L31.Material = "Plastic"
    L32.Material = "Plastic"
    L33.Material = "Plastic"
end

script.Parent.ClickDetector.MouseClick:connect(buttonPressed)

Thank you in advance for any help you may provide.

0
I think you should pu the function buttonPressed() after turnoOn() and turnOff() chill22518 145 — 7y
0
turnOn() and turnOff() are global functions, so it does not matter in this case. Although I would suggest using locals. Link150 1355 — 7y

1 answer

Log in to vote
0
Answered by
deris88 146
7 years ago
Edited 7 years ago

Hi, you made this script way to hard :D I made shorter version of it and it works.

--deris88 --make model, insert script in it and part named button (insert click detector into it)
local on = false
local lights = script.Parent.Model:GetChildren() --make a model and add all your lights in it
script.Parent.Button.ClickDetector.MouseClick:connect(function(onoff)
    if on == false then
        script.Parent.Button.Rotation = Vector3.new(0, 0, 12.5)
        on = true
        for i= 1,#lights do
            lights[i].BrickColor = BrickColor.White()
            lights[i].Material = 'Neon'
        end     
    else
        script.Parent.Button.Rotation = Vector3.new(0, 0, -12.5)
        on = false
        for i= 1,#lights do
            lights[i].BrickColor = BrickColor.Gray()
            lights[i].Material = 'Plastic'
        end     
    end

end)--done
Ad

Answer this question