
Сообщение от
Wbtest2
Лучше как то так:
PHP код:
local ipairs = ipairs;
local UnitHealth = UnitHealth;
local UnitHealthMax = UnitHealthMax;
local math_ceil = math.ceil;
local TSB_CDNV = TextStatusBar_CapDisplayOfNumericValue;
local FrameList = {"Player", "Target", "Focus"};
hooksecurefunc("TextStatusBar_UpdateTextString", function()
for index, UnitID in ipairs(FrameList) do
local Health = UnitHealth(UnitID);
local HealthMax = UnitHealthMax(UnitID);
local HealthPercent = math_ceil(Health / HealthMax * 100);
_G[UnitID.."FrameHealthBar"].TextString:SetText(TSB_CDNV(Health).." ("..HealthPercent.."%)");
end;
end)
Близко, но зачем циклы? =)
PHP код:
hooksecurefunc("TextStatusBar_UpdateTextString", function(self)
local min, text = self.currValue, self.TextString
if text and min then
local _, max = self:GetMinMaxValues()
text:SetFormattedText("%s - %d%s" , min>=1e4 and ('%.1fk'):format(min/1e3):gsub('%.?0+([km])$','%1') or min, min/max*100, "%")
end
end)