-- ================================================================ -- 清水GB脚本 v6.1 圆形按钮 + 分类面板 UI -- ================================================================ local StarterGui = game:GetService("StarterGui") StarterGui:SetCore("SendNotification", { Title = "鲨鱼清水GB脚本v6.1", Text = "加载完成", Icon = "rbxassetid://14250466898" }) local Players = game:GetService("Players") local player = Players.LocalPlayer local UIS = game:GetService("UserInputService") local RS = game:GetService("RunService") local TW = game:GetService("TweenService") local AC = { ActiveButtons = {}, DefaultAnimations = {}, Character = nil, Humanoid = nil, Animator = nil, Gui = nil, IsClosed = false, IsInitialized = false, CannonHighlightEnabled = false, CannonHighlights = {}, } -- ==================== 主动画配置 ==================== AC.MainButtonConfigs = { {Name="远古ZAPPER动画",IdleId="12333488814",WalkId="12333490576",Priority=Enum.AnimationPriority.Action2, Callback=function(s)local d=AC.ActiveButtons["远古ZAPPER动画"] if s then if not d.Tracks.Effect then local a=Instance.new("Animation")a.AnimationId="rbxassetid://12638401607" d.Tracks.Effect=AC.Animator:LoadAnimation(a)d.Tracks.Effect.Priority=Enum.AnimationPriority.Action3 end d.Tracks.Effect:Play() else if d.Tracks.Effect and d.Tracks.Effect.IsPlaying then d.Tracks.Effect:Stop() end end end}, {Name="超人",IdleId="123279433658792",WalkId="123279433658792",Priority=Enum.AnimationPriority.Action3, Callback=function(s)AC.Humanoid.WalkSpeed=s and 50 or 16 end}, {Name="ZAPPER动画",IdleId="14498563473",WalkId="14498289874",Priority=Enum.AnimationPriority.Action3,Callback=function()end}, {Name="拳击手",IdleId="124381258015151",WalkId="127477273497271",Priority=Enum.AnimationPriority.Action3, Callback=function(state) if not AC.ActiveButtons["糖果叔叔(无头骑士)"] then AC.ActiveButtons["糖果叔叔(无头骑士)"]={Music=nil,IsPlaying=false} end local c=AC.ActiveButtons["糖果叔叔(无头骑士)"] if state then c.IsPlaying=true AC.Humanoid.WalkSpeed=17 c.IsActive,c.CanClick,c.CurrentTrack=true,true,nil c.TouchConnection=UIS.InputBegan:Connect(function(input,gp) if c.IsActive and not gp and c.CanClick and (input.UserInputType==Enum.UserInputType.Touch or input.UserInputType==Enum.UserInputType.MouseButton1) then c.CanClick=false local id=math.random(1,2)==1 and "rbxassetid://100609705099226" or "rbxassetid://137400696654354" local a=Instance.new("Animation")a.AnimationId=id c.CurrentTrack=AC.Animator:LoadAnimation(a)c.CurrentTrack.Priority=Enum.AnimationPriority.Action4 c.CurrentTrack:Play() c.CurrentTrack.Stopped:Connect(function()a:Destroy()c.CurrentTrack=nil c.CanClick=true end) end end) c.DeathConnection=AC.Humanoid.Died:Connect(function() if c.CurrentTrack then c.CurrentTrack:Stop() end if c.Music then c.Music:Stop() end end) else if c.Music then c.Music:Stop()c.Music:Destroy()c.Music=nil c.IsPlaying=false end c.IsActive=false AC.Humanoid.WalkSpeed=16 if c.TouchConnection then c.TouchConnection:Disconnect()c.TouchConnection=nil end if c.DeathConnection then c.DeathConnection:Disconnect()c.DeathConnection=nil end if c.CurrentTrack then c.CurrentTrack:Stop()c.CurrentTrack=nil end end end}, {Name="德古拉",IdleId="14970033333",WalkId="15486477524",Priority=Enum.AnimationPriority.Action3, Callback=function(state) if not AC.ActiveButtons["糖果叔叔(无头骑士)"] then AC.ActiveButtons["糖果叔叔(无头骑士)"]={Music=nil,IsPlaying=false} end local c=AC.ActiveButtons["糖果叔叔(无头骑士)"] if state then if not c.Music then c.Music=Instance.new("Sound")c.Music.SoundId="rbxassetid://0" c.Music.Looped=true c.Music.Volume=5 c.Music.Parent=AC.Character:FindFirstChild("Head") or AC.Character end c.Music:Play()c.IsPlaying=true AC.Humanoid.WalkSpeed=16 c.IsActive,c.CanClick,c.CurrentTrack=true,true,nil c.TouchConnection=UIS.InputBegan:Connect(function(input,gp) if c.IsActive and not gp and c.CanClick and (input.UserInputType==Enum.UserInputType.Touch or input.UserInputType==Enum.UserInputType.MouseButton1) then c.CanClick=false local id=math.random(1,2)==1 and "rbxassetid://86633946320798" or "rbxassetid://89397834398238" local a=Instance.new("Animation")a.AnimationId=id c.CurrentTrack=AC.Animator:LoadAnimation(a)c.CurrentTrack.Priority=Enum.AnimationPriority.Action4 c.CurrentTrack:Play() c.CurrentTrack.Stopped:Connect(function()a:Destroy()c.CurrentTrack=nil c.CanClick=true end) end end) c.DeathConnection=AC.Humanoid.Died:Connect(function() if c.CurrentTrack then c.CurrentTrack:Stop() end if c.Music then c.Music:Stop() end end) else if c.Music then c.Music:Stop()c.Music:Destroy()c.Music=nil c.IsPlaying=false end c.IsActive=false AC.Humanoid.WalkSpeed=16 if c.TouchConnection then c.TouchConnection:Disconnect()c.TouchConnection=nil end if c.DeathConnection then c.DeathConnection:Disconnect()c.DeathConnection=nil end if c.CurrentTrack then c.CurrentTrack:Stop()c.CurrentTrack=nil end end end}, {Name="孤勇者",IdleId="111210841378590",WalkId="139186204185685",Priority=Enum.AnimationPriority.Action3, Callback=function(s)AC.Humanoid.WalkSpeed=s and 5 or 16 end}, {Name="ZAPPER特效",PlayOnceId="14499470197",Priority=Enum.AnimationPriority.Action4,Callback=function()end}, {Name="装死",PlayOnceId="89945348540089",Priority=Enum.AnimationPriority.Action4,Callback=function()end}, {Name="山伯乐吃播",PlayOnceId="18339432914",StopAfter=10,Priority=Enum.AnimationPriority.Action4,Callback=function()end}, {Name="是多绝望的人能跳出这个舞步",PlayOnceId="14860627011",StopAfter=20,Priority=Enum.AnimationPriority.Action4,Callback=function()end}, {Name="转枪",PlayOnceId="15827239870",Priority=Enum.AnimationPriority.Action3, Callback=function(s)if s then local d=AC.ActiveButtons["转枪"] if d and d.Tracks.PlayOnce then task.spawn(function() while d and d.IsActive do d.Tracks.PlayOnce:Play()task.wait(0.73) end end)end end end}, {Name="老大肘击",PlayOnceId="15345113937",Priority=Enum.AnimationPriority.Action4, Callback=function(s)if s then local d=AC.ActiveButtons["老大肘击"] if d and d.Tracks.PlayOnce then task.spawn(function() while d and d.IsActive do d.Tracks.PlayOnce:Play()task.wait(0.6) end end)end end end}, {Name="真正的光环(超快挥刀)",PlayOnceId="12591938344",Priority=Enum.AnimationPriority.Action4, Callback=function(s)if s then local d=AC.ActiveButtons["真正的光环(超快挥刀)"] if d and d.Tracks.PlayOnce then local char=player.Character or player.CharacterAdded:Wait() local hum=char:WaitForChild("Humanoid")local root=char:WaitForChild("HumanoidRootPart") local rotating=true task.spawn(function()while d and d.IsActive do d.Tracks.PlayOnce:Play()task.wait(0.1) end rotating=false end) task.spawn(function()while rotating and hum and root do local dt=task.wait()root.CFrame=root.CFrame*CFrame.Angles(0,math.rad(1440*dt),0)end end) end end end}, {Name="红眼",IdleId="12581784105",WalkId="12581785298",Priority=Enum.AnimationPriority.Action3, Callback=function(s)AC.Humanoid.WalkSpeed=s and 50 or 16 end}, {Name="山伯乐动画",IdleId="12333488814",WalkId="14463730540",Priority=Enum.AnimationPriority.Action3,Callback=function()end}, {Name="提灯人",IdleId="14678879479",WalkId="14678880308",Priority=Enum.AnimationPriority.Action3,Callback=function()end}, {Name="无头士兵(美国)",IdleId="107080941320600",WalkId="74764025513892",Priority=Enum.AnimationPriority.Action3,Callback=function()end}, {Name="胸甲僵尸",IdleId="87579228279296",WalkId="102081698785465",Priority=Enum.AnimationPriority.Action3,Callback=function()end}, {Name="骑兵动画(刺)",Callback=function()end}, {Name="远古默认动画",IdleId="180435571",WalkId="180426354",Priority=Enum.AnimationPriority.Idle,Callback=function()end}, {Name="老山伯乐动画",IdleId="12333488814",WalkId="12333490857",Priority=Enum.AnimationPriority.Idle,Callback=function()end}, {Name="滑膛枪冲锋",IdleId="14292935158",WalkId="14292937831",Priority=Enum.AnimationPriority.Action3, Callback=function(s)AC.Humanoid.WalkSpeed=s and 24 or 16 end}, {Name="重剑冲锋",IdleId="14284611111",WalkId="17406602570",Priority=Enum.AnimationPriority.Action3, Callback=function(s)AC.Humanoid.WalkSpeed=s and 24 or 16 end}, {Name="冲锋",IdleId="14284611111",WalkId="14284623849",Priority=Enum.AnimationPriority.Idle, Callback=function(s)AC.Humanoid.WalkSpeed=s and 24 or 16 end}, {Name="假残血",IdleId="14970034680",WalkId="15530089342",Priority=Enum.AnimationPriority.Idle,Callback=function()end}, {Name="自爆",IdleId="13211198049",WalkId="13211207597",Priority=Enum.AnimationPriority.Action3,Callback=function()end}, {Name="爬尸",IdleId="13726632691",WalkId="13726634549",SitId="130515356351734",Priority=Enum.AnimationPriority.Action3,Callback=function()end}, {Name="糖果叔叔(无头骑士)",IdleId="13936362530",WalkId="13936362530",Priority=Enum.AnimationPriority.Action3, Callback=function(state) if not AC.ActiveButtons["糖果叔叔(无头骑士)"] then AC.ActiveButtons["糖果叔叔(无头骑士)"]={Music=nil,IsPlaying=false} end local c=AC.ActiveButtons["糖果叔叔(无头骑士)"] if state then if not c.Music then c.Music=Instance.new("Sound")c.Music.SoundId="rbxassetid://1836635087" c.Music.Looped=true c.Music.Volume=5 c.Music.Parent=AC.Character:FindFirstChild("Head") or AC.Character end c.Music:Play()c.IsPlaying=true AC.Humanoid.WalkSpeed=70 c.IsActive,c.CanClick,c.CurrentTrack=true,true,nil c.TouchConnection=UIS.InputBegan:Connect(function(input,gp) if c.IsActive and not gp and c.CanClick and (input.UserInputType==Enum.UserInputType.Touch or input.UserInputType==Enum.UserInputType.MouseButton1) then c.CanClick=false local id=math.random(1,2)==1 and "rbxassetid://13936377814" or "rbxassetid://13936368936" local a=Instance.new("Animation")a.AnimationId=id c.CurrentTrack=AC.Animator:LoadAnimation(a)c.CurrentTrack.Priority=Enum.AnimationPriority.Action4 c.CurrentTrack:Play() c.CurrentTrack.Stopped:Connect(function()a:Destroy()c.CurrentTrack=nil c.CanClick=true end) end end) c.DeathConnection=AC.Humanoid.Died:Connect(function() if c.CurrentTrack then c.CurrentTrack:Stop() end if c.Music then c.Music:Stop() end end) else if c.Music then c.Music:Stop()c.Music:Destroy()c.Music=nil c.IsPlaying=false end c.IsActive=false AC.Humanoid.WalkSpeed=16 if c.TouchConnection then c.TouchConnection:Disconnect()c.TouchConnection=nil end if c.DeathConnection then c.DeathConnection:Disconnect()c.DeathConnection=nil end if c.CurrentTrack then c.CurrentTrack:Stop()c.CurrentTrack=nil end end end}, } -- ==================== 特别动画配置 ==================== AC.SideButtonConfigs = { {Name="假刺刀",IdleId="12333492041",WalkId="12333492041",Priority=Enum.AnimationPriority.Action3, Callback=function(state) if not AC.ActiveButtons["假刺刀"] then AC.ActiveButtons["假刺刀"]={Music=nil,IsPlaying=false} end local c=AC.ActiveButtons["假刺刀"] if state then if not c.Music then c.Music=Instance.new("Sound")c.Music.SoundId="rbxassetid://0" c.Music.Looped=true c.Music.Volume=5 c.Music.Parent=AC.Character:FindFirstChild("Head") or AC.Character end c.Music:Play()c.IsPlaying=true AC.Humanoid.WalkSpeed=17 c.IsActive,c.CanClick,c.CurrentTrack=true,true,nil c.TouchConnection=UIS.InputBegan:Connect(function(input,gp) if c.IsActive and not gp and c.CanClick and (input.UserInputType==Enum.UserInputType.Touch or input.UserInputType==Enum.UserInputType.MouseButton1) then c.CanClick=false local id=math.random(1,2)==1 and "rbxassetid://12333491302" or "rbxassetid://12807882732" local a=Instance.new("Animation")a.AnimationId=id c.CurrentTrack=AC.Animator:LoadAnimation(a)c.CurrentTrack.Priority=Enum.AnimationPriority.Action4 c.CurrentTrack:Play() c.CurrentTrack.Stopped:Connect(function()a:Destroy()c.CurrentTrack=nil c.CanClick=true end) end end) c.DeathConnection=AC.Humanoid.Died:Connect(function() if c.CurrentTrack then c.CurrentTrack:Stop() end if c.Music then c.Music:Stop() end end) else if c.Music then c.Music:Stop()c.Music:Destroy()c.Music=nil c.IsPlaying=false end c.IsActive=false AC.Humanoid.WalkSpeed=16 if c.TouchConnection then c.TouchConnection:Disconnect()c.TouchConnection=nil end if c.DeathConnection then c.DeathConnection:Disconnect()c.DeathConnection=nil end if c.CurrentTrack then c.CurrentTrack:Stop()c.CurrentTrack=nil end end end}, {Name="拿破仑背手",IdleId="103557875332543",WalkId="103557875332543",Priority=Enum.AnimationPriority.Action4}, {Name="寒冷",IdleId="16863977222",WalkId="16876434500",Priority=Enum.AnimationPriority.Action3,Callback=function()end}, {Name="吃神秘的东西",PlayOnceId="16863982325",Priority=Enum.AnimationPriority.Action4, Callback=function(state)local d=AC.ActiveButtons["吃神秘的东西"] if state then if d and d.Tracks.PlayOnce then d.LoopTask=task.spawn(function() while d and d.IsActive do d.Tracks.PlayOnce:Play()d.Tracks.PlayOnce:AdjustSpeed(0) d.Tracks.PlayOnce.TimePosition=1.8 d.Tracks.PlayOnce:AdjustSpeed(1)task.wait(0.1) end end)end else if d and d.LoopTask then task.cancel(d.LoopTask)d.LoopTask=nil if d.Tracks.PlayOnce then d.Tracks.PlayOnce:Stop() end end end end}, {Name="胸甲僵尸动画2",IdleId="82800474630427",WalkId="118210337289087",Priority=Enum.AnimationPriority.Action3,Callback=function()end}, {Name="飞",PlayOnceId="110087359963835",Priority=Enum.AnimationPriority.Action4, Callback=function(state)local d=AC.ActiveButtons["飞"] if state then if d and d.Tracks.PlayOnce then if d.LoopTask then task.cancel(d.LoopTask) end d.LoopTask=task.spawn(function()while d and d.IsActive do d.Tracks.PlayOnce:Play()d.Tracks.PlayOnce.Looped=true task.wait(d.Tracks.PlayOnce.Length)end end) end else if d then if d.LoopTask then task.cancel(d.LoopTask) end if d.Tracks.PlayOnce then d.Tracks.PlayOnce:Stop() end end end end}, {Name="老不死的布吕歇尔",Priority=Enum.AnimationPriority.Action4, Callback=function(state)local d=AC.ActiveButtons["老不死的布吕歇尔"] if state then for _,t in pairs(AC.Humanoid:GetPlayingAnimationTracks()) do t:Stop() end local ids={"15603033178","16168689655","15680560478","15688743558","15637342030"} local tr={}for i,id in ipairs(ids) do local a=Instance.new("Animation")a.AnimationId="rbxassetid://"..id tr[i]=AC.Animator:LoadAnimation(a)tr[i].Priority=Enum.AnimationPriority.Action4 end d.Tracks=tr task.spawn(function() if not d.IsActive then return end tr[1]:Play()tr[1].Stopped:Wait() if not d.IsActive then return end tr[2]:Play()tr[2].Stopped:Wait() if not d.IsActive then return end tr[3]:Play()task.wait(3)if tr[3].IsPlaying then tr[3]:Stop() end if not d.IsActive then return end tr[4]:Play()tr[4].Stopped:Wait() if not d.IsActive then return end tr[3]:Play()task.wait(3)if tr[3].IsPlaying then tr[3]:Stop() end if not d.IsActive then return end tr[5]:Play()tr[5].Stopped:Wait() if d.IsActive then d.IsActive=false if d.Instance then d.Instance.BackgroundColor3=Color3.fromRGB(55,55,66) end AC:RestoreDefaults() end end) else if d then for _,t in pairs(d.Tracks or {}) do if t then t:Stop() end end AC:RestoreDefaults() end end end}, {Name="威灵顿",Priority=Enum.AnimationPriority.Action4, Callback=function(state)local d=AC.ActiveButtons["威灵顿"] if state then for _,t in pairs(AC.Humanoid:GetPlayingAnimationTracks()) do t:Stop() end local ids={"90133636590921","88094888547281","85843915546775","120593550434546"} local tr={}for i,id in ipairs(ids) do local a=Instance.new("Animation")a.AnimationId="rbxassetid://"..id tr[i]=AC.Animator:LoadAnimation(a)tr[i].Priority=Enum.AnimationPriority.Action3 end d.Tracks=tr task.spawn(function() if not d.IsActive then return end tr[1]:Play()tr[1].Stopped:Wait() if not d.IsActive then return end tr[2]:Play()tr[2].Stopped:Wait() if not d.IsActive then return end tr[3]:Play()task.wait(15)if tr[3].IsPlaying then tr[3]:Stop() end if not d.IsActive then return end tr[4]:Play()tr[4].Stopped:Wait() if d.IsActive then d.IsActive=false if d.Instance then d.Instance.BackgroundColor3=Color3.fromRGB(55,55,66) end AC:RestoreDefaults() end end) else if d then for _,t in pairs(d.Tracks or {}) do if t then t:Stop() end end AC:RestoreDefaults() end end end}, {Name="副官",Priority=Enum.AnimationPriority.Action4, Callback=function(state)local d=AC.ActiveButtons["副官"] if state then for _,t in pairs(AC.Humanoid:GetPlayingAnimationTracks()) do t:Stop() end local ids={"15603037116","15622136729","15688841016","15637317651"} local tr={}for i,id in ipairs(ids) do local a=Instance.new("Animation")a.AnimationId="rbxassetid://"..id tr[i]=AC.Animator:LoadAnimation(a)tr[i].Priority=Enum.AnimationPriority.Action4 end d.Tracks=tr task.spawn(function() if not d.IsActive then return end tr[1]:Play()tr[1].Stopped:Wait() if not d.IsActive then return end tr[2]:Play()tr[2].Stopped:Wait() if not d.IsActive then return end tr[3]:Play()task.wait(9)if tr[3].IsPlaying then tr[3]:Stop() end if not d.IsActive then return end tr[4]:Play()tr[4].Stopped:Wait() if d.IsActive then d.IsActive=false if d.Instance then d.Instance.BackgroundColor3=Color3.fromRGB(55,55,66) end AC:RestoreDefaults() end end) else if d then for _,t in pairs(d.Tracks or {}) do if t then t:Stop() end end AC:RestoreDefaults() end end end}, {Name="耐咬王Barry",Priority=Enum.AnimationPriority.Action4, Callback=function(state)local d=AC.ActiveButtons["耐咬王Barry"] if state then for _,t in pairs(AC.Humanoid:GetPlayingAnimationTracks()) do t:Stop() end local ids={"14284371664","14284387207","14284382730","14304936421"} local tr={}for i,id in ipairs(ids) do local a=Instance.new("Animation")a.AnimationId="rbxassetid://"..id tr[i]=AC.Animator:LoadAnimation(a)tr[i].Priority=Enum.AnimationPriority.Action4 end d.Tracks=tr task.spawn(function() if not d.IsActive then return end tr[1]:Play()tr[1].Stopped:Wait() if not d.IsActive then return end tr[2]:Play() local t=0 while t<10 and d.IsActive do task.wait(0.1)t=t+0.1 end if tr[2].IsPlaying then tr[2]:Stop() end if not d.IsActive then return end tr[3]:Play()tr[3].Stopped:Wait() if not d.IsActive then return end tr[2]:Play(0,1,-1) t=0 while t<3 and d.IsActive do task.wait(0.1)t=t+0.1 end if tr[2].IsPlaying then tr[2]:Stop() end if not d.IsActive then return end tr[4]:Play()tr[4].Stopped:Wait() if d.IsActive then d.IsActive=false if d.Instance then d.Instance.BackgroundColor3=Color3.fromRGB(55,55,66) end AC:RestoreDefaults() end end) else if d then for _,t in pairs(d.Tracks or {}) do if t then t:Stop() end end AC:RestoreDefaults() end end end}, {Name="克劳福德",PlayOnceId="77859967130018",Priority=Enum.AnimationPriority.Action4,Callback=function()end}, {Name="十字架使用",PlayOnceId="15210536563",Priority=Enum.AnimationPriority.Action4,Callback=function()end}, {Name="被胸甲刺伤", Callback=function(state) if state then for _,t in pairs(AC.Humanoid:GetPlayingAnimationTracks()) do t:Stop() end local a1=Instance.new("Animation")a1.AnimationId="rbxassetid://121955221153387" local t1=AC.Animator:LoadAnimation(a1)t1.Priority=Enum.AnimationPriority.Action4 t1:Play() AC.Humanoid.WalkSpeed=0 t1.Stopped:Connect(function() local a2=Instance.new("Animation")a2.AnimationId="rbxassetid://111210841378590" local t2=AC.Animator:LoadAnimation(a2)t2.Priority=Enum.AnimationPriority.Action4 t2.Looped=false t2:Play()AC.Humanoid.WalkSpeed=0 task.wait(4)AC.Humanoid.WalkSpeed=16 AC.ActiveButtons["被胸甲刺伤"].Tracks.Loop=t2 end) else for _,t in pairs(AC.Humanoid:GetPlayingAnimationTracks()) do t:Stop() end AC:RestoreDefaults() end end}, {Name="雅各布",PlayOnceId="12404717502",Priority=Enum.AnimationPriority.Action4,Callback=function()end}, {Name="僵尸王",PlayOnceId="13408244121",Priority=Enum.AnimationPriority.Action4,Callback=function()end}, {Name="僵尸扒门",PlayOnceId="15593727441",Priority=Enum.AnimationPriority.Action4,Callback=function()end}, {Name="骨折", Callback=function(state) if state then for _,t in pairs(AC.Humanoid:GetPlayingAnimationTracks()) do t:Stop() end local a1=Instance.new("Animation")a1.AnimationId="rbxassetid://12333490324" local t1=AC.Animator:LoadAnimation(a1)t1.Priority=Enum.AnimationPriority.Action4 t1:Play() AC.Humanoid.WalkSpeed=0 t1.Stopped:Connect(function() local a2=Instance.new("Animation")a2.AnimationId="rbxassetid://12333489072" local t2=AC.Animator:LoadAnimation(a2)t2.Priority=Enum.AnimationPriority.Action4 t2.Looped=false t2:Play()AC.Humanoid.WalkSpeed=0 task.wait(3)AC.Humanoid.WalkSpeed=16 AC.ActiveButtons["骨折"].Tracks.Loop=t2 end) else for _,t in pairs(AC.Humanoid:GetPlayingAnimationTracks()) do t:Stop() end AC:RestoreDefaults() end end}, } -- ==================== AC 方法 ==================== function AC:PlayCavalryAnimation() for _,t in pairs(self.Humanoid:GetPlayingAnimationTracks()) do t:Stop() end local a1=Instance.new("Animation")a1.AnimationId="rbxassetid://105118183189738" local t1=self.Animator:LoadAnimation(a1)t1:Play()t1.Priority=Enum.AnimationPriority.Action4 self.Humanoid.WalkSpeed=1 t1.Stopped:Wait() local a2=Instance.new("Animation")a2.AnimationId="rbxassetid://17406602570" local t2=self.Animator:LoadAnimation(a2)t2:Play()t2.Priority=Enum.AnimationPriority.Action4 self.Humanoid.WalkSpeed=28 local stopTime=os.clock()+5 while os.clock()0 then if buttonData.Tracks.Walk then buttonData.Tracks.Walk:Play() end else if buttonData.Tracks.Idle then buttonData.Tracks.Idle:Play() end end if config.Name=="爬尸" and buttonData.Tracks.Sit then buttonData.Tracks.Sit:Play() end buttonData.Connections.Movement=self.Humanoid:GetPropertyChangedSignal("MoveDirection"):Connect(function() if self.Humanoid.MoveDirection.Magnitude>0 then if buttonData.Tracks.Walk and not buttonData.Tracks.Walk.IsPlaying then buttonData.Tracks.Walk:Play() end if buttonData.Tracks.Idle and buttonData.Tracks.Idle.IsPlaying then buttonData.Tracks.Idle:Stop() end else if buttonData.Tracks.Idle and not buttonData.Tracks.Idle.IsPlaying then buttonData.Tracks.Idle:Play() end if buttonData.Tracks.Walk and buttonData.Tracks.Walk.IsPlaying then buttonData.Tracks.Walk:Stop() end end end) end if config.Callback then config.Callback(true) end else for _,t in pairs(buttonData.Tracks) do if t then t:Stop() end end for _,c in pairs(buttonData.Connections) do c:Disconnect() end buttonData.Connections={} if config.Callback then config.Callback(false) end end end function AC:RestoreDefaults() if self.Humanoid then self.Humanoid.WalkSpeed=16 if self.DefaultAnimations.Walk and not self.DefaultAnimations.Walk.IsPlaying then self.DefaultAnimations.Walk:Play() end if self.DefaultAnimations.Idle and not self.DefaultAnimations.Idle.IsPlaying then self.DefaultAnimations.Idle:Play() end end end function AC:Initialize() if self.IsClosed then return end self.Character=player.Character or player.CharacterAdded:Wait() self.Humanoid=self.Character:WaitForChild("Humanoid") self.Animator=self.Humanoid:WaitForChild("Animator") self.DefaultAnimations={} for _,t in pairs(self.Humanoid:GetPlayingAnimationTracks()) do if t.Name=="IdleAnimation" then self.DefaultAnimations.Idle=t elseif t.Name=="Walk" then self.DefaultAnimations.Walk=t end end self.Humanoid.Died:Connect(function() self:RestoreDefaults() end) self.IsInitialized=true end -- ==================== 工具函数 ==================== local function GetChar() return player.Character end local function GetHRP() local c=player.Character return c and c:FindFirstChild("HumanoidRootPart") end local function GetHum() local c=player.Character return c and c:FindFirstChildOfClass("Humanoid") end local function GetBP() return player:FindFirstChildOfClass("Backpack") end local function IsSameTeam(p) if not player.Team or not p.Team then return false end return player.Team==p.Team end local function Dist(t) local h=GetHRP() if not h or not t or not t:FindFirstChild("HumanoidRootPart") then return math.huge end return (t.HumanoidRootPart.Position-h.Position).Magnitude end local function GetMelee() local c=player.Character if c then for _,i in ipairs(c:GetChildren()) do if i:GetAttribute("Melee") then return i end end end local bp=GetBP() if bp then for _,i in ipairs(bp:GetChildren()) do if i:GetAttribute("Melee") then return i end end end end local function GetMusket() local c=player.Character if c then for _,i in ipairs(c:GetChildren()) do if i:IsA("Tool") and i.Name=="Musket" then return i end end end local bp=GetBP() if bp then for _,i in ipairs(bp:GetChildren()) do if i:IsA("Tool") and i.Name=="Musket" then return i end end end end -- ==================== 状态变量 ==================== local killAuraActive,attackBarrels,autoRotateEnabled,attackDraculaEnabled,killAuraConnection=false,false,false,false,nil local isBayonetActive,bayonetBarrels,bayonetRotate,bayonetConn=false,false,false,nil local isKillingBots,autoRotateBots,killBotsConn=false,false,nil local isPvpMelee,meleePvpConn=false,nil local isPvpBayonet,bayonetPvpConn=false,nil local isAxeStun,axeStunConn=false,nil local isCarbine,carbineConn=false,nil local espEnabled,playerHighlights=false,{} local zombieVisionActive,zombieTags,draculaTag,horsemanTag=false,{},nil,nil local zombieVisionConn,bossESPConn=nil,nil local fullBrightExecuted=false local headEffectApplied=false local originalHeadProps={} local isAutoDigging,autoDigConn=false,nil local AutorepairT,RepairOthersT,autorepairConn=false,false,nil local bridgeRepairing,bridgeRepairConn=false,nil local autoLogEnabled,autoLogConn=false,nil local autoInteractEnabled,autoInteractConn=false,nil local isKaubCollecting,kaubConn,kaubDescConn,activePrompts=false,nil,nil,{} local isSpeedActive,DEFAULT_SPEED=false,16 local noFallDamageActive,fallDamageConn=false,nil local noSlowActive,noSlowConn,noSlowCharConn=false,nil,nil local isFlying,flyTarget,flyConn=false,nil,nil local isAnimLooping,animLoopConn,currentTracks=false,nil,{} -- ==================== 战斗核心 ==================== local function AttackZombie(z) local w=GetMelee() if not w then return end local range=w.Name=="Pike" and 11 or (w.Name=="Axe" and 9 or 10) if w.Parent~=player.Character then w.Parent=player.Character task.wait(0.1) end if autoRotateEnabled then local h,hrp=GetHum(),GetHRP() if h and hrp then local old=h.AutoRotate h.AutoRotate=false local p=z.HumanoidRootPart.Position hrp.CFrame=CFrame.lookAt(hrp.Position,Vector3.new(p.X,hrp.Position.Y,p.Z)) h.AutoRotate=old end end if w.Name=="Axe" and z:FindFirstChild("State") and z.State.Value~="Stunned" then w.RemoteEvent:FireServer("BraceBlock")w.RemoteEvent:FireServer("StopBraceBlock") w.RemoteEvent:FireServer("FeedbackStun",z,z.HumanoidRootPart.Position) end if Dist(z)<=range then w.RemoteEvent:FireServer("Swing","Side") w.RemoteEvent:FireServer("HitZombie",z,z.Head.Position,true) end end local function AttackDraculaBoss() local w=GetMelee() if not w then return end local tr=workspace:FindFirstChild("Transylvania")if not tr then return end local m=tr:FindFirstChild("Modes")if m then m=m:FindFirstChild("Boss") end if m then m=m:FindFirstChild("Dracula") end if not m or not m:FindFirstChild("HumanoidRootPart") then return end local range=w.Name=="Pike" and 11 or (w.Name=="Axe" and 9 or 10) if w.Parent~=player.Character then w.Parent=player.Character task.wait(0.1) end if autoRotateEnabled then local h,hrp=GetHum(),GetHRP() if h and hrp then local old=h.AutoRotate h.AutoRotate=false local p=m.HumanoidRootPart.Position hrp.CFrame=CFrame.lookAt(hrp.Position,Vector3.new(p.X,hrp.Position.Y,p.Z)) h.AutoRotate=old end end if Dist(m)<=range then w.RemoteEvent:FireServer("Swing","Side") w.RemoteEvent:FireServer("HitZombie",m,m.Head.Position,true,"Head") end end -- ==================== UI 框架 ==================== local C={bg=Color3.fromRGB(24,24,30),bgL=Color3.fromRGB(32,32,40),btn=Color3.fromRGB(55,55,66), btnH=Color3.fromRGB(70,70,82),active=Color3.fromRGB(59,130,246), text=Color3.fromRGB(232,232,238),dim=Color3.fromRGB(150,150,162), stroke=Color3.fromRGB(60,60,74),sub=Color3.fromRGB(42,42,52)} local function corner(p,r) local c=Instance.new("UICorner")c.CornerRadius=UDim.new(0,r or 8)c.Parent=p return c end local function stroke(p) local s=Instance.new("UIStroke")s.Color=C.stroke s.Thickness=1 s.Parent=p return s end local function pad(p,n) local u=Instance.new("UIPadding")u.PaddingLeft=UDim.new(0,n)u.Parent=p end local UI={sg=nil,circle=nil,panel=nil,content=nil,title=nil,catButtons={},currentCat=nil,isOpen=false,built=false} local CATEGORIES={ {Name="主动画",Icon="🎭",Build=function(c) for _,cfg in ipairs(AC.MainButtonConfigs) do local b=UI:MakeButton(c,cfg.Name,cfg.Name) local bd={Instance=b,IsActive=false,Tracks={},Connections={}} AC.ActiveButtons[cfg.Name]=bd b.MouseButton1Click:Connect(function() if cfg.Name=="骑兵动画(刺)" then b.BackgroundColor3=C.btn bd.IsActive=false AC:PlayCavalryAnimation() else AC:ToggleAnimation(cfg,bd) end end) end end}, {Name="特别动画",Icon="✨",Build=function(c) for _,cfg in ipairs(AC.SideButtonConfigs) do local b=UI:MakeButton(c,cfg.Name,cfg.Name) local bd={Instance=b,IsActive=false,Tracks={},Connections={}} AC.ActiveButtons[cfg.Name]=bd b.MouseButton1Click:Connect(function() AC:ToggleAnimation(cfg,bd) end) end end}, {Name="战斗",Icon="⚔",Build=function(c) UI:BuildCombat(c) end}, {Name="视觉",Icon="👁",Build=function(c) UI:BuildVisual(c) end}, {Name="自动化",Icon="🔧",Build=function(c) UI:BuildAuto(c) end}, {Name="移动",Icon="🏃",Build=function(c) UI:BuildMove(c) end}, {Name="其他",Icon="📦",Build=function(c) UI:BuildOther(c) end}, } function UI:MakeButton(parent,name,text) local b=Instance.new("TextButton") b.Name=name b.Size=UDim2.new(1,-8,0,32) b.BackgroundColor3=C.btn b.Text=text b.TextColor3=C.text b.Font=Enum.Font.GothamMedium b.TextSize=13 b.TextXAlignment=Enum.TextXAlignment.Left b.AutoButtonColor=false b.Parent=parent corner(b,6) pad(b,12) b.MouseEnter:Connect(function() if b.BackgroundColor3~=C.active then b.BackgroundColor3=C.btnH end end) b.MouseLeave:Connect(function() if b.BackgroundColor3~=C.active then b.BackgroundColor3=C.btn end end) return b end function UI:MakeSub(parent,name,text) local b=Instance.new("TextButton") b.Name=name b.Size=UDim2.new(1,-8,0,26) b.BackgroundColor3=C.sub b.Text=text b.TextColor3=C.dim b.Font=Enum.Font.Gotham b.TextSize=12 b.TextXAlignment=Enum.TextXAlignment.Left b.AutoButtonColor=false b.Visible=false b.Parent=parent corner(b,5) pad(b,28) return b end function UI:SetState(btn,active) btn.BackgroundColor3=active and C.active or C.btn btn.TextColor3=active and Color3.fromRGB(255,255,255) or C.text end -- ==================== 战斗分类 ==================== function UI:BuildCombat(c) -- 杀戮光环 local kb=self:MakeButton(c,"杀戮光环","杀戮光环") local sb=self:MakeSub(c,"noBarrels","攻击炸药桶: 取消") local sr=self:MakeSub(c,"autoRotate","自动转向: 关闭") local sd=self:MakeSub(c,"atkDracula","攻击德古拉: 关闭") kb.MouseButton1Click:Connect(function() killAuraActive=not killAuraActive self:SetState(kb,killAuraActive) sb.Visible=sr.Visible=sd.Visible=killAuraActive if killAuraActive then killAuraConnection=RS.Heartbeat:Connect(function() if not killAuraActive or not GetHRP() or GetHum().Health<=0 then return end local zs=workspace:FindFirstChild("Zombies") if zs then for _,z in pairs(zs:GetChildren()) do if z:IsA("Model") and z:FindFirstChild("HumanoidRootPart") then if z:GetAttribute("Type")=="Barrel" and not attackBarrels then continue end if z:FindFirstChild("State") and z.State.Value~="Spawn" and Dist(z)<=12 then AttackZombie(z) end end end end if attackDraculaEnabled then local tr=workspace:FindFirstChild("Transylvania") if tr then tr=tr:FindFirstChild("Modes") end if tr then tr=tr:FindFirstChild("Boss") end if tr then tr=tr:FindFirstChild("Dracula") end if tr and Dist(tr)<=12 then AttackDraculaBoss() end end end) else if killAuraConnection then killAuraConnection:Disconnect() killAuraConnection=nil end end end) sb.MouseButton1Click:Connect(function() attackBarrels=not attackBarrels sb.Text="攻击炸药桶: "..(attackBarrels and "启用" or "取消") sb.BackgroundColor3=attackBarrels and Color3.fromRGB(39,90,55) or C.sub end) sr.MouseButton1Click:Connect(function() autoRotateEnabled=not autoRotateEnabled sr.Text="自动转向: "..(autoRotateEnabled and "开启" or "关闭") sr.BackgroundColor3=autoRotateEnabled and Color3.fromRGB(39,90,55) or C.sub end) sd.MouseButton1Click:Connect(function() attackDraculaEnabled=not attackDraculaEnabled sd.Text="攻击德古拉: "..(attackDraculaEnabled and "开启" or "关闭") sd.BackgroundColor3=attackDraculaEnabled and Color3.fromRGB(120,30,30) or C.sub end) -- 刺刀杀戮光环 local bb=self:MakeButton(c,"刺刀杀戮光环","刺刀杀戮光环") local bsb=self:MakeSub(c,"bayonetBarrels","攻击炸药桶: 取消") local bsr=self:MakeSub(c,"bayonetRotate","自动转向: 关闭") bb.MouseButton1Click:Connect(function() isBayonetActive=not isBayonetActive self:SetState(bb,isBayonetActive) bsb.Visible=bsr.Visible=isBayonetActive if isBayonetActive then bayonetConn=task.spawn(function() while isBayonetActive and task.wait() do if not GetHRP() or GetHum().Health<=0 then break end local zs=workspace:FindFirstChild("Zombies") if zs then for _,z in pairs(zs:GetChildren()) do if z:IsA("Model") and z:FindFirstChild("HumanoidRootPart") then if z:GetAttribute("Type")=="Barrel" and not bayonetBarrels then continue end if z:FindFirstChild("Barrel") then continue end if z:FindFirstChild("State") and z.State.Value~="Spawn" and Dist(z)<=15 then local w=GetMusket() if w then if w.Parent~=player.Character then w.Parent=player.Character task.wait(0.1) end if bayonetRotate then local h,hrp=GetHum(),GetHRP() if h and hrp then local old=h.AutoRotate h.AutoRotate=false local p=z.HumanoidRootPart.Position hrp.CFrame=CFrame.lookAt(hrp.Position,Vector3.new(p.X,hrp.Position.Y,p.Z)) h.AutoRotate=old end end local re=w:FindFirstChild("RemoteEvent") if re then local hp=z:FindFirstChild("Head") or z:FindFirstChild("HumanoidRootPart") if hp then re:FireServer("ThrustBayonet") task.wait(0.1) re:FireServer("Bayonet_HitZombie",z,hp.Position,true) end end end end end end end end end) else if bayonetConn then task.cancel(bayonetConn) bayonetConn=nil end end end) bsb.MouseButton1Click:Connect(function() bayonetBarrels=not bayonetBarrels bsb.Text="攻击炸药桶: "..(bayonetBarrels and "启用" or "取消") bsb.BackgroundColor3=bayonetBarrels and Color3.fromRGB(39,90,55) or C.sub end) bsr.MouseButton1Click:Connect(function() bayonetRotate=not bayonetRotate bsr.Text="自动转向: "..(bayonetRotate and "开启" or "关闭") bsr.BackgroundColor3=bayonetRotate and Color3.fromRGB(39,90,55) or C.sub end) -- 杀戮机器人 local botsBtn=self:MakeButton(c,"杀戮机器人","杀戮机器人") local botsRot=self:MakeSub(c,"botsRotate","自动转向: 关闭") botsBtn.MouseButton1Click:Connect(function() isKillingBots=not isKillingBots self:SetState(botsBtn,isKillingBots) botsRot.Visible=isKillingBots if isKillingBots then killBotsConn=task.spawn(function() while isKillingBots and task.wait() do if not GetHRP() or GetHum().Health<=0 then break end local bots=workspace:FindFirstChild("Bots") if bots then for _,b in ipairs(bots:GetChildren()) do if b:IsA("Model") and b:FindFirstChild("HumanoidRootPart") and Dist(b)<=15 then local w=GetMelee() if w then if w.Parent~=player.Character then w.Parent=player.Character task.wait(0.1) end if autoRotateBots then local h,hrp=GetHum(),GetHRP() if h and hrp then local old=h.AutoRotate h.AutoRotate=false local p=b.HumanoidRootPart.Position hrp.CFrame=CFrame.lookAt(hrp.Position,Vector3.new(p.X,hrp.Position.Y,p.Z)) h.AutoRotate=old end end local re=w:FindFirstChild("RemoteEvent") if re then re:FireServer("PrepareSwing")re:FireServer("Swing","Side") local hd=b:FindFirstChild("Head") if hd then re:FireServer("HitZombie",b,hd.Position,true) end end end task.wait(0.01) end end end end end) else if killBotsConn then task.cancel(killBotsConn) killBotsConn=nil end end end) botsRot.MouseButton1Click:Connect(function() autoRotateBots=not autoRotateBots botsRot.Text="自动转向: "..(autoRotateBots and "开启" or "关闭") botsRot.BackgroundColor3=autoRotateBots and Color3.fromRGB(39,90,55) or C.sub end) -- PVP 杀戮 local pvpBtn=self:MakeButton(c,"PVP杀戮","PVP杀戮") pvpBtn.MouseButton1Click:Connect(function() isPvpMelee=not isPvpMelee self:SetState(pvpBtn,isPvpMelee) if isPvpMelee then meleePvpConn=task.spawn(function() while isPvpMelee and task.wait() do if not GetHRP() or GetHum().Health<=0 then break end for _,tp in ipairs(Players:GetPlayers()) do if tp~=player and tp.Character and tp.Character:FindFirstChild("Humanoid") and tp.Character.Humanoid.Health>0 and not IsSameTeam(tp) and Dist(tp.Character)<=15 then local w=GetMelee() if w then if w.Parent~=player.Character then w.Parent=player.Character task.wait(0.1) end local re=w:FindFirstChild("RemoteEvent") if re then re:FireServer("PrepareSwing")re:FireServer("Swing","Side") local hd=tp.Character:FindFirstChild("Head") if hd then re:FireServer("HitPlayer",tp.Character:FindFirstChild("Humanoid"),hd.Position) end end end task.wait(0.01) end end end end) else if meleePvpConn then task.cancel(meleePvpConn) meleePvpConn=nil end end end) -- 刺刀 PVP local bpBtn=self:MakeButton(c,"刺刀PVP杀戮","刺刀PVP杀戮") bpBtn.MouseButton1Click:Connect(function() isPvpBayonet=not isPvpBayonet self:SetState(bpBtn,isPvpBayonet) if isPvpBayonet then bayonetPvpConn=task.spawn(function() while isPvpBayonet and task.wait() do if not GetHRP() or GetHum().Health<=0 then break end for _,tp in ipairs(Players:GetPlayers()) do if tp~=player and tp.Character and tp.Character:FindFirstChild("Humanoid") and tp.Character.Humanoid.Health>0 and not IsSameTeam(tp) and Dist(tp.Character)<=17 then local w=GetMusket() if w then if w.Parent~=player.Character then w.Parent=player.Character task.wait(0.1) end local re=w:FindFirstChild("RemoteEvent") if re then re:FireServer("ThrustBayonet") local hd=tp.Character:FindFirstChild("Head") if hd then re:FireServer("Bayonet_HitPlayer",tp.Character:FindFirstChild("Humanoid"),hd.Position) end end end task.wait(0.01) end end end end) else if bayonetPvpConn then task.cancel(bayonetPvpConn) bayonetPvpConn=nil end end end) -- 肘击 local axeBtn=self:MakeButton(c,"肘击","肘击") axeBtn.MouseButton1Click:Connect(function() isAxeStun=not isAxeStun self:SetState(axeBtn,isAxeStun) if isAxeStun then axeStunConn=RS.Heartbeat:Connect(function() if not isAxeStun or not GetHRP() or GetHum().Health<=0 then return end local zs=workspace:FindFirstChild("Zombies")if not zs then return end for _,z in pairs(zs:GetChildren()) do if z:IsA("Model") and z:FindFirstChild("HumanoidRootPart") and Dist(z)<=15 then local w=GetMelee() if w and w.Name=="Axe" and z:FindFirstChild("State") and z.State.Value~="Stunned" then w.RemoteEvent:FireServer("BraceBlock")w.RemoteEvent:FireServer("StopBraceBlock") w.RemoteEvent:FireServer("FeedbackStun",z,z.HumanoidRootPart.CFrame.Position) end end end end) else if axeStunConn then axeStunConn:Disconnect() axeStunConn=nil end end end) -- 卡宾枪肘击 local carBtn=self:MakeButton(c,"卡宾枪肘击(多目标)","卡宾枪肘击(多目标)") carBtn.MouseButton1Click:Connect(function() isCarbine=not isCarbine self:SetState(carBtn,isCarbine) if isCarbine then carbineConn=RS.Heartbeat:Connect(function() if not isCarbine or not GetHRP() or GetHum().Health<=0 then return end local c2=player.Character if not c2 then return end local cb=(GetBP() and GetBP():FindFirstChild("Carbine")) or c2:FindFirstChild("Carbine") if not cb then return end local re=cb:FindFirstChild("RemoteEvent")if not re then return end re:FireServer("Shove")task.wait(0.2) local zs=workspace:FindFirstChild("Zombies") if zs then local list={} for _,z in pairs(zs:GetChildren()) do if z:IsA("Model") and z:FindFirstChild("HumanoidRootPart") and Dist(z)<=15 then table.insert(list,z) end end for i=1,math.min(10,#list) do re:FireServer("FeedbackStun",list[i],list[i].HumanoidRootPart.CFrame.Position) if i=CD then flyTarget=tg[math.random(1,#tg)]ls=tick() end if flyTarget and flyTarget.Character then local tr=flyTarget.Character:FindFirstChild("HumanoidRootPart") if tr then local off=math.sin(tick()*FS)*FH local back=tr.CFrame.LookVector*-SD local fv=Vector3.new(0,off,0) hrp.CFrame=CFrame.new(tr.Position+back+fv,tr.Position+fv) end end end flyBtn.MouseButton1Click:Connect(function() isFlying=not isFlying self:SetState(flyBtn,isFlying) flyBtn.Text=isFlying and "停止飞雷神" or "无敌飞雷神" if isFlying then flyTarget=nil ls=0 flyConn=RS.Heartbeat:Connect(function() if isFlying then FS2() end end) else if flyConn then flyConn:Disconnect()flyConn=nil end flyTarget=nil end end) -- 黑皮体育生 local animBtn=self:MakeButton(c,"AnimLoop","黑皮体育生沉淀") local A1,A2="rbxassetid://127516132968916","rbxassetid://126160671215200" animBtn.MouseButton1Click:Connect(function() isAnimLooping=not isAnimLooping self:SetState(animBtn,isAnimLooping) animBtn.Text=isAnimLooping and "黑皮体育生沉淀: 开启" or "黑皮体育生沉淀" if isAnimLooping then animLoopConn=task.spawn(function() while isAnimLooping do for _,t in pairs(currentTracks) do if t then t:Stop() end end currentTracks={} local c2=player.Character or player.CharacterAdded:Wait() local h=c2:WaitForChild("Humanoid") local an=h:FindFirstChildOfClass("Animator") or Instance.new("Animator",h) local a1=Instance.new("Animation")a1.AnimationId=A1 local t1=an:LoadAnimation(a1)table.insert(currentTracks,t1) t1:Play()task.wait(0.1)t1:Stop() if not isAnimLooping then break end local a2=Instance.new("Animation")a2.AnimationId=A2 local t2=an:LoadAnimation(a2)table.insert(currentTracks,t2) t2:Play()task.wait(0.15)t2:Stop() end for _,t in pairs(currentTracks) do if t then t:Stop() end end currentTracks={} end) else if animLoopConn then task.cancel(animLoopConn)animLoopConn=nil end for _,t in pairs(currentTracks) do if t then t:Stop() end end currentTracks={} end end) -- 外部脚本 local function ML(name,url) local b=self:MakeButton(c,"Load_"..name,name) b.MouseButton1Click:Connect(function() local ok,err=pcall(function() loadstring(game:HttpGet(url))() end) if ok then b.Text="Script Loaded" b.BackgroundColor3=Color3.fromRGB(40,160,60) else b.Text="Error" b.BackgroundColor3=Color3.fromRGB(180,50,50)warn(err) end task.delay(2,function() b.Text=name b.BackgroundColor3=C.btn end) end) end ML("老近卫(临时)","https://pastefy.app/Z8ViYhme/raw") ML("临时冷溪","https://pastefy.app/CWGtJMQ7/raw") end -- ==================== 主 UI 构建 ==================== function UI:Build() if self.built then return end self.built=true local sg=Instance.new("ScreenGui") sg.Name="QingshuiUI" sg.ResetOnSpawn=false sg.IgnoreGuiInset=true sg.ZIndexBehavior=Enum.ZIndexBehavior.Sibling sg.Parent=player:WaitForChild("PlayerGui") self.sg=sg -- 圆形按钮 local circle=Instance.new("TextButton") circle.Name="CircleButton" circle.Size=UDim2.new(0,60,0,60) circle.Position=UDim2.new(1,-80,1,-80) circle.BackgroundColor3=C.active circle.Text="⚙" circle.TextColor3=Color3.fromRGB(255,255,255) circle.TextSize=28 circle.Font=Enum.Font.GothamBold circle.AutoButtonColor=false circle.Parent=sg corner(circle,30) local cs=Instance.new("UIStroke")cs.Color=Color3.fromRGB(120,190,255)cs.Thickness=2 cs.Transparency=0.3 cs.Parent=circle self.circle=circle -- 圆按钮拖动 + 点击 local drag,start,sp,clickTime=false,nil,nil,0 circle.InputBegan:Connect(function(input) if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then drag=true start=input.Position sp=circle.Position clickTime=tick() input.Changed:Connect(function() if input.UserInputState==Enum.UserInputState.End then drag=false end end) end end) UIS.InputChanged:Connect(function(input) if drag and (input.UserInputType==Enum.UserInputType.MouseMovement or input.UserInputType==Enum.UserInputType.Touch) then local d=input.Position-start circle.Position=UDim2.new(sp.X.Scale,sp.X.Offset+d.X,sp.Y.Scale,sp.Y.Offset+d.Y) end end) circle.MouseButton1Click:Connect(function() if tick()-clickTime>0.3 then return end self:TogglePanel() end) circle.MouseEnter:Connect(function() TW:Create(circle,TweenInfo.new(0.15),{BackgroundColor3=Color3.fromRGB(120,190,255)}):Play() end) circle.MouseLeave:Connect(function() TW:Create(circle,TweenInfo.new(0.15),{BackgroundColor3=C.active}):Play() end) -- 主面板 local panel=Instance.new("Frame") panel.Name="MainPanel" panel.Size=UDim2.new(0,660,0,440) panel.Position=UDim2.new(0.5,-330,0.5,-220) panel.BackgroundColor3=C.bg panel.BorderSizePixel=0 panel.Visible=false panel.Active=true panel.Parent=sg corner(panel,14) local ps=Instance.new("UIStroke")ps.Color=C.stroke ps.Thickness=1 ps.Transparency=0.2 ps.Parent=panel self.panel=panel -- 标题栏 local tb=Instance.new("Frame") tb.Size=UDim2.new(1,0,0,44)tb.BackgroundColor3=C.bgL tb.BorderSizePixel=0 tb.Parent=panel corner(tb,14) local fix=Instance.new("Frame") fix.Size=UDim2.new(1,0,0,14)fix.Position=UDim2.new(0,0,1,-14) fix.BackgroundColor3=C.bgL fix.BorderSizePixel=0 fix.Parent=tb local title=Instance.new("TextLabel") title.Size=UDim2.new(1,-110,1,0)title.Position=UDim2.new(0,16,0,0) title.BackgroundTransparency=1 title.Text="清水GB脚本 · v6.1" title.TextColor3=C.text title.Font=Enum.Font.GothamBold title.TextSize=14 title.TextXAlignment=Enum.TextXAlignment.Left title.Parent=tb local close=Instance.new("TextButton") close.Size=UDim2.new(0,28,0,28)close.Position=UDim2.new(1,-38,0,8) close.BackgroundColor3=Color3.fromRGB(220,60,60)close.Text="✕" close.TextColor3=Color3.fromRGB(255,255,255)close.Font=Enum.Font.GothamBold close.TextSize=13 close.Parent=tb corner(close,7) close.MouseButton1Click:Connect(function() self:TogglePanel() end) -- 拖动面板 local pdrag,pstart,psp=false,nil,nil tb.InputBegan:Connect(function(input) if input.UserInputType==Enum.UserInputType.MouseButton1 or input.UserInputType==Enum.UserInputType.Touch then pdrag=true pstart=input.Position psp=panel.Position input.Changed:Connect(function() if input.UserInputState==Enum.UserInputState.End then pdrag=false end end) end end) UIS.InputChanged:Connect(function(input) if pdrag and (input.UserInputType==Enum.UserInputType.MouseMovement or input.UserInputType==Enum.UserInputType.Touch) then local d=input.Position-pstart panel.Position=UDim2.new(psp.X.Scale,psp.X.Offset+d.X,psp.Y.Scale,psp.Y.Offset+d.Y) end end) -- 左侧分类栏 local side=Instance.new("ScrollingFrame") side.Size=UDim2.new(0,155,1,-58)side.Position=UDim2.new(0,10,0,52) side.BackgroundColor3=C.bgL side.BorderSizePixel=0 side.ScrollBarThickness=3 side.ScrollBarImageColor3=C.stroke side.CanvasSize=UDim2.new(0,0,0,0) side.AutomaticCanvasSize=Enum.AutomaticSize.Y side.Parent=panel corner(side,10) local sl=Instance.new("UIListLayout") sl.Padding=UDim.new(0,4)sl.HorizontalAlignment=Enum.HorizontalAlignment.Center sl.SortOrder=Enum.SortOrder.LayoutOrder sl.Parent=side local sp2=Instance.new("UIPadding") sp2.PaddingTop=UDim.new(0,8)sp2.PaddingBottom=UDim.new(0,8)sp2.PaddingLeft=UDim.new(0,6)sp2.PaddingRight=UDim.new(0,6)sp2.Parent=side -- 右侧内容 local cont=Instance.new("ScrollingFrame") cont.Size=UDim2.new(1,-180,1,-58)cont.Position=UDim2.new(0,170,0,52) cont.BackgroundColor3=C.bgL cont.BorderSizePixel=0 cont.ScrollBarThickness=4 cont.ScrollBarImageColor3=C.stroke cont.CanvasSize=UDim2.new(0,0,0,0) cont.AutomaticCanvasSize=Enum.AutomaticSize.Y cont.Parent=panel corner(cont,10) local cbox=Instance.new("Frame") cbox.Size=UDim2.new(1,0,0,0)cbox.BackgroundTransparency=1 cbox.Parent=cont local cl=Instance.new("UIListLayout") cl.Padding=UDim.new(0,5)cl.HorizontalAlignment=Enum.HorizontalAlignment.Center cl.SortOrder=Enum.SortOrder.LayoutOrder cl.Parent=cbox local cp=Instance.new("UIPadding") cp.PaddingTop=UDim.new(0,10)cp.PaddingBottom=UDim.new(0,10) cp.PaddingLeft=UDim.new(0,6)cp.PaddingRight=UDim.new(0,6)cp.Parent=cbox cl:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() cbox.Size=UDim2.new(1,0,0,cl.AbsoluteContentSize.Y) end) self.content=cbox -- 分类按钮 for i,cat in ipairs(CATEGORIES) do local b=Instance.new("TextButton") b.Name=cat.Name b.Size=UDim2.new(1,-8,0,40) b.BackgroundColor3=Color3.fromRGB(38,38,48)b.BorderSizePixel=0 b.Text=" "..cat.Icon.." "..cat.Name b.TextColor3=C.dim b.TextXAlignment=Enum.TextXAlignment.Left b.Font=Enum.Font.GothamMedium b.TextSize=13 b.LayoutOrder=i b.AutoButtonColor=false b.Parent=side corner(b,8) b.MouseButton1Click:Connect(function() self:SwitchCategory(cat,b) end) if i==1 then task.defer(function() self:SwitchCategory(cat,b) end) end end end function UI:TogglePanel() self.isOpen=not self.isOpen if self.panel then self.panel.Visible=self.isOpen end end function UI:SwitchCategory(cat,btn) for _,ch in ipairs(self.panel:FindFirstChildWhichIsA("ScrollingFrame"):GetChildren()) do if ch:IsA("TextButton") then if ch==btn then ch.BackgroundColor3=C.active ch.TextColor3=Color3.fromRGB(255,255,255) else ch.BackgroundColor3=Color3.fromRGB(38,38,48)ch.TextColor3=C.dim end end end for _,ch in ipairs(self.content:GetChildren()) do if not ch:IsA("UIListLayout") and not ch:IsA("UIPadding") then ch:Destroy() end end if cat.Build then cat.Build(self.content) end end -- ==================== 启动 ==================== AC:Initialize() UI:Build() player.CharacterAdded:Connect(function() task.wait(1) AC:Initialize() end)