Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- [[ Client Script ]] --
- wait(5)
- -- [[ Services
- local UIS = game:GetService('UserInputService')
- -- [[ Variables
- local plr = game.Players.LocalPlayer
- local Char = plr.Character or plr.CharacterAdded:Wait()
- local Hum = Char.Humanoid
- local Mouse = plr:GetMouse()
- local AF = script.CombatAnims
- local HAF = script.HeavyCombatAnims
- -- [[ Settings
- local OnCooldown = false
- local Combo = 0
- local AirCombo = 0
- local HeavyCombo = 0
- local CanUseCombat = plr:WaitForChild('SecretStats').CanUseCombat
- local rdyForAirCombo = false
- local CanDoHeavy = true
- local CanDoRegular = true
- -- [[ Sounds
- local Hit = script.SwingFist
- -- [[ Tables
- local Anims = {
- [1] = Hum:LoadAnimation(AF.RightPunch), -- Right Punch
- [2] = Hum:LoadAnimation(AF.LeftPunch), -- Left Punch
- [3] = Hum:LoadAnimation(AF.PunchUp), -- Stomac Punch
- [4] = Hum:LoadAnimation(AF.KnockBack), -- Knockback Kick
- }
- local HeavyCombatAnims = {
- [1] = Hum:LoadAnimation(HAF.Hit1), -- first attack
- [2] = Hum:LoadAnimation(HAF.Hit2), -- second attack
- [3] = Hum:LoadAnimation(HAF.Hit3), -- tird attack
- [4] = Hum:LoadAnimation(HAF.Hit4), -- forth attack
- }
- -- [[ Remotes
- local StopRunningRemote = game.ReplicatedStorage.PlayerMainSystems.CombatSystem.Remotes.StopRunning
- local CombatRemote = game.ReplicatedStorage.PlayerMainSystems.CombatSystem.Remotes.Punched
- local HeavyCombatRemote = game.ReplicatedStorage.PlayerMainSystems.CombatSystem.Remotes.HeavyPunched
- -- Regular Combat
- Mouse.button1Down:Connect(function() -- when mouse is clicked
- if OnCooldown == false and CanUseCombat.Value == true and AirCombo == 0 and CanDoRegular == true then
- OnCooldown = true
- CanDoHeavy = false
- HeavyCombo = 0
- Combo = Combo + 1
- Anims[Combo]:Play()
- local Sound = Hit:Clone()
- Sound.Parent = Char.HumanoidRootPart
- Sound:Play()
- game.Debris:AddItem(Sound, .5)
- StopRunningRemote:FireServer()
- CombatRemote:FireServer(Char, Combo)
- wait(.4)
- Anims[Combo]:Stop()
- local newCombo = Combo
- local Xd = coroutine.create(function()
- if wait(.35) and Combo == newCombo then
- Combo = 0
- elseif Combo == 3 then
- rdyForAirCombo = true
- if wait(.35) and AirCombo == 1 then
- rdyForAirCombo = false
- end
- end
- end)
- local p = coroutine.create(function()
- if Combo == 1 then
- HeavyCombo = 1
- elseif Combo == 2 then
- HeavyCombo = 2
- elseif Combo == 3 then
- HeavyCombo = 3
- elseif Combo == 4 then
- HeavyCombo = 0
- end
- end)
- coroutine.resume(Xd)
- coroutine.resume(p)
- if Combo == 4 then
- OnCooldown = true
- Combo = 0
- HeavyCombo = 0
- wait(2)
- OnCooldown = false
- CanDoHeavy = true
- else
- OnCooldown = false
- CanDoRegular = true
- CanDoHeavy = true
- end
- end
- end)
- -- Heavy Combat
- Mouse.Button2Down:Connect(function()
- if OnCooldown == false and CanUseCombat.Value == true and AirCombo == 0 and CanDoHeavy == true then
- OnCooldown = true
- CanDoRegular = false
- Combo = 0
- HeavyCombo = HeavyCombo + 1
- HeavyCombatAnims[HeavyCombo]:Play()
- local Sound = Hit:Clone()
- Sound.Parent = Char.HumanoidRootPart
- Sound:Play()
- game.Debris:AddItem(Sound, .5)
- StopRunningRemote:FireServer()
- HeavyCombatRemote:FireServer(Char, HeavyCombo)
- wait(1)
- HeavyCombatAnims[HeavyCombo]:Stop()
- local newCombo = HeavyCombo
- local Xd = coroutine.create(function()
- if wait(.35) and HeavyCombo == newCombo then
- HeavyCombo = 0
- elseif HeavyCombo == 3 then
- rdyForAirCombo = true
- if wait(.35) and AirCombo == 1 then
- rdyForAirCombo = false
- end
- end
- end)
- coroutine.resume(Xd)
- OnCooldown = false
- CanDoRegular = true
- if HeavyCombo == 4 then
- OnCooldown = true
- HeavyCombo = 0
- Combo = 0
- wait(2)
- OnCooldown = false
- CanDoHeavy = true
- else
- OnCooldown = false
- CanDoRegular = true
- CanDoHeavy = true
- end
- end
- end)
- -- Air Combat
- UIS.InputBegan:Connect(function(input, IsTyping)
- if input.KeyCode == Enum.KeyCode.Space and rdyForAirCombo == true and OnCooldown == false and AirCombo == 0 then
- if IsTyping then return end
- if AirCombo ~= 0 then end
- print('working')
- AirCombo = AirCombo + 1
- wait(.4)
- AirCombo = 0
- HeavyCombo = 0
- Combo = 0
- end
- end)
- -- [[ Server script ]] --
- wait(5)
- -- [[ Modules
- local RagdollModule = require(game.ReplicatedStorage.Modules.RagdollKnock)
- -- [[ Variables
- local RemotesFolder = game.ReplicatedStorage.PlayerMainSystems.CombatSystem.Remotes
- local Audio = script.Punched3
- local HeavyAudio = script.Slam
- -- [[ Remotes
- local PunchR = RemotesFolder.Punched
- local StopRunning = RemotesFolder.StopRunning
- local XpForHit = RemotesFolder.CombatExpForHit
- local HeavyPunchR = RemotesFolder.HeavyPunched
- local HitCombo = RemotesFolder.HitCombo
- PunchR.OnServerEvent:Connect(function(plr, Char, Combo)
- -- [ Variables
- local Stats = plr:WaitForChild('SecretStats')
- local HEF = script.RegularHitEffect
- -- [ Settings
- local CombatDamage = Stats.combatDamage
- local CombatXp = Stats.CombatXp
- local hitBox = Instance.new('Part')
- hitBox.Parent = workspace
- hitBox.CFrame = Char.HumanoidRootPart.CFrame * CFrame.new(0, 0, -2.75)
- hitBox.Anchored = true
- hitBox.CanCollide = false
- hitBox.Massless = true
- hitBox.Size = Vector3.new(2.5, 2.5, 2.5)
- hitBox.Transparency = .5
- game.Debris:AddItem(hitBox, .25)
- -- Movement Section
- local CBV = Instance.new('BodyVelocity', Char.HumanoidRootPart)
- CBV.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
- CBV.Velocity = Char.HumanoidRootPart.CFrame.LookVector * 4.25
- game.Debris:AddItem(CBV, .15)
- -- When HitBox Is Touched by enemie
- hitBox.Touched:Connect(function(hit)
- if hit.Parent:findFirstChild('Humanoid') and hit.Parent ~= Char and hit.Parent:FindFirstChild('WasHit') == nil and hit.Parent:findFirstChild('Invis') == nil then
- -- | Variables | --
- local Enemie = hit.Parent
- local EmieHum = Enemie.Humanoid
- -- | Animations | --
- local HitAnims = {
- [1] = EmieHum:LoadAnimation(HEF.RHE), -- Right Hit
- [2] = EmieHum:LoadAnimation(HEF.LHE), -- Left Hit
- [3] = EmieHum:LoadAnimation(HEF.SHE), -- Stomac Hit
- [4] = EmieHum:LoadAnimation(HEF.KbHE), -- Knockback Hit
- }
- local lolz = coroutine.create(function()
- if game.Players:findFirstChild(Enemie.Name) then
- local EnemiePlr = game.Player:findFirstChild(Enemie.Name)
- local CanUseCombat = EnemiePlr.SecretStats.CanUseCombat
- CanUseCombat = false
- wait(.45)
- CanUseCombat = true
- end
- end)
- coroutine.resume(lolz)
- local WasHit = Instance.new('BoolValue', Enemie)
- WasHit.Name = 'WasHit'
- game.Debris:AddItem(WasHit, .4)
- local HitAudio = Audio:Clone()
- HitAudio.Parent = hit.Parent.HumanoidRootPart
- HitAudio:Play()
- game.Debris:AddItem(HitAudio, .5)
- EmieHum:TakeDamage(CombatDamage.Value)
- HitAnims[Combo]:Play()
- local trash = coroutine.create(function()
- if Combo < 4 then
- local EnemieBv = Instance.new('BodyVelocity', Enemie.HumanoidRootPart)
- EnemieBv.MaxForce = Vector3.new(1e10, 1e10, 1e10)
- EnemieBv.Velocity = Char.HumanoidRootPart.CFrame.LookVector * 7.5
- game.Debris:AddItem(EnemieBv, .15)
- elseif Combo == 4 then
- local EnemieBv2 = Instance.new('BodyVelocity', Enemie.HumanoidRootPart)
- EnemieBv2.MaxForce = Vector3.new(1e10, 1e10, 1e10)
- EnemieBv2.Velocity = Char.HumanoidRootPart.CFrame.LookVector * 35
- game.Debris:AddItem(EnemieBv2, .15)
- RagdollModule.Toggle(Enemie, 'On')
- wait(1.5)
- RagdollModule.Toggle(Enemie, 'Off')
- end
- end)
- coroutine.resume(trash)
- wait(.4)
- HitAnims[Combo]:Stop()
- end
- end)
- end)
- HeavyPunchR.OnServerEvent:Connect(function(plr, Char, Combo)
- -- [ Variables
- local Stats = plr:WaitForChild('SecretStats')
- local HEF = script.RegularHitEffect
- -- [ Settings
- local CombatDamage = Stats.combatDamage
- local CombatXp = Stats.CombatXp
- local hitBox = Instance.new('Part')
- hitBox.Parent = workspace
- hitBox.CFrame = Char.HumanoidRootPart.CFrame * CFrame.new(0, 0, -2.75)
- hitBox.Anchored = true
- hitBox.CanCollide = false
- hitBox.Massless = true
- hitBox.Size = Vector3.new(2.5, 2.5, 2.5)
- hitBox.Transparency = .5
- game.Debris:AddItem(hitBox, .25)
- -- Movement Section
- local CBV = Instance.new('BodyVelocity', Char.HumanoidRootPart)
- CBV.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
- CBV.Velocity = Char.HumanoidRootPart.CFrame.LookVector * 4.25
- game.Debris:AddItem(CBV, .15)
- local Hit = {}
- hitBox.Touched:Connect(function(hit)
- if hit.Parent:findFirstChild('Humanoid') and hit.Parent ~= Char and hit.Parent:FindFirstChild('WasHit') == nil and hit.Parent:findFirstChild('Invis') == nil then
- -- | Variables | --
- local Enemie = hit.Parent
- local EmieHum = Enemie.Humanoid
- -- | Animations | --
- local HitAnims = {
- [1] = EmieHum:LoadAnimation(HEF.RHE), -- Right Hit
- [2] = EmieHum:LoadAnimation(HEF.LHE), -- Left Hit
- [3] = EmieHum:LoadAnimation(HEF.SHE), -- Stomac Hit
- [4] = EmieHum:LoadAnimation(HEF.KbHE), -- Knockback Hit
- }
- if game.Players:findFirstChild(Enemie.Name) then
- local EnemiePlr = game.Player:findFirstChild(Enemie.Name)
- local CanUseCombat = EnemiePlr.SecretStats.CanUseCombat
- CanUseCombat = false
- wait(.45)
- CanUseCombat = true
- end
- local shockwave = game.ReplicatedStorage.PlayerMainSystems.CombatSystem.Effects.BigHitShockwave:Clone()
- shockwave.Parent = workspace
- shockwave.CFrame = Char.HumanoidRootPart.CFrame * CFrame.new(0,0,-2.5)
- game.Debris:AddItem(shockwave, .5)
- local HeavyHitAudio = HeavyAudio:Clone()
- HeavyHitAudio.Parent = hit.Parent.HumanoidRootPart
- HeavyHitAudio:Play()
- game.Debris:AddItem(HeavyHitAudio, .5)
- local lll = coroutine.create(function()
- for i = 1, 10 do
- wait()
- shockwave.Transparency = shockwave.Transparency + .1
- shockwave.CFrame = shockwave.CFrame * CFrame.new(0,0,-.25)
- end
- end)
- coroutine.resume(lll)
- local WasHit = Instance.new('BoolValue', Enemie)
- WasHit.Name = 'WasHit'
- game.Debris:AddItem(WasHit, .4)
- EmieHum:TakeDamage(CombatDamage.Value + 1)
- HitAnims[Combo]:Play()
- if Combo < 4 then
- local EnemieBv = Instance.new('BodyVelocity', Enemie.HumanoidRootPart)
- EnemieBv.MaxForce = Vector3.new(1e10, 1e10, 1e10)
- EnemieBv.Velocity = Char.HumanoidRootPart.CFrame.LookVector * 12.5
- game.Debris:AddItem(EnemieBv, .15)
- wait(.4)
- HitAnims[Combo]:Stop()
- elseif Combo == 4 then
- local EnemieBv2 = Instance.new('BodyVelocity', Enemie.HumanoidRootPart)
- EnemieBv2.MaxForce = Vector3.new(1e10, 1e10, 1e10)
- EnemieBv2.Velocity = Char.HumanoidRootPart.CFrame.LookVector * 50
- game.Debris:AddItem(EnemieBv2, .15)
- RagdollModule.Toggle(Enemie, 'On')
- wait(1.5)
- RagdollModule.Toggle(Enemie, 'Off')
- wait(.4)
- HitAnims[Combo]:Stop()
- end
- end
- end)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement