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

The axe I made appears to not do anything, why Is that?

Asked by 2 years ago

I am currently remaking a axe, which has a 1/20 (5%) of doing a critical hit which does 50 damage, currently I only made the critical hit, I decided to test It out however, It appears to not do anything

Script:

----Scripted by imnotaguest1121-----
local Tool = script.Parent ---Tool
local Debounce = false ---Debounce Is basically cooldown
local CanDamage = false ---Tells the tool If It can damage
local Animations = {  ----Used a table to store all animations
    Idle = Tool.Idle
    Cut = Tool.Cut
    CriticalCut = Tool["Critical Cut"]
}
local Sounds = { ----Table for sounds
    Woosh = Tool.Woosh
    HitSound = Tool.HitSound
    HeadCut = Tool.HEADEXPLOSION
}

Tool.Activated:Connect(function() ---When the tool Is activated
    if not Debounce then ---Or for better understanding, if Debounce == false then
        Debounce = true ----Debounce ready
        local CriticalHitOrNot = math.random(20,20) ---This creates a function that determains If the player does a critical hit or not
        if CriticalHitOrNot == 20 then ---If the math.random() number Is 20 then
            CanDamage = true ---Allows tool to damage
            local Hum = Tool.Parent.Humanoid ---The humanoid of the player who Is currently equipped with the axe

            local AnimationTrack = Hum:FindFirstChild("Animator"):LoadAnimation(Animations[3]) ---Makes a AnimationTrack, which Is used to play the animation using Animator:LoadAnimation
            --[[It was originally easier to simply do local AnimationTrack = Hum:LoadAnimation(Animations[2]) but since Hum(anoid):LoadAnimation won't work anymore (If your using It on new work ofc)
            ]]
            AnimationTrack:Play() ---Plays animation
            Tool.Handle.Touched:Connect(function(hit) ----When a victim gets hit by axe
                --This Is optional but I decided to use It just Incase Its a Team vs Team (TvT) game, like brickbattle
                local player1 = game.Players:GetPlayerFromCharacter(hit.Parent)
                local player2 = game.Players:GetPlayerFromCharacter(Tool.Parent)

                if (player1 ~= nil) and (player2 ~= nil) then
                    local humanoid = (player2.Character or player2.CharacterAdded:Wait()):FindFirstChildWhichIsA("Humanoid")

                    if (player1.TeamColor ~= player2.TeamColor) then
                        if (humanoid ~= nil) and CanDamage == true then
                            humanoid:TakeDamage(50)
                            CanDamage = false
                        end
                    end
                end
            end)
            Tool.Handle.Touched:Connect(function(hit) ---When a victim gets hit by axe, this Is for NPCS
                local humanoid = hit.Parent:WaitForChild("Humanoid") ---Gets humanoid
                --[[ You would also use FindFirstChild(WhichIsA)
                (Note: Don't add the () when uisng FindFirstChildWhichIsA)
                ]]
                if humanoid and CanDamage == true then ---If Its a humanoid and Candamage Is true
                    HeadCut:Play() ---Plays the critical hitsound
                    humanoid:TakeDamage(50) ----Does 50 damage, change the number to change how much damage It does
                    CanDamage = false ---Stops the tool from damaging
                end
            end)
        end
    end
end)

Answer this question