View Single Post
03/01/14, 03:43 PM   #2
zork
 
zork's Avatar
AddOn Author - Click to view addons
Join Date: Feb 2014
Posts: 29
I will try to post an example.

*edit*

Here you go:

lua Code:
  1. -----------------------------
  2.   -- zExperinceTest
  3.   -- zork - 2014
  4.   -----------------------------
  5.  
  6.   -----------------------------
  7.   -- VARIABLES
  8.   -----------------------------
  9.  
  10.   local cs = CHAT_SYSTEM
  11.   local em = GetEventManager()
  12.   local addon = ZO_Object:Subclass()
  13.  
  14.   -----------------------------
  15.   -- FUNCTIONS
  16.   -----------------------------
  17.  
  18.   local function p(str)
  19.     cs:AddMessage(str)
  20.   end
  21.  
  22.   --new func
  23.   function addon:New()
  24.     self.addonName = "zExperienceTest"
  25.     self:Initialize()
  26.   end
  27.  
  28.   --init func
  29.   function addon:Initialize()
  30.     --event registering
  31.     em:RegisterForEvent(self.addonName.."_OnUnitCreated",             EVENT_UNIT_CREATED,               function(...) self:OnUnitCreated(...) end)
  32.     em:RegisterForEvent(self.addonName.."_OnExperienceGain",          EVENT_EXPERIENCE_GAIN,            function(...) self:OnExperienceGain(...) end)
  33.     em:RegisterForEvent(self.addonName.."_OnExperienceGainDiscovery", EVENT_EXPERIENCE_GAIN_DISCOVERY,  function(...) self:OnExperienceGainDiscovery(...) end)
  34.     em:RegisterForEvent(self.addonName.."_OnExperienceUpdate",        EVENT_EXPERIENCE_UPDATE,          function(...) self:OnExperienceUpdate(...) end)
  35.     em:RegisterForEvent(self.addonName.."_OnPlayerActivated",         EVENT_PLAYER_ACTIVATED,           function(...) self:OnPlayerActivated(...) end)
  36.   end
  37.  
  38.   --OnPlayerActivated event trigger func
  39.   function addon:PrintExperience()
  40.     local curExp, maxExp, perExp, lvl = GetUnitXP("player"), GetUnitXPMax("player"), GetUnitXP("player")/GetUnitXPMax("player")*100, GetUnitLevel("player")
  41.     p("Level: "..lvl..", Experience: "..curExp.."/"..maxExp.." ("..perExp.."%)")
  42.   end
  43.  
  44.   --OnPlayerActivated event trigger func
  45.   function addon:OnPlayerActivated(...)
  46.     p("OnPlayerActivated")
  47.     self:PrintExperience()
  48.   end
  49.  
  50.   --OnUnitCreated event trigger func
  51.   function addon:OnUnitCreated(...)
  52.     local eventCode, unitTag = ...
  53.     if unitTag ~= "player" then return end
  54.     p("OnUnitCreated")
  55.     self:PrintExperience()
  56.   end
  57.  
  58.   --OnExperienceGain event trigger func
  59.   function addon:OnExperienceGain(...)
  60.     local eventCode, value, reason = ...
  61.     p("OnExperienceGain")
  62.     p(value.." exp gained")
  63.     self:PrintExperience()
  64.   end
  65.  
  66.   --OnExperienceGain event trigger func
  67.   function addon:OnExperienceGainDiscovery(...)
  68.     local eventCode, areaName, value = ...
  69.     p("OnExperienceGainDiscovery")
  70.     p(value.." exp gained for discovering "..areaName)
  71.     self:PrintExperience()
  72.   end
  73.  
  74.   --OnExperienceGain event trigger func
  75.   function addon:OnExperienceUpdate(...)
  76.     local eventCode, unitTag, currentExp, maxExp, reason = ...
  77.     if unitTag ~= "player" then return end
  78.     p("OnExperienceUpdate")
  79.     self:PrintExperience()
  80.   end
  81.  
  82.   -----------------------------
  83.   -- CALL
  84.   -----------------------------
  85.  
  86.   addon:New()

http://code.google.com/p/zork-esoui/...rienceTest.lua

On that note. The events are just to trigger. You get your XP via this:

lua Code:
  1. local curExp, maxExp = GetUnitXP("player"), GetUnitXPMax("player")

I will add that to the code.

*edit2*

Code is updated.

Result:

Last edited by zork : 03/01/14 at 04:32 PM.
  Reply With Quote