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

Theres a few problems about my double jump script, can anyone help me fix them?

Asked by 6 years ago

First of all, I tried making it so an animation could play at the second jump but I messed up. Second of all I wanted the JUMP_FORCE to affect the first jump and not only the second jump. Btw, every time I test it there is that 1 jump at the start that would make you jump so high for some reason. Is there a way to fix that as well? Thanks.

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:wait()
local humanoid = character:WaitForChild("Humanoid")
local humanoidrootpart = character:WaitForChild("HumanoidRootPart")

local JUMP_FORCE = script:WaitForChild("JUMP_FORCE") 
local MAX_JUMPS = script:WaitForChild("MAX_JUMPS") 
local JUMP_CONTROL = Enum.KeyCode.Space 

local numjumps = 0

local anim = Instance.new("Animation")
anim.AnimationId = "http://www.roblox.com/asset/?id=1078047967"

function jump(basepart, power)
    local oldvel = basepart.Velocity
    basepart.Velocity = Vector3.new(oldvel.x, power, oldvel.z)
end

game:GetService("UserInputService").InputBegan:connect(function (key)
    if key.KeyCode == JUMP_CONTROL then
        if numjumps >= 1 and numjumps < MAX_JUMPS.Value then
            local playAnim = humanoid:LoadAnimation(anim)
        playAnim:Play()
            numjumps = numjumps + 1
            jump(humanoidrootpart, JUMP_FORCE.Value)
        end
    end
end)

humanoid.FreeFalling:connect(function(falling)
    if not falling then
        numjumps = 0
    end
    if falling and numjumps == 0 then
        numjumps = 1
    end
end)

humanoid.Jumping:connect(function(jump)
    if jump then
        numjumps = 1


    end
end)

Answer this question