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

Why won't my damager script not damage the hit humanoid?

Asked by 3 years ago

I am making a combat tool type thing and when I fire the event to damage the hit humanoid, it doesn't damage. Idk whats wrong because when I only had one server script it damaged the humanoid with the hitHumanoid:TakeDamage(10) thing.

This is the local script:

local animTable = {script:WaitForChild('Animation1'), script:WaitForChild('Animation2'), script:WaitForChild('Animation3'), script:WaitForChild('Animation4')}
local animPlace = 1 
local db = false
local tool = script.Parent
local event = game.ReplicatedStorage:WaitForChild('Combat')
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local idle = character:WaitForChild('Humanoid'):LoadAnimation(script:WaitForChild('Idle'))

tool.Equipped:Connect(function()
    idle:Play()
end)

tool.Unequipped:Connect(function()
    idle:Stop()
end)

tool.Activated:Connect(function()
    if not db then
        db = true
        print(animTable[animPlace].Name)
        local attackAnim = character.Humanoid:LoadAnimation(animTable[animPlace])
        attackAnim:Play()
        print('1')
        event:FireServer(animPlace, character)
        animPlace = animPlace + 1
        if animPlace == 5 then
            animPlace = 1
        end
        attackAnim.Stopped:Wait()
        wait(0.5)
        db = false
    end
end)

and this is the server script:

local event = game.ReplicatedStorage:WaitForChild('Combat')
local canAttack = true

local function first(hit)
    canAttack = false
                local hitHumanoid = hit.Parent:FindFirstChild('Humanoid') 
                if hitHumanoid then
                    print('Found Humanoid')
                    hitHumanoid:TakeDamage(10)
                end
end

local function second(hit)
    canAttack = false
                local hitHumanoid = hit.Parent:FindFirstChild('Humanoid') 
                        if hitHumanoid then
                            print('Found Humanoid')
                    hitHumanoid:TakeDamage(20)
                end
end

local function damage(player, character, animPlace)
    if animPlace == 1 then
        if canAttack then

            character:WaitForChild('Left Arm').Touched:Connect(function(hit)
                first(hit)
            end)
        end
    elseif animPlace == 2 then
        if canAttack then

            character['Right Arm'].Touched:Connect(function(hit)
                first(hit) 
            end)
    elseif animPlace == 3 then
        if canAttack then

            character['Left Leg'].Touched:Connect(function(hit)
                canAttack = false
                first(hit)
            end)
    elseif animPlace == 4 then
        if canAttack then

            character['Right Leg'].Touched:Connect(function(hit)
                second(hit)
            end)
    end
    wait(0.5)
    canAttack = true
            end
        end
    end
end
event.OnServerEvent:Connect(damage) 
0
Revali's Gale is now ready. Djjiscord 3 — 3y

Answer this question