Как сделать крутящийся Part в роблокс студио

Скрипты: Для просто крутящегося: local RunService = game:GetService("RunService") local part = script.Parent -- Скорость вращения (градусов в секунду) local ROTATION_SPEED = 180 RunService.Heartbeat:Connect(function(dt) -- Вращаем Part вокруг оси Y local currentCFrame = part.CFrame local rotation = CFrame.Angles(0, math.rad(ROTATION_SPEED) * dt, 0) part.CFrame = currentCFrame * rotation end) Для отталкивающего: local RunService = game:GetService("RunService") local part = script.Parent -- Скорость вращения (градусов в секунду) local ROTATION_SPEED = 180 RunService.Heartbeat:Connect(function(dt) -- Вращаем Part вокруг оси Y local currentCFrame = part.CFrame local rotation = CFrame.Angles(0, math.rad(ROTATION_SPEED) * dt, 0) part.CFrame = currentCFrame * rotation end) local KNOCKBACK_FORCE = 100 -- сила отталкивания local DURATION = 0.4 -- сколько секунд действует сила part.Touched:Connect(function(hit) local character = hit.Parent local humanoid = character:FindFirstChildOfClass("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return end -- Направление отталкивания: от центра детали к точке касания local direction = (rootPart.Position - part.Position).Unit local bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.Velocity = direction * KNOCKBACK_FORCE bodyVelocity.MaxForce = Vector3.new(5000, 5000, 5000) bodyVelocity.Parent = rootPart game.Debris:AddItem(bodyVelocity, DURATION) end) Для убивающего: local RunService = game:GetService("RunService") local part = script.Parent -- Скорость вращения (градусов в секунду) local ROTATION_SPEED = 180 RunService.Heartbeat:Connect(function(dt) -- Вращаем Part вокруг оси Y local currentCFrame = part.CFrame local rotation = CFrame.Angles(0, math.rad(ROTATION_SPEED) * dt, 0) part.CFrame = currentCFrame * rotation end) part.Touched:Connect(function(hit) local character = hit.Parent local humanoid = character:FindFirstChild("Humanoid") if humanoid then humanoid.Health = 0 -- Убиваем игрока end end)

12+
1 просмотр
5 дней назад
12+
1 просмотр
5 дней назад

Скрипты: Для просто крутящегося: local RunService = game:GetService("RunService") local part = script.Parent -- Скорость вращения (градусов в секунду) local ROTATION_SPEED = 180 RunService.Heartbeat:Connect(function(dt) -- Вращаем Part вокруг оси Y local currentCFrame = part.CFrame local rotation = CFrame.Angles(0, math.rad(ROTATION_SPEED) * dt, 0) part.CFrame = currentCFrame * rotation end) Для отталкивающего: local RunService = game:GetService("RunService") local part = script.Parent -- Скорость вращения (градусов в секунду) local ROTATION_SPEED = 180 RunService.Heartbeat:Connect(function(dt) -- Вращаем Part вокруг оси Y local currentCFrame = part.CFrame local rotation = CFrame.Angles(0, math.rad(ROTATION_SPEED) * dt, 0) part.CFrame = currentCFrame * rotation end) local KNOCKBACK_FORCE = 100 -- сила отталкивания local DURATION = 0.4 -- сколько секунд действует сила part.Touched:Connect(function(hit) local character = hit.Parent local humanoid = character:FindFirstChildOfClass("Humanoid") local rootPart = character:FindFirstChild("HumanoidRootPart") if not rootPart then return end -- Направление отталкивания: от центра детали к точке касания local direction = (rootPart.Position - part.Position).Unit local bodyVelocity = Instance.new("BodyVelocity") bodyVelocity.Velocity = direction * KNOCKBACK_FORCE bodyVelocity.MaxForce = Vector3.new(5000, 5000, 5000) bodyVelocity.Parent = rootPart game.Debris:AddItem(bodyVelocity, DURATION) end) Для убивающего: local RunService = game:GetService("RunService") local part = script.Parent -- Скорость вращения (градусов в секунду) local ROTATION_SPEED = 180 RunService.Heartbeat:Connect(function(dt) -- Вращаем Part вокруг оси Y local currentCFrame = part.CFrame local rotation = CFrame.Angles(0, math.rad(ROTATION_SPEED) * dt, 0) part.CFrame = currentCFrame * rotation end) part.Touched:Connect(function(hit) local character = hit.Parent local humanoid = character:FindFirstChild("Humanoid") if humanoid then humanoid.Health = 0 -- Убиваем игрока end end)

, чтобы оставлять комментарии