This is a user-defined function that you can copy and paste into your addon.
Output when you gain or lose money and the amount to the chat frame.
local function FormatMoney(money)
local ret = ""
local gold = floor(money / (COPPER_PER_SILVER * SILVER_PER_GOLD));
local silver = floor((money - (gold * COPPER_PER_SILVER * SILVER_PER_GOLD)) / COPPER_PER_SILVER);
local copper = mod(money, COPPER_PER_SILVER);
if gold > 0 then
ret = gold .. " gold "
end
if silver > 0 or gold > 0 then
ret = ret .. silver .. " silver "
end
ret = ret .. copper .. " copper"
return ret
end
local frame = CreateFrame("Frame")
frame:RegisterEvent("PLAYER_MONEY")
frame:RegisterEvent("PLAYER_ENTERING_WORLD")
frame:SetScript("OnEvent", function(self, event, ...)
local tmpMoney = GetMoney()
if self.CurrentMoney then
self.DiffMoney = tmpMoney - self.CurrentMoney
else
self.DiffMoney = 0
end
self.CurrentMoney = tmpMoney
if self.DiffMoney > 0 then
ChatFrame1:AddMessage("You gained" .. FormatMoney(self.DiffMoney) .. ".")
elseif self.DiffMoney < 0 then
ChatFrame1:AddMessage("You lost" .. FormatMoney(self.DiffMoney * -1) .. ".")
end
end)