Hi all, I'm having some problems with a shop/item selection GUI. The script below is supposed to interface between ALL the items that the player has available and a "hotbar" for the 5 items the player wants to have at his/her fingertips. The items have to be handled by storing the info relevant to it (spawn name, image, description, name that player sees, etc.) inside the GUI button for it, so this script adds all said info an available hotbar button. The problem is that the SECOND item added to the hotbar is never usable. The button shows up in the GUI, but clicking it doesn't connect the other script. Is the problem somewhere here and I'm just missing it?

local GUI = script.Parent.Parent.Parent
local hed = script.Parent.Parent:WaitForChild("Header")
local frm = script.Parent.Parent:WaitForChild("SelectFrame")---------------------- this gui frame
---------------------- The frame getting affected by this script:
local back = script.Parent.Parent:WaitForChild("Col1P")
local cl2 = script.Parent.Parent:WaitForChild("Col2")
local player = game.Players.LocalPlayer
---------------------- all the buttons in this gui frame
local b1 = frm:WaitForChild("Main"):WaitForChild("B1")
local b2 = frm.Main:WaitForChild("B2")
local b3 = frm.Main:WaitForChild("B3")
local b4 = frm.Main:WaitForChild("B4")
local b5 = frm.Main:WaitForChild("B5")
local b6 = frm.Main:WaitForChild("B6")
local b7 = frm.Main:WaitForChild("B7")
local b8 = frm.Main:WaitForChild("B8")
local b9 = frm.Main:WaitForChild("B9")
local b10 = frm.Main:WaitForChild("B10")
local b11 = frm.Main:WaitForChild("B11")
local b12 = frm.Main:WaitForChild("B12")


---------------------- Extra functions used by the main one
function startup()
	wait(3)
	script.Parent:WaitForChild("Loader").Disabled = false
	wait(1)
end
function Exit()
	GUI.Parent.Click:Play()
	frm.Visible = false
	back.Visible = true
end
function play()
	player.Backpack.Blip:Play()
end
function mouseEnt(ftitle, fimg, fdesc)
	player.Backpack.Blip:Play()
	cl2.TextLabel.Text = fdesc
	cl2.Title.Text = ftitle
	cl2.IMG.Image = fimg
end

---------------------- This function is where the problem seems to be
function mouseClk(button, btitle, bimg, bname, bdesc)
	player.Backpack.Blip:Play()
	
	---------------------- If it's an active button, the deactivate
	if button.Style == Enum.ButtonStyle.RobloxRoundDefaultButton then
		local done = false
		
		for i = 1, 5 do --change to inactive
			local v = back:FindFirstChild("B"..i) ---------------------- is the current of 5 buttons open?
			
			---------------------- found open button to use? Then load the info to it
			if done == false and v:IsA("TextButton") and v.Text == btitle then
				v.Text = ""
				v.fTitle.Value = ""
				v.fName.Value = ""
				v.fImg.Value = ""
				v.fDesc.Value = ""
				v.Visible = false
				button.Style = Enum.ButtonStyle.RobloxButton
				done = true
			end
		end
		if player.ActiveFighters:FindFirstChild(bname) then
			player.ActiveFighters:FindFirstChild(bname):Destroy()
		end
	else ---------------------- Otherwise activate the button
		local done = false
		
		for i = 1, 5 do --change to active
			local v = back:FindFirstChild("B"..i)
						
			---------------------- Clear the info from the button to avoid errors for next time it is used
			if done == false and v:IsA("TextButton") and v.Visible == false then
				v.Text = btitle
				v.fTitle.Value = btitle
				v.fName.Value = bname
				v.fImg.Value = bimg
				v.fDesc.Value = bdesc
				v.Visible = true
				button.Style = Enum.ButtonStyle.RobloxRoundDefaultButton
				done = true
			end
		end
		if not player.ActiveFighters:FindFirstChild(bname) then
			local copy = player.Inventory:FindFirstChild(bname):Clone()
			
			copy.Parent = player.ActiveFighters
		end
	end
