Advertisement
SxScripting

Mana Bar Script [Revamp!]

Apr 13th, 2021
2,743
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. local ManaEvent = game.ReplicatedStorage.ManaEvent
  2. local RunService = game:GetService("RunService")
  3. local Debounce = {}
  4. local Debounce2 = {}
  5.  
  6. game.Players.PlayerAdded:Connect(function(Player)
  7. repeat wait() until Player.Character
  8.  
  9. local DataFolder = Instance.new("Folder", Player)
  10. DataFolder.Name = "DataFolder"
  11.  
  12. local MaxMana = Instance.new("NumberValue",DataFolder)
  13. MaxMana.Name = "MaxMana"
  14. MaxMana.Value = 100
  15.  
  16. local Mana = Instance.new("NumberValue", DataFolder)
  17. Mana.Name = "Mana"
  18. Mana.Value = 0
  19.  
  20. local FullCharge = Instance.new("NumberValue",DataFolder)
  21. FullCharge.Name = "FullCharge"
  22. FullCharge.Value = 100
  23.  
  24. Mana.Changed:Connect(function()
  25. if Mana.Value < 0 then
  26. Mana.Value = 0
  27. end
  28.  
  29. if Mana.Value > 100 then
  30. Mana.Value = 100
  31. Debounce[Player] = nil
  32. end
  33. end)
  34.  
  35. FullCharge.Changed:Connect(function()
  36. Debounce[Player] = nil
  37. if FullCharge.Value > 100 then
  38. FullCharge.Value = 100
  39. end
  40. end)
  41. end)
  42.  
  43. ManaEvent.OnServerEvent:Connect(function(Player, IsKeyDown)
  44. Debounce[Player] = IsKeyDown
  45. end)
  46.  
  47. RunService.Heartbeat:Connect(function(dt)
  48. for _,Player in pairs(game.Players:GetPlayers()) do
  49. local Mana = Player.DataFolder.Mana
  50. local MaxMana = Player.DataFolder.MaxMana
  51. local FullCharge = Player.DataFolder.FullCharge
  52.  
  53. if Debounce[Player] then
  54. Mana.Value += math.clamp(.6 + (FullCharge.Value * (1.85/1000)),.25,100)
  55. else
  56. Mana.Value -= 0.25 + (FullCharge.Value * (1.85/1000))
  57. end
  58. if Mana.Value == MaxMana.Value then
  59. if not Debounce2[Player] then
  60. Debounce2[Player] = true
  61. FullCharge.Value = FullCharge.Value + .1
  62. end
  63. else
  64. Debounce2[Player] = nil
  65. end
  66. local ManaGUI = Player.PlayerGui:WaitForChild("ScreenGui").BackFrame.Overlay
  67. ManaGUI:TweenSize(UDim2.new(1, 0,-(Mana.Value/MaxMana.Value),0), "In", "Sine", .1)
  68. end
  69. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement