Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Local Stuff
- local skillOne = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Cursed Strikes'].ItemName
- local skillTwo = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Crushing Blow'].ItemName
- local skillThree = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Divergent Fist'].ItemName
- local skillThreeTip = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Divergent Fist'].Tip
- local skillFour = game.Players.LocalPlayer.PlayerGui.Main.Moveset['Manji Kick'].ItemName
- local ultTitle = game.Players.LocalPlayer.PlayerGui.Main.Ultimate.Title
- local UIGradientCustom = game.Players.LocalPlayer.PlayerGui.Main.Ultimate.Bar.Fill.UIGradient
- --Gradient
- UIGradientCustom.Color = ColorSequence.new(Color3.fromRGB(0, 0, 0), Color3.fromRGB(0, 0, 0))
- --Skill names
- skillOne.Text = "Dribble Combo"
- skillTwo.Text = "Double Dribble"
- skillThree.Text = "Rushing Foul"
- skillThreeTip.Text = "Twice to Shoot"
- skillFour.Text = "Chromatic Rebound"
- ultTitle.Text = "B- B- Boom"
- -- 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.Mahito.WideStrike
- local overLuckANIM = ReplicatedStorage.Animations.Hakari.OverLuck
- -- 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
- -- Define messages for different languages
- local messages = {
- Skill1 = {
- JP = "Dribble",
- EN = "Dribble"
- },
- Skill2 = {
- JP = "これは本当に不公平ですよね? (This isn't really fair, Is it?)",
- EN = "BOOM BOOM"
- },
- Skill3 = {
- JP = "チキチータ、夢はある? (Chiquitita, You have a dream?)",
- EN = "Not a foul Btw"
- },
- Skill4 = {
- JP = "良かったね、チキチータ! (Good one, Chiquitita!)",
- EN = "Pass!"
- }
- }
- -- Select the appropriate message based on language
- local languageMessage = CONFIG.Language or "JP"
- local finalMessage = type(message) == "table"
- and (message[languageMessage] or message.JP)
- or message
- -- FE-compatible chat method
- local args = {
- [1] = finalMessage,
- [2] = "All"
- }
- -- Try different chat methods to ensure compatibility
- pcall(function()
- game.ReplicatedStorage.DefaultChatSystemChatEvents.SayMessageRequest:FireServer(unpack(args))
- end)
- pcall(function()
- ChatService:Chat(Players.LocalPlayer.Character, finalMessage, Enum.ChatColor.White)
- end)
- 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 = {
- wideStrike = Instance.new("Animation"),
- overLuck = 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 = "チチチチキチタチ!",
- EN = "Dribble Dribble"
- })
- 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 = "公平にプレイする必要はありません。",
- EN = "You don't have to play fair!"
- })
- 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 = "チキチータ..夢はありますか?",
- EN = "Chiquitita.. You have a dream?"
- })
- 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 = "チキチータ..",
- EN = "LEBROOOOOOON"
- })
- 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