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

When Crouching Gun Recoil Returns to its original CameraOffset?

Asked by 4 years ago

so i originally made a post about this yesterday asking the same thing but i didnt really explain it correctly. So i have a Gun Recoil System and a Crouch system which both use Camera Offset. I have a function connect to RunService that updates the XYZ variable i have for the Camera Offset heres a video of my problem video what happens is that when i shoot without crouching the recoil is no problem but when i do crouch the recoil makes me go back up to the original camera offset then do recoil

i hope this makes sense

repeat wait() until x2 ~= nil
local OffsetP = {CameraOffset = Vector3.new(x2,y2 + 0.08,z2 - 0.04)}
local Infor = TweenInfo.new(0.1, Enum.EasingStyle.Circular, Enum.EasingDirection.In)
local OffSetd = game:GetService("TweenService"):Create(Character.Humanoid, Infor, OffsetP)
local x = viewModel.Classic.Bottom.Top.C0.X
local y = viewModel.Classic.Bottom.Top.C0.Y
local z = viewModel.Classic.Bottom.Top.C0.Z
local Properties = {C0 = CFrame.new(0.5,y,z)}
local Info = TweenInfo.new(0.1, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut)
local Back = game:GetService("TweenService"):Create(viewModel.Classic.Bottom.Top, Info, Properties)
local lol = {CameraOffset = Vector3.new(x2,y2 - 0.08,z2 + 0.04)}
local ll = TweenInfo.new(0.1, Enum.EasingStyle.Circular, Enum.EasingDirection.Out)
local Anim = game:GetService("TweenService"):Create(Character.Humanoid, ll, lol)
local Properties2 = {C0 = CFrame.new(x,y,z)}
local Info2 = TweenInfo.new(0.1, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut)
local Forward = game:GetService("TweenService"):Create(viewModel.Classic.Bottom.Top, Info2, Properties2)

RunService.RenderStepped:Connect(function()
    lol = {CameraOffset = Vector3.new(Character.Humanoid.CameraOffset.X,Character.Humanoid.CameraOffset.Y - 0.08,Character.Humanoid.CameraOffset.Z + 0.04)}
    OffsetP = {CameraOffset = Vector3.new(Character.Humanoid.CameraOffset.X,Character.Humanoid.CameraOffset.Y + 0.08,Character.Humanoid.CameraOffset.Z - 0.04)}
end)

Mouse.Button1Down:Connect(function()
    if CanShoot == true and shooting == false then
        if not Forward.Completed then
            Forward:Stop()
        end
        shooting = true
        OffSetd:Play()
        CanShoot = false
        Vandal.Fire:Play()
        Back:Play()
        wait(0.1)
        Anim:Play()
        Forward:Play()
        wait(firerate)
        CanShoot = true
        shooting = false
    end
end)

-- Crouch --

local anim = script.Crouch
local play = Character:WaitForChild("Humanoid"):LoadAnimation(anim)

UIS.InputBegan:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.LeftControl then
        IsCrouched = true
        Character.Humanoid.WalkSpeed = 8
        local Properties = {CameraOffset = Vector3.new(x2,y2 - 1,z2)}
        local Info = TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut)
        local T = game:GetService("TweenService"):Create(Character.Humanoid, Info, Properties)
        T:Play()
        play:Play()
    end
end)
UIS.InputEnded:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.LeftControl then
        IsCrouched = false
        Character.Humanoid.WalkSpeed = 12
        local Properties = {CameraOffset = Vector3.new(x2,y2 + 1,z2)}
        local Info = TweenInfo.new(0.2, Enum.EasingStyle.Quint, Enum.EasingDirection.InOut)
        local T = game:GetService("TweenService"):Create(Character.Humanoid, Info, Properties)
        T:Play()
        play:Stop()
    end
end)

Answer this question