Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
local UserInputService = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local RunService = game:GetService("RunService") local Players = game:GetService("Players") local AstralEvent = ReplicatedStorage:WaitForChild("AstralEvent") local player = Players.LocalPlayer local camera = workspace.CurrentCamera local isFlying = false local debounce = false -- === ВСТАВЬ СЮДА СВОИ ID (ОБЯЗАТЕЛЬНО) === -- Если нет анимации, создай пустую и вставь её ID, иначе будет ошибка local IDLE_ANIM_ID = "rbxassetid://ТВОЙ_ID_ТУТ" local MOVE_ANIM_ID = "rbxassetid://ТВОЙ_ID_ТУТ" local FLIGHT_SPEED = 50 local KEY_BIND = Enum.KeyCode.G local bodyGyro, bodyVel local connection local loadedIdleTrack = nil local loadedMoveTrack = nil local currentTrack = nil -- Текущий играющий трек local controls = {W = 0, S = 0, A = 0, D = 0, Space = 0, Ctrl = 0} -- Загрузчик анимаций local function setupAnimations(animator) local idleAnim = Instance.new("Animation") idleAnim.AnimationId = IDLE_ANIM_ID local moveAnim = Instance.new("Animation") moveAnim.AnimationId = MOVE_ANIM_ID loadedIdleTrack = animator:LoadAnimation(idleAnim) loadedIdleTrack.Priority = Enum.AnimationPriority.Action -- Самый высокий приоритет loadedIdleTrack.Looped = true loadedMoveTrack = animator:LoadAnimation(moveAnim) loadedMoveTrack.Priority = Enum.AnimationPriority.Action loadedMoveTrack.Looped = true end local function playAnim(trackName) if trackName == "Idle" then if not loadedIdleTrack.IsPlaying then if loadedMoveTrack.IsPlaying then loadedMoveTrack:Stop(0.2) end loadedIdleTrack:Play(0.2) print("Запуск анимации: IDLE") end elseif trackName == "Move" then if not loadedMoveTrack.IsPlaying then if loadedIdleTrack.IsPlaying then loadedIdleTrack:Stop(0.2) end loadedMoveTrack:Play(0.2) print("Запуск анимации: MOVE") end end end local function stopAllAnims() if loadedIdleTrack then loadedIdleTrack:Stop() end if loadedMoveTrack then loadedMoveTrack:Stop() end end local function startFlying(char) local rootPart = char:WaitForChild("HumanoidRootPart") local humanoid = char:WaitForChild("Humanoid") local animator = humanoid:WaitForChild("Animator") -- Инициализация анимаций при старте полета setupAnimations(animator) humanoid.PlatformStand = true bodyGyro = Instance.new("BodyGyro") bodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge) bodyGyro.P = 10000 bodyGyro.CFrame = rootPart.CFrame bodyGyro.Parent = rootPart bodyVel = Instance.new("BodyVelocity") bodyVel.MaxForce = Vector3.new(math.huge, math.huge, math.huge) bodyVel.Velocity = Vector3.new(0, 0, 0) bodyVel.Parent = rootPart -- Сразу играем Idle playAnim("Idle") connection = RunService.RenderStepped:Connect(function() if not char or not rootPart then return end bodyGyro.CFrame = camera.CFrame local forward = camera.CFrame.LookVector * (controls.W - controls.S) local right = camera.CFrame.RightVector * (controls.D - controls.A) local up = Vector3.new(0, 1, 0) * (controls.Space - controls.Ctrl) local direction = (forward + right + up) bodyVel.Velocity = direction * FLIGHT_SPEED -- Управление анимациями if direction.Magnitude > 0.1 then playAnim("Move") else playAnim("Idle") end -- Noclip for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = false end end end) end local function stopFlying(char) if connection then connection:Disconnect() end if bodyGyro then bodyGyro:Destroy() end if bodyVel then bodyVel:Destroy() end stopAllAnims() local humanoid = char:FindFirstChild("Humanoid") if humanoid then humanoid.PlatformStand = false end for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = true end end end UserInputService.InputBegan:Connect(function(input, gp) if gp then return end if input.KeyCode == Enum.KeyCode.W then controls.W = 1 elseif input.KeyCode == Enum.KeyCode.S then controls.S = 1 elseif input.KeyCode == Enum.KeyCode.A then controls.A = 1 elseif input.KeyCode == Enum.KeyCode.D then controls.D = 1 elseif input.KeyCode == Enum.KeyCode.Space then controls.Space = 1 elseif input.KeyCode == Enum.KeyCode.LeftControl then controls.Ctrl = 1 elseif input.KeyCode == KEY_BIND then if not debounce then debounce = true local char = player.Character if char then isFlying = not isFlying AstralEvent:FireServer() if isFlying then startFlying(char) else stopFlying(char) end end task.wait(1) debounce = false end end end) UserInputService.InputEnded:Connect(function(input) if input.KeyCode == Enum.KeyCode.W then controls.W = 0 elseif input.KeyCode == Enum.KeyCode.S then controls.S = 0 elseif input.KeyCode == Enum.KeyCode.A then controls.A = 0 elseif input.KeyCode == Enum.KeyCode.D then controls.D = 0 elseif input.KeyCode == Enum.KeyCode.Space then controls.Space = 0 elseif input.KeyCode == Enum.KeyCode.LeftControl then controls.Ctrl = 0 end end)
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)