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

R15ArmorModule Script Kills your character and not show armor, what can the problem be in my script?

Asked by 6 years ago

Hi I am currently remaking the Kitteh6660 ArmorModule script for it to work for R15, But everytime it change armor the character dies but get the bonus once respawned. But he doesn't wear the armor.(I removed some bodypart scripts because it is repetitive)

local ArmorModule = {}
--This script exists to let you add armor to mobs and also, to auto re-equip armor on respawn.
function ArmorModule.GetLevel(armor)
    if Game.ReplicatedStorage.ARMORS:FindFirstChild(armor) ~= nil then
        return Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).Level.Value
    else
        return 0 --If it's not found, returns 0.
    end
end

function ArmorModule.GetDefense(armor)
    if Game.ReplicatedStorage.ARMORS:FindFirstChild(armor) ~= nil then
        if Game.Workspace.GAME_PROPERTIES.DefenseMode.Value == 1 or Game.Workspace.GAME_PROPERTIES.DefenseMode.Value == 2 then
            return Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).Defense.Value
        elseif Game.Workspace.GAME_PROPERTIES.DefenseMode.Value == 3 then
            return Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).HPBoost.Value
        else
            return 0 --If it's not found, returns 0.
        end
    else
        return 0 --If it's not found, returns 0.
    end
end

function ArmorModule.RemoveArmor(character)
    local humanoid = character:FindFirstChild("Humanoid") or character:FindFirstChild("Human")
    --Remove old armour.
    if humanoid ~= nil then
        if character:FindFirstChild("UpperLeg1") ~= nil then
            character:FindFirstChild("UpperLeg1"):Remove()
        end 
        if character:FindFirstChild("UpperLeg2") ~= nil then
            character:FindFirstChild("UpperLeg2"):Remove()
        end         
        if character:FindFirstChild("UpperArm1") ~= nil then
            character:FindFirstChild("UpperArm1"):Remove()
        end 
        if character:FindFirstChild("UpperArm2") ~= nil then
            character:FindFirstChild("UpperArm2"):Remove()
        end 
        if character:FindFirstChild("LowerTorso") ~= nil then
            character:FindFirstChild("LowerTorso"):Remove()
        end 
        if character:FindFirstChild("LowerArm1") ~= nil then
            character:FindFirstChild("LowerArm1"):Remove()
        end
        if character:FindFirstChild("LowerArm2") ~= nil then
            character:FindFirstChild("LowerArm2"):Remove()
        end
        if character:FindFirstChild("Hand1") ~= nil then
            character:FindFirstChild("Hand1"):Remove()
        end
        if character:FindFirstChild("Hand2") ~= nil then
            character:FindFirstChild("Hand2"):Remove()
        end
        if character:FindFirstChild("Foot1") ~= nil then
            character:FindFirstChild("Foot1"):Remove()
        end
        if character:FindFirstChild("Foot2") ~= nil then
            character:FindFirstChild("Foot2"):Remove()
        end 
        if character:FindFirstChild("LowerLeg1") ~= nil then
            character:FindFirstChild("LowerLeg1"):Remove()
        end
        if character:FindFirstChild("LowerLeg2") ~= nil then
            character:FindFirstChild("LowerLeg2"):Remove()
        end 
        if character:FindFirstChild("UpperTorso") ~= nil then
            character:FindFirstChild("UpperTorso"):Remove()
        end 
    else
        return false --Exits the function if it's nil. Prevents the function from breaking.
    end 
end

