-- LevelCam by Quixadhal -- Based on the original LevelRecorder by Astromech -- You can edit the displayed message here local getMessage = function(event, arg1) if event == "PLAYER_LEVEL_UP" then return string.format("|cffffff00%s leveled to %d on %s|r", UnitName("player") or "Player", arg1, date("%m/%d/%y %H:%M")) elseif event == "PLAYER_DEAD" then return string.format("|cffff0000%s DIED at %s|r", UnitName("player") or "Player", date("%m/%d/%y %H:%M")) elseif event == "ACHIEVEMENT_EARNED" then return string.format("|cffffff00%s earned an achievement on %s|r", UnitName("player") or "Player", date("%m/%d/%y %H:%M")) else return string.format("|cffffffffUnknown event %s caught?", event) end end -- Creates the frame and message fontstring local frame = CreateFrame("Frame") local message = UIParent:CreateFontString(nil, "OVERLAY") -- You can edit the position of the message here message:SetPoint("CENTER", nil, "CENTER") -- Justification here message:SetJustifyH("CENTER") message:SetJustifyV("MIDDLE") -- And font here message:SetFont("Fonts\\FRIZQT__.ttf", 32, "THICKOUTLINE") message:Hide() -- OnUpdate handler --local GetTime = GetTime local timer = 0 local OnUpdate = function(self, elasped) timer = timer + elasped -- If we have been waiting for one minute if timer > 1 then -- Take a screenshot and stop updating frame:Hide() timer = 0 -- CloseAllWindows() UIErrorsFrame:Clear() Screenshot() end end local BattlegroundZones = { ["Warsong Gulch"] = true, ["Arathi Basin"] = true, ["Alterac Valley"] = true, ["Eye of the Storm"] = true, ["Strand of the Ancients"] = true, ["Isle of Conquest"] = true, ["Battle for Gilneas"] = true, ["Twin Peaks"] = true, ["Silvershard Mines"] = true, ["Temple of Kotmogu"] = true, ["Deepwind Gorge"] = true, ["Wintergrasp"] = true, ["Tol Barad"] = true, } -- OnEvent handler local OnEvent = function(self, event, arg1) if event == "PLAYER_LEVEL_UP" then -- Display message message:SetText(getMessage(event, arg1)) message:Show() -- Displayed /played data on the chat frame RequestTimePlayed() -- Set up the screenshot handler for next update frame:Show() elseif event == "PLAYER_DEAD" then -- Check to make sure we don't screenshot in a battlegrounds zone! local _, instanceType = IsInInstance() local pvpink = instanceType == "pvp" or instanceType == "arena" -- local zoneText = GetZoneText(); -- if not BattlegroundZones[zoneText] then if not pvpink then -- Display message message:SetText(getMessage(event, arg1)) message:Show() -- Displayed /played data on the chat frame RequestTimePlayed() -- Set up the screenshot handler for next update frame:Show() else message:Hide() end elseif event == "ACHIEVEMENT_EARNED" then -- Display message message:SetText(getMessage(event, arg1)) message:Show() -- Set up the screenshot handler for next update frame:Show() else -- if event == "SCREENSHOT_SUCCEEDED" or event == "SCREENSHOT_FAILED" then message:Hide() end end -- Sets up the frame frame:SetScript("OnEvent", OnEvent) frame:SetScript("OnUpdate", OnUpdate) frame:RegisterEvent("PLAYER_LEVEL_UP") frame:RegisterEvent("PLAYER_DEAD") frame:RegisterEvent("ACHIEVEMENT_EARNED") frame:RegisterEvent("SCREENSHOT_SUCCEEDED") frame:RegisterEvent("SCREENSHOT_FAILED") frame:Hide()