Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

A Arithmetic error i guess again with lighting 'Ambient'?

Basicly a error with the script so i am making a power switch for a computer core game and kinda guessed it errored due to the arithmetic on field of 'Ambient for the full script




cd = script.Parent.ClickDetector
bool  = true
M_A_D = 0
M_A_D = cd.MaxActivationDistance 
offline = script.Parent.Offline
cd.MouseClick:connect(function()
if bool == true then
bool = false
cd.MaxActivationDistance = 0

for n = 1,87 do
wait()
script.Parent.CFrame = script.Parent.CFrame * CFrame.new(0,0,-0.01)
end

wait()
workspace.PowerOn:Play()
workspace.ReactorOnline:Play()
wait(2.585999999999999)

for n = 1,70 do
wait()
game.Lighting.Ambient = game.Lighting.Ambient *  Color3.new(1,1,1)
end

cd.MaxActivationDistance = M_A_D
script.Parent.Off.Disabled =true
script.Disabled = true
end
end)

3 comments

0

Pretty much try to help me

0

Accept the answer

0

I Did

2 answers

✓ Accepted answer

Few flaws in your coding but nothing hard to fix.

First being... indenting.

local clickDetector = script.Parent.ClickDetector

--The proper term you're using this bool variable is called debounce.
local debounce = true

-- Use some proper variable names. Saves you the trouble of having to hold two buttons for an underscore.
local maxActivationDistance = clickDetector.MaxActivationDistance
local setActivationDistance = 50

local offline = script.Parent.Offline

clickDetector.MouseClick:Connect(function()
	if debounce == true then
		debounce = false
		maxActivationDistance = 0 
		
		--Why does this need to loop count to 87?
		for i = 1, 87, 1 do
			wait()
			script.Parent.CFrame = script.Parent.CFrame * CFrame.new(0,0,-0.01)
		end

		wait()

		--Sounds?
		workspace.PowerOn:Play()
		workspace.ReactorOnline:Play()
		
		wait(2.6) --Is there a reason why this can't be simple, maybe 2.6?
		
		--I'm guessing you're wanting to make the lighting turn white?
		--No reason to loop up to 70 or multiply current lighting by a Color3. 
		--Instead use 'n' to go up in the Color3 values.
		for n = 0, 1, .01 do
			game.Lighting.Ambient = Color3.new(n,n,n)
			wait()
			--This loops after 1/30th a second and adds .01 to Ambient values.
		end

		clickDetector.MaxActivationDistance = setDistance

		script.Parent.Off.Disabled = true
		script.Disabled = true
	end
end)

Edit:

I had overlooked the changes to the MaxActivationDistance property for ClickDetector. You can have a variable in your script which you can freely change to any number. What you had would keep MaxActivationDistance always set to 0.

This discussion is preserved as it was. New answers, comments, and votes are closed.