--[[ HarukaHub V20 Magic - 統合管理スクリプト 説明: スピード、ジャンプ、フライ、Noclip、ESP、および動画のような「魔法陣」機能。 ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Lighting = game:GetService("Lighting") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera -- UIのリセット処理(重複防止) local uiName = "HarukaHub_V20_Magic" local existingUI = game:GetService("CoreGui"):FindFirstChild(uiName) or LocalPlayer.PlayerGui:FindFirstChild(uiName) if existingUI then existingUI:Destroy() end -- グローバル設定 local _G = { SpeedLevel = 16, JumpLevel = 50, Fly = false, FlySpeed = 60, Noclip = false, Esp = false, MenuOpen = true, -- 魔法陣設定 MagicActive = false, MagicMode = "None", -- "None", "Circle", "Spiral", "Chaos" MagicRadius = 10, MagicSpeed = 5, MagicItems = {} -- 制御下のオブジェクト } -- --- UI構築 --- local sg = Instance.new("ScreenGui") sg.Name = uiName sg.ResetOnSpawn = false sg.Parent = LocalPlayer:WaitForChild("PlayerGui") -- メインフレーム local main = Instance.new("Frame") main.Name = "MainFrame" main.Size = UDim2.new(0, 200, 0, 450) main.Position = UDim2.new(1, -220, 0.5, -225) main.BackgroundColor3 = Color3.fromRGB(15, 15, 35) main.BorderSizePixel = 0 main.Active = true main.Draggable = true main.Parent = sg local corner = Instance.new("UICorner", main) corner.CornerRadius = UDim.new(0, 10) local stroke = Instance.new("UIStroke", main) stroke.Color = Color3.fromRGB(100, 100, 255) stroke.Thickness = 2 -- タイトル local title = Instance.new("TextLabel", main) title.Size = UDim2.new(1, 0, 0, 30) title.Text = "HarukaHub V20 Magic" title.TextColor3 = Color3.new(1, 1, 1) title.BackgroundTransparency = 1 title.Font = Enum.Font.GothamBold title.TextSize = 14 -- コンテナ(スクロール) local container = Instance.new("ScrollingFrame", main) container.Size = UDim2.new(1, -10, 1, -40) container.Position = UDim2.new(0, 5, 0, 35) container.BackgroundTransparency = 1 container.ScrollBarThickness = 2 container.CanvasSize = UDim2.new(0, 0, 0, 650) local layout = Instance.new("UIListLayout", container) layout.Padding = UDim.new(0, 5) layout.HorizontalAlignment = Enum.HorizontalAlignment.Center -- トグルボタン(最小化) local tgl = Instance.new("TextButton", sg) tgl.Size = UDim2.new(0, 40, 0, 40) tgl.Position = UDim2.new(1, -50, 0.1, 0) tgl.BackgroundColor3 = Color3.fromRGB(30, 30, 80) tgl.Text = "-" tgl.TextColor3 = Color3.new(1, 1, 1) tgl.Font = Enum.Font.GothamBold tgl.TextSize = 20 Instance.new("UICorner", tgl).CornerRadius = UDim.new(1, 0) tgl.MouseButton1Click:Connect(function() _G.MenuOpen = not _G.MenuOpen main.Visible = _G.MenuOpen tgl.Text = _G.MenuOpen and "-" or "+" end) -- ボタン作成関数 local function addBtn(txt, callback) local b = Instance.new("TextButton", container) b.Size = UDim2.new(1, -10, 0, 35) b.BackgroundColor3 = Color3.fromRGB(45, 45, 75) b.Text = txt b.TextColor3 = Color3.new(1, 1, 1) b.Font = Enum.Font.GothamBold b.TextSize = 11 Instance.new("UICorner", b).CornerRadius = UDim.new(0, 6) b.MouseButton1Click:Connect(function() callback(b) end) return b end -- --- 機能実装 --- -- セクション: プレイヤー local sectionP = Instance.new("TextLabel", container) sectionP.Size = UDim2.new(1, 0, 0, 20) sectionP.BackgroundTransparency = 1 sectionP.Text = "-- Player --" sectionP.TextColor3 = Color3.fromRGB(150, 150, 255) sectionP.Font = Enum.Font.GothamBold sectionP.TextSize = 10 addBtn("スピード: UP", function(b) _G.SpeedLevel = _G.SpeedLevel + 20 if _G.SpeedLevel > 200 then _G.SpeedLevel = 16 end b.Text = "スピード: " .. tostring(_G.SpeedLevel) end) addBtn("ジャンプ: UP", function(b) _G.JumpLevel = _G.JumpLevel + 20 if _G.JumpLevel > 300 then _G.JumpLevel = 50 end b.Text = "ジャンプ: " .. tostring(_G.JumpLevel) end) addBtn("飛行: OFF", function(b) _G.Fly = not _G.Fly b.Text = _G.Fly and "飛行: ON" or "飛行: OFF" b.BackgroundColor3 = _G.Fly and Color3.fromRGB(0, 150, 0) or Color3.fromRGB(45, 45, 75) end) -- セクション: 魔法陣 (Magic) local sectionM = Instance.new("TextLabel", container) sectionM.Size = UDim2.new(1, 0, 0, 20) sectionM.BackgroundTransparency = 1 sectionM.Text = "-- Magic (Video Style) --" sectionM.TextColor3 = Color3.fromRGB(255, 100, 100) sectionM.Font = Enum.Font.GothamBold sectionM.TextSize = 10 addBtn("魔法陣活性化: OFF", function(b) _G.MagicActive = not _G.MagicActive b.Text = _G.MagicActive and "魔法陣活性化: ON" or "魔法陣活性化: OFF" b.BackgroundColor3 = _G.MagicActive and Color3.fromRGB(150, 0, 0) or Color3.fromRGB(45, 45, 75) end) addBtn("モード切替: " .. _G.MagicMode, function(b) if _G.MagicMode == "None" then _G.MagicMode = "Circle" elseif _G.MagicMode == "Circle" then _G.MagicMode = "Spiral" elseif _G.MagicMode == "Spiral" then _G.MagicMode = "Chaos" else _G.MagicMode = "None" end b.Text = "モード切替: " .. _G.MagicMode end) addBtn("半径: " .. _G.MagicRadius, function(b) _G.MagicRadius = _G.MagicRadius + 5 if _G.MagicRadius > 50 then _G.MagicRadius = 5 end b.Text = "半径: " .. _G.MagicRadius end) -- --- ループ & ロジック --- -- 物理制御(ネットワーク所有権が取れるものを探す) local function getNearbyParts() local parts = {} for _, obj in pairs(workspace:GetDescendants()) do if obj:IsA("BasePart") and not obj:IsDescendantOf(LocalPlayer.Character) and not obj.Anchored then -- 自分の近くの動かせるパーツを取得 local dist = (obj.Position - LocalPlayer.Character.HumanoidRootPart.Position).Magnitude if dist < 100 then table.insert(parts, obj) end end end return parts end RunService.Heartbeat:Connect(function() local char = LocalPlayer.Character if not char or not char:FindFirstChild("HumanoidRootPart") then return end local hrp = char.HumanoidRootPart -- スピード/ジャンプ適用 local hum = char:FindFirstChildOfClass("Humanoid") if hum then hum.WalkSpeed = _G.SpeedLevel hum.JumpPower = _G.JumpLevel end -- 魔法陣ロジック if _G.MagicActive then local parts = getNearbyParts() local time = tick() * _G.MagicSpeed for i, part in pairs(parts) do local angle = (i / #parts) * math.pi * 2 + time local targetPos = hrp.Position if _G.MagicMode == "Circle" then -- 平面円形 targetPos = hrp.Position + Vector3.new(math.cos(angle) * _G.MagicRadius, 0, math.sin(angle) * _G.MagicRadius) elseif _G.MagicMode == "Spiral" then -- 螺旋 targetPos = hrp.Position + Vector3.new(math.cos(angle) * _G.MagicRadius, math.sin(time + i) * 5, math.sin(angle) * _G.MagicRadius) elseif _G.MagicMode == "Chaos" then -- 動画のようなカオス配置 targetPos = hrp.Position + Vector3.new(math.cos(angle * i) * _G.MagicRadius, math.tan(time) * 2, math.sin(angle) * _G.MagicRadius) end -- オブジェクトを移動(速度を直接書き換えることでテレポートを防ぐ) if part.ReceiveAge == 0 or true then -- ネットワーク所有権の擬似的な主張 part.Velocity = (targetPos - part.Position) * 15 part.CFrame = CFrame.new(part.Position, hrp.Position) -- 常に自分を向く end end end end) -- 飛行ロジック local bodyVel, bodyGyro RunService.RenderStepped:Connect(function() local char = LocalPlayer.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if _G.Fly and hrp then if not hrp:FindFirstChild("FlyVel") then bodyVel = Instance.new("BodyVelocity", hrp) bodyVel.Name = "FlyVel" bodyVel.MaxForce = Vector3.new(1,1,1) * 10^6 bodyGyro = Instance.new("BodyGyro", hrp) bodyGyro.Name = "FlyGyro" bodyGyro.MaxTorque = Vector3.new(1,1,1) * 10^6 end bodyGyro.CFrame = Camera.CFrame local moveDir = Vector3.new(0,0,0) if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveDir = moveDir + Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveDir = moveDir - Camera.CFrame.LookVector end if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveDir = moveDir - Camera.CFrame.RightVector end if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveDir = moveDir + Camera.CFrame.RightVector end bodyVel.Velocity = moveDir * _G.FlySpeed else if hrp then if hrp:FindFirstChild("FlyVel") then hrp.FlyVel:Destroy() end if hrp:FindFirstChild("FlyGyro") then hrp.FlyGyro:Destroy() end end end end) print("HarukaHub V20 Magic Mode Loaded!")