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

Drawer Script runs more than it should, Help?

When you hover your cursor over the drawer it has a little interact GUI that shows up and when you click it slide opens and close.

I have this one problem where if you spam click the drawer it goes more further than it should (I think it has something to do with the script doing running more than it should).

I tried changing the clickdetector activation distance to 0 while it runs then changing it back. Then I added a wait timer after changing it to 0 to wait for the server to keep up.

Script:

local Drawer = script.Parent
local clickDetector = Drawer.ClickDetector
local Gui = Drawer.Parent.Gui2.BillboardGui
local Opened = false

clickDetector.MouseClick:Connect(function()
	clickDetector.MaxActivationDistance = 0
	wait(0.1)
	if Opened == false then
		Gui.Enabled = false
		for i = 1,25 do
			Drawer.CFrame = Drawer.CFrame * CFrame.new(0,0,-0.05)
			wait()
		end
		Opened = true
	end
	clickDetector.MaxActivationDistance = 10
end)

clickDetector.MouseClick:Connect(function()
	clickDetector.MaxActivationDistance = 0
	wait(0.1)
	if Opened == true then
		Gui.Enabled = false
		for i = 1,25 do
			Drawer.CFrame = Drawer.CFrame * CFrame.new(0,0,0.05)
			wait()
		end
		Gui.Enabled = true
		Opened = false
	end
	clickDetector.MaxActivationDistance = 10
end)

1 answer

✓ Accepted answer

So you are telling me, you have a debounce but you don't use it...

Ok, so I'm assuming u copied the code or something, since your not using the debounce what so ever, but I GOT U FAm.

A debounce is just a name for a variable that stops code from running multiple times; you have one, your just not using it? (FYI: A debounce can have any name, because its just a variable)

local Drawer = script.Parent
local clickDetector = Drawer.ClickDetector
local Gui = Drawer.Parent.Gui2.BillboardGui
local Opened = false
local debounce = false

clickDetector.MouseClick:Connect(function()
	    clickDetector.MaxActivationDistance = 0
	    wait(0.1)
	    if Opened == false then
		if  debounce  == false then
			debounce = true
		        Gui.Enabled = false
		        for i = 1,25 do
		            Drawer.CFrame = Drawer.CFrame * CFrame.new(0,0,-0.05)
		            wait()
		        end
		        Opened = true
		    	clickDetector.MaxActivationDistance = 10
		end
           else --Open == true
	        Gui.Enabled = false
	        for i = 1,25 do
	            Drawer.CFrame = Drawer.CFrame * CFrame.new(0,0,0.05)
	            wait()
	        end
	        Gui.Enabled = true
	        Opened = false
	    	clickDetector.MaxActivationDistance = 10
		wait(0.2)
		debounce = false
	end
end)

1 comment

0

ty fam (and no i wrote the script from scratch)

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