For some reason i cant post on the EU forums and ask over there. Is anyone able to edit this script to still show character frame whenever health is NOT full? then fade out when full health is reached? Thank you!
local animationTimeSeconds = 0.15 --amount of seconds it takes to make a frame visible/invisible.
local f = CreateFrame(“Frame”)
local f2 = CreateFrame(“Frame”);
local f3 = CreateFrame(“Frame”);
f:RegisterEvent(“PLAYER_TARGET_CHANGED”) – Run code when player’s target changed
f2:RegisterEvent(“PLAYER_REGEN_DISABLED”) --player entered combat
f3:RegisterEvent(“PLAYER_REGEN_ENABLED”)–player left combat
local override = false;
local animating = false;
local main = function(self, event, …) --target changed event
if (DropDownList1Button2ExpandArrow:GetRight() == nil) then --init mouse menu
PlayerFrame:Click(“RightButton”);
DropDownList1Button16:Click();
DropDownList1:SetScript(“OnShow”, --keep mouse menu hidden when player frame is hidden
function()
if(PlayerFrame:GetAlpha() == 0) then
DropDownList1:Hide();
end
end)
end
if(UnitName(“target”) == nil or UnitName(“target”) == UnitName(“player”)) then --if player has no target
fadeOut(TargetFrame)
fadeOut(TargetFrameToT)
if (not override) then
fadeOut(PlayerFrame)
end
else --if player has target
fadeIn(PlayerFrame)
fadeIn(TargetFrame)
fadeIn(TargetFrameToT)
end
end
f:SetScript(“OnEvent”, main)
C_Timer.NewTicker(0.25, function()
if (PlayerFrame:IsMouseOver()) then
override = true;
fadeIn(PlayerFrame);
else
override = false;
if (UnitName(“target”) == nil or UnitName(“target”) == UnitName(“player”)) then
fadeOut(PlayerFrame);
end
end
end)
f2:SetScript(“OnEvent”, function(self, event, …)
fadeIn(PlayerFrame)
end)
f3:SetScript(“OnEvent”, function(self, event, …)
if(not override and (UnitName(“target”) == nil or UnitName(“target”) == UnitName(“player”))) then
fadeOut(PlayerFrame)
end
end)
PlayerFrame:SetAlpha(0) --hide frames when client loads
TargetFrame:SetAlpha(0)
TargetFrameToT:SetAlpha(0)
DropDownList1:Hide();
function fadeIn(frame)
if (frame:GetAlpha() < 1 and not animating) then
animating = true;
local ticker = C_Timer.NewTicker(animationTimeSeconds / 10, function()
frame:SetAlpha(frame:GetAlpha()+0.1)
end, 10)
animating = false;
end
end
function fadeOut(frame)
if (frame:GetAlpha() > 0 and not animating) then
animating = true;
local ticker = C_Timer.NewTicker(animationTimeSeconds / 10, function()
frame:SetAlpha(frame:GetAlpha()-0.1)
end, 10)
animating = false;
end
end
ALL CREDIT TO @GRIMMJ for original script