Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local HealthFrame = script.Parent
- local CurrentHealth = HealthFrame.CurrentHealth
- local HealthLabel = HealthFrame.HealthLabel
- local RedVignette = HealthFrame.Parent.RedVignette
- local Players = game:GetService("Players")
- local Player = Players.LocalPlayer
- local Character = nil
- local Connection = nil
- local LastPercentage = 0
- local function SetHealthGuiTransparency(n : number)
- CurrentHealth.Transparency = n
- end
- local function UpdateHealthLabel(CurrentHealth : number , CurrentMaxHealth : number, HealthPercentage : number)
- HealthLabel.Text = math.max(0,CurrentHealth) .. " / " .. CurrentMaxHealth .. " [" .. string.sub(tostring(HealthPercentage),1,6) .. "%]"
- end
- local function SetToDiedText()
- HealthLabel.Text = "Died"
- end
- local function SetCurrentHealthGuiSize(udim2 : UDim2)
- CurrentHealth:TweenSize(udim2,Enum.EasingDirection.InOut,Enum.EasingStyle.Linear,0.05,true)
- end
- local function EnableRedVignette(time : number)
- RedVignette.Visible = true
- task.wait(time)
- RedVignette.Visible = false
- end
- local function Update(health : number)
- if not Character then
- warn("No character")
- return
- end
- local Health = Character.Humanoid.Health
- local MaxHealth = Character.Humanoid.MaxHealth
- local NewSize = math.max(0,Health / MaxHealth)
- local HealthPercentage = NewSize * 100
- SetCurrentHealthGuiSize(UDim2.new(NewSize,0,1,0))
- UpdateHealthLabel(Health,MaxHealth,HealthPercentage)
- if NewSize == 0 then
- SetHealthGuiTransparency(1)
- else
- SetHealthGuiTransparency(0)
- end
- if LastPercentage < HealthPercentage == false then
- if Health <= 0 then
- SetToDiedText()
- else
- EnableRedVignette(0.05)
- end
- end
- LastPercentage = HealthPercentage
- end
- local function UpdateCharacter()
- Character = Player.Character or Player.CharacterAdded:Wait()
- if Connection then
- Connection:Disconnect()
- Connection = nil
- end
- Connection = Character:WaitForChild("Humanoid").HealthChanged:Connect(Update)
- Update()
- end
- local function Init()
- Player.CharacterAdded:Connect(UpdateCharacter)
- end
- Init()
Advertisement
Add Comment
Please, Sign In to add comment