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

Humanoid:GetState() not working for some reason?

Asked by 3 years ago

So I was making my own chat system that if the player typed /e dance the player would play an animation. I also made some events to check if the player was moving. I did try to search but it still doesn't work.

This is the script:

game.ReplicatedStorage.ChatMessage.OnServerEvent:Connect(function(p, msg)
    if msg ~= "/e dance" then
        -- code
    else
        local char = p.Character
        local hum = char.Humanoid
        local anim = char.Animations.Dance
        local track = hum:LoadAnimation(anim)
        if hum:GetState() == Enum.HumanoidStateType.None then
            track:Play()
        end

        hum.Jumping:Connect(function(jump)
            if jump then
                track:Stop()
            end
        end)

        hum.Died:Connect(function()
            track:Stop()
        end)

        hum.FreeFalling:Connect(function(fall)
            if fall then
                track:Stop()
            end
        end)

        hum.StateChanged:Connect(function(state)
            if state == Enum.HumanoidStateType.Landed then
                track:Stop()
            end
        end)

        hum.StateChanged:Connect(function(state)
            if state == Enum.HumanoidStateType.Freefall then
                track:Stop()
            end
        end)


        hum.StateChanged:Connect(function(old, new)
            if old == Enum.HumanoidStateType.Climbing then
                track:Stop()
            elseif new == Enum.HumanoidStateType.Climbing then
                track:Stop()
            end
        end)

        hum.Running:Connect(function(spd)
            if spd > 0.1 then
                track:Stop()
            end
        end)

        hum.Seated:Connect(function(sit)
            if sit then
                track:Stop()
            end
        end)
    end
end)

Answer this question