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

why am i getting 4 armors everytime i put 2 into the armor inventory?

Asked by 2 years ago

well this script is supposed to show all your armors everytime one is put into your armor inventory but instead of showing the right amount it doubles or triples it and I've tried everything but it keeps duplicating the same value when showing the buttons and idk how to reverse it here's the script:

local player = game.Players.LocalPlayer
local character = player.Character
local buttons = {}

function refreshhelm()
    for i,v in pairs(player.ArmorInventory:GetChildren()) do
        if v:WaitForChild("IsHelm").Value == true then
        local button = script.ImageButton:Clone()
        button.Name = v.Name
        button.LayoutOrder = i
        button.Parent = script.Parent.Choose
        button.Image = v.HelmImage.Value
            table.insert(buttons,button)
        button.MouseButton1Click:Connect(function()
            if script.Parent.Choose.Selected.Value == nil or script.Parent.Choose.Selected.Value ~= v then
                    script.Parent.Info.ArmorName.Text = v.HelmName.Value
                    if v.Rarity.Value == 1 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(109, 109, 109)
                    end
                    if v.Rarity.Value == 2 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(0, 170, 0)
                    end
                    if v.Rarity.Value == 3 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(0, 85, 255)
                    end
                    if v.Rarity.Value == 4 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(85, 0, 255)
                    end
                    if v.Rarity.Value == 5 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(255, 128, 0)
                    end
                script.Parent.Info.ArmorImage.Image = v.HelmImage.Value
                    script.Parent.Info.Class.Text = "Class: "..v.Class.Value
                    script.Parent.Info.PhysicalPower.Text = "Physical Power: "..v.PhysicalPower.Value
                    script.Parent.Info.SpellPower.Text = "Spell Power: "..v.SpellPower.Value
                    script.Parent.Info.Upgrades.Text = "Upgrades: "..v.CurrentUpgrades.Value.." / "..v.MaxUpgrades.Value
                    script.Parent.Info.Health.Text = "HP: "..v.Health.Value
                script.Parent.Choose.Selected.Value = v
                    if script.Parent.Choose.Selected.Value.HelmName.Value ~= script.Parent.Choose.HelmName.Value and script.Parent.Choose.Selected.Value.Health.Value ~= script.Parent.Choose.HelmHP.Value and script.Parent.Choose.Selected.Value.PhysicalPower.Value ~= script.Parent.Choose.HelmPhysical.Value and script.Parent.Choose.Selected.Value.SpellPower ~= script.Parent.Choose.HelmSpell.Value then
                    script.Parent.Info.Equip.Text = "Equip"
                    script.Parent.Info.Equip.BackgroundColor3 = Color3.fromRGB(85, 255, 127)
                    elseif script.Parent.Choose.Selected.Value.HelmName.Value == script.Parent.Choose.HelmName.Value and script.Parent.Choose.Selected.Value.Health.Value == script.Parent.Choose.HelmHP.Value and script.Parent.Choose.Selected.Value.PhysicalPower.Value == script.Parent.Choose.HelmPhysical.Value and script.Parent.Choose.Selected.Value.SpellPower == script.Parent.Choose.HelmSpell.Value then
                    script.Parent.Info.Equip.Text = "Unequip"
                    script.Parent.Info.Equip.BackgroundColor3 = Color3.fromRGB(170,0,0)
                    end
            end
        end)
        end

    end
end
function refreshchest()
    for i,v in pairs(player.ArmorInventory:GetChildren()) do
        if v:WaitForChild("IsChest").Value == true then
            local button = script.ImageButton:Clone()
            button.Name = v.Name
            button.LayoutOrder = i
            button.Parent = script.Parent.Choose
            button.Image = v.ChestImage.Value
            table.insert(buttons,button)
            button.MouseButton1Click:Connect(function()
                if script.Parent.Choose.Selected.Value == nil or script.Parent.Choose.Selected.Value ~= v then
                    script.Parent.Info.ArmorName.Text = v.ChestName.Value
                    if v.Rarity.Value == 1 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(109, 109, 109)
                    end
                    if v.Rarity.Value == 2 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(0, 170, 0)
                    end
                    if v.Rarity.Value == 3 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(0, 85, 255)
                    end
                    if v.Rarity.Value == 4 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(85, 0, 255)
                    end
                    if v.Rarity.Value == 5 then
                        script.Parent.Info.ArmorName.TextColor3 = Color3.fromRGB(255, 128, 0)
                    end
                    script.Parent.Info.ArmorImage.Image = v.ChestImage.Value
                    script.Parent.Info.Class.Text = "Class: "..v.Class.Value
                    script.Parent.Info.PhysicalPower.Text = "Physical Power: "..v.PhysicalPower.Value
                    script.Parent.Info.SpellPower.Text = "Spell Power: "..v.SpellPower.Value
                    script.Parent.Info.Upgrades.Text = "Upgrades: "..v.CurrentUpgrades.Value.." / "..v.MaxUpgrades.Value
                    script.Parent.Info.Health.Text = "HP: "..v.Health.Value
                    script.Parent.Choose.Selected.Value = v
                    if script.Parent.Choose.Selected.Value.ChestName.Value ~= script.Parent.Choose.ChestName.Value and script.Parent.Choose.Selected.Value.Health.Value ~= script.Parent.Choose.ChestHP.Value and script.Parent.Choose.Selected.Value.PhysicalPower.Value ~= script.Parent.Choose.ChestPhysical.Value and script.Parent.Choose.Selected.Value.SpellPower ~= script.Parent.Choose.ChestSpell.Value then
                        script.Parent.Info.Equip.Text = "Equip"
                        script.Parent.Info.Equip.BackgroundColor3 = Color3.fromRGB(85, 255, 127)
                    elseif script.Parent.Choose.Selected.Value.ChestName.Value == script.Parent.Choose.ChestName.Value and script.Parent.Choose.Selected.Value.Health.Value == script.Parent.Choose.ChestHP.Value and script.Parent.Choose.Selected.Value.PhysicalPower.Value == script.Parent.Choose.ChestPhysical.Value and script.Parent.Choose.Selected.Value.SpellPower == script.Parent.Choose.ChestSpell.Value then
                        script.Parent.Info.Equip.Text = "Unequip"
                        script.Parent.Info.Equip.BackgroundColor3 = Color3.fromRGB(170,0,0)
                    end
                end
            end)
        end

    end
end

function backpackRefresh()
    for i,v in pairs(buttons) do
        v:Destroy()
    end
    refreshhelm()
    refreshchest()
end

backpackRefresh()

player.ArmorInventory.ChildAdded:Connect(backpackRefresh)
player.ArmorInventory.ChildRemoved:Connect(backpackRefresh)

any help would be helpful thx

Answer this question