Here's what's in my EsoGrinder.txt:
Code:
## Title: ESO Grinder
## Description: Log loot to your ESO save file and from there to a database via the EFSM Python service.
## Author: Marc Jordan
## Version: 3.0.0
## AddOnVersion: 3.0.0
## APIVersion: 100028 100033 100035 101032
## SavedVariables: EsoGrinderSavedVariables
##
## This Add-on is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates.
## The Elder Scrolls® and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries.
## All rights reserved
##
## You can read the full terms at https://account.elderscrollsonline.com/add-on-terms
esoui_constants_live.lua
EsoGrinder.lua
Here are the contents of my esoui_constants_live.lua:
Code:
local CURRENCYCHANGEREASON_STRINGS = {
[22] = "CURRENCY_CHANGE_REASON_ABILITY_UPGRADE_PURCHASE",
[26] = "CURRENCY_CHANGE_REASON_ACHIEVEMENT",
[6] = "CURRENCY_CHANGE_REASON_ACTION",
[11] = "CURRENCY_CHANGE_REASON_ANTIQUITY_REWARD",
[8] = "CURRENCY_CHANGE_REASON_BAGSPACE",
[9] = "CURRENCY_CHANGE_REASON_BANKSPACE",
[42] = "CURRENCY_CHANGE_REASON_BANK_DEPOSIT",
[66] = "CURRENCY_CHANGE_REASON_BANK_FEE",
[43] = "CURRENCY_CHANGE_REASON_BANK_WITHDRAWAL",
[12] = "CURRENCY_CHANGE_REASON_BATTLEGROUND",
[57] = "CURRENCY_CHANGE_REASON_BOUNTY_CONFISCATED",
[56] = "CURRENCY_CHANGE_REASON_BOUNTY_PAID_FENCE",
[47] = "CURRENCY_CHANGE_REASON_BOUNTY_PAID_GUARD",
[64] = "CURRENCY_CHANGE_REASON_BUYBACK",
[20] = "CURRENCY_CHANGE_REASON_CASH_ON_DELIVERY",
[77] = "CURRENCY_CHANGE_REASON_CHARACTER_UPGRADE",
[7] = "CURRENCY_CHANGE_REASON_COMMAND",
[37] = "CURRENCY_CHANGE_REASON_CONSUME_FOOD_DRINK",
[38] = "CURRENCY_CHANGE_REASON_CONSUME_POTION",
[5] = "CURRENCY_CHANGE_REASON_CONVERSATION",
[24] = "CURRENCY_CHANGE_REASON_CRAFT",
[73] = "CURRENCY_CHANGE_REASON_CROWNS_PURCHASED",
[69] = "CURRENCY_CHANGE_REASON_CROWN_CRATE_DUPLICATE",
[67] = "CURRENCY_CHANGE_REASON_DEATH",
[16] = "CURRENCY_CHANGE_REASON_DECONSTRUCT",
[75] = "CURRENCY_CHANGE_REASON_DEFENSIVE_KEEP_REWARD",
[14] = "CURRENCY_CHANGE_REASON_DEPRECATED_0",
[23] = "CURRENCY_CHANGE_REASON_DEPRECATED_1",
[17] = "CURRENCY_CHANGE_REASON_DEPRECATED_2",
[49] = "CURRENCY_CHANGE_REASON_EDIT_GUILD_HERALDRY",
[28] = "CURRENCY_CHANGE_REASON_FEED_MOUNT",
[51] = "CURRENCY_CHANGE_REASON_GUILD_BANK_DEPOSIT",
[52] = "CURRENCY_CHANGE_REASON_GUILD_BANK_WITHDRAWAL",
[58] = "CURRENCY_CHANGE_REASON_GUILD_FORWARD_CAMP",
[53] = "CURRENCY_CHANGE_REASON_GUILD_STANDARD",
[50] = "CURRENCY_CHANGE_REASON_GUILD_TABARD",
[39] = "CURRENCY_CHANGE_REASON_HARVEST_REAGENT",
[70] = "CURRENCY_CHANGE_REASON_ITEM_CONVERTED_TO_GEMS",
[54] = "CURRENCY_CHANGE_REASON_JUMP_FAILURE_REFUND",
[40] = "CURRENCY_CHANGE_REASON_KEEP_REPAIR",
[15] = "CURRENCY_CHANGE_REASON_KEEP_UPGRADE",
[13] = "CURRENCY_CHANGE_REASON_KILL",
[0] = "CURRENCY_CHANGE_REASON_LOOT",
[76] = "CURRENCY_CHANGE_REASON_LOOT_CURRENCY_CONTAINER",
[62] = "CURRENCY_CHANGE_REASON_LOOT_STOLEN",
[2] = "CURRENCY_CHANGE_REASON_MAIL",
[21] = "CURRENCY_CHANGE_REASON_MEDAL",
[74] = "CURRENCY_CHANGE_REASON_OFFENSIVE_KEEP_REWARD",
[59] = "CURRENCY_CHANGE_REASON_PICKPOCKET",
[35] = "CURRENCY_CHANGE_REASON_PLAYER_INIT",
[72] = "CURRENCY_CHANGE_REASON_PURCHASED_WITH_CROWNS",
[79] = "CURRENCY_CHANGE_REASON_PURCHASED_WITH_ENDEAVOR_SEALS",
[71] = "CURRENCY_CHANGE_REASON_PURCHASED_WITH_GEMS",
[65] = "CURRENCY_CHANGE_REASON_PVP_KILL_TRANSFER",
[41] = "CURRENCY_CHANGE_REASON_PVP_RESURRECT",
[4] = "CURRENCY_CHANGE_REASON_QUESTREWARD",
[36] = "CURRENCY_CHANGE_REASON_RECIPE",
[78] = "CURRENCY_CHANGE_REASON_RECONSTRUCTION",
[34] = "CURRENCY_CHANGE_REASON_REFORGE",
[46] = "CURRENCY_CHANGE_REASON_RESEARCH_TRAIT",
[45] = "CURRENCY_CHANGE_REASON_RESPEC_ATTRIBUTES",
[61] = "CURRENCY_CHANGE_REASON_RESPEC_CHAMPION",
[55] = "CURRENCY_CHANGE_REASON_RESPEC_MORPHS",
[44] = "CURRENCY_CHANGE_REASON_RESPEC_SKILLS",
[27] = "CURRENCY_CHANGE_REASON_REWARD",
[63] = "CURRENCY_CHANGE_REASON_SELL_STOLEN",
[10] = "CURRENCY_CHANGE_REASON_SOULWEARY",
[18] = "CURRENCY_CHANGE_REASON_SOUL_HEAL",
[25] = "CURRENCY_CHANGE_REASON_STABLESPACE",
[48] = "CURRENCY_CHANGE_REASON_STUCK",
[3] = "CURRENCY_CHANGE_REASON_TRADE",
[33] = "CURRENCY_CHANGE_REASON_TRADINGHOUSE_LISTING",
[31] = "CURRENCY_CHANGE_REASON_TRADINGHOUSE_PURCHASE",
[32] = "CURRENCY_CHANGE_REASON_TRADINGHOUSE_REFUND",
[30] = "CURRENCY_CHANGE_REASON_TRAIT_REVEAL",
[19] = "CURRENCY_CHANGE_REASON_TRAVEL_GRAVEYARD",
[68] = "CURRENCY_CHANGE_REASON_UNKNOWN",
[1] = "CURRENCY_CHANGE_REASON_VENDOR",
[60] = "CURRENCY_CHANGE_REASON_VENDOR_LAUNDER",
[29] = "CURRENCY_CHANGE_REASON_VENDOR_REPAIR",
}
function CurrencyChangeReason_get_string(value)
d ( zo_strformt("CurrencyChangeReason_get_string(<<1>>)", value ) )
return CURRENCYCHANGEREASON_STRINGS[value] or tostring(value)
end
local CURRENCYLOCATION_STRINGS = {
[3] = "CURRENCY_LOCATION_ACCOUNT",
[1] = "CURRENCY_LOCATION_BANK",
[0] = "CURRENCY_LOCATION_CHARACTER",
[2] = "CURRENCY_LOCATION_GUILD_BANK",
}
function CurrencyLocation_get_string(value)
d ( zo_strformt("CurrencyLocation_get_string(<<1>>)", value ) )
return CURRENCYLOCATION_STRINGS[value] or tostring(value)
end
local CURRENCYTYPE_STRINGS = {
[2] = "CURT_ALLIANCE_POINTS",
[5] = "CURT_CHAOTIC_CREATIA",
[7] = "CURT_CROWNS",
[6] = "CURT_CROWN_GEMS",
[11] = "CURT_ENDEAVOR_SEALS",
[9] = "CURT_EVENT_TICKETS",
[1] = "CURT_MONEY",
[0] = "CURT_NONE",
[8] = "CURT_STYLE_STONES",
[3] = "CURT_TELVAR_STONES",
[10] = "CURT_UNDAUNTED_KEYS",
[4] = "CURT_WRIT_VOUCHERS",
}
function CurrencyType_get_string(value)
d ( zo_strformt("CurrencyType_get_string(<<1>>)", value ) )
return CURRENCYTYPE_STRINGS[value] or tostring(value)
end
local DYEHUECATEGORY_STRINGS = {
[3] = "DYE_HUE_CATEGORY_BLUE",
[5] = "DYE_HUE_CATEGORY_BROWN",
[2] = "DYE_HUE_CATEGORY_GREEN",
[6] = "DYE_HUE_CATEGORY_GREY",
[8] = "DYE_HUE_CATEGORY_IRIDESCENT",
[7] = "DYE_HUE_CATEGORY_MIXED",
[4] = "DYE_HUE_CATEGORY_PURPLE",
[0] = "DYE_HUE_CATEGORY_RED",
[1] = "DYE_HUE_CATEGORY_YELLOW",
}
function DyeHueCategory_get_string(value)
d ( zo_strformt("DyeHueCategory_get_string(<<1>>)", value ) )
return DYEHUECATEGORY_STRINGS[value] or tostring(value)
end
my EsoGrinder.lua init routine:
Code:
EVENT_MANAGER:RegisterForEvent(self.name,EVENT_CURRENCY_UPDATE,self.EventCurrencyUpdateHandler)
and finally the handler:
Code:
function EsoGrinder.EventCurrencyUpdateHandler( eventCode, currencyType, currencyLocation, newAmount, oldAmount, thisReason )
local new_amount = newAmount
local old_amount = oldAmount
local delta_amount = new_amount - old_amount
local currency_type = currencyType
local currency_location = currencyLocation
local reason = thisReason
local use_ecl = true
if use_ecl then
d ( "Using esoui_constants_live.lua functions." )
currency_type = CurrencyType_get_string(currencyType) -- line 262
currency_location = CurrencyLocation_get_string(currencyLocation)
reason = CurrencyChangeReason_get_string(thisReason)
end
z = zo_strformat ( "EGR EventCurrencyUpdateHandler eventCode=<<1>> currencyType=<<2>>=<<3>> currencyLocation=<<4>>=<<5>>",
eventCode,
currencyType,
currency_type,
currencyLocation,
currency_location)
z2 = zo_strformat ( "<<1>> reason=<<2>>=<<3>> newAmount=<<4>> oldAmount=<<5>> delta_amount=<<6>>",
z,
thisReason,
reason,
newAmount,
oldAmount,
delta_amount)
d ( z2 )
end
If I set use_ecl=false then I get this in chat:
EGR EventCurrencyUpdateHandler eventCode=589829 currencyType=1=1 currencyLocation=0=0
reason=1=1 newAmount=1507533 oldAmount=1507542 delta_amount=-9
|
If I set use_ecl=true then I get this from Bug Catcher
Code:
user:/AddOns/EsoGrinder/EsoGrinder.lua:262: function expected instead of nil
stack traceback:
user:/AddOns/EsoGrinder/EsoGrinder.lua:262: in function 'EsoGrinder.EventCurrencyUpdateHandler'
<Locals> eventCode = 589829, currencyType = 1, currencyLocation = 0, newAmount = 1507506,
oldAmount = 1507515, thisReason = 1, new_amount = 1507506, old_amount = 1507515, delta_amount = -9,
currency_type = 1, currency_location = 0, reason = 1, use_ecl = T </Locals>