Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Player Variables
- local Player = game.Players.LocalPlayer
- local Mouse = Player:GetMouse()
- -- Fly
- local Flying = false
- local Controls = {f = 0, b = 0, l = 0, r = 0}
- local LastControls = {f = 0, b = 0, l = 0, r = 0}
- local MaxSpeed = 50
- local Speed = 0
- local BodyMovers = {BodyGyro,BodyVelocity}
- game:GetService('RunService').Stepped:Connect(function()
- if Flying and BodyMovers.BodyGyro == nil and BodyMovers.BodyVelocity == nil then
- BodyMovers.BodyGyro = Instance.new('BodyGyro', Player.Character.Head)
- BodyMovers.BodyGyro.P = 9e4
- BodyMovers.BodyGyro.maxTorque = Vector3.new(21474836437, 21474836437, 21474836437)
- BodyMovers.BodyGyro.CFrame = Player.Character.Head.CFrame
- BodyMovers.BodyVelocity = Instance.new('BodyVelocity', Player.Character.Head)
- BodyMovers.BodyVelocity.velocity = Vector3.new(0,0.1,0)
- BodyMovers.BodyVelocity.maxForce = Vector3.new(21474836437, 21474836437, 21474836437)
- elseif Flying then
- Player.Character.Humanoid.PlatformStand = true
- if Controls.l + Controls.r ~= 0 or Controls.f + Controls.b ~= 0 then
- Speed = Speed+.5+(Speed/MaxSpeed)
- if Speed > MaxSpeed then
- Speed = MaxSpeed
- end
- elseif not (Controls.l + Controls.r ~= 0 or Controls.f + Controls.b ~= 0) and Speed ~= 0 then
- Speed = Speed-1
- if Speed < 0 then
- Speed = 0
- end
- end
- if (Controls.l + Controls.r) ~= 0 or (Controls.f + Controls.b) ~= 0 then
- BodyMovers.BodyVelocity.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (Controls.f+Controls.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(Controls.l+Controls.r,(Controls.f+Controls.b)*.2,0).p) - game.Workspace.CurrentCamera.CoordinateFrame.p))*Speed
- LastControls = {f = Controls.f, b = Controls.b, l = Controls.l, r = Controls.r}
- elseif (Controls.l + Controls.r) == 0 and (Controls.f + Controls.b) == 0 and Speed ~= 0 then
- BodyMovers.BodyVelocity.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (LastControls.f+LastControls.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(LastControls.l+LastControls.r,(LastControls.f+LastControls.b)*.2,0).p) - game.Workspace.CurrentCamera.CoordinateFrame.p))*Speed
- else
- BodyMovers.BodyVelocity.velocity = Vector3.new(0,0.1,0)
- end
- BodyMovers.BodyGyro.cframe = game.Workspace.CurrentCamera.CoordinateFrame
- elseif not Flying then
- if BodyMovers.BodyGyro ~= nil then
- BodyMovers.BodyGyro:Destroy()
- Player.Character.Humanoid.PlatformStand = false
- BodyMovers.BodyGyro = nil
- end
- if BodyMovers.BodyVelocity ~= nil then
- BodyMovers.BodyVelocity:Destroy()
- Player.Character.Humanoid.PlatformStand = false
- BodyMovers.BodyVelocity = nil
- end
- Controls = {f = 0, b = 0, l = 0, r = 0}
- LastControls = {f = 0, b = 0, l = 0, r = 0}
- Speed = 0
- end
- end)
- -- Player Respawned
- function Refresh()
- Flying = false
- end
- Player.CharacterAdded:Connect(Refresh)
- -- Input Object Stuff
- game:GetService('UserInputService').InputBegan:Connect(function(Input,GPE)
- if not GPE then
- if Input.KeyCode == Enum.KeyCode.E then
- if Flying then
- Flying = false
- else
- Flying = true
- end
- elseif Input.KeyCode == Enum.KeyCode.W then Controls.f = 1
- elseif Input.KeyCode == Enum.KeyCode.S then Controls.b = -1
- elseif Input.KeyCode == Enum.KeyCode.A then Controls.l = -1
- elseif Input.KeyCode == Enum.KeyCode.D then Controls.r = 1
- end
- end
- end)
- game:GetService('UserInputService').InputEnded:Connect(function(Input,GPE)
- if not GPE then
- if Input.KeyCode == Enum.KeyCode.W then Controls.f = 0
- elseif Input.KeyCode == Enum.KeyCode.S then Controls.b = 0
- elseif Input.KeyCode == Enum.KeyCode.A then Controls.l = 0
- elseif Input.KeyCode == Enum.KeyCode.D then Controls.r = 0
- end
- end
- end)
Add Comment
Please, Sign In to add comment