Два портала: туда и обратно
Путешествуйте между двумя частями карты без зацикливания.
При касании одного портала игрок переносится ко второму. Повторное касание доступно после паузы.
1. Подготовьте объект
Где разместить: Script в ServerScriptService
Создайте в Workspace два вертикальных Part: PortalA и PortalB. У обоих Anchored = true, CanTouch = true, CanCollide = false.
Поверните порталы так, чтобы их передняя сторона (направление LookVector) смотрела в безопасную свободную зону. Перед каждым порталом оставьте минимум 7 studs свободного пространства и пол под ногами.
В ServerScriptService создайте один обычный Script и вставьте код. В Play войдите в PortalA, затем попробуйте PortalB.
Порталы должны быть достаточно далеко друг от друга, чтобы выход не попадал в зону касания другого портала.
2. Вставьте код
-- Script в ServerScriptService: два портала
local portalA = workspace:WaitForChild("PortalA")
local portalB = workspace:WaitForChild("PortalB")
local COOLDOWN = 2
local OFFSET = CFrame.new(0, 3, -7)
local cooldown = {}
local function link(source, destination)
source.Touched:Connect(function(hit)
local character = hit:FindFirstAncestorOfClass("Model")
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
local root = character and character:FindFirstChild("HumanoidRootPart")
if not humanoid or humanoid.Health <= 0 or not root or cooldown[character] then return end
cooldown[character] = true
-- Выход перед порталом, а не внутри него.
character:PivotTo(destination.CFrame * OFFSET)
root.AssemblyLinearVelocity = Vector3.zero
root.AssemblyAngularVelocity = Vector3.zero
task.delay(COOLDOWN, function() cooldown[character] = nil end)
end)
end
link(portalA, portalB)
link(portalB, portalA)3. Проверьте в игре
Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.
Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.
Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.
Измените смещение -6 на -9.
Оформите вход и выход разными цветами.
Создайте скрытую комнату сокровищ, куда ведёт портал.
4. Проверьте себя
Зачем порталам нужна защита от повторного срабатывания?
Проверьте имена PortalA/PortalB, CanTouch и свободное место перед порталами. Если игрок появляется за стеной, разверните Part или измените OFFSET. После телепорта работает задержка 2 секунды от повторного касания.