local V5_LINK = "https://raw.githubusercontent.com/gObl00x/Stuff/refs/heads/main/Animator6D.lua" local AUDIO_URL = "https://files.catbox.moe/ksxhk8.mp3" -- Audio Handler local Sound = Instance.new("Sound", game:GetService("SoundService")) Sound.SoundId = "rbxassetid://0" -- Placeholder Sound.Volume = 2 Sound.Looped = true -- Since it's an external link, we use the game engine to try and fetch/play it -- Note: Directly playing external MP3s requires an executor that supports 'getcustomasset' local success_audio, assetId = pcall(function() if writefile and getcustomasset then if not isfile("jason_theme.mp3") then writefile("jason_theme.mp3", game:HttpGet(AUDIO_URL)) end return getcustomasset("jason_theme.mp3") end end) if success_audio and assetId then Sound.SoundId = assetId Sound:Play() end -- Stop music on reset local Players = game:GetService('Players') local player = Players.LocalPlayer player.CharacterRemoving:Connect(function() Sound:Stop() end) -- Load Animator6D if not getgenv().Animator6DLoadedPro then task.spawn(function() loadstring(game:HttpGet(V5_LINK))() end) repeat task.wait() until getgenv().Animator6D end local RunService = game:GetService('RunService') local Anims = {} -- Load Model local success, model = pcall(function() return game:GetObjects("rbxassetid://126832528231171")[1] end) if success and model then local function scan(obj) if obj:IsA("KeyframeSequence") then Anims[obj.Name] = obj end for _, c in ipairs(obj:GetChildren()) do scan(c) end end scan(model) end local function GetAnimLength(kfseq) if not kfseq then return 0 end local length = 0 for _, kf in ipairs(kfseq:GetKeyframes()) do if kf.Time > length then length = kf.Time end end return length end -- State Management local Character = player.Character or player.CharacterAdded:Wait() local Humanoid = Character:WaitForChild("Humanoid") local currentAnim, activeAction, actionEndTime = nil, nil, 0 local States = { isSprinting = false, isRaging = false, isStunned = false } local function Play(kfseq, looped, speed) if not kfseq or (currentAnim == kfseq and looped) then return end getgenv().Animator6DStop() getgenv().Animator6D(kfseq, speed or 1, looped ~= false) currentAnim = kfseq end local function PlayAction(name, durationOverride) local kf = Anims[name] if kf then activeAction = kf actionEndTime = tick() + (durationOverride or GetAnimLength(kf)) Play(kf, false) end end -- GUI local ScreenGui = Instance.new('ScreenGui', player:WaitForChild('PlayerGui')) ScreenGui.Name = 'Jason_V2_UI' ScreenGui.ResetOnSpawn = true local function MakeBtn(pos, text, size, color) local b = Instance.new('TextButton', ScreenGui) b.Size = size or UDim2.new(0, 150, 0, 90) b.Position = pos b.BackgroundColor3 = color or Color3.fromRGB(140, 80, 255) b.BackgroundTransparency = 0.5 b.Font = Enum.Font.SourceSansSemibold b.Text = text b.TextColor3 = Color3.fromRGB(255, 255, 255) b.TextScaled = true Instance.new('UICorner', b).CornerRadius = UDim.new(0, 8) return b end -- Buttons local SlashBtn = MakeBtn(UDim2.new(0.266, 0, 0.077, 0), "Slash") local BeheadBtn = MakeBtn(UDim2.new(0.417, 0, 0.077, 0), "Behead") local GashingBtn = MakeBtn(UDim2.new(0.559, 0, 0.077, 0), "GASHING Wound") local RagingBtn = MakeBtn(UDim2.new(0.702, 0, 0.077, 0), "Raging Pace") local SelfKillBtn= MakeBtn(UDim2.new(0.257, 0, 0.774, 0), "Self Kill (S)", UDim2.new(0, 180, 0, 90), Color3.fromRGB(10, 1, 140)) local KillBtn = MakeBtn(UDim2.new(0.120, 0, 0.774, 0), "Kill (G)", UDim2.new(0, 120, 0, 90), Color3.fromRGB(180, 20, 20)) local StunBtn = MakeBtn(UDim2.new(0.120, 0, 0.077, 0), "Stun", UDim2.new(0, 120, 0, 90)) local SprintBtn = MakeBtn(UDim2.new(0.639, 0, 0.697, 0), "Sprint") -- Logic SlashBtn.MouseButton1Click:Connect(function() PlayAction("Jason_Swing") end) BeheadBtn.MouseButton1Click:Connect(function() PlayAction("Behead") end) GashingBtn.MouseButton1Click:Connect(function() PlayAction("Gushwound") end) RagingBtn.MouseButton1Click:Connect(function() States.isRaging = not States.isRaging if States.isRaging then PlayAction("Jason_RagingStart") end end) -- Exact animation roles requested SelfKillBtn.MouseButton1Click:Connect(function() PlayAction("G+S killanim - S [cleaned up]") end) KillBtn.MouseButton1Click:Connect(function() PlayAction("G+S killanim - G [cleaned up]") end) StunBtn.MouseButton1Click:Connect(function() if States.isStunned then return end task.spawn(function() States.isStunned = true PlayAction("Jason_Stun") task.wait(GetAnimLength(Anims["Jason_Stun"])) Play(Anims["Jason_StunLoop"], true) task.wait(3.5) PlayAction("Jason_StunEnd") task.wait(GetAnimLength(Anims["Jason_StunEnd"])) States.isStunned = false end) end) SprintBtn.MouseButton1Click:Connect(function() States.isSprinting = not States.isSprinting end) -- Handler Loop RunService.RenderStepped:Connect(function() if not Character or not Humanoid.Parent then return end if States.isStunned then Humanoid.WalkSpeed = 0 Humanoid.JumpPower = 0 return else Humanoid.JumpPower = 50 end if tick() < actionEndTime then return end if activeAction then activeAction = nil; currentAnim = nil end local isMoving = Humanoid.MoveDirection.Magnitude > 0 if isMoving then if States.isRaging then Humanoid.WalkSpeed = 22 Play(Anims["Jason_RagingWalk"], true) elseif States.isSprinting then Humanoid.WalkSpeed = 20 Play(Anims["Jason_Run"], true) else Humanoid.WalkSpeed = 16 Play(Anims["Jason_Walk"] or Anims["Jason_Run"], true, 0.8) end else if States.isRaging then Play(Anims["Jason_RagingIdle"], true) else Play(Anims["Jason_Idle"], true) end end end) --[[ ]] --[[ Shiftlock 版本一号 (Version 1 Properties) - 仅按钮版 包含属性:高清UI、鼠标Icon同步、Classic模式强制切换、偏移修复、锁定中心、无按键绑定 ]] local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local UserGameSettings = UserSettings():GetService("UserGameSettings") -- --- 1. GUI 系统 --- local ShiftLockGui = Instance.new("ScreenGui") ShiftLockGui.Name = "ShiftLock_V1_ButtonOnly" ShiftLockGui.ResetOnSpawn = false ShiftLockGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling ShiftLockGui.Parent = PlayerGui local LockButton = Instance.new("ImageButton") LockButton.Name = "LockButton" LockButton.Parent = ShiftLockGui LockButton.AnchorPoint = Vector2.new(0.5, 0.5) LockButton.Position = UDim2.new(0.83, 0, 0.83, 0) LockButton.Size = UDim2.new(0.045, 0, 0.045, 0) LockButton.BackgroundTransparency = 1 LockButton.BorderSizePixel = 0 LockButton.Image = "rbxasset://textures/ui/mouseLock_off@2x.png" local UIAspect = Instance.new("UIAspectRatioConstraint") UIAspect.AspectRatio = 1 UIAspect.AspectType = Enum.AspectType.ScaleWithParentSize UIAspect.Parent = LockButton -- 准星 (触控穿透) local Crosshair = Instance.new("ImageLabel") Crosshair.Name = "Crosshair" Crosshair.Parent = ShiftLockGui Crosshair.AnchorPoint = Vector2.new(0.5, 0.5) Crosshair.Position = UDim2.new(0.5, 0, 0.5, -29) Crosshair.Size = UDim2.new(0, 32, 0, 32) Crosshair.BackgroundTransparency = 1 Crosshair.Image = "rbxasset://textures/MouseLockedCursor.png" Crosshair.Visible = false Crosshair.ZIndex = 10 Crosshair.Active = false Crosshair.Selectable = false -- --- 2. 核心变量 --- local isShiftLockEnabled = false local OFFSET_VAL = 1.75 -- --- 3. 获取相机 Zoom --- local function getZoomTarget() local success, ZoomController = pcall(function() return require(LocalPlayer.PlayerScripts.PlayerModule.CameraModule.ZoomController) end) if success and ZoomController then local upvalues = getupvalues(ZoomController.Update) for i, v in pairs(upvalues) do if type(v) == "number" then return v end end end return 10 end -- --- 4. 核心同步逻辑 (修复偏移生长 & 中心锁定) --- local function enforceShiftLock() if not isShiftLockEnabled then return end local cam = workspace.CurrentCamera if not cam then return end -- 属性:强力中心锁定 UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter -- 属性:强制相机旋转跟随 if UserGameSettings.RotationType ~= Enum.RotationType.CameraRelative then pcall(function() UserGameSettings.RotationType = Enum.RotationType.CameraRelative end) end -- 第一人称检测 local physicalDist = (cam.Focus.Position - cam.CFrame.Position).Magnitude local isFirstPerson = false if physicalDist <= 0.78 then local zoomTarget = getZoomTarget() isFirstPerson = (zoomTarget < 0.78) end -- 属性:修复后的偏移逻辑 (单帧计算,非累加) local currentOffset = (not isFirstPerson) and OFFSET_VAL or 0 if currentOffset ~= 0 then local shiftedCFrame = cam.CFrame * CFrame.new(currentOffset, 0, 0) cam.CFrame = shiftedCFrame cam.Focus = shiftedCFrame * CFrame.new(0, 0, -physicalDist) end end -- --- 5. Toggle 切换函数 --- local function ToggleShiftLock() isShiftLockEnabled = not isShiftLockEnabled Crosshair.Visible = isShiftLockEnabled local mouse = LocalPlayer:GetMouse() RunService:UnbindFromRenderStep("ShiftLock_V1_Sync") if isShiftLockEnabled then -- 开启属性 LockButton.Image = "rbxasset://textures/ui/mouseLock_on@2x.png" mouse.Icon = "rbxasset://textures/MouseLockedCursor.png" -- 模式切换:Classic pcall(function() UserGameSettings.ComputerCameraMovementMode = Enum.ComputerCameraMovementMode.Classic UserGameSettings.TouchCameraMovementMode = Enum.TouchCameraMovementMode.Classic end) RunService:BindToRenderStep("ShiftLock_V1_Sync", Enum.RenderPriority.Camera.Value + 1, enforceShiftLock) else -- 关闭属性 LockButton.Image = "rbxasset://textures/ui/mouseLock_off@2x.png" mouse.Icon = "" -- 模式切换:恢复默认 pcall(function() UserGameSettings.ComputerCameraMovementMode = Enum.ComputerCameraMovementMode.Default UserGameSettings.TouchCameraMovementMode = Enum.TouchCameraMovementMode.Default UserGameSettings.RotationType = Enum.RotationType.MovementRelative end) UserInputService.MouseBehavior = Enum.MouseBehavior.Default end end -- --- 6. 事件绑定 (仅限按钮点击) --- LockButton.MouseButton1Click:Connect(ToggleShiftLock) -- 重生处理 LocalPlayer.CharacterAdded:Connect(function() RunService:UnbindFromRenderStep("ShiftLock_V1_Sync") UserInputService.MouseBehavior = Enum.MouseBehavior.Default if isShiftLockEnabled then LocalPlayer:GetMouse().Icon = "rbxasset://textures/MouseLockedCursor.png" RunService:BindToRenderStep("ShiftLock_V1_Sync", Enum.RenderPriority.Camera.Value + 1, enforceShiftLock) end end)