end

---------------------- run "loading" function
startup()
---------------------- To exit the GUI
frm.Exit.MouseEnter:connect(play)
frm.Exit.MouseButton1Click:connect(Exit)

---------------------- Mouse hover connectors
b1.MouseEnter:connect(function() mouseEnt(b1.fTitle.Value, b1.fImg.Value, b1.fDesc.Value) end)
b2.MouseEnter:connect(function() mouseEnt(b2.fTitle.Value, b2.fImg.Value, b2.fDesc.Value) end)
b3.MouseEnter:connect(function() mouseEnt(b3.fTitle.Value, b3.fImg.Value, b3.fDesc.Value) end)
b4.MouseEnter:connect(function() mouseEnt(b4.fTitle.Value, b4.fImg.Value, b4.fDesc.Value) end)
b5.MouseEnter:connect(function() mouseEnt(b5.fTitle.Value, b5.fImg.Value, b5.fDesc.Value) end)
b6.MouseEnter:connect(function() mouseEnt(b6.fTitle.Value, b6.fImg.Value, b6.fDesc.Value) end)
b7.MouseEnter:connect(function() mouseEnt(b7.fTitle.Value, b7.fImg.Value, b7.fDesc.Value) end)
b8.MouseEnter:connect(function() mouseEnt(b8.fTitle.Value, b8.fImg.Value, b8.fDesc.Value) end)
b9.MouseEnter:connect(function() mouseEnt(b9.fTitle.Value, b9.fImg.Value, b9.fDesc.Value) end)
b10.MouseEnter:connect(function() mouseEnt(b10.fTitle.Value, b10.fImg.Value, b10.fDesc.Value) end)

---------------------- connectors
b1.MouseButton1Click:connect(function() mouseClk(b1, b1.fTitle.Value, b1.fImg.Value, b1.fName.Value, b1.fDesc.Value) end)
b2.MouseButton1Click:connect(function() mouseClk(b2, b2.fTitle.Value, b2.fImg.Value, b2.fName.Value, b2.fDesc.Value) end)
b3.MouseButton1Click:connect(function() mouseClk(b3, b3.fTitle.Value, b3.fImg.Value, b3.fName.Value, b3.fDesc.Value) end)
b4.MouseButton1Click:connect(function() mouseClk(b4, b4.fTitle.Value, b4.fImg.Value, b4.fName.Value, b4.fDesc.Value) end)
b5.MouseButton1Click:connect(function() mouseClk(b5, b5.fTitle.Value, b5.fImg.Value, b5.fName.Value, b5.fDesc.Value) end)
b6.MouseButton1Click:connect(function() mouseClk(b6, b6.fTitle.Value, b6.fImg.Value, b6.fName.Value, b6.fDesc.Value) end)
b7.MouseButton1Click:connect(function() mouseClk(b7, b7.fTitle.Value, b7.fImg.Value, b7.fName.Value, b7.fDesc.Value) end)
b8.MouseButton1Click:connect(function() mouseClk(b8, b8.fTitle.Value, b8.fImg.Value, b8.fName.Value, b8.fDesc.Value) end)
b9.MouseButton1Click:connect(function() mouseClk(b9, b9.fTitle.Value, b9.fImg.Value, b9.fName.Value, b9.fDesc.Value) end)
b10.MouseButton1Click:connect(function() mouseClk(b10, b10.fTitle.Value, b10.fImg.Value, b10.fName.Value, b10.fDesc.Value) end)

If you don't understand what it's trying to do, you can see the whole GUI and this script in action here, just go to the hanger and try to spawn a vehicle at the spawn pad: http://www.roblox.com/games/242778663/BF-Space-5k-Update-Test

2 comments

0

I will try to read this when I have the time...This is a rather long script...

0

Heheh, sorry. I did label the one function that I think would be causing the problem. Thanks.