RobloxScripterAI
Discord ↗
Link Copied to Clipboard
×
"Write me the most complex script for a camera system that can switch positions using zones"
-- server script local cameraZones = { Zone1 = { Position = Vector3.new(0, 0, 0), CameraType = Enum.CameraType.Scriptable }, Zone2 = { Position = Vector3.new(100, 0, 0), CameraType = Enum.CameraType.Scriptable }, Zone3 = { Position = Vector3.new(0, 0, 100), CameraType = Enum.CameraType.Scriptable } } local function onPlayerAdded(player) local function onCharacterAdded(character) local humanoidRootPart = character:WaitForChild("HumanoidRootPart") local function onTouched(zonePart) local zoneName = zonePart.Name local zoneData = cameraZones[zoneName] if zoneData then local cameraSystemEvent = Instance.new("BindableEvent") cameraSystemEvent.Name = "CameraSystemEvent" cameraSystemEvent.Parent = player cameraSystemEvent:Fire(zoneData.Position, zoneData.CameraType) end end for zoneName, zoneData in pairs(cameraZones) do local zonePart = Instance.new("Part") zonePart.Name = zoneName zonePart.Position = zoneData.Position zonePart.Transparency = 1 zonePart.Anchored = true zonePart.CanCollide = false zonePart.Parent = workspace zonePart.Touched:Connect(onTouched) end end player.CharacterAdded:Connect(onCharacterAdded) end game.Players.PlayerAdded:Connect(onPlayerAdded) -- local script local player = game.Players.LocalPlayer local camera = workspace.CurrentCamera local function onCameraSystemEvent(position, cameraType) camera.CameraType = cameraType camera.CFrame = CFrame.new(position, player.Character.HumanoidRootPart.Position) end player.ChildAdded:Connect(function(child) if child.Name == "CameraSystemEvent" then child.Event:Connect(onCameraSystemEvent) end end)