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

Why is position not changing on xbox?

Asked by 5 years ago

This script is supposed to let you fly when you use w,a,s,d and the analog stick on xbox. It works on PC but on xbox it doesn't let you move at all when the flying is enabled. Any help?

game.Players.LocalPlayer.Character:findFirstChild("Torso") 
game.Players.LocalPlayer.Character:findFirstChild("Humanoid") 
local mouse = game.Players.LocalPlayer:GetMouse() 
repeat wait() until mouse
local plr = game.Players.LocalPlayer
local torso = plr.Character.Torso  
local root = plr.Character:WaitForChild("HumanoidRootPart") 
local flying = false 
local ctrl = {f = 0, b = 0, l = 0, r = 0} 
local lastctrl = {f = 0, b = 0, l = 0, r = 0}  
local speed = 60
local userInput = game:GetService("UserInputService")
local XboxPos = Vector3.new(0,0,0)

local bg = Instance.new("BodyGyro")
bg.P = 9e4
bg.maxTorque = Vector3.new(9e9, 9e9, 9e9) 
bg.cframe = torso.CFrame 
    game.Players.LocalPlayer.Character.HumanoidRootPart.DescendantAdded:connect(function(dec)
        if dec.ClassName == "BodyGyro" and flying then
            wait()
            dec.Parent = game.Players.LocalPlayer
            repeat wait() until not flying
            if dec.Parent ~= nil then
                dec.Parent = game.Players.LocalPlayer.Character.HumanoidRootPart
            end
        end
    end)

function Fly()
    local dec = game.Players.LocalPlayer.Character.HumanoidRootPart:FindFirstChild("BG")
    if dec then 
        dec.Parent = game.Players.LocalPlayer
        coroutine.resume(coroutine.create(function()
            repeat wait() until not flying
            if dec.Parent ~= nil then
                dec.Parent = game.Players.LocalPlayer.Character.HumanoidRootPart
            end
        end))
        end
    bg.Parent = torso
    local bv = Instance.new("BodyVelocity", torso) 
    bv.velocity = Vector3.new(0,0,0) 
    bv.maxForce = Vector3.new(9e9, 9e9, 9e9) 
        repeat wait() 
        plr.Character.Humanoid.PlatformStand = true 
            if (ctrl.l + ctrl.r) ~= 0 or (ctrl.f + ctrl.b) ~= 0 then 
                bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (ctrl.f+ctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(ctrl.l+ctrl.r,(ctrl.f+ctrl.b)*0,0).p) - game.Workspace.CurrentCamera.CoordinateFrame.p))*60
                lastctrl = {f = ctrl.f, b = ctrl.b, l = ctrl.l, r = ctrl.r} 
            elseif (ctrl.l + ctrl.r) == 0 and (ctrl.f + ctrl.b) == 0 and speed ~= 0 then 
                bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (lastctrl.f+lastctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(lastctrl.l+lastctrl.r,(lastctrl.f+lastctrl.b)*0,0).p) - game.Workspace.CurrentCamera.CoordinateFrame.p))*0 
            else 
                bv.velocity = Vector3.new(0,0,0) 
            end 
        bg.cframe = game.Workspace.CurrentCamera.CoordinateFrame 
        until not flying 
            ctrl = {f = 0, b = 0, l = 0, r = 0} 
            lastctrl = {f = 0, b = 0, l = 0, r = 0} 
            speed = 0 
            bg.Parent = nil
            bv:Destroy() 
            plr.Character.Humanoid.PlatformStand = false 
        end 

mouse.KeyDown:connect(function(key) 
    if key:lower() == "w" then 
        ctrl.f = 1 
    elseif key:lower() == "s" then 
        ctrl.b = -1 
    elseif key:lower() == "a" then 
        ctrl.l = -1 
    elseif key:lower() == "d" then 
        ctrl.r = 1 
    end 
end) 

mouse.KeyUp:connect(function(key) 
    if key:lower() == "w" then 
        ctrl.f = 0 
    elseif key:lower() == "s" then 
        ctrl.b = 0 
    elseif key:lower() == "a" then 
        ctrl.l = 0 
    elseif key:lower() == "d" then 
        ctrl.r = 0 
    end 
end)
Fly()

userInput.InputChanged:connect(function(input, processed)
    if input.UserInputType == Enum.UserInputType.Gamepad1 then
        -- Check left thumbstick and move character on change
        if input.KeyCode == Enum.KeyCode.Thumbstick1 then
            local inputPosX
            local inputPosY
            if input.Position.X > -.2 and input.Position.X < .2 then
            inputPosX = 0
            else
            inputPosX = input.Position.X
            end

            if -input.Position.Y > -.2 and -input.Position.Y < .2 then
            inputPosY = 0
            else
            inputPosY = -input.Position.Y
            end
            XboxPos = Vector3.new(inputPosX,0,inputPosY)
        end
    end
end)

game:GetService("UserInputService").InputBegan:connect(function(input,event)
    if event then return end
if input.KeyCode == Enum.KeyCode.ButtonB or input.KeyCode == Enum.KeyCode.V then
        if (flying == false) then
            flying = true
            Fly()
        elseif (flying == true) then
            flying = false
        end
    end
end)

local noClipEvent = game.ReplicatedStorage:WaitForChild("NoClipEvent")
local isNoClipActive = false

game:GetService("UserInputService").InputBegan:connect(function(input, event)
    if not event then
        if input.KeyCode == Enum.KeyCode.ButtonB or input.KeyCode == Enum.KeyCode.V then
            if plr.Character and plr.Character.Parent then
                isNoClipActive = not isNoClipActive
                noClipEvent:FireServer(isNoClipActive)
                end
            end
        end
    end)

0
Why are you using mouse.KeyDown? theCJarmy7 1293 — 5y
0
What would I have to use? ericvesper123 65 — 5y

Answer this question