I want to make this script not working when the player is falling and when you landed, it will work:
local leaderstats = game.Players.LocalPlayer.leaderstats
local jumps = leaderstats.Points
--|| SERVICES ||--
local camera = game.Workspace.CurrentCamera
local random = math.random(5000, 10000)
local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SlideSFX = Instance.new("Sound")
SlideSFX.Parent = script.Parent.HumanoidRootPart
SlideSFX.MaxDistance = 50
SlideSFX.MinDistance = 10
SlideSFX.SoundId = "rbxassetid://6429226498"
SlideSFX.Volume = 1.5
SlideSFX.Name = "SlideSFX"
local Character = script.Parent
local Humanoid = Character:WaitForChild("Humanoid")
local Slide = Humanoid:LoadAnimation(script:WaitForChild("Animation"))
local Properties = {
Velocity = 300,
Duration = .10,
Keybind = Enum.KeyCode.C,
LastSlide = tick(),
Cooldown = 1,
}
UserInputService.InputBegan:Connect(function(Input, GameProcessedEvent)
if Input.KeyCode == Properties.Keybind and Humanoid.Jump == false then
if tick() - Properties.LastSlide >= Properties.Cooldown then
Properties.LastSlide = tick()
Slide:Play()
SlideSFX:Play()
jumps.Value += math.random(3,5)
local BodyVelocity = Instance.new("BodyVelocity")
BodyVelocity.MaxForce = Vector3.new(1,1,1) * random
BodyVelocity.Velocity = Character.HumanoidRootPart.CFrame.LookVector * Properties.Velocity
BodyVelocity.Parent = Character.HumanoidRootPart
wait(Properties.Duration)
BodyVelocity:Destroy()
end
end
end)
