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

BodyAngularVelocity - Flaw in my code?

Asked by
hozann 75
8 years ago

I've made code so that after tapping E or Q, the movement naturally slows down, but after it does, it continues going the opposite direction and starts speeding up.

local UserInputService = game:GetService("UserInputService")
local player = game.Players.LocalPlayer;
local char = player.Character or player.CharacterAdded:wait();
local bodyAngularVelocity  = Instance.new("BodyAngularVelocity")
bodyAngularVelocity.AngularVelocity = Vector3.new(0,0,0)
bodyAngularVelocity.Parent = char.Torso

UserInputService.InputBegan:connect(function(input, gameProcessed)
    if input.KeyCode == Enum.KeyCode.E and not gameProcessed then
        bodyAngularVelocity.AngularVelocity = Vector3.new(0, 0, -2)
    end
end)

UserInputService.InputEnded:connect(function(input, gameProcessed)
    if input.KeyCode == Enum.KeyCode.E and not gameProcessed then
        while true do
            if bodyAngularVelocity.AngularVelocity ~= Vector3.new(0,0,0) then
            char.Torso.BodyAngularVelocity.AngularVelocity = Vector3.new(0, 0, char.Torso.BodyAngularVelocity.AngularVelocity.Z + 0.05)
           wait()
            else
                bodyAngularVelocity.AngularVelocity = Vector3.new(0,0,0)
            end
            wait()
          end
    end
end)

UserInputService.InputBegan:connect(function(input, gameProcessed)
    if input.KeyCode == Enum.KeyCode.Q and not gameProcessed then
        bodyAngularVelocity.AngularVelocity = Vector3.new(0, 0,  2)
    end
end)

UserInputService.InputEnded:connect(function(input, gameProcessed)
    if input.KeyCode == Enum.KeyCode.Q and not gameProcessed then
        while true do
            if bodyAngularVelocity.AngularVelocity ~= Vector3.new(0,0,0) then
            char.Torso.BodyAngularVelocity.AngularVelocity = Vector3.new(0, 0, char.Torso.BodyAngularVelocity.AngularVelocity.Z - 0.05)
           wait()
            else
                bodyAngularVelocity.AngularVelocity = Vector3.new(0,0,0)
            end
            wait()
          end
    end
end)

I would be extremely grateful if i could be corrected or told what the issue is, and how to fix it.

Thanks.

Answer this question