Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Tool = script.Parent
- local Player = Tool.Parent.Parent
- local Char = Player.Character or Player.CharacterAdded:Wait()
- local Humanoid = Char:WaitForChild("Humanoid")
- local Debounce = {}
- local Combo = {}
- local bvtable = {0,0,0,0,50}
- local HitTimer = {}
- local ResetSpeed = {}
- Tool.Activated:Connect(function()
- if Humanoid:GetState() == Enum.HumanoidStateType.Freefall then return end
- if Debounce[Player] then return end
- Debounce[Player] = true
- if not Combo[Player] then Combo[Player] = 0 end
- Combo[Player] += 1
- local Hit1 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit1)
- local Hit2 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit2)
- local Hit3 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit3)
- local Hit4 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit4)
- local Hit5 = Humanoid:LoadAnimation(game.ReplicatedStorage.Animations.Hit5)
- local Eyes = Char.HumanoidRootPart.CFrame.LookVector
- local Distance = 4.5
- local GeneralWaitTIme = .4
- local OverallWait = 2.1
- local RayCastPara = RaycastParams.new()
- RayCastPara.FilterDescendantsInstances = {Char}
- RayCastPara.FilterType = Enum.RaycastFilterType.Blacklist
- local RayHitBox = workspace:Raycast((Char.HumanoidRootPart.CFrame).p, Eyes * Distance, RayCastPara)
- local function resetSpeed(Hum: Humanoid)
- if ResetSpeed[Player] then
- return
- end
- ResetSpeed[Player] = game["Run Service"].Heartbeat:Connect(function()
- if tick() - HitTimer[Player] < 1 then return end
- Hum.WalkSpeed = 16
- Hum.JumpPower = 50
- ResetSpeed[Player]:Disconnect()
- ResetSpeed[Player] = nil
- end)
- end
- local function Speed()
- HitTimer[Player] = tick()
- RayHitBox.Instance.Parent:FindFirstChild("Humanoid").WalkSpeed = 0
- RayHitBox.Instance.Parent:FindFirstChild("Humanoid").JumpPower = 0
- resetSpeed(RayHitBox.Instance.Parent.Humanoid)
- end
- local function Hitbox()
- if RayHitBox then
- if RayHitBox.Instance and RayHitBox.Instance.Parent:FindFirstChild("Humanoid") then
- if Combo[Player] then
- local BV = Instance.new("BodyVelocity",RayHitBox.Instance.Parent:FindFirstChild("HumanoidRootPart"))
- BV.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
- BV.Velocity = Char.HumanoidRootPart.CFrame.LookVector * bvtable[Combo[Player]]
- RayHitBox.Instance.Parent.Humanoid:TakeDamage(5)
- game.Debris:AddItem(BV,.5)
- Speed()
- end
- end
- end
- end
- if Combo[Player] == 1 then
- Hit1:Play()
- Hitbox()
- wait(GeneralWaitTIme)
- end
- if Combo[Player] == 2 then
- Hit2:Play()
- Hitbox()
- wait(GeneralWaitTIme)
- end
- if Combo[Player] == 3 then
- Hit3:Play()
- Hitbox()
- wait(GeneralWaitTIme)
- end
- if Combo[Player] == 4 then
- Hit4:Play()
- Hitbox()
- wait(GeneralWaitTIme)
- end
- if Combo[Player] == 5 then
- Hit5:Play()
- Hitbox()
- wait(OverallWait)
- Combo[Player] = 0
- end
- Debounce[Player] = nil
- end)
Advertisement
Advertisement