-- Прикрепите этот скрипт к объекту, который представляет вашу планету
local Planet = script.Parent -- Убедитесь, что этот скрипт прикреплен к объекту-планете
local gravityStrength = 500 -- Сила гравитации, можете настроить по своему вкусу
local gravityRange = 100 -- Радиус действия гравитации
local function attractPlayer(player)
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:FindFirstChild("HumanoidRootPart")
if not rootPart then return end
local direction = (rootPart.Position - Planet.Position).Unit
local force = direction * gravityStrength
humanoid:ChangeState(Enum.HumanoidStateType.FallingDown)
humanoid.WalkSpeed = 0 -- Можно оставить или убрать, чтобы игроки не могли двигаться
coroutine.wrap(function()
while rootPart.Position:DistanceTo(Planet.Position) <= gravityRange do
humanoid:AddForce(force)
wait(0.1) -- Частота обновления притяжения, можете настроить
end
humanoid.WalkSpeed = 16 -- Возвращаем обычную скорость ходьбы
end)()
end
for _, player in ipairs(game.Players:GetPlayers()) do
attractPlayer(player)
end
game.Players.PlayerAdded:Connect(function(player)
attractPlayer(player)
end)
game.Players.PlayerRemoving:Connect(function(player)
-- Опционально, если хотите остановить притяжение при выходе игрока
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
humanoid.WalkSpeed = 16
end)