Beancounter and Battlepets
  • I noticed while posting them in Appraiser that battlepets had nothing listed for Succeeded/Failed sales.
    Trying to load an item with this issue into the Beancounter window raises an error and leaves the box empty.
    But I was able to load a different Battlepet and now it has Beancounter data in Appraiser too, it seems to be all or nothing.

    Date: 2016-12-03 04:02:12
    ID: 1
    Error occured in: Global
    Count: 1
    Message: ..\AddOns\BeanCounter\BeanCounterFrames.lua line 256:
    Usage: BeancountersearchBox:SetText("text")
    Debug:
    [C]: SetText()
    BeanCounter\BeanCounterFrames.lua:256:
    BeanCounter\BeanCounterFrames.lua:249
    Locals:
    (*temporary) = BeancountersearchBox {
    0 =
    Right = {
    }
    Left = {
    }
    Middle = {
    }
    }
    (*temporary) = nil

    AddOns:
    BlizzBugsSuck, v7.0.3.1
    MoncaiCompare, v7.0.1
    nLog, v5.1.DEV.381
    Swatter, v6.0.DEV.424
    AlreadyKnown, vr25
    Armory, vv14.0.0
    AucAdvanced, v7.0.DEV.5685
    AucDb, v5.1.DEV.4828
    AucFilterBasic, v7.0.DEV.5602
    AucFilterOutlier, v7.0.DEV.5459
    AucMatchUndercut, v7.0.DEV.5585
    AucScanData, v7.0.DEV.5603
    AucStatDebug, v7.0.DEV.5345
    AucStatHistogram, v7.0.DEV.5680
    AucStatPurchased, v7.0.DEV.5555
    AucStatSales, v7.0.DEV.5598
    AucStatSimple, v7.0.DEV.5558
    AucStatStdDev, v7.0.DEV.5552
    AucStatTheUndermineJournal, v3.3.0
    AucUtilAHWindowControl, v7.0.DEV.5575
    AucUtilAppraiser, v7.0.DEV.5666
    AucUtilAskPrice, v7.0.DEV.5599
    AucUtilAutoMagic, v7.0.DEV.5686
    AucUtilCompactUI, v7.0.DEV.5629
    AucUtilEasyBuyout, v7.0.DEV.5576
    AucUtilFixAH, v7.0.DEV.5171
    AucUtilItemSuggest, v7.0.DEV.5651
    AucUtilPriceLevel, v7.0.DEV.5633
    AucUtilScanButton, v7.0.DEV.5631
    AucUtilScanFinish, v7.0.DEV.5588
    AucUtilScanProgress, v7.0.DEV.4979
    AucUtilScanStart, v7.0.DEV.5347
    AucUtilSearchUI, v7.0.DEV.5672
    AucUtilSimpleAuction, v7.0.DEV.5654
    AucUtilVendMarkup, v7.0.DEV.4828
    autoloot, v1.2 Release
    Babylonian, v5.1.DEV.332
    BagBrother, v
    Bagnon, v7.1.1
    BeanCounter, v5.1.DEV.5661
    CanIMogIt, v7.1.0.02
    Configator, v5.1.DEV.406
    Constructor, v<%version%> (<%codename%>)
    DBMCore, v7.1.4
    DBMDefaultSkin, v
    DBMStatusBarTimers, v
    DebugLib, v5.1.DEV.337
    DugisGuideViewerZ, v4.046
    Enchantrix, v5.1.DEV.5683
    GarrisonCommanderBroker, v2.15.8 1.1.0
    GTFO, v4.41.5
    HandyNotes, vv1.4.11
    HandyNotesAchievements, v0.4.19
    HandyNotesAzerothsTopTunes, vv1.2.1
    HandyNotesCityGuide, v1.7.1
    HandyNotesDirections, v1
    HandyNotesDraenorTreasures, v1.20a
    HandyNotesEliteBattlePets, v1
    HandyNotesEverShiftingMirror, v1.0.2
    HandyNotesFieldPhotographer, v7.1.0.0
    HandyNotesGuild, v1.9
    HandyNotesHallowsEnd, vv1.2.5
    HandyNotesHigherLearning, v7.1.0.0
    HandyNotesLegionRaresTreasures, v1.01b
    HandyNotesLegionTreasures, v1
    HandyNotesLorewalkers, v1
    HandyNotesLostAndFound, v1
    HandyNotesLunarFestival, vv1.4.3.2
    HandyNotesMailboxes, v1
    HandyNotesSpecialNPCsEtc, v1.1.1-Beta
    HandyNotesSummerFestival, vv1.3
    HandyNotesTimelessIsleRareElites, v2.32
    HandyNotesTimelessIsleChests, v1.16
    HandyNotesTimelessTreasures, v1.0.7
    HandyNotesTrainers, v1.7.0
    HandyNotesTreasureHunter, v1
    HandyNotesVendors, v1.7.0
    HandyNotesWellRead, v7.1.0.0
    HandyNotesWorldMapButton, v2.6
    Informant, v5.1.DEV.5650
    KCrazyArrowHide, v14
    LibDataBroker, v
    LibExtraTip, v5.12.DEV.423
    Molinari, v70100.42-Release
    NomiCakes, v7.1.0.2
    Overachiever, v0.98
    PersonalLootHelper, v1.16
    Postal, vv3.5.8
    Recount, vr1398
    Rematch, v4.6.0
    SellJunk, v3.0.14
    SlideBar, v6.0.DEV.406
    Stubby, v5.1.DEV.374
    TheUndermineJournal, v4.7.20161115
    TipHelper, v5.12.DEV.405
    TomTom, vv70100-1.0.0
    WeakAuras, v2.2.2.2-3-g957d372
    BlizRuntimeLib_enUS v7.1.0.70100
    (ck=b6b)

  • I've been slowly investigating this, being on holidays I'm now getting further.
    Beancounter explicitly only dealt with item links, not battlepet ones. The confusion comes because there are a _lot_ of items that "grant" you a companion on use, so they look like battlepet sales but they really aren't.
    I think I've modified things to add the battlepet data to the database, now I have to recover it. (Because you can't match up mail with posts without that bit, so it's currently useless!)
  • Special treatment for battlepets seems like it would require a complete duplication of Beancounter just for them. There is so much hardcoded itemLink stuff.
    Perhaps we could make a fake battlepet itemLink?
    It might've been better if it had used the sig? code from Auctioneer in the first place instead, but it's too late to do that.
  • Beancounter strips out a little bit of the information to group things together slightly, would you want to do any of that for battlepets or keep all level and rarity combinations separate?
  • (Sorry for doing this on the forums, but hardly anyone is on irc due to holidays, at least this way I'll eventually get comments!)

    function lib.API.decodeLink(link)
    return id, suffix, uniqueID

    for battlepets id is 82800, should I leave suffix and uniqueID blank?
    Or should suffix be a madeup version of rarity/level perhaps?

    there are a lot of other small changes but they are mostly just item vs battlepet string compares, I think decodeLink and getItemString are the main logic changes
  • Ok, from twitter partly:
    Fixing Beancounter to use battlepets right looks like an almost complete duplication of functionality, it's all hardcoded to use items and battlepets are mostly a completely different thing... So in the short term to fix my immediate problems I've made some smaller changes..
    For battlepets beancountmatcher always returns "maximum decrease".
    I also liked to use the resale searcher with TUJ as primary and market as a backup, but for some reason market is _always_ overinflated. So if it's using market I now have it using half the value to evaluate whether to buy it.
    I'm hoping these two things might be enough to fix the issues I've been having.


    https://www.dropbox.com/s/kh54wgtv6g9nbup/temporary.rar?dl=0


    Now... Some things have to be said about how I tend to use auctioneer... i have BeanCounter max decrease set to 50% and rely on it to reprice things.
    This is because I mostly only search for deals at 70% discount in the first place, so my "theories" may absolutely not be for you.

    I rely on TUJ for most prices now, but some stuff doesn't show up and needs MarketPrice.
    The problem is MarketPrice is -obscenely- overinflated almost always. (We need to dig in and work out if it's a particular module causing the problem, or a more general thing in the process of joing them up.)
    So for the meantime in the Resale searcher I explicitly use 50% of MarketPrice. So I should only get things prices on Market price if they are _real_ savings.
    I'm happier missing a few good deals than I am about getting stuck with stuff that will never sell.
  • (Another potential intermediate step would be to add an explicity "Battlepet" markdown in the Beancounter options, so it doesn't use the default one. That would probably be faily easy.
    I'd prefer to fix it properly, but it is _so_ messed up.)
  • i've just updated the above link to add the Appraiser matcher adjustment information to the tooltip, so I'm now just using the Appraiser tooltip with the others mostly off.

    Obviously the undercut figures won't necessarily be right, but it's closer than the old data I had.
  • i usually don't trust local realm market price and use instead the region median price... i think it works better for me as it cannot be easily affected by market resets or price speculators.

    try using region median as reference instead of local realm market?
  • I think you're talking TUJ market price as Auctioneer market price is all internal.
    I only use the Auctioneer plugin part of TUJ (as my primary pricing) with Auctioneer Market price as secondary, as far as I can tell you can only turn components of market price on or off completely.
  • yes.. was talking about TUJ and you are right, you have to turn off price components.

    under Stat modules - The Undermine Journal - i only keep enabled the include for global median price for price evaluation, however i keep the other TUJ statistics enabled but for display in tooltip only.

    This way i can see the other TUJ price stats in the tooltip but only use the region median for price calculations - it's called "global median" by Auc-Stat-TheUndermineJournal but it's actually the region median because i don't think TUJ combines statistics across regions.
  • Ah, I think I've found some of the other weirdness... using TUJ and market with Appraiser and Resale Searcher... For -battlepets- it show tuj in the tooltip, but ResaleSearcher uses market, for everything else it uses what it says in the tooltip.
  • (Most of my current investigation has come about because I wound up with tons of battlepets at overinflated prices that I couldn't move. I don't think i'll lose any money if i sell them at the proper price, i brought them pretty cheap, I just want them to _move_ and I don't wnat more!)
  • Hmmm, no, wrong assumption... Digging further in "GetPriceCore" sometimes returns MArket price even if TUJ exists. I'm trying to work it out, but a Resale search has way too much debug data and it's being a big pain!
  • Ok, at least part of the issue is Auc-Stat-TUJ.GetInfo drops out if ServerKey and Resources.ServerKey don't match, but the second one is mostly nil now, so I've removed that check, not sure it's fixed things yet, but it's necessary regardless.

    Secondly the thing inflating Market Price is DEFINITELY Simple Stats, disable it immediately. I'm not sure which others are still safe to use, I don't even know what ilevel and histogram are meant to be doing at the moment... But, yeah, it looks like we need to reevaluate the default stats we include and enable now.
  • I'm vaguely considering a "Safety valve", a matcher based on TUJ that won't let other prices go beyond 20% above it or something like that... It'd lessen the risk Market Price current poses..
  • I noted the scattered hard-coded itemstring processing when I was looking into this problem a while ago. My rough solution would have been: find every itemstring-hard-code; replace each with some sort of centralized function (like Auctioneer's sig or storekey functions, but tailored for BeanCounter); modify the centralized functions to handle battlepets (also to handle bonusIDs and a few other things...). That's a lot of work - and we also need to address connected realms.

    We still need to populate BeanCounter's Name Array feature (i.e stripping names and colour codes out of links), because the mail reader relies on the Name Array to reconcile sold auctions (for a sold auction you only get told the name, you don't get a link).

    I think there were some problems with Auc-Stat-TheUndermineJournal handling battlepet links in the past - not sure if they were fixed.
    Auc-Stat-TUJ.GetInfo should drop out if ServerKey and Resources.ServerKey don't match, which should only happen if you are asking for info from another realm - TUJ is hard coded to only provide info for your current realm, or for an average of all realms (neither of which is appropriate for specific cross-realm pricing).

    As I noted elsewhere, if Stat-Simple of causing problems we need to investigate why - it was updated fairly recently to try to mitigate some of the known problems it had.
  • Resources.ServerKey was consistently returning nil which is why it wasn't matching. Is that expected?
  • Resources.ServerKey should return a value after "PLAYER_ENTERING_WORLD", otherwise the scanner module, all the Stat modules, and maybe a few others, will break.

    Note that Auctioneer should not activate itself before "PLAYER_ENTERING_WORLD" (or more spcifically, it fires the "gameactive" processor message during "PLAYER_ENTERING_WORLD" to signal when it is up and running).

    If you're getting a nil Resources.ServerKey any time after startup ("PLAYER_ENTERING_WORLD") then something is going badly wrong (and I'm surprised if you're not getting a load of lua errors in that case).
  • Ah, I was looking at serverKey not ServerKey! explains that, still trying to work out the issue. I just know for sure that it's detecting TUJ in the tooltip and in part of working out the Appraiser price, but by the time it's switched to the end it's looking at Market, trying to track it down, but can't get a consistenttest item since it's mostly happening inside Resale searching.
  • I think it might be part of the new server sharding stuff or something... On one character I see things like:
    https://www.dropbox.com/s/cyimwpyi0mwgzj7/Capture.JPG?dl=0
    The serverkey has a # at the start which I've never seen before, and a later evaluation has it as nil. (I'll supply my debug code if you feel like it, it's just hard to reproduce this stuff reliably)
  • A serverKey starting with a # is a connected realm (if you're getting a #'d serverKey on a non-connected realm, make sure you update to the latest copy of CoreServers from SVN).

    BeanCounter doesn't support connected realms, so Stat-Sales fudges it (I forget what it actually does at the moment).

    Auc-Stat-TheUndermineJournal will accept the serverKey for the current realm, whether #'d or not.
Start a New Discussion

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion

privacy
norganna's addons network · tf2 warehouse · scrap warehouse · auctioneer addon · gatherer addon · addon forums · rdrct