View Single Post
02/05/22, 02:40 PM   #18
Gullyable
Join Date: Apr 2018
Posts: 13
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>
  Reply With Quote