-- DELTA EXECUTOR - FLY + ANİMASYON (ÇARPIŞMA ENGELLİ) + FOV + MOMENTUM YOK local player = game.Players.LocalPlayer local runService = game:GetService("RunService") local userInputService = game:GetService("UserInputService") local flying = false local flyConnection = nil local flyBodyVelocity = nil local currentAnimTrack = nil local currentDirection = "IDLE" -- ========== FOV ========== local normalFOV = 70 local wPressedFOV = 120 local isWPressed = false local fovEnabled = true -- ========== ANİMASYON ID'LERİ ========== local ANIMATIONS = { FORWARD = "rbxassetid://102836456555620", BACKWARD = "rbxassetid://102836456555620", RIGHT = "rbxassetid://102836456555620", LEFT = "rbxassetid://102836456555620", UP = "rbxassetid://102836456555620", DOWN = "rbxassetid://102836456555620", IDLE = "rbxassetid://107218891171080", } -- ========== TUŞLAR ========== local keys = {W=false, S=false, A=false, D=false, Space=false, Control=false} -- ========== KARAKTER BUL ========== local function getRoot() local char = player.Character if not char then return nil end return char:FindFirstChild("HumanoidRootPart") or char:FindFirstChild("RootPart") or char.PrimaryPart end local function getHumanoid() local char = player.Character if not char then return nil end return char:FindFirstChildOfClass("Humanoid") end -- ========== ANİMASYON FONKSİYONLARI ========== local function stopAllAnimations(humanoid) if not humanoid then return end pcall(function() local animator = humanoid:FindFirstChildOfClass("Animator") if animator then for _, track in pairs(animator:GetPlayingAnimationTracks()) do track:Stop() end end end) end local function changeAnimation(direction) if not flying then return end local humanoid = getHumanoid() if not humanoid then return end if currentDirection == direction and currentAnimTrack and currentAnimTrack.IsPlaying then return end local animationId = ANIMATIONS[direction] if not animationId then return end if currentAnimTrack then pcall(function() currentAnimTrack:Stop() currentAnimTrack = nil end) end pcall(function() local animator = humanoid:FindFirstChildOfClass("Animator") local anim = Instance.new("Animation") anim.AnimationId = animationId if animator then currentAnimTrack = animator:LoadAnimation(anim) else currentAnimTrack = humanoid:LoadAnimation(anim) end if currentAnimTrack then currentAnimTrack.Looped = true currentAnimTrack:Play() end end) currentDirection = direction end -- ========== GRAVITY ========== local function setGravity(val) pcall(function() workspace.Gravity = val end) end -- ========== FOV ========== local function setFOV(val) if not fovEnabled then return end pcall(function() workspace.CurrentCamera.FieldOfView = val end) end local function updateFOV() if isWPressed and flying then setFOV(wPressedFOV) else setFOV(normalFOV) end end -- ========== KARAKTERİ KAMERAYA DÖNDÜR ========== local function faceCamera() local root = getRoot() local camera = workspace.CurrentCamera if not root or not camera then return end pcall(function() local look = camera.CFrame.LookVector local hLook = Vector3.new(look.X, 0, look.Z) if hLook.Magnitude > 0.1 then hLook = hLook.Unit root.CFrame = CFrame.lookAt(root.Position, root.Position + hLook) end end) end -- ========== HAREKET ========== local function move(dir) local root = getRoot() if not root then return end if dir.Magnitude > 0.1 then dir = dir.Unit local cam = workspace.CurrentCamera local forward = cam.CFrame.LookVector local right = cam.CFrame.RightVector local up = cam.CFrame.UpVector local vel = (forward * dir.Z + right * dir.X + up * dir.Y).Unit * 100 -- BodyVelocity if not flyBodyVelocity or flyBodyVelocity.Parent == nil then flyBodyVelocity = Instance.new("BodyVelocity") flyBodyVelocity.MaxForce = Vector3.new(1, 1, 1) * 9999999 flyBodyVelocity.Parent = root end flyBodyVelocity.Velocity = vel -- Velocity pcall(function() root.Velocity = vel root.AssemblyLinearVelocity = vel end) else if flyBodyVelocity then flyBodyVelocity:Destroy() flyBodyVelocity = nil end pcall(function() local root = getRoot() if root then root.Velocity = Vector3.new(0, 0, 0) root.AssemblyLinearVelocity = Vector3.new(0, 0, 0) end end) end end -- ========== ÇARPIŞMA ENGELLEYİCİ (MOMENTUM + ANİMASYON) ========== local function setupCollisionBlocker() local char = player.Character if not char then return end for _, part in pairs(char:GetDescendants()) do if part:IsA("BasePart") then part.Touched:Connect(function(hit) if not flying then return end -- Sadece oyuncuya veya yere çarptığında çalışsın if hit and hit.Parent and hit.Parent:FindFirstChildOfClass("Humanoid") then return -- Başka oyuncuya çarptıysa işlem yapma end -- ===== MOMENTUMU SIFIRLA ===== local root = getRoot() if root then pcall(function() root.Velocity = Vector3.new(0, 0, 0) root.AssemblyLinearVelocity = Vector3.new(0, 0, 0) root.RotVelocity = Vector3.new(0, 0, 0) root.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end) end -- ===== BODYVELOCITY'Yİ YENİDEN OLUŞTUR ===== if flyBodyVelocity then pcall(function() flyBodyVelocity:Destroy() flyBodyVelocity = nil end) end -- ===== ANİMASYON ÇAKIŞMASINI ENGELLE ===== local hum = getHumanoid() if hum then -- Tüm animasyonları durdur stopAllAnimations(hum) -- Sadece uçuş animasyonunu oynat if currentAnimTrack then pcall(function() currentAnimTrack:Play() end) else changeAnimation("IDLE") end end -- ===== YÜRÜME HIZINI SIFIRLA ===== if hum then pcall(function() hum.WalkSpeed = 0 hum.JumpPower = 0 hum.PlatformStand = false end) end end) end end end -- ========== INPUT ========== userInputService.InputBegan:Connect(function(input) local key = input.KeyCode if key == Enum.KeyCode.W then keys.W = true; isWPressed = true; updateFOV() elseif key == Enum.KeyCode.S then keys.S = true elseif key == Enum.KeyCode.A then keys.A = true elseif key == Enum.KeyCode.D then keys.D = true elseif key == Enum.KeyCode.Space then keys.Space = true elseif key == Enum.KeyCode.LeftControl then keys.Control = true end end) userInputService.InputEnded:Connect(function(input) local key = input.KeyCode if key == Enum.KeyCode.W then keys.W = false; isWPressed = false; updateFOV() elseif key == Enum.KeyCode.S then keys.S = false elseif key == Enum.KeyCode.A then keys.A = false elseif key == Enum.KeyCode.D then keys.D = false elseif key == Enum.KeyCode.Space then keys.Space = false elseif key == Enum.KeyCode.LeftControl then keys.Control = false end end) -- ========== UÇUŞ ========== function toggleFly() flying = not flying if flying then setGravity(0) local hum = getHumanoid() if hum then hum.WalkSpeed = 0 hum.JumpPower = 0 hum.PlatformStand = false hum.AutoRotate = true end stopAllAnimations(hum) changeAnimation("IDLE") -- Çarpışma engelleyiciyi kur setupCollisionBlocker() print("✅ UÇUŞ + ANİMASYON + ÇARPIŞMA ENGELLEYİCİ BAŞLADI!") print("🛡️ Çarpışma anında momentum SIFIRLANIR!") print("🛡️ Yürüme animasyonu ENGELLENİR!") flyConnection = runService.RenderStepped:Connect(function() if not flying then return end local root = getRoot() local hum = getHumanoid() if not root or not hum then return end -- Gravity kontrol if workspace.Gravity ~= 0 then workspace.Gravity = 0 end -- WalkSpeed kontrol if hum.WalkSpeed ~= 0 then hum.WalkSpeed = 0 hum.JumpPower = 0 end -- Karakteri kameraya döndür faceCamera() -- Hareket vektörü local moveVec = Vector3.new() if keys.W then moveVec = moveVec + Vector3.new(0, 0, 1) end if keys.S then moveVec = moveVec + Vector3.new(0, 0, -1) end if keys.A then moveVec = moveVec + Vector3.new(-1, 0, 0) end if keys.D then moveVec = moveVec + Vector3.new(1, 0, 0) end if keys.Space then moveVec = moveVec + Vector3.new(0, 1, 0) end if keys.Control then moveVec = moveVec + Vector3.new(0, -1, 0) end -- ANİMASYON GÜNCELLE local direction = "IDLE" if moveVec.Magnitude > 0.1 then if math.abs(moveVec.Z) > math.abs(moveVec.X) then if moveVec.Z > 0 then direction = "FORWARD" else direction = "BACKWARD" end else if moveVec.X > 0 then direction = "RIGHT" else direction = "LEFT" end end if moveVec.Y > 0.5 then direction = "UP" elseif moveVec.Y < -0.5 then direction = "DOWN" end end changeAnimation(direction) -- HAREKET ET move(moveVec) updateFOV() end) else if flyConnection then flyConnection:Disconnect() flyConnection = nil end if flyBodyVelocity then flyBodyVelocity:Destroy() flyBodyVelocity = nil end setGravity(196.2) setFOV(normalFOV) if currentAnimTrack then pcall(function() currentAnimTrack:Stop() currentAnimTrack = nil end) end local hum = getHumanoid() if hum then hum.WalkSpeed = 16 hum.JumpPower = 50 hum.PlatformStand = false hum.AutoRotate = true end local root = getRoot() if root then root.Velocity = Vector3.new(0, 0, 0) root.AssemblyLinearVelocity = Vector3.new(0, 0, 0) root.RotVelocity = Vector3.new(0, 0, 0) root.AssemblyAngularVelocity = Vector3.new(0, 0, 0) end currentDirection = "IDLE" print("❌ UÇUŞ DURDU!") end end -- ========== FOV BUTONU ========== local function createFOVButton() local gui = Instance.new("ScreenGui") gui.Name = "FOVBtn" gui.Parent = player:WaitForChild("PlayerGui") gui.ResetOnSpawn = false local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 40, 0, 40) btn.Position = UDim2.new(0.02, 0, 0.42, 0) btn.BackgroundColor3 = Color3.fromRGB(0, 200, 100) btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextScaled = true btn.Text = "👁" btn.Font = Enum.Font.GothamBold btn.BorderSizePixel = 0 btn.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0.5, 0) corner.Parent = btn btn.MouseButton1Click:Connect(function() fovEnabled = not fovEnabled btn.BackgroundColor3 = fovEnabled and Color3.fromRGB(0, 200, 100) or Color3.fromRGB(200, 50, 50) if not fovEnabled then setFOV(normalFOV) end end) end -- ========== FLY BUTONU ========== local function createFlyButton() local gui = Instance.new("ScreenGui") gui.Name = "FlyBtn" gui.Parent = player:WaitForChild("PlayerGui") gui.ResetOnSpawn = false local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 80, 0, 80) btn.Position = UDim2.new(0.85, 0, 0.05, 0) btn.BackgroundColor3 = Color3.fromRGB(0, 200, 255) btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextScaled = true btn.Text = "✈️" btn.Font = Enum.Font.GothamBold btn.BorderSizePixel = 0 btn.Parent = gui local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0.5, 0) corner.Parent = btn btn.MouseButton1Click:Connect(function() toggleFly() btn.Text = flying and "🛑" or "✈️" btn.BackgroundColor3 = flying and Color3.fromRGB(255, 50, 50) or Color3.fromRGB(0, 200, 255) end) end -- ========== BAŞLAT ========== createFlyButton() createFOVButton() -- ========== KARAKTER YENİDEN DOĞARSA ========== player.CharacterAdded:Connect(function() if flying then if flyConnection then flyConnection:Disconnect() flyConnection = nil end if flyBodyVelocity then flyBodyVelocity:Destroy() flyBodyVelocity = nil end if currentAnimTrack then currentAnimTrack:Stop() currentAnimTrack = nil end flying = false wait(0.5) toggleFly() end currentDirection = "IDLE" end) -- TEST SCRIPT - HANGİ YÖNTEM ÇALIŞIYOR? local player = game.Players.LocalPlayer local runService = game:GetService("RunService") local root = player.Character and player.Character:FindFirstChild("HumanoidRootPart") if not root then print("❌ RootPart BULUNAMADI!") print("🔍 Alternatif isimler denenmeli!") -- Alternatif isimleri dene local char = player.Character if char then print("📌 Character'deki parçalar:") for _, part in pairs(char:GetChildren()) do if part:IsA("BasePart") then print(" - " .. part.Name) end end end else print("✅ RootPart BULUNDU: " .. root.Name) end -- ===== GRAVITY TEST ===== print("\n🔬 GRAVITY TESTİ:") local oldGravity = workspace.Gravity pcall(function() workspace.Gravity = 0 print(" Gravity 0 yapıldı: " .. workspace.Gravity) wait(0.5) workspace.Gravity = oldGravity print(" Gravity eski haline döndü: " .. workspace.Gravity) end) -- ===== VELOCITY TEST ===== print("\n🔬 VELOCITY TESTİ:") if root then pcall(function() root.Velocity = Vector3.new(0, 50, 0) print(" Velocity uygulandı: " .. tostring(root.Velocity)) wait(0.5) print(" 0.5 saniye sonra: " .. tostring(root.Velocity)) end) end -- ===== BODYVELOCITY TEST ===== print("\n🔬 BODYVELOCITY TESTİ:") if root then pcall(function() local bv = Instance.new("BodyVelocity") bv.MaxForce = Vector3.new(1, 1, 1) * 999999 bv.Velocity = Vector3.new(0, 50, 0) bv.Parent = root print(" BodyVelocity oluşturuldu!") wait(0.5) bv:Destroy() print(" BodyVelocity silindi!") end) end -- ===== CFrame TEST ===== print("\n🔬 CFRAME TESTİ:") if root then pcall(function() local oldPos = root.Position root.CFrame = root.CFrame + Vector3.new(0, 10, 0) print(" CFrame ile yukarı çıkıldı!") wait(0.5) root.CFrame = CFrame.new(oldPos) print(" Eski konuma dönüldü!") end) end print("\n📊 TEST SONUÇLARI:") print("✅ Hangi yöntem çalıştıysa ONU KULLAN!") print("📝 Hata mesajlarını konsoldan kontrol et!") print("🚀 FLY + ANİMASYON + ÇARPIŞMA ENGELLEYİCİ YÜKLENDİ!") print("🎬 Animasyonlar AKTİF!") print("🛡️ Çarpışma anında MOMENTUM SIFIRLANIR!") print("🛡️ Çarpışma anında YÜRÜME ANİMASYONU ENGELLENİR!") print("📊 W tuşu = FOV değişimi") print("👁 FOV aç/kapa")