function ArmorModule.EquipArmor(character, armor)
    local humanoid = character:FindFirstChild("Humanoid") or character:FindFirstChild("Human")
    if character ~= nil then
        --Remove old armour.
        if humanoid ~= nil then
            if character:FindFirstChild("UpperLeg1") ~= nil then
                character:FindFirstChild("UpperLeg1"):Remove()
            end 
            if character:FindFirstChild("UpperLeg2") ~= nil then
                character:FindFirstChild("UpperLeg2"):Remove()
            end         
            if character:FindFirstChild("UpperArm1") ~= nil then
                character:FindFirstChild("UpperArm1"):Remove()
            end 
            if character:FindFirstChild("UpperArm2") ~= nil then
                character:FindFirstChild("UpperArm2"):Remove()
            end 
            if character:FindFirstChild("LowerTorso") ~= nil then
                character:FindFirstChild("LowerTorso"):Remove()
            end 
            if character:FindFirstChild("LowerArm1") ~= nil then
                character:FindFirstChild("LowerArm1"):Remove()
            end
            if character:FindFirstChild("LowerArm2") ~= nil then
                character:FindFirstChild("LowerArm2"):Remove()
            end
            if character:FindFirstChild("Hand1") ~= nil then
                character:FindFirstChild("Hand1"):Remove()
            end
            if character:FindFirstChild("Hand2") ~= nil then
                character:FindFirstChild("Hand2"):Remove()
            end
            if character:FindFirstChild("Foot1") ~= nil then
                character:FindFirstChild("Foot1"):Remove()
            end
            if character:FindFirstChild("Foot2") ~= nil then
                character:FindFirstChild("Foot2"):Remove()
            end 
            if character:FindFirstChild("LowerLeg1") ~= nil then
                character:FindFirstChild("LowerLeg1"):Remove()
            end
            if character:FindFirstChild("LowerLeg2") ~= nil then
                character:FindFirstChild("LowerLeg2"):Remove()
            end 
            if character:FindFirstChild("UpperTorso") ~= nil then
                character:FindFirstChild("UpperTorso"):Remove()
            end 
        end
    else
        return false --Exits the function if it's nil. Prevents the function from breaking.
    end
    --Arms
    if humanoid ~= nil and character:FindFirstChild("Hand1") == nil then
        local g = Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).Hand1:Clone()
        g.Parent = character
        local C = g:GetChildren()
        for i=1, #C do
            if C[i].ClassName == "MeshPart" then
                if C[i].Name == "Middle" then
                    C[i].Transparency = 1
                end
                local W = Instance.new("Weld")
                W.Part0 = g.Middle
                W.Part1 = C[i]
                local CJ = CFrame.new(g.Middle.Position)
                local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = C[i].CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
                local Y = Instance.new("Weld")
                Y.Part0 = character["LeftHand"]
                Y.Part1 = g.Middle
                Y.C0 = CFrame.new(0, 0, 0)
                Y.Parent = Y.Part0
        end

        local h = g:GetChildren()
        for i = 1, # h do
            h[i].Anchored = false
            h[i].CanCollide = false
        end

    end
    if humanoid ~= nil and character:FindFirstChild("Foot2") == nil then
        local g = Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).Foot2:Clone()
        g.Parent = character
        local C = g:GetChildren()
        for i=1, #C do
            if C[i].ClassName == "Part" then
                if C[i].Name == "Middle" then
                    C[i].Transparency = 1
                end
                local W = Instance.new("Weld")
                W.Part0 = g.Middle
                W.Part1 = C[i]
                local CJ = CFrame.new(g.Middle.Position)
                local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = C[i].CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
                local Y = Instance.new("Weld")
                Y.Part0 = character["RightFoot"]
                Y.Part1 = g.Middle
                Y.C0 = CFrame.new(0, 0, 0)
                Y.Parent = Y.Part0
        end

        local h = g:GetChildren()
        for i = 1, # h do
            h[i].Anchored = false
            h[i].CanCollide = false
        end

    end
    --Torso
    if humanoid ~= nil and character:FindFirstChild("UpperTorso") == nil then
        local g = Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).UpperTorso:Clone()
        g.Parent = character
        local C = g:GetChildren()
        for i=1, #C do
            if C[i].ClassName == "Part" then
                if C[i].Name == "Middle" then
                    C[i].Transparency = 1
                end
                local W = Instance.new("Weld")
                W.Part0 = g.Middle
                W.Part1 = C[i]
                local CJ = CFrame.new(g.Middle.Position)
                local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = C[i].CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
                local Y = Instance.new("Weld")
                Y.Part0 = character["UpperTorso"]
                Y.Part1 = g.Middle
                Y.C0 = CFrame.new(0, 0, 0)
                Y.Parent = Y.Part0
        end

        local h = g:GetChildren()
        for i = 1, # h do
            h[i].Anchored = false
            h[i].CanCollide = false
        end

    end
    if humanoid ~= nil and character:FindFirstChild("LowerTorso") == nil then
        local g = Game.ReplicatedStorage.ARMORS:FindFirstChild(armor).LowerTorso:Clone()
        g.Parent = character
        local C = g:GetChildren()
        for i=1, #C do
            if C[i].ClassName == "Part" then
                if C[i].Name == "Middle" then
                    C[i].Transparency = 1
                end
                local W = Instance.new("Weld")
                W.Part0 = g.Middle
                W.Part1 = C[i]
                local CJ = CFrame.new(g.Middle.Position)
                local C0 = g.Middle.CFrame:inverse()*CJ
                local C1 = C[i].CFrame:inverse()*CJ
                W.C0 = C0
                W.C1 = C1
                W.Parent = g.Middle
            end
                local Y = Instance.new("Weld")
                Y.Part0 = character["LowerTorso"]
                Y.Part1 = g.Middle
                Y.C0 = CFrame.new(0, 0, 0)
                Y.Parent = Y.Part0
        end

        local h = g:GetChildren()
        for i = 1, # h do
            h[i].Anchored = false
            h[i].CanCollide = false
        end

    end
end

return ArmorModule

Answer this question