Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --HAKARI MASTERY MOVESET SCRIPT--
- --Local Stuff
- local skillOne = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Reserve Ball'].ItemName
- local skillTwo = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Shutter Doors'].ItemName
- local skillThree = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Rough Energy'].ItemName
- local skillThreeTip = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Divergent Fist'].Tip
- local skillFour = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Fever Breaker'].ItemName
- local ultTitle = game.Players.LocalPlayer.PlayerGui.Main.Ultimate.Title
- --Skill names
- skillOne.Text = "Conserve Chunk"
- skillTwo.Text = "Splitting Doors"
- skillThree.Text = "Pulverizing Energy"
- skillThreeTip.Text = "EZ"
- skillFour.Text = "Shutter Combo"
- ultTitle.Text = "Gamble"
- -- SKILL 1 --
- local Players = game:GetService("Players")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- local ChatService = game:GetService("Chat")
- -- Animation references
- local cursedStrikesANIM = ReplicatedStorage.Animations.Itadori.CursedStrike
- local wideStrikeANIM = ReplicatedStorage.Animations.Gojo.RedMaximum
- -- Configurable parameters
- local SWAP_DELAY = 0.01 -- Delay before swapping animations (in seconds)
- local PLAY_DURATION = 1.2 -- Total duration of animation sequence
- -- Prevent multiple triggers
- local isAnimationSequenceActive = false
- local function sendChatMessage(message)
- if not CONFIG.EnableChatMessages then return end
- local function playAnimationSequence(player)
- -- Ensure we don't trigger multiple times
- if isAnimationSequenceActive then return end
- isAnimationSequenceActive = true
- local character = player.Character
- if not character then return end
- local humanoid = character:FindFirstChildOfClass("Humanoid")
- if not humanoid then return end
- -- Create animation instances
- local animations = {
- maxRed = Instance.new("Animation")
- }
- -- Set animation IDs
- animations.wideStrike.AnimationId = wideStrikeANIM.AnimationId
- animations.overLuck.AnimationId = overLuckANIM.AnimationId
- -- Load animations
- local animTracks = {
- wideStrike = humanoid:LoadAnimation(animations.wideStrike),
- overLuck = humanoid:LoadAnimation(animations.overLuck)
- }
- -- Stop any existing animations
- for _, track in pairs(humanoid:GetPlayingAnimationTracks()) do
- track:Stop()
- end
- -- Play animation sequence
- task.spawn(function()
- animTracks.overLuck:Play()
- animTracks.overLuck.TimePosition = 1.5
- animTracks.overLuck:AdjustSpeed(1.4)
- task.wait(0.4)
- animTracks.overLuck:Stop()
- animTracks.wideStrike:Play()
- animTracks.wideStrike.TimePosition = 4.5
- -- Send chat message when ultimate animation plays
- sendChatMessage({
- JP = "Hello sir, Would you like to play a game?",
- EN = "Hello sir, Would you like to play a game?"
- })
- task.wait(2.4)
- animTracks.wideStrike:Stop()
- -- Reset flag after sequence
- task.wait(PLAY_DURATION)
- isAnimationSequenceActive = false
- -- Stop all animations
- for _, track in pairs(animTracks) do
- track:Stop()
- end
- end)
- end
- -- Event handler for animation played
- local function onAnimationPlayed(animationTrack)
- -- Check if the animation matches Lapse Blue
- if animationTrack.Animation.AnimationId == cursedStrikesANIM.AnimationId then
- playAnimationSequence(Players.LocalPlayer)
- end
- end
- -- Connect to local player's character
- local player = Players.LocalPlayer
- local character = player.Character or player.CharacterAdded:Wait()
- local humanoid = character:WaitForChild("Humanoid")
- -- Connect animation played event
- humanoid.AnimationPlayed:Connect(onAnimationPlayed)
- -- SKILL 2 --
- local Players = game:GetService("Players")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- -- Animation references
- local crushingBlowANIM = ReplicatedStorage.Animations.Itadori.CrushingBlow
- local wideStrikeANIM = ReplicatedStorage.Animations.Mahito.WideStrike
- local chosoMelee4ANIM = ReplicatedStorage.Animations.Choso.Melee.Melee4
- -- Configurable parameters
- local SWAP_DELAY = 0.01 -- Delay before swapping animations (in seconds)
- local PLAY_DURATION = 1.2 -- Total duration of animation sequence
- -- Prevent multiple triggers
- local isAnimationSequenceActive = false
- local function playAnimationSequence(player)
- -- Ensure we don't trigger multiple times
- if isAnimationSequenceActive then return end
- isAnimationSequenceActive = true
- local character = player.Character
- if not character then return end
- local humanoid = character:FindFirstChildOfClass("Humanoid")
- if not humanoid then return end
- -- Create animation instances
- local animations = {
- chosoMelee4 = Instance.new("Animation"),
- wideStrike = Instance.new("Animation")
- }
- -- Set animation IDs
- animations.chosoMelee4.AnimationId = chosoMelee4ANIM.AnimationId
- animations.wideStrike.AnimationId = wideStrikeANIM.AnimationId
- -- Load animations
- local animTracks = {
- chosoMelee4 = humanoid:LoadAnimation(animations.chosoMelee4),
- wideStrike = humanoid:LoadAnimation(animations.wideStrike)
- }
- -- Stop any existing animations
- for _, track in pairs(humanoid:GetPlayingAnimationTracks()) do
- track:Stop()
- end
- -- Play animation sequence
- task.spawn(function()
- animTracks.wideStrike:Play()
- animTracks.wideStrike.TimePosition = 0.5
- sendChatMessage({
- JP = "This isn't really fair, Is it?",
- EN = "This isn't really fair, Is it?"
- })
- task.wait(0.6)
- animTracks.wideStrike:Stop()
- animTracks.chosoMelee4:Play()
- animTracks.chosoMelee4:AdjustSpeed(0.7)
- task.wait(0.6)
- animTracks.chosoMelee4:Stop()
- -- Reset flag after sequence
- task.wait(PLAY_DURATION)
- isAnimationSequenceActive = false
- -- Stop all animations
- for _, track in pairs(animTracks) do
- track:Stop()
- end
- end)
- end
- -- Event handler for animation played
- local function onAnimationPlayed(animationTrack)
- -- Check if the animation matches Cursed Strike
- if animationTrack.Animation.AnimationId == crushingBlowANIM.AnimationId then
- playAnimationSequence(Players.LocalPlayer)
- end
- end
- -- Connect to local player's character
- local player = Players.LocalPlayer
- local character = player.Character or player.CharacterAdded:Wait()
- local humanoid = character:WaitForChild("Humanoid")
- -- Connect animation played event
- humanoid.AnimationPlayed:Connect(onAnimationPlayed)
- -- SKILL 3 --
- -- Easing function for smooth acceleration
- local function EasingFunction(t, style, direction)
- local styles = {
- Linear = function(p) return p end,
- Cubic = function(p)
- if direction == "Out" then
- return 1 - math.pow(1 - p, 3)
- end
- return p * p * p
- end
- }
- local easingFunc = styles[style] or styles["Linear"]
- return easingFunc(t)
- end
- -- Function to apply boost
- local function ApplyBoost(character, direction, boostSpeed)
- local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
- local humanoid = character:FindFirstChild("Humanoid")
- local camera = workspace.CurrentCamera
- if humanoidRootPart and humanoid then
- local isCurrentlyBoosting = true
- local startTime = tick()
- local boostConnection
- boostConnection = game:GetService("RunService").Heartbeat:Connect(function()
- if not isCurrentlyBoosting then
- boostConnection:Disconnect()
- return
- end
- local elapsed = tick() - startTime
- local progress = math.min(elapsed / CONFIG.BoostDuration, 1)
- local easedProgress = EasingFunction(progress, "Cubic", "Out")
- -- Apply boost in specified direction
- local boostForce = direction * (boostSpeed * easedProgress)
- humanoidRootPart.Velocity = boostForce
- if progress >= 1 then
- isCurrentlyBoosting = false
- boostConnection:Disconnect()
- humanoid:ChangeState(Enum.HumanoidStateType.GettingUp)
- end
- end)
- end
- end
- local Players = game:GetService("Players")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- -- Animation references
- local divergentFistANIM = ReplicatedStorage.Animations.Itadori.Variants.DivergentFist1
- local mahitoUltANIM = ReplicatedStorage.Animations.Mahito.Ultimate2
- local cleaveFrANIM = ReplicatedStorage.Animations.Itadori.Cleave
- -- Configurable parameters
- local SWAP_DELAY = 0.01 -- Delay before swapping animations (in seconds)
- local PLAY_DURATION = 0.7 -- Total duration of animation sequence
- -- Prevent multiple triggers
- local isAnimationSequenceActive = false
- local function playAnimationSequence(player)
- -- Ensure we don't trigger multiple times
- if isAnimationSequenceActive then return end
- isAnimationSequenceActive = true
- local character = player.Character
- if not character then return end
- local humanoid = character:FindFirstChildOfClass("Humanoid")
- if not humanoid then return end
- -- Create animation instances
- local animations = {
- mahitoUlt = Instance.new("Animation"),
- cleaveFr = Instance.new("Animation")
- }
- -- Set animation IDs
- animations.mahitoUlt.AnimationId = mahitoUltANIM.AnimationId
- animations.cleaveFr.AnimationId = cleaveFrANIM.AnimationId
- -- Load animations
- local animTracks = {
- mahitoUlt = humanoid:LoadAnimation(animations.mahitoUlt),
- cleaveFr = humanoid:LoadAnimation(animations.cleaveFr)
- }
- -- Stop any existing animations
- for _, track in pairs(humanoid:GetPlayingAnimationTracks()) do
- track:Stop()
- end
- -- Play animation sequence
- task.spawn(function()
- -- Existing animations
- local character = player.Character
- local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
- local lookVector = humanoidRootPart.CFrame.LookVector
- local boostDirection = Vector3.new(lookVector.X, 0, lookVector.Z).Unit
- animTracks.mahitoUlt:Play()
- animTracks.mahitoUlt:AdjustSpeed(1.4)
- ApplyBoost(character, boostDirection, CONFIG.FrontDashBoostSpeed)
- sendChatMessage({
- JP = "YOU are WORTHLESS",
- EN = "YOU are WORTHLESS"
- })
- task.wait(0.32)
- animTracks.mahitoUlt:Stop()
- animTracks.cleaveFr:Play()
- animTracks.cleaveFr.TimePosition = 0.27
- animTracks.cleaveFr:AdjustSpeed(1.12)
- task.wait(0.5)
- animTracks.cleaveFr:Stop()
- -- Reset flag after sequence
- task.wait(PLAY_DURATION)
- isAnimationSequenceActive = false
- -- Stop all animations
- for _, track in pairs(animTracks) do
- track:Stop()
- end
- end)
- end
- -- Event handler for animation played
- local function onAnimationPlayed(animationTrack)
- -- Check if the animation matches Cursed Strike
- if animationTrack.Animation.AnimationId == divergentFistANIM.AnimationId then
- playAnimationSequence(Players.LocalPlayer)
- end
- end
- -- Connect to local player's character
- local player = Players.LocalPlayer
- local character = player.Character or player.CharacterAdded:Wait()
- local humanoid = character:WaitForChild("Humanoid")
- -- Connect animation played event
- humanoid.AnimationPlayed:Connect(onAnimationPlayed)
- -- SKILL 4 --
- local Players = game:GetService("Players")
- local ReplicatedStorage = game:GetService("ReplicatedStorage")
- -- Animation references
- local manjiKickANIM = ReplicatedStorage.Animations.Itadori.ManjiKick
- local hakariCounterANIM = ReplicatedStorage.Animations.Hakari.Counter
- -- Configurable parameters
- local SWAP_DELAY = 0.01 -- Delay before swapping animations (in seconds)
- local PLAY_DURATION = 1.4 -- Total duration of animation sequence
- -- Prevent multiple triggers
- local isAnimationSequenceActive = false
- local function playAnimationSequence(player)
- -- Ensure we don't trigger multiple times
- if isAnimationSequenceActive then return end
- isAnimationSequenceActive = true
- local character = player.Character
- if not character then return end
- local humanoid = character:FindFirstChildOfClass("Humanoid")
- if not humanoid then return end
- -- Create animation instances
- local animations = {
- hakariCounter = Instance.new("Animation")
- }
- -- Set animation IDs
- animations.hakariCounter.AnimationId = hakariCounterANIM.AnimationId
- -- Load animations
- local animTracks = {
- hakariCounter = humanoid:LoadAnimation(animations.hakariCounter)
- }
- -- Stop any existing animations
- for _, track in pairs(humanoid:GetPlayingAnimationTracks()) do
- track:Stop()
- end
- -- Play animation sequence
- task.spawn(function()
- local character = player.Character
- local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
- local rightVector = humanoidRootPart.CFrame.RightVector
- local boostDirection = Vector3.new(rightVector.X, 0, rightVector.Z).Unit
- animTracks.hakariCounter:Play()
- ApplyBoost(character, boostDirection, CONFIG.SideDashBoostSpeed)
- sendChatMessage({
- JP = "YOU MADE IT FROM THE DUMPSTER BEACUSE YOU GOT LUCKY..",
- EN = "YOU MADE IT FROM THE DUMPSTER BEACUSE YOU GOT LUCKY.."
- })
- task.wait(1)
- animTracks.hakariCounter:Stop()
- -- Reset flag after sequence
- task.wait(PLAY_DURATION)
- isAnimationSequenceActive = false
- -- Stop all animations
- for _, track in pairs(animTracks) do
- track:Stop()
- end
- end)
- end
- -- Event handler for animation played
- local function onAnimationPlayed(animationTrack)
- -- Check if the animation matches Cursed Strike
- if animationTrack.Animation.AnimationId == manjiKickANIM.AnimationId then
- playAnimationSequence(Players.LocalPlayer)
- end
- end
- -- Connect to local player's character
- local player = Players.LocalPlayer
- local character = player.Character or player.CharacterAdded:Wait()
- local humanoid = character:WaitForChild("Humanoid")
- -- Connect animation played event
- humanoid.AnimationPlayed:Connect(onAnimationPlayed)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement