ITS_SELINASOON

aodkaowkdoawkd

Jun 24th, 2022
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.06 KB | None | 0 0
  1. local HealthFrame = script.Parent
  2. local CurrentHealth = HealthFrame.CurrentHealth
  3. local HealthLabel = HealthFrame.HealthLabel
  4.  
  5. local RedVignette = HealthFrame.Parent.RedVignette
  6.  
  7. local Players = game:GetService("Players")
  8. local Player = Players.LocalPlayer
  9. local Character = nil
  10. local Connection = nil
  11.  
  12. local LastPercentage = 0
  13.  
  14. local function SetHealthGuiTransparency(n : number)
  15.     CurrentHealth.Transparency = n
  16. end
  17.  
  18. local function UpdateHealthLabel(CurrentHealth : number , CurrentMaxHealth : number, HealthPercentage : number)
  19.     HealthLabel.Text = math.max(0,CurrentHealth) .. " / " .. CurrentMaxHealth .. "    [" .. string.sub(tostring(HealthPercentage),1,6) .. "%]"
  20. end
  21.  
  22. local function SetToDiedText()
  23.     HealthLabel.Text = "Died"
  24. end
  25.  
  26. local function SetCurrentHealthGuiSize(udim2 : UDim2)
  27.     CurrentHealth:TweenSize(udim2,Enum.EasingDirection.InOut,Enum.EasingStyle.Linear,0.05,true)
  28. end
  29.  
  30. local function EnableRedVignette(time : number)
  31.     RedVignette.Visible = true
  32.     task.wait(time)
  33.     RedVignette.Visible = false
  34. end
  35.  
  36. local function Update(health : number)
  37.     if not Character then
  38.         warn("No character")
  39.         return
  40.     end
  41.    
  42.     local Health = Character.Humanoid.Health
  43.     local MaxHealth = Character.Humanoid.MaxHealth
  44.    
  45.     local NewSize = math.max(0,Health / MaxHealth)
  46.     local HealthPercentage = NewSize * 100
  47.    
  48.     SetCurrentHealthGuiSize(UDim2.new(NewSize,0,1,0))
  49.     UpdateHealthLabel(Health,MaxHealth,HealthPercentage)
  50.    
  51.     if NewSize == 0 then
  52.         SetHealthGuiTransparency(1)
  53.     else
  54.         SetHealthGuiTransparency(0)
  55.     end
  56.    
  57.     if LastPercentage < HealthPercentage == false then
  58.         if Health <= 0 then
  59.             SetToDiedText()
  60.         else
  61.             EnableRedVignette(0.05)
  62.         end
  63.     end
  64.    
  65.     LastPercentage = HealthPercentage
  66. end
  67.  
  68. local function UpdateCharacter()
  69.     Character = Player.Character or Player.CharacterAdded:Wait()
  70.    
  71.     if Connection then
  72.         Connection:Disconnect()
  73.         Connection = nil
  74.     end
  75.    
  76.     Connection = Character:WaitForChild("Humanoid").HealthChanged:Connect(Update)
  77.    
  78.     Update()
  79. end
  80.  
  81. local function Init()
  82.     Player.CharacterAdded:Connect(UpdateCharacter)
  83. end
  84.  
  85. Init()
  86.  
Advertisement
Add Comment
Please, Sign In to add comment