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

How do I go about fixing my CameraSubject not switching?

Asked by
AltNature 169
5 years ago
Edited 5 years ago

LocalScript inside StarterPlayerScripts I am basically making a script where you go into a magnitude of a block, a gui pops up you click e and then more guis pop up. From there you can then naviage left or right (what Im trying to do) but there seems to be an issue with it( On my second stepped) I have it print my characters name for the first time I prompt it to, but not the second, which is very startling because of everything appearing to meet my conditions.

(long script)

error would appear to be under "-- // Manuvering through the shop \\ --" at the very bottom

-- Made By AltNature
-- What we want to do -- [ 1. When you enter the brick , bring up the gui ] 
--[[ "Press E to open shop" , Player clicks "E" Then transitions into custom camera mode like Mining simulator
    to choose your weapon. ]]--
-- //  Variables \\ --
local f = game.Workspace.CameraParts
local debounce = false
local check = true
local player = game.Players.LocalPlayer
local pressE = game.Players.LocalPlayer.PlayerGui:WaitForChild("gunShopGUI"):WaitForChild("pressE")
local pressEadd = game.Players.LocalPlayer.PlayerGui:WaitForChild("gunShopGUI"):WaitForChild("pressEadd")
local userInput = game:GetService("UserInputService")
local humanoid = player.Character.Humanoid
local s =  player.PlayerGui:WaitForChild("gunShopGUI")
local sl = s.Lefts
local sr = s.Rights
local cameras = {f.Revolver, 
    f.G36C,
    f.GoldRevolver,
    f.USP,
    f.HK417,
    f.FP6,
    f.MG4,
    f.AWM_F}

local lefts = {sl.Left,
    sl.LeftBottom,
    sl.LeftTop,
    sl.LeftLeft,
    sl.LeftRight}

local rights = {sr.Right,
    sr.RightBottom,
    sr.RightTop,
    sr.RightLeft,
    sr.RightRight}

local exit = s.Exit

local Camera = workspace.Camera

-- // Camera Functions \\ --

function cameraMode()
    local target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CameraSubject = target
    wait()
    local target = cameras[1]
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModetwo()
    local target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CameraSubject = target
    wait()
    local target = cameras[2]
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModethree()
    local target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CameraSubject = target
    wait()
    local target = cameras[3]
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModefour()
    local target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CameraSubject = target
    wait()
    local target = cameras[4]
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModefive()
    local target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CameraSubject = target
    wait()
    local target = cameras[5]
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModesix()
    local target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CameraSubject = target
    wait()
    local target = cameras[6]
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModeseven()
    local target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CameraSubject = target
    wait()
    local target = cameras[7]
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModeEight()
    local target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CameraSubject = target
    wait()
    local target = cameras[8]
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function exitCameraMode()
        Camera.CameraType = Enum.CameraType.Custom
        Camera.CameraSubject = player.Character.Humanoid
        Camera.CFrame = player.Character.Head.CFrame
        player.Character.Humanoid.WalkSpeed = 16
end

-- // =================== \\ --

function visibleRightandLeftandExit()
     for i, v in pairs(lefts) do
        v.Visible = true
           end
           for i, v in pairs(rights) do
         v.Visible = true
      end
    exit.Visible = true
end

function invisibleRightandLeftandExit()
     for i, v in pairs(lefts) do
        v.Visible = false
           end
           for i, v in pairs(rights) do
         v.Visible = false
      end
    exit.Visible = false
end


function input()
    userInput.InputBegan:Connect(function(input, gp)        -- If they click "E" , then cameraMode()
    if input.KeyCode == Enum.KeyCode.E then
        if not gp then
            cameraMode()
            visibleRightandLeftandExit()
            player.Character.Humanoid.WalkSpeed = 0
            pressE.Parent = game:GetService("ServerStorage")
            pressEadd.Parent = game:GetService("ServerStorage")
        end
     end
   end) 
end
-- // The Activation \\ --



game:GetService("RunService").RenderStepped:Connect(function()
 if (player.Character.HumanoidRootPart.Position - workspace.Part.Position).Magnitude <= 11 then
    pressE.Visible = true
    pressEadd.Visible = true
    input()
    print("Rendering")
elseif (player.Character.HumanoidRootPart.Position - workspace.Part.Position).Magnitude > 11 then
    pressE.Visible = false
    pressEadd.Visible = false
    print("Rendering")
  end
end) 


humanoid.Died:Connect(function()
        exitCameraMode()
    if Camera.CameraType == Enum.CameraType.Custom then
       wait(5)
       pressE.Parent = s
       pressEadd.Parent = s
       player.Character.Humanoid.WalkSpeed = 16
       invisibleRightandLeftandExit()
    end
end)

-- // Manuvering through the GUI shop \\ --

if Camera.CameraSubject ~= player.Character.Humanoid and rights[1].Visible == true then
        lefts[1].MouseButton1Click:Connect(function()
            if Camera.CameraSubject ~= cameras[1] then
                if Camera.CameraSubject == cameras[2] then
                    cameraMode()
                end
                if Camera.CameraSubject == cameras[3] then
                    cameraModetwo()
                end
                if Camera.CameraSubject == cameras[4] then
                    cameraModethree()
                end
                if Camera.CameraSubject == cameras[5] then
                    cameraModefour()
                end
                if Camera.CameraSubject == cameras[6] then
                    cameraModefive()
                end
                if Camera.CameraSubject == cameras[7] then
                    cameraModesix()
                end
                if Camera.CameraSubject == cameras[8] then
                    cameraModeseven()
                end
            end
        end)
        rights[1].MouseButton1Click:Connect(function()
            if Camera.CameraSubject ~= cameras[8] then
                if Camera.CameraSubject == cameras[1] then
                    cameraModetwo()
                    print("Maybe by chance? "")
                end
                if Camera.CameraSubject == cameras[2] then
                    cameraModethree()
                end
                if Camera.CameraSubject == cameras[3] then
                    cameraModefour()
                end
                if Camera.CameraSubject == cameras[4] then
                    cameraModefive()
                end
                if Camera.CameraSubject == cameras[5] then
                    cameraModesix()
                end
                if Camera.CameraSubject == cameras[6] then
                    cameraModeseven()
                end
                if Camera.CameraSubject == cameras[7] then
                    cameraModeEight()
                end
             end
        end)
    end
    exit.MouseButton1Click:Connect(function()
        exitCameraMode()

    end)
1
Too much code. Can you try and crop it down to where the problem might be occurring if possible? pidgey 548 — 5y
0
^ Up vote namespace25 594 — 5y
0
Next time, just post the part of the script where you are having the problems. namespace25 594 — 5y

2 answers

Log in to vote
0
Answered by 5 years ago

I had this same problem a while back and I fixed it very simply using a script like this:

local character = game.Players.LocalPlayer.Character

if character then
    local camera = workspace.CurrentCamera
    camera.CameraType = Enum.CameraType.Custom
    camera.CameraSubject = character:FindFirstChild("Humanoid")
end
0
nope. i got the answer i will post it in answers AltNature 169 — 5y
0
why would I upvote you are wrong AltNature 169 — 5y
0
OK. It's not an incorrect answer. It may just be incorrect for your script. And I didn't ask for an upvote namespace25 594 — 5y
Ad
Log in to vote
0
Answered by
AltNature 169
5 years ago
Edited 5 years ago
-- Made By AltNature
-- What we want to do -- [ 1. When you enter the brick , bring up the gui ] 
--[[ "Press E to open shop" , Player clicks "E" Then transitions into custom camera mode like Mining simulator
    to choose your weapon. ]]--
-- //  Variables \\ --
local f = game.Workspace.CameraParts
local debounce = false
local check = true
local player = game.Players.LocalPlayer
local pressE = game.Players.LocalPlayer.PlayerGui:WaitForChild("gunShopGUI"):WaitForChild("pressE")
local pressEadd = game.Players.LocalPlayer.PlayerGui:WaitForChild("gunShopGUI"):WaitForChild("pressEadd")
local userInput = game:GetService("UserInputService")
local humanoid = player.Character:WaitForChild("Humanoid")
local s =  player.PlayerGui:WaitForChild("gunShopGUI")
local purchase = s.Purchase
local amount = player.PlayerGui:WaitForChild("gunShopGUI"):WaitForChild("AmountNeeded")
amount.Visible = false
local sl = s.Lefts
local sr = s.Rights
local cameras = {f.Revolver, 
    f.G36C,
    f.GoldRevolver,
    f.USP,
    f.HK417,
    f.FP6,
    f.MG4,
    f.AWM_F}

local lefts = {sl.Left,
    sl.LeftBottom,
    sl.LeftTop,
    sl.LeftLeft,
    sl.LeftRight}

local rights = {sr.Right,
    sr.RightBottom,
    sr.RightTop,
    sr.RightLeft,
    sr.RightRight}

local assets = {"rbxassetid://3348525523",
    "rbxassetid://3348526597",
    "rbxassetid://3348526597",
    "rbxassetid://3348530535",
    "rbxassetid://3348531577",
    "rbxassetid://3348531577",
    "rbxassetid://3348532463"}

local exit = s.Exit

local Camera = workspace.Camera

-- // Camera Functions \\ --

function cameraMode()
        local target = cameras[1]
    Camera.CameraSubject = target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModetwo()
    local target = cameras[2]
    Camera.CameraSubject = target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModethree()
    local target = cameras[3]
    Camera.CameraSubject = target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModefour()
    local target = cameras[4]
    Camera.CameraSubject = target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModefive()
    local target = cameras[5]
    Camera.CameraSubject = target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModesix()
    local target = cameras[6]
    Camera.CameraSubject = target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModeseven()
    local target = cameras[7]
    Camera.CameraSubject = target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function cameraModeEight()
    local target = cameras[8]
    Camera.CameraSubject = target
    Camera.CameraType = Enum.CameraType.Scriptable
    Camera.CFrame = target.CFrame
end

function exitCameraMode()
        Camera.CameraType = Enum.CameraType.Custom
        Camera.CameraSubject = player.Character.Humanoid
        Camera.CFrame = player.Character.Head.CFrame
        player.Character.Humanoid.WalkSpeed = 16
end

-- // =================== \\ --

function visibleRightandLeftandExitPurchase()
     for i, v in pairs(lefts) do
        v.Visible = true
           end
           for i, v in pairs(rights) do
         v.Visible = true
      end
    exit.Visible = true
    purchase.Visible = true
    amount.Visible = true
end

function invisibleRightandLeftandExitPurchase()
     for i, v in pairs(lefts) do
        v.Visible = false
           end
           for i, v in pairs(rights) do
         v.Visible = false
      end
    exit.Visible = false
    purchase.Visible = false
    amount.Visible = false
end


function input()
    userInput.InputBegan:Connect(function(input, gp)        -- If they click "E" , then cameraMode()
    if input.KeyCode == Enum.KeyCode.E then
        if not gp then
            cameraMode()
            visibleRightandLeftandExitPurchase()
            player.Character.Humanoid.WalkSpeed = 0
            pressE.Parent = game:GetService("ServerStorage")
            pressEadd.Parent = game:GetService("ServerStorage")
        end
     end
   end) 
end
-- // The Activation \\ --



game:GetService("RunService").RenderStepped:Connect(function()
 if amount.Visible == true then
    print("Okay")
if Camera.CameraSubject == cameras[2] then
    wait()
    amount.Image = assets[1]
if Camera.CameraSubject == cameras[3] then
    wait()
    amount.Image = assets[2]
if Camera.CameraSubject == cameras[4] then
    wait()
    amount.Image = assets[3]
if Camera.CameraSubject == cameras[5] then
    wait()
    amount.Image = assets[4]
if Camera.CameraSubject == cameras[6] then
    wait()
    amount.Image = assets[5]
if Camera.CameraSubject == cameras[7] then
    wait()
    amount.Image = assets[6]
if Camera.CameraSubject == cameras[8] then
    wait()
    amount.Image = assets[7]
 end
end
end
end
end
end
end
end
if (player.Character.HumanoidRootPart.Position - workspace.Part.Position).Magnitude <= 11 then
    pressE.Visible = true
    pressEadd.Visible = true
    input()
    print("Rendering")
elseif (player.Character.HumanoidRootPart.Position - workspace.Part.Position).Magnitude > 11 then
    pressE.Visible = false
    pressEadd.Visible = false
    print("Rendering")
  end
end) 


humanoid.Died:Connect(function()
        exitCameraMode()
    if Camera.CameraType == Enum.CameraType.Custom then
       wait(5)
       pressE.Parent = s
       pressEadd.Parent = s
       player.Character.Humanoid.WalkSpeed = 16
       invisibleRightandLeftandExitPurchase()
    end
end)

-- // Manuvering through the GUI shop \\ --


lefts[1].MouseButton1Click:Connect(function()
        if Camera.CameraSubject == cameras[2] then
            cameraMode()
        elseif Camera.CameraSubject == cameras[3] then
            cameraModetwo()

        elseif Camera.CameraSubject == cameras[4] then
            cameraModethree()

        elseif Camera.CameraSubject == cameras[5] then
            cameraModefour()

        elseif Camera.CameraSubject == cameras[6] then
            cameraModefive()

        elseif Camera.CameraSubject == cameras[7] then
            cameraModesix()

        elseif Camera.CameraSubject == cameras[8] then
            cameraModeseven()
    end
end)


rights[1].MouseButton1Click:Connect(function()
        if Camera.CameraSubject == cameras[1] then
        cameraModetwo()
        elseif Camera.CameraSubject == cameras[2] then
            cameraModethree()

        elseif Camera.CameraSubject == cameras[3] then
            cameraModefour()

        elseif Camera.CameraSubject == cameras[4] then
            cameraModefive()

        elseif Camera.CameraSubject == cameras[5] then
            cameraModesix()

        elseif Camera.CameraSubject == cameras[6] then
            cameraModeseven()

        elseif Camera.CameraSubject == cameras[7] then
            cameraModeEight()
    end
end)

exit.MouseButton1Click:Connect(function()
    exitCameraMode()
    invisibleRightandLeftandExitPurchase()
     pressE.Parent = s
       pressEadd.Parent = s
       player.Character.Humanoid.WalkSpeed = 16
end)

purchase.MouseButton1Click:Connect(function()

end)











Answer this question