Guest User

Untitled

a guest
Nov 19th, 2024
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.19 KB | Source Code | 0 0
  1. local ReplicatedStorage = game:GetService("ReplicatedStorage")
  2. local Players = game:GetService("Players")
  3.  
  4. local Events = ReplicatedStorage.Events
  5.  
  6. local AttackHitboxes = require(script.Parent.Modules.AttackHitboxes)
  7. local CharacterConfigurations = require(ReplicatedStorage.SharedModules.Configurations.CharacterConfigurations)
  8.  
  9. local ClickAttackDebounces = {}
  10.  
  11. local StarterGUI = game:GetService("StarterGui")
  12.  
  13. local axolButton = StarterGUI.MainGui.CharacterFrame.ScrollingFrame.AxolCharButton
  14.  
  15.  
  16.  
  17. local function EquipCharacter(Player, CharacterName)
  18.     local Values = Player:WaitForChild("Values")
  19.     Values.Character.Value = CharacterName
  20.    
  21.     local CharacterData = nil
  22.    
  23.     for _, v in CharacterConfigurations do
  24.         if v.CharacterName == CharacterName then
  25.             CharacterData = v
  26.             break
  27.         end
  28.     end
  29.    
  30.     Events.EquipCharacterClient:FireClient(Player, CharacterData)
  31. end
  32.  
  33. local function PlayerAdded(Player)
  34.     Player.CharacterAdded:Connect(function(Character)
  35.         task.wait(1)
  36.         EquipCharacter(Player, "Beanz")
  37.         print("Loaded!")
  38.     end)
  39. end
  40.  
  41. Events.ClickAttack.OnServerEvent:Connect(function(Player)
  42.     local Character = Player.Character
  43.     if Character == nil then
  44.         return
  45.     end
  46.     local Humanoid = Character:FindFirstChild("Humanoid")
  47.     if Humanoid == nil then
  48.         return
  49.     end
  50.     if Humanoid.Health <= 0 then
  51.         return
  52.     end
  53.     if ClickAttackDebounces[Player] then
  54.         return
  55.     end
  56.    
  57.     ClickAttackDebounces[Player] = true
  58.     local PunchCombo = Player.Values.PunchCombo
  59.     local Animation = script.PunchAnimationCycle[tostring(PunchCombo.Value)]
  60.     local LoadedPunchAnimation = Humanoid.Animator:LoadAnimation(Animation)
  61.     LoadedPunchAnimation:Play()
  62.    
  63.     if PunchCombo.Value >= #script.PunchAnimationCycle:GetChildren() then
  64.         PunchCombo.Value = 1
  65.     else
  66.         PunchCombo.Value += 1
  67.     end
  68.    
  69.     AttackHitboxes.CreateHitbox(Character, Vector3.new(9,9,5), 5, true)
  70.    
  71.     task.wait(LoadedPunchAnimation.Length + 0.1)
  72.     if ClickAttackDebounces[Player] then
  73.         ClickAttackDebounces[Player] = nil
  74.     end
  75. end)
  76.  
  77. Events.Block.OnServerEvent:Connect(function(Player, Value)
  78.     local Character = Player.Character
  79.     if Character == nil then
  80.         return
  81.     end
  82.     local Humanoid = Character:FindFirstChild("Humanoid")
  83.     if Humanoid == nil then
  84.         return
  85.     end
  86.     if Humanoid.Health <= 0 then
  87.         return
  88.     end
  89.     if ClickAttackDebounces[Player] then
  90.         return
  91.     end
  92.     if not Value then
  93.         local LoadedAnimations = Humanoid.Animator:GetPlayingAnimationTracks()
  94.         for _, v in LoadedAnimations do
  95.             if v.Name == "Block" then
  96.                 v:Stop()
  97.             end
  98.         end
  99.         if Character:FindFirstChild("Blocking") then
  100.             Character.Blocking:Destroy()
  101.         end
  102.     else
  103.         local BlockAnimation = Humanoid.Animator:LoadAnimation(script.Animations.Block)
  104.         BlockAnimation:Play()
  105.         local Blocking = Instance.new("StringValue")
  106.         Blocking.Name = "Blocking"
  107.         Blocking.Parent = Character
  108.     end
  109. end)
  110.  
  111. Events.SpecialAttack.OnServerInvoke = function(Player, AttackNumber)
  112.     local PlayerCharacter = Player.Values.Character.Value
  113.     local Result = require(script.Characters[PlayerCharacter][tostring(AttackNumber)]).AttackFunction(Player)
  114.     return Result
  115. end
  116.  
  117. Players.PlayerAdded:Connect(PlayerAdded)
  118.  
  119. for _, v in Players:GetPlayers() do
  120.     task.spawn(function()
  121.         PlayerAdded(v)
  122.     end)
  123. end
Tags: Roblox
Advertisement
Add Comment
Please, Sign In to add comment