Originally Posted by Adapt
Thanks. Seems for some reason I needed to restart client, not just /reload.
The last piece I think is now logging each XP gain in a table.
Edit: All sorted. Sharing below for those interested.
Lua Code:
local EventFrame = CreateFrame("Frame") local defaults = { TotalXP = 0, TotalXPEvents = 0, IndividualGains = {}, } EventFrame:RegisterEvent("ADDON_LOADED") EventFrame:RegisterEvent("CHAT_MSG_COMBAT_XP_GAIN") EventFrame:SetScript("OnEvent", function(self, event, ...) if event == "CHAT_MSG_COMBAT_XP_GAIN" then local arg1 = ... local DateTime = date("%d/%m/%y %H:%M:%S") local XPGained = string.match(string.match(arg1, "%d+ experience"), "%d+") local Creature = string.match(arg1, "(%a+) dies") local QuestOrCreature = "Creature" if Creature == nil then QuestOrCreature = "Quest" end -- Increment number of XP events CharacterDB.TotalXPEvents = CharacterDB.TotalXPEvents + 1 print('Total XP events ' .. CharacterDB.TotalXPEvents) -- Add to total XP gained CharacterDB.TotalXP = CharacterDB.TotalXP + tonumber(XPGained) print('Total XP ' .. CharacterDB.TotalXP) -- Setup table for new individual XP gain local NewGain = {} NewGain["Timestamp"] = DateTime NewGain["XP Gained"] = XPGained NewGain["Zone"] = GetZoneText() NewGain["Minimap Zone"] = GetMinimapZoneText() NewGain["Level"] = UnitLevel("player") NewGain["Total XP"] = CharacterDB.TotalXP NewGain["Quest or Creature"] = QuestOrCreature NewGain["Creature"] = Creature -- Log individual XP gain statistics table.insert(CharacterDB.IndividualGains, NewGain) elseif event == "ADDON_LOADED" then local addon = ... if addon == "XPLogger" then CharacterDB = CharacterDB or defaults print('----------------') print('XPLogger loaded') print('Total XP ' .. CharacterDB.TotalXP) print('Total XP events ' .. CharacterDB.TotalXPEvents) print('----------------') self:UnregisterEvent(event) end end end)
Will now write a parser.
|
I'd be interested in see your parser. I've been curious about parsing saved variables for a while.