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

How can I make my flying script stop moving by itself and move when the character moves?

Asked by
Tizzel40 243 Moderation Voter
5 years ago

when I Press Space Bar 2 times my flying script activates

but I flys in the cam's position by itself! I want it to activated but not fly by itself and fly towards the camera's look vector when the character "Moves"

Why doesn't that happen

btw you can copy this script and test it your self too...….

local play = game.Players.LocalPlayer
local uis = game:GetService("UserInputService")
local char = play.Character
local hum = char:WaitForChild("Humanoid")
local root = char:WaitForChild("HumanoidRootPart")
local inair = false
local canjump = true
local moving = true
local cam = game.Workspace.CurrentCamera
local flying = false
hum.StateChanged:Connect(function(old, new)
    if new == Enum.HumanoidStateType.Freefall or new == Enum.HumanoidStateType.Jumping then
        inair = true

    else
        inair = false
        canjump = true
    end
    end)


uis.InputBegan:Connect(function(input)

    if input.KeyCode == Enum.KeyCode.Space and inair == true and canjump == true then
    print("falsenow")   
    canjump = false 
    local bv = Instance.new("BodyVelocity",char.HumanoidRootPart)

   flying = true

    bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
    hum.StateChanged:Connect(function(old,new)
        if new == Enum.HumanoidStateType.Running then
            if flying == true  then
            moving = true
        else
            moving = false
            end
         end
    end)        
    while moving == true do wait()
        if moving == false then
        bv.Velocity = cam.CFrame.LookVector * 0

        end
        bv.Velocity = cam.CFrame.LookVector * 100


        end
    bv:Destroy()
flying = false

    ---print("fly")



    end
end)

Answer this question