Parsing character achievement data


#1

Hello there,

I’m looking at the data returned when the achievements field is added to the character profile API call and would really appreciate some help understanding it.

I get the completed and completeTimestamp arrays, they make sense, although weirdly structured. Why not just have an array of achievement objects that have the achievement ID and the timestamp in? But thats no big deal.

It’s the criteria I find confusing, am I supposed to be able to use that information to check partially completed achievement, because that would be awesome, I just can’t figure out how.

On the wowhead character planner, I can enter my character and I get given some achievements that I’m close to completing, for example, achievement 13757 it tells me I’m 74.1% through completing, how can it possibly work that out from this information? I don’t have any addons installed for wowhead so I assume they only have access to the same API I do.


#2

/data/wow/achievement/13757 says it uses child criteria 81097 for an amount of 8700.

In your character profile result, look for 81097 in the achievements/criteria array. Let’s pretend it’s at index 1200 in that array. Then, you’d look at the value at index 1200 in achievements/criteriaQuantity. That’s the amount you’ve done so far, which should say 6447 if you’ve completed 74.1% of 8700.


#3

I’m very glad that was the first suggestion, exactly what I tried first :slight_smile: I don’t have a criteria 81097 in my criteria array.


Working on some help i’ve received from the discord, it looks like switching over to the profile API should fix all of my problems. I’m going to do that now and will update here if it works.