-- Улучшенная логика падения для достижения реалистичной физики Ragdoll -- Разместить в StarterCharacterScripts (LocalScript) local player = game.Players.LocalPlayer local character = player.Character or player.CharacterAdded:Wait() local humanoid = character:WaitForChild("Humanoid") local rootPart = character:WaitForChild("HumanoidRootPart") -- Функция для перевода персонажа в динамический режим Ragdoll local function trip() -- Отключаем штатную анимацию и управление humanoid.PlatformStand = true -- Переводим все суставы (Motor6D) в состояние физической симуляции (если применимо) -- Для базового движка Roblox переключение состояния на Ragdoll достаточно humanoid:ChangeState(Enum.HumanoidStateType.Physics) -- Добавляем случайный вектор импульса для создания эффекта "неуклюжего" падения local force = Vector3.new(math.random(-25, 25), -100, math.random(-25, 25)) rootPart:ApplyImpulse(force) -- Удерживаем физическое состояние 2 секунды task.wait(2.0) -- Возвращаем персонажа в штатный режим humanoid.PlatformStand = false humanoid:ChangeState(Enum.HumanoidStateType.GettingUp) end -- Обработка прыжка humanoid.StateChanged:Connect(function(oldState, newState) if newState == Enum.HumanoidStateType.Jumping then trip() end end)