54 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
--COMBAT_LOG_EVENT_UNFILTERED UPDATE REMOVE PLAYER_ALIVE
 | 
						|
function(e, ...)
 | 
						|
	if e == "COMBAT_LOG_EVENT_UNFILTERED" then
 | 
						|
		local se = select(2, ...)
 | 
						|
		if se == "UNIT_DIED" then
 | 
						|
			local name = select(9, ...)
 | 
						|
			if name:match(aura_env.farmanimal) then
 | 
						|
				local date = date()
 | 
						|
				local h, m, s = date:match("%w+ %w+ %d* (%d*)%:(%d*)%:(%d*)") or 0, 0, 0
 | 
						|
				WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal][#WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] + 1] = {["h"] = h, ["m"] = m, ["s"] = s}
 | 
						|
				WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count = WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count + 1
 | 
						|
				return true
 | 
						|
			end
 | 
						|
		end
 | 
						|
	elseif e == "UPDATE" then
 | 
						|
		return true
 | 
						|
	elseif e == "REMOVE" then
 | 
						|
		for i = 1, #WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] do
 | 
						|
			WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal][i] = nil
 | 
						|
		end
 | 
						|
		return true
 | 
						|
	elseif e == "PLAYER_ALIVE" and IsInInstance() == false then
 | 
						|
		ResetInstances()
 | 
						|
		return true
 | 
						|
	end
 | 
						|
end
 | 
						|
 | 
						|
--DISPLAY
 | 
						|
function()
 | 
						|
	local output = #WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] .. " " .. WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count .. " " .. WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count * aura_env.prob .. "%\n"
 | 
						|
	local date = date()
 | 
						|
	local h, m, s = date:match("%w+ %w+ %d* (%d*)%:(%d*)%:(%d*)") or 0, 0, 0
 | 
						|
	for k,v in ipairs(WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal]) do
 | 
						|
		output = output .. v.h .. ":" .. v.m .. ":" .. v.s .. " -" .. aura_env.round((s - v.s + (m - v.m) * 60 + (h - v.h) * 3600) / 60, 0)  .. "m" .. "\n"
 | 
						|
	end
 | 
						|
	return output
 | 
						|
end
 | 
						|
 | 
						|
--INIT
 | 
						|
aura_env.farmanimal = "Altairus"
 | 
						|
aura_env.prob = 0.8
 | 
						|
if not WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] then WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal] = {}; WeakAurasSaved.CustomTrash.Farm[aura_env.farmanimal].Count = 0 end
 | 
						|
aura_env.ticker = C_Timer.NewTicker(10, function() WeakAuras.ScanEvents("UPDATE") end)
 | 
						|
if WeakAuras.IsOptionsOpen() then
 | 
						|
	aura_env.ticker:Cancel()
 | 
						|
end
 | 
						|
aura_env.round = function(var, n)
 | 
						|
	if (n) then
 | 
						|
		var = math.floor((var * 10^n) + 0.5) / (10^n)
 | 
						|
	else
 | 
						|
		var = math.floor(var+0.5)
 | 
						|
	end
 | 
						|
	return var
 | 
						|
end |