local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Debris = game:GetService("Debris")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera
-- Состояние системы
local activeModel = nil
local flightConn = nil
local activeHUD = nil
local isFlying = false
local camYaw = 0
local camPitch = 0
-- Очистка старого меню перед созданием нового (защита от дубликатов)
local oldUI = player:WaitForChild("PlayerGui"):FindFirstChild("Ser0522_ArsenalMenu")
if oldUI then oldUI:Destroy() end
-- Вспомогательное создание деталей
local function createBlock(parent, size, cf, color, mat)
local p = Instance.new("Part")
p.Size = size
p.CFrame = cf
p.Color = color or Color3.fromRGB(20, 20, 22)
p.Material = mat or Enum.Material.SmoothPlastic
p.TopSurface = Enum.SurfaceType.Smooth
p.BottomSurface = Enum.SurfaceType.Smooth
p.CanCollide = false
p.Anchored = false
p.Parent = parent
return p
end
local function weld(p0, p1)
local w = Instance.new("WeldConstraint")
w.Part0 = p0
w.Part1 = p1
w.Parent = p0
end
-- 1. Сборка 3D-моделей
local function buildVehicle(vName, startCF)
local model = Instance.new("Model")
model.Name = vName
local main = nil
local speed = 85
local expType = "Standard"
local expScale = 1.8
if vName:find("Shahed") then
main = createBlock(model, Vector3.new(2.4, 1.1, 7.5), startCF, Color3.fromRGB(24, 26, 28), Enum.Material.Metal)
main.Name = "MainPart"
if vName == "Shahed-136 Classic" then
local w = createBlock(model, Vector3.new(12, 0.3, 4.5), startCF * CFrame.new(0, 0, 1), Color3.fromRGB(25, 25, 25), Enum.Material.Metal)
weld(main, w)
local fL = createBlock(model, Vector3.new(0.3, 2, 2), startCF * CFrame.new(-6, 1, 2.5), Color3.fromRGB(20, 20, 20), Enum.Material.Metal)
local fR = createBlock(model, Vector3.new(0.3, 2, 2), startCF * CFrame.new(6, 1, 2.5), Color3.fromRGB(20, 20, 20), Enum.Material.Metal)
weld(main, fL); weld(main, fR)
speed = 85
elseif vName == "Shahed-238 Jet Black" then
main.Color = Color3.fromRGB(8, 8, 10)
local w = createBlock(model, Vector3.new(10.5, 0.3, 4), startCF * CFrame.new(0, 0, 0.8), Color3.fromRGB(8, 8, 10), Enum.Material.Glass)
weld(main, w)
local thruster = createBlock(model, Vector3.new(1.2, 1.2, 2.5), startCF * CFrame.new(0, 0.4, 3.5), Color3.fromRGB(0, 200, 255), Enum.Material.Neon)
weld(main, thruster)
speed = 145
expScale = 2.2
elseif vName == "Shahed-Stealth Ghost" then
main.Color = Color3.fromRGB(15, 18, 22)
main.Material = Enum.Material.DiamondPlate
local w = createBlock(model, Vector3.new(14, 0.2, 3.8), startCF * CFrame.new(0, 0, 0.8), Color3.fromRGB(15, 18, 22), Enum.Material.DiamondPlate)
weld(main, w)
speed = 95
expScale = 2.0
elseif vName == "Shahed-Bomber Heavy" then
local w = createBlock(model, Vector3.new(15, 0.4, 5.5), startCF * CFrame.new(0, 0, 1), Color3.fromRGB(30, 35, 30), Enum.Material.Metal)
weld(main, w)
local b1 = createBlock(model, Vector3.new(0.9, 0.9, 3), startCF * CFrame.new(-4, -0.8, 0), Color3.fromRGB(60, 70, 40), Enum.Material.Metal)
local b2 = createBlock(model, Vector3.new(0.9, 0.9, 3), startCF * CFrame.new(4, -0.8, 0), Color3.fromRGB(60, 70, 40), Enum.Material.Metal)
weld(main, b1); weld(main, b2)
speed = 70
expScale = 2.6
elseif vName == "Shahed-149 Goliath" then
main.Size = Vector3.new(3.6, 1.8, 12)
local w = createBlock(model, Vector3.new(19, 0.5, 6), startCF * CFrame.new(0, 0, 1.5), Color3.fromRGB(28, 30, 32), Enum.Material.Metal)
weld(main, w)
speed = 75
expScale = 3.2
end
else
-- РАКЕТЫ И СУПЕРОРУЖИЕ
main = createBlock(model, Vector3.new(1.4, 1.4, 11), startCF, Color3.fromRGB(215, 215, 220), Enum.Material.Metal)
main.Name = "MainPart"
local nose = createBlock(model, Vector3.new(1.3, 1.3, 2.5), startCF * CFrame.new(0, 0, -6), Color3.fromRGB(180, 40, 40), Enum.Material.Metal)
weld(main, nose)
local finH = createBlock(model, Vector3.new(4, 0.15, 1.5), startCF * CFrame.new(0, 0, 4.5), Color3.fromRGB(50, 50, 50), Enum.Material.Metal)
local finV = createBlock(model, Vector3.new(0.15, 4, 1.5), startCF * CFrame.new(0, 0, 4.5), Color3.fromRGB(50, 50, 50), Enum.Material.Metal)
weld(main, finH); weld(main, finV)
local thruster = createBlock(model, Vector3.new(0.8, 0.8, 0.5), startCF * CFrame.new(0, 0, 5.5), Color3.fromRGB(255, 120, 0), Enum.Material.Neon)
weld(main, thruster)
local fireTrail = Instance.new("ParticleEmitter")
fireTrail.Color = ColorSequence.new(Color3.fromRGB(255, 100, 0), Color3.fromRGB(255, 200, 50))
fireTrail.Size = NumberSequence.new(1.2, 0.1)
fireTrail.Lifetime = NumberRange.new(0.4, 0.7)
fireTrail.Speed = NumberRange.new(30, 50)
fireTrail.EmissionDirection = Enum.NormalId.Back
fireTrail.Parent = thruster
if vName == "Катаклизм: Торнадо" then
main.Color = Color3.fromRGB(60, 70, 85)
nose.Color = Color3.fromRGB(0, 220, 255)
speed = 190
expType = "Tornado"
expScale = 4.0
elseif vName == "РСЗО Торнадо-С" then
main.Color = Color3.fromRGB(45, 55, 45)
speed = 210
expScale = 3.5
elseif vName == "Крылатая Ракета X-101" then
speed = 180
expScale = 3.0
elseif vName == "Баллистический Искандер" then
speed = 220
expScale = 4.0
elseif vName == "Ядерный Сармат РС-28" then
main.Color = Color3.fromRGB(30, 30, 30)
nose.Color = Color3.fromRGB(255, 215, 0)
speed = 260
expType = "Nuclear"
expScale = 8.0
elseif vName == "Тактический Ядерный Удар" then
speed = 200
expType = "Nuclear"
expScale = 5.5
end
end
model.PrimaryPart = main
local camNode = Instance.new("Attachment")
camNode.Name = "CamView"
camNode.Position = Vector3.new(0, 2, 4)
camNode.Parent = main
model:SetAttribute("Speed", speed)
model:SetAttribute("ExpType", expType)
model:SetAttribute("ExpScale", expScale)
model.Parent = workspace
return model
end
-- 2. Эффект Торнадо
local function spawnTornado(pos)
local center = Instance.new("Part")
center.Anchored = true
center.CanCollide = false
center.Transparency = 1
center.Position = pos
center.Parent = workspace
-- Основной смерч
local vortex = Instance.new("ParticleEmitter")
vortex.Color = ColorSequence.new(Color3.fromRGB(130, 125, 110), Color3.fromRGB(45, 45, 45))
vortex.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, 6),
NumberSequenceKeypoint.new(0.4, 25),
NumberSequenceKeypoint.new(1, 75)
})
vortex.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.1),
NumberSequenceKeypoint.new(0.8, 0.3),
NumberSequenceKeypoint.new(1, 1)
})
vortex.Lifetime = NumberRange.new(3, 5)
vortex.Rate = 300
vortex.Speed = NumberRange.new(45, 100)
vortex.EmissionDirection = Enum.NormalId.Top
vortex.SpreadAngle = Vector2.new(18, 18)
vortex.RotSpeed = NumberRange.new(300, 600)
vortex.Parent = center
-- Разлетающиеся обломки
local debrisEmitter = Instance.new("ParticleEmitter")
debrisEmitter.Color = ColorSequence.new(Color3.fromRGB(70, 65, 55))
debrisEmitter.Size = NumberSequence.new(2, 6)
debrisEmitter.Lifetime = NumberRange.new(2, 3.5)
debrisEmitter.Rate = 120
debrisEmitter.Speed = NumberRange.new(35, 80)
debrisEmitter.SpreadAngle = Vector2.new(180, 180)
debrisEmitter.RotSpeed = NumberRange.new(-500, 500)
debrisEmitter.Parent = center
local light = Instance.new("PointLight")
light.Color = Color3.fromRGB(160, 220, 255)
light.Range = 140
light.Brightness = 12
light.Parent = center
task.spawn(function()
for _ = 1, 260 do
center.CFrame = center.CFrame * CFrame.Angles(0, math.rad(5), 0)
task.wait(0.03)
end
vortex.Enabled = false
debrisEmitter.Enabled = false
task.wait(4)
center:Destroy()
end)
end
-- 3. Взрывы
local function triggerExplosion(pos, expType, scale)
task.spawn(function()
local count = (expType == "Nuclear" or expType == "Tornado") and 30 or 12
for _ = 1, count do
camera.CFrame = camera.CFrame * CFrame.Angles(
math.rad(math.random(-5, 5) * scale * 0.3),
math.rad(math.random(-5, 5) * scale * 0.3),
0
)
task.wait(0.02)
end
end)
local origin = Instance.new("Part")
origin.Anchored = true
origin.CanCollide = false
origin.Transparency = 1
origin.Position = pos
origin.Parent = workspace
if expType == "Tornado" then
spawnTornado(pos)
elseif expType == "Nuclear" then
local flash = Instance.new("PointLight")
flash.Color = Color3.fromRGB(255, 255, 255)
flash.Range = 250 * scale
flash.Brightness = 40
flash.Parent = origin
local ball = Instance.new("Part")
ball.Shape = Enum.PartType.Ball
ball.Size = Vector3.new(5, 5, 5)
ball.Position = pos
ball.Anchored = true
ball.CanCollide = false
ball.Material = Enum.Material.Neon
ball.Color = Color3.fromRGB(255, 240, 180)
ball.Parent = workspace
TweenService:Create(ball, TweenInfo.new(2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {
Size = Vector3.new(70 * scale, 70 * scale, 70 * scale),
Transparency = 1
}):Play()
Debris:AddItem(ball, 2.5)
local stem = Instance.new("ParticleEmitter")
stem.Color = ColorSequence.new(Color3.fromRGB(50, 45, 40), Color3.fromRGB(20, 20, 20))
stem.Size = NumberSequence.new(10 * scale, 40 * scale)
stem.Lifetime = NumberRange.new(3, 5)
stem.Speed = NumberRange.new(60 * scale, 100 * scale)
stem.EmissionDirection = Enum.NormalId.Top
stem.Parent = origin
stem:Emit(120)
local cap = Instance.new("ParticleEmitter")
cap.Color = ColorSequence.new(Color3.fromRGB(255, 140, 0), Color3.fromRGB(30, 30, 30))
cap.Size = NumberSequence.new(20 * scale, 60 * scale)
cap.Lifetime = NumberRange.new(3, 6)
cap.Speed = NumberRange.new(30 * scale, 50 * scale)
cap.SpreadAngle = Vector2.new(180, 180)
cap.Parent = origin
cap:Emit(150)
Debris:AddItem(origin, 7)
else
local fire = Instance.new("ParticleEmitter")
fire.Color = ColorSequence.new(Color3.fromRGB(255, 140, 20), Color3.fromRGB(30, 30, 30))
fire.Size = NumberSequence.new(3 * scale, 16 * scale)
fire.Lifetime = NumberRange.new(0.5, 1)
fire.Speed = NumberRange.new(30 * scale, 70 * scale)
fire.SpreadAngle = Vector2.new(180, 180)
fire.Parent = origin
fire:Emit(90 * scale)
local smoke = Instance.new("ParticleEmitter")
smoke.Color = ColorSequence.new(Color3.fromRGB(40, 40, 40))
smoke.Size = NumberSequence.new(8 * scale, 24 * scale)
smoke.Lifetime = NumberRange.new(1.5, 3.5)
smoke.Speed = NumberRange.new(15, 35 * scale)
smoke.Parent = origin
smoke:Emit(60 * scale)
local light = Instance.new("PointLight")
light.Color = Color3.fromRGB(255, 160, 30)
light.Range = 50 * scale
light.Brightness = 14
light.Parent = origin
Debris:AddItem(origin, 4)
end
end
-- 4. Сброс бомбы
local function dropBomb()
if not activeModel or not activeModel.PrimaryPart then return end
local mainPart = activeModel.PrimaryPart
local bomb = Instance.new("Part")
bomb.Size = Vector3.new(1.2, 1.2, 3.2)
bomb.CFrame = mainPart.CFrame * CFrame.new(0, -2, 0)
bomb.Color = Color3.fromRGB(45, 50, 35)
bomb.Material = Enum.Material.Metal
bomb.CanCollide = true
bomb.AssemblyLinearVelocity = mainPart.AssemblyLinearVelocity + Vector3.new(0, -25, 0)
bomb.Parent = workspace
local trail = Instance.new("ParticleEmitter")
trail.Color = ColorSequence.new(Color3.fromRGB(180, 180, 180))
trail.Size = NumberSequence.new(0.8, 2.5)
trail.Lifetime = NumberRange.new(0.5, 1.2)
trail.Rate = 70
trail.Parent = bomb
local exploded = false
bomb.Touched:Connect(function(hit)
if hit:IsDescendantOf(activeModel) then return end
if not exploded then
exploded = true
local pos = bomb.Position
bomb:Destroy()
triggerExplosion(pos, "Standard", 2.5)
end
end)
Debris:AddItem(bomb, 15)
end
-- 5. Абсолютная очистка и гарантированный сброс
local function cleanupFlight()
isFlying = false
if flightConn then
flightConn:Disconnect()
flightConn = nil
end
if activeModel then
activeModel:Destroy()
activeModel = nil
end
if activeHUD then
activeHUD:Destroy()
activeHUD = nil
end
-- Сброс мыши и камеры
UserInputService.MouseBehavior = Enum.MouseBehavior.Default
camera.CameraType = Enum.CameraType.Custom
local char = player.Character
if char then
local root = char:FindFirstChild("HumanoidRootPart")
local hum = char:FindFirstChildOfClass("Humanoid")
if root then root.Anchored = false end
if hum then
hum.WalkSpeed = 16
hum.JumpPower = 50
camera.CameraSubject = hum
end
end
end
-- Детонация в полете
local function detonateVehicle()
if not activeModel or not isFlying then return end
local pos = activeModel.PrimaryPart.Position
local expType = activeModel:GetAttribute("ExpType") or "Standard"
local scale = activeModel:GetAttribute("ExpScale") or 2
cleanupFlight()
triggerExplosion(pos, expType, scale)
end
-- 6. HUD в полете
local function showFlightHUD(vName)
local gui = Instance.new("ScreenGui")
gui.Name = "ActiveFlightHUD"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
local cross = Instance.new("Frame")
cross.Size = UDim2.new(0, 44, 0, 44)
cross.Position = UDim2.new(0.5, -22, 0.5, -22)
cross.BackgroundTransparency = 1
cross.Parent = gui
local h = Instance.new("Frame")
h.Size = UDim2.new(1, 0, 0, 2)
h.Position = UDim2.new(0, 0, 0.5, -1)
h.BackgroundColor3 = Color3.fromRGB(0, 255, 170)
h.BorderSizePixel = 0
h.Parent = cross
local v = Instance.new("Frame")
v.Size = UDim2.new(0, 2, 1, 0)
v.Position = UDim2.new(0.5, -1, 0, 0)
v.BackgroundColor3 = Color3.fromRGB(0, 255, 170)
v.BorderSizePixel = 0
v.Parent = cross
local info = Instance.new("TextLabel")
info.Size = UDim2.new(0, 400, 0, 85)
info.Position = UDim2.new(0.04, 0, 0.78, 0)
info.BackgroundTransparency = 1
info.TextColor3 = Color3.fromRGB(0, 255, 170)
info.Font = Enum.Font.Code
info.TextSize = 16
info.TextXAlignment = Enum.TextXAlignment.Left
info.Parent = gui
local dropBtn = Instance.new("TextButton")
dropBtn.Size = UDim2.new(0, 150, 0, 45)
dropBtn.Position = UDim2.new(0.85, -160, 0.74, 0)
dropBtn.BackgroundColor3 = Color3.fromRGB(30, 45, 25)
dropBtn.TextColor3 = Color3.fromRGB(160, 255, 160)
dropBtn.Font = Enum.Font.GothamBold
dropBtn.TextSize = 13
dropBtn.Text = "СБРОС БОМБЫ [F]"
dropBtn.Parent = gui
Instance.new("UICorner", dropBtn).CornerRadius = UDim.new(0, 8)
dropBtn.MouseButton1Click:Connect(dropBomb)
local detBtn = Instance.new("TextButton")
detBtn.Size = UDim2.new(0, 150, 0, 45)
detBtn.Position = UDim2.new(0.85, -160, 0.82, 0)
detBtn.BackgroundColor3 = Color3.fromRGB(75, 20, 20)
detBtn.TextColor3 = Color3.fromRGB(255, 140, 140)
detBtn.Font = Enum.Font.GothamBold
detBtn.TextSize = 13
detBtn.Text = "ДЕТОНАЦИЯ [E]"
detBtn.Parent = gui
Instance.new("UICorner", detBtn).CornerRadius = UDim.new(0, 8)
detBtn.MouseButton1Click:Connect(detonateVehicle)
gui.Parent = player:WaitForChild("PlayerGui")
return gui, info
end
-- 7. Старт полета
local function startFlight(vName)
if isFlying then return end
local char = player.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return end
cleanupFlight()
isFlying = true
local root = char.HumanoidRootPart
root.Anchored = true
local spawnCF = root.CFrame * CFrame.new(0, 6, -16)
activeModel = buildVehicle(vName, spawnCF)
local mainPart = activeModel.PrimaryPart
local camView = mainPart:WaitForChild("CamView")
local speed = activeModel:GetAttribute("Speed") or 90
local rx, ry, rz = spawnCF:ToOrientation()
camPitch = math.deg(rx)
camYaw = math.deg(ry)
local ui, telemetry = showFlightHUD(vName)
activeHUD = ui
camera.CameraType = Enum.CameraType.Scriptable
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1e7, 1e7, 1e7)
bv.Velocity = Vector3.zero
bv.Parent = mainPart
local bg = Instance.new("BodyGyro")
bg.MaxTorque = Vector3.new(1e7, 1e7, 1e7)
bg.CFrame = mainPart.CFrame
bg.Parent = mainPart
local lastPos = mainPart.Position
flightConn = RunService.RenderStepped:Connect(function()
if not isFlying or not activeModel or not activeModel.Parent then return end
UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
local delta = UserInputService:GetMouseDelta()
camYaw = camYaw - delta.X * 0.32
camPitch = math.clamp(camPitch - delta.Y * 0.32, -85, 85)
local rotCF = CFrame.Angles(0, math.rad(camYaw), 0) * CFrame.Angles(math.rad(camPitch), 0, 0)
bg.CFrame = rotCF
camera.CFrame = CFrame.new(camView.WorldPosition) * rotCF
-- Проверка столкновений
local curPos = mainPart.Position
local ray = workspace:Raycast(lastPos, curPos - lastPos)
if ray and not ray.Instance:IsDescendantOf(activeModel) and not ray.Instance:IsDescendantOf(char) then
detonateVehicle()
return
end
lastPos = curPos
-- Управление WASD + Space/Shift
local moveDir = Vector3.zero
if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir += camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir -= camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir += camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir -= camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveDir += Vector3.new(0, 1, 0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveDir -= Vector3.new(0, 1, 0) end
bv.Velocity = moveDir.Unit * speed
if moveDir.Magnitude == 0 then bv.Velocity = Vector3.zero end
telemetry.Text = string.format("ЦЕЛЬ: %s\nВЫСОТА: %d M | СКОРОСТЬ: %d KM/H", vName:upper(), math.floor(mainPart.Position.Y), math.floor(mainPart.AssemblyLinearVelocity.Magnitude))
end)
end
-- 8. Главное меню
local function createMasterMenu()
local gui = Instance.new("ScreenGui")
gui.Name = "Ser0522_ArsenalMenu"
gui.ResetOnSpawn = false
local main = Instance.new("Frame")
main.Size = UDim2.new(0, 340, 0, 420)
main.Position = UDim2.new(0.02, 0, 0.22, 0)
main.BackgroundColor3 = Color3.fromRGB(14, 16, 20)
main.BorderSizePixel = 0
main.Parent = gui
Instance.new("UICorner", main).CornerRadius = UDim.new(0, 12)
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(0, 255, 170)
stroke.Thickness = 1.8
stroke.Parent = main
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 42)
title.BackgroundTransparency = 1
title.Text = "TACTICAL ARSENAL V8"
title.TextColor3 = Color3.fromRGB(0, 255, 170)
title.Font = Enum.Font.GothamBold
title.TextSize = 14
title.Parent = main
local tabHolder = Instance.new("Frame")
tabHolder.Size = UDim2.new(0.92, 0, 0, 34)
tabHolder.Position = UDim2.new(0.04, 0, 0.1, 0)
tabHolder.BackgroundColor3 = Color3.fromRGB(22, 25, 32)
tabHolder.BorderSizePixel = 0
tabHolder.Parent = main
Instance.new("UICorner", tabHolder).CornerRadius = UDim.new(0, 8)
local pages = Instance.new("Frame")
pages.Size = UDim2.new(0.92, 0, 0.76, 0)
pages.Position = UDim2.new(0.04, 0, 0.2, 0)
pages.BackgroundTransparency = 1
pages.Parent = main
local dronesPage = Instance.new("ScrollingFrame")
dronesPage.Size = UDim2.new(1, 0, 1, 0)
dronesPage.BackgroundTransparency = 1
dronesPage.ScrollBarThickness = 3
dronesPage.CanvasSize = UDim2.new(0, 0, 0, 270)
dronesPage.Parent = pages
Instance.new("UIListLayout", dronesPage).Padding = UDim.new(0, 6)
local missilesPage = Instance.new("ScrollingFrame")
missilesPage.Size = UDim2.new(1, 0, 1, 0)
missilesPage.BackgroundTransparency = 1
missilesPage.ScrollBarThickness = 3
missilesPage.CanvasSize = UDim2.new(0, 0, 0, 320)
missilesPage.Visible = false
missilesPage.Parent = pages
Instance.new("UIListLayout", missilesPage).Padding = UDim.new(0, 6)
local creditsPage = Instance.new("Frame")
creditsPage.Size = UDim2.new(1, 0, 1, 0)
creditsPage.BackgroundTransparency = 1
creditsPage.Visible = false
creditsPage.Parent = pages
local credCard = Instance.new("Frame")
credCard.Size = UDim2.new(1, 0, 1, 0)
credCard.BackgroundColor3 = Color3.fromRGB(20, 24, 30)
credCard.BorderSizePixel = 0
credCard.Parent = creditsPage
Instance.new("UICorner", credCard).CornerRadius = UDim.new(0, 10)
local credText = Instance.new("TextLabel")
credText.Size = UDim2.new(0.9, 0, 0.9, 0)
credText.Position = UDim2.new(0.05, 0, 0.05, 0)
credText.BackgroundTransparency = 1
credText.TextColor3 = Color3.fromRGB(230, 230, 230)
credText.Font = Enum.Font.GothamMedium
credText.TextSize = 13
credText.TextXAlignment = Enum.TextXAlignment.Left
credText.TextYAlignment = Enum.TextYAlignment.Top
credText.Text = "★ АВТОРСТВО & РАЗРАБОТКА ★\n\nВладелец сборки:\n▸ ser0522\n\nАрсенал:\n• 5+ Видов Шахедов\n• Катаклизм: Торнадо & РСЗО\n• Ядерные ракеты Сармат\n• Сброс авиабомб (F)\n• FPV наведение\n\nВерсия: 8.0 Full Fix"
credText.Parent = credCard
local function addButtons(list, parentPage)
for _, name in ipairs(list) do
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, -6, 0, 40)
btn.BackgroundColor3 = Color3.fromRGB(24, 28, 36)
btn.TextColor3 = Color3.fromRGB(240, 240, 240)
btn.Font = Enum.Font.GothamMedium
btn.TextSize = 12
btn.Text = name
btn.Parent = parentPage
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 6)
btn.MouseButton1Click:Connect(function()
startFlight(name)
end)
end
end
addButtons({
"Shahed-136 Classic",
"Shahed-238 Jet Black",
"Shahed-Stealth Ghost",
"Shahed-Bomber Heavy",
"Shahed-149 Goliath"
}, dronesPage)
addButtons({
"Катаклизм: Торнадо",
"РСЗО Торнадо-С",
"Крылатая Ракета X-101",
"Баллистический Искандер",
"Ядерный Сармат РС-28",
"Тактический Ядерный Удар"
}, missilesPage)
local function createTabBtn(name, targetPage, posX)
local tBtn = Instance.new("TextButton")
tBtn.Size = UDim2.new(0.333, 0, 1, 0)
tBtn.Position = UDim2.new(posX, 0, 0, 0)
tBtn.BackgroundTransparency = 1
tBtn.Text = name
tBtn.TextColor3 = Color3.fromRGB(150, 160, 170)
tBtn.Font = Enum.Font.GothamBold
tBtn.TextSize = 11
tBtn.Parent = tabHolder
tBtn.MouseButton1Click:Connect(function()
dronesPage.Visible = false
missilesPage.Visible = false
creditsPage.Visible = false
targetPage.Visible = true
for _, c in ipairs(tabHolder:GetChildren()) do
if c:IsA("TextButton") then
c.TextColor3 = Color3.fromRGB(150, 160, 170)
end
end
tBtn.TextColor3 = Color3.fromRGB(0, 255, 170)
end)
return tBtn
end
local t1 = createTabBtn("ДРОНЫ", dronesPage, 0)
local t2 = createTabBtn("РАКЕТЫ", missilesPage, 0.333)
local t3 = createTabBtn("КРЕДИТЫ", creditsPage, 0.666)
t1.TextColor3 = Color3.fromRGB(0, 255, 170)
gui.Parent = player:WaitForChild("PlayerGui")
end
-- 9. Бинды клавиатуры
UserInputService.InputBegan:Connect(function(input, processed)
if processed then return end
if input.KeyCode == Enum.KeyCode.E and isFlying then
detonateVehicle()
elseif input.KeyCode == Enum.KeyCode.F and isFlying then
dropBomb()
end
end)
createMasterMenu()