Кароче как то так ... Хочешь делай какие то статус бары , ну или на фрейму выводи, в принципи аптайм вконце боя ловит.
Вместо procID = айди бафа , айптайм которого ты хочешь получить.
PHP код:
local procID = 58577
local test = CreateFrame("frame")
test:SetScript("OnEvent", function(self, event, ...)self[event](self, ...)end)
test.combattime = 0
test.proctime = 0
local function isProc()
if UnitBuff("player", select(1, GetSpellInfo(procID))) then
return true
else
return false
end
end
function test:OnUpdate(elapsed)
self.combattime = test.combattime + elapsed
if isProc() then
self.proctime = self.proctime + elapsed
end
end
function test:UNIT_FLAGS(unit)
if unit~="player" then return end
local inCombat = UnitAffectingCombat(unit)
if inCombat then
print(format("|cffFF0000 %s вступает в бой|r", tostring(UnitName(unit))))
self:SetScript("OnUpdate", self.OnUpdate)
else
print(format("|cff00ff11 %s выходит из боя|r", tostring(UnitName(unit))))
print(format("|cff00d2ff Аптайм [%s] = %.2f %s |r", tostring(select(1, GetSpellInfo(procID))), test.proctime/self.combattime*100, "%"))
self:SetScript("OnUpdate", nil)
self.combattime = 0
end
end
test:RegisterEvent("UNIT_FLAGS")
if UnitAffectingCombat("player") then
test:UNIT_FLAGS("player")
end