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

How do I fix the this jump anim scipt?

Asked by 3 years ago
local character = script.Parent
02  local humanoid = character:WaitForChild("Humanoid")
03   
04  local walkAnim = script:WaitForChild("Walk")
05  local walkAnimTrack = humanoid.Animator:LoadAnimation(walkAnim)
06   
07  local idleAnim = script:WaitForChild("Idle")
08  local idleAnimTrack = humanoid.Animator:LoadAnimation(idleAnim)
09   
10  local jumpAnim = script:WaitForChild("Jump")
11  local jumpAnimTrack = humanoid.Animator:LoadAnimation(idleAnim)
12  humanoid.Running:Connect(function(speed)
13      if speed > 0 then
14          if not walkAnimTrack.IsPlaying then
15              walkAnimTrack:Play()
16          end
17      else
18          if walkAnimTrack.IsPlaying then
19              walkAnimTrack:Stop()
20          end
21      end
22  end)
23   
24  humanoid.Running:Connect(function(speed)
25      if speed > 0 then
26          if idleAnimTrack.IsPlaying then
27              idleAnimTrack:Stop()
28          end
29      else
30          if not idleAnimTrack.IsPlaying then
31              idleAnimTrack:Play()
32          end
33      end
34  end)
35   
36  humanoid.Running:Connect(function(speed)
37      if speed > 0 then
38          if not jumpAnimTrack.IsPlaying then
39              jumpAnimTrack:Play()
40          end
41      else
42          if jumpAnimTrack.IsPlaying then
43              jumpAnimTrack:Stop()
44          end
45      end
46  end)

0
You jump isnt working because it doesnt depend on speed! sne_123456 439 — 3y
0
In line 11 you used idle animation for jump.... sne_123456 439 — 3y

1 answer

Log in to vote
0
Answered by 3 years ago

Your jump animation is not working because jumping does not depend on speed. There are 2 ways to detect if a player jumps - you can use UIS (User Input Service) or you can use humanoid.jump. I would recommend using UIS as it is faster but looking at your script I think you should use humanoid.Jump.

Heres how to fix your script.

humanoid.Jumping:Connect(function(jump)
  if jump == true then
    if not jumpAnimeTrack.IsPlaying then
       jumpAnimTrack:play()
    end
  else
    if jumpAnimeTrack.IsPlaying then
      jumpAnimeTrack:Stop()
    end
  end
end)

Heres an article on humanoid.Jump:

https://developer.roblox.com/en-us/api-reference/event/Humanoid/Jumping

Any Questions? Just ask!

Ad

Answer this question