I have a vending machine that dispenses 4 types of chips, each type of chips corresponds to a different button on the machine.
function GiveChips1() --code to give chips to the player who clicked the button script.Parent.Button1.ClickDetector.MouseClick:connect(GiveChips1) function GiveChips2() --code to give chips to the player who clicked the button script.Parent.Button2.ClickDetector.MouseClick:connect(GiveChips2) function GiveChips3() --code to give chips to the player who clicked the button script.Parent.Button3.ClickDetector.MouseClick:connect(GiveChips3) function GiveChips4() --code to give chips to the player who clicked the button script.Parent.Button4.ClickDetector.MouseClick:connect(GiveChips4) end end end end
I have this part of the script done, the part that detects the click and binds it to a function GiveChips
. But how do I make it so that GiveChips gives the chips to the player who clicked the button?
The script you've shown doesn't even work, even though you said it does.
Let's fix this so we can get to the actual question.
function GiveChips1() --Code end function GiveChips2() --Code end function GiveChips3() --Code end function GiveChips4() --Code end script.Parent.Button1.ClickDetector.MouseClick:connect(GiveChips1) script.Parent.Button2.ClickDetector.MouseClick:connect(GiveChips2) script.Parent.Button3.ClickDetector.MouseClick:connect(GiveChips3) script.Parent.Button4.ClickDetector.MouseClick:connect(GiveChips4)
Considering you want each function to do the same thing, we don't need any more than one function.
function GiveChips() --Code end script.Parent.Button1.ClickDetector.MouseClick:connect(GiveChips) script.Parent.Button2.ClickDetector.MouseClick:connect(GiveChips) script.Parent.Button3.ClickDetector.MouseClick:connect(GiveChips) script.Parent.Button4.ClickDetector.MouseClick:connect(GiveChips)
Now because you did such a bad job at explaining what "chips" are, I'm going to assume it's a tool. I'm going to make a variable for Chips and you can change that to your situation. The MouseClick event returns the player so this is easy.
local Chips = script:WaitForChild("Chips") function GiveChips(plr) local ChipsClone = Chips:Clone() ChipsClone.Parent = plr:FindFirstChild("Backpack") end script.Parent.Button1.ClickDetector.MouseClick:connect(GiveChips) script.Parent.Button2.ClickDetector.MouseClick:connect(GiveChips) script.Parent.Button3.ClickDetector.MouseClick:connect(GiveChips) script.Parent.Button4.ClickDetector.MouseClick:connect(GiveChips)
Good Luck.