Roblox studio скрипт чтобы если игрок наступит на

Roblox studio скрипт чтобы если игрок наступит на объект "popa" то объект "scr" начинал двигаться быстро к игроку и как только он коснется игрока он должен пропасть
Дополнительные параметры: codeFlowType: codeWrite codeFlowLang: Lua
Создано: 11.08.2023 08:28

Roblox studio скрипт чтобы если игрок наступит на объект "popa" то объект "scr" начинал двигаться быстро к игроку и как только он коснется игрока он должен пропасть

-- Получение объектов
local popa = workspace:WaitForChild("popa")
local scr = workspace:WaitForChild("scr")
local players = game:GetService("Players")

-- Функция, перемещающая объект scr к игроку
local function moveScrToPlayer(player)
    local targetPosition = player.Character.HumanoidRootPart.Position
    local direction = (targetPosition - scr.Position).Unit
    while (targetPosition - scr.Position).Magnitude > 3 do
        scr.Position = scr.Position + direction * 10
        wait(0.1)
    end
    scr:Destroy() -- Уничтожение объекта scr при касании игрока
end

-- Обработчик при касании игрока с объектом popa
local function onPlayerTouch(part)
    local player = players:GetPlayerFromCharacter(part.Parent)
    if player then
        moveScrToPlayer(player)
    end
end

-- Привязка обработчика к событию TouchPart.Touched объекта popa
popa.TouchPart.Touched:Connect(onPlayerTouch)

Результат в формате markdown:

-- Получение объектов
local popa = workspace:WaitForChild("popa")
local scr = workspace:WaitForChild("scr")
local players = game:GetService("Players")

-- Функция, перемещающая объект scr к игроку
local function moveScrToPlayer(player)
    local targetPosition = player.Character.HumanoidRootPart.Position
    local direction = (targetPosition - scr.Position).Unit
    while (targetPosition - scr.Position).Magnitude > 3 do
        scr.Position = scr.Position + direction * 10
        wait(0.1)
    end
    scr:Destroy() -- Уничтожение объекта scr при касании игрока
end

-- Обработчик при касании игрока с объектом popa
local function onPlayerTouch(part)
    local player = players:GetPlayerFromCharacter(part.Parent)
    if player then
        moveScrToPlayer(player)
    end
end

-- Привязка обработчика к событию TouchPart.Touched объекта popa
popa.TouchPart.Touched:Connect(onPlayerTouch)