arenanet / api-cdi

Collaborative Development Initiative for Public APIs
257 stars 41 forks source link

/v2/characters/:id/heropoints missing some points in Core Tyria #630

Open BenLubar opened 6 years ago

BenLubar commented 6 years ago

These characters all have Core Tyria completion (world completion plus maps added in LW1 and LW2) and HoT (including LW3) map completion:

https://api.guildwars2.com/v2/characters/Blergo/heropoints?access_token=D88F0B87-C084-B647-86BF-F9F8E781BC0C09A1900D-1C2A-4008-A1DF-A201767E416E https://api.guildwars2.com/v2/characters/Gaby%20Wildfrau/heropoints?access_token=D88F0B87-C084-B647-86BF-F9F8E781BC0C09A1900D-1C2A-4008-A1DF-A201767E416E https://api.guildwars2.com/v2/characters/Belvis%20Wildfrau/heropoints?access_token=D88F0B87-C084-B647-86BF-F9F8E781BC0C09A1900D-1C2A-4008-A1DF-A201767E416E https://api.guildwars2.com/v2/characters/Jastian%20Summer/heropoints?access_token=D88F0B87-C084-B647-86BF-F9F8E781BC0C09A1900D-1C2A-4008-A1DF-A201767E416E https://api.guildwars2.com/v2/characters/Palcci/heropoints?access_token=D88F0B87-C084-B647-86BF-F9F8E781BC0C09A1900D-1C2A-4008-A1DF-A201767E416E https://api.guildwars2.com/v2/characters/Shiinfo%20Ironbrand/heropoints?access_token=D88F0B87-C084-B647-86BF-F9F8E781BC0C09A1900D-1C2A-4008-A1DF-A201767E416E

The continents API has a different set of skill challenges than these characters:

Taking Blergo for example:

--- skill_challenges 2018-06-18 16:43:23.793316100 -0500
+++ heropoints 2018-06-18 16:43:26.006924100 -0500
@@ -9 +8,0 @@
-0-9
@@ -10,0 +10 @@
+0-11
@@ -16 +15,0 @@
-0-17
@@ -24 +22,0 @@
-0-25
@@ -32 +29,0 @@
-0-33
@@ -34,0 +32 @@
+0-36
@@ -46 +43,0 @@
-0-49
@@ -50,0 +48 @@
+0-54
@@ -53 +50,0 @@
-0-57
@@ -57,0 +55 @@
+0-62
@@ -60 +57,0 @@
-0-65
@@ -62,0 +60 @@
+0-68
@@ -66,0 +65 @@
+0-74
@@ -67,0 +67,2 @@
+0-76
+0-77
@@ -71 +71,0 @@
-0-81
@@ -79 +78,0 @@
-0-89
@@ -87 +85,0 @@
-0-97
@@ -88,0 +87,2 @@
+0-99
+0-100
@@ -93 +92,0 @@
-0-105
@@ -100 +99 @@
-0-113
+0-112
@@ -101,0 +101 @@
+0-115
@@ -107 +106,0 @@
-0-121
@@ -120,0 +120,2 @@
+0-136
+0-138
@@ -122,0 +124 @@
+0-141
@@ -126 +127,0 @@
-0-145
@@ -134 +134,0 @@
-0-153
@@ -142 +141,0 @@
-0-161
@@ -150 +148,0 @@
-0-169
@@ -158 +155,0 @@
-0-177
@@ -166 +162,0 @@
-0-185
@@ -172,0 +169 @@
+0-192
@@ -173,0 +171 @@
+0-195
@@ -174,0 +173,2 @@
+0-197
+0-198
@@ -175,0 +176 @@
+0-200
@@ -183,4 +183,0 @@
-0-208
-0-209
-0-209
-0-210
@@ -188 +185,2 @@
-0-213
+0-211
+0-212
@@ -191,2 +188,0 @@
-0-214
-0-215
@@ -194 +190 @@
-0-218
+0-216
@@ -197,2 +192,0 @@
-0-219
-0-220
@@ -200 +194,2 @@
-0-223
+0-221
+0-222
@@ -203,4 +197,0 @@
-0-224
-0-225
-0-225
-0-226
@@ -207,0 +199,3 @@
+0-227
+0-228
+0-229
@@ -211 +204,0 @@
-0-233
@@ -219,8 +211,0 @@
-0-241
-0-242
-0-243
-0-244
-0-245
-0-246
-0-247
-0-248
TwelveBaud commented 6 years ago

Lines marked as "removed" in that diff are hero challenges that either Blergo accomplished and the API does not recognize or are not required for 100% map completion. Lines marked as "added" are present in the character's herochallenges endpoint but not in the continent data skill_points arrays.

Archomeda commented 6 years ago

Can confirm. One of my characters has exactly the same output in the heropoints subendpoint.

[...new Set(json.map(f => Object.values(f.regions)).reduce((a, b) => a.concat(b), []).map(r => Object.values(r.maps)).reduce((a, b) => a.concat(b), []).map(m => m.skill_challenges).reduce((a, b) => a.concat(b), []).map(s => s.id).sort((a, b) => { var as = a.split('-').map(v => parseInt(v)); var bs = b.split('-').map(v => parseInt(v)); return as[0] < bs[0] ? -1 : as[0] > bs[0] ? 1 : as[1] < bs[1] ? -1 : as[1] > bs[1] ? 1 : 0 }))]

By writing this ugly one-liner, you can get a list of available hero points of a continent in the continents endpoint. Don't forget that WvW has hero challenges as well, that's continent 2.

Continent: Tyria

``` https://api.guildwars2.com/v2/continents/1/floors?ids=all 0-0 0-2 0-3 0-4 0-5 0-6 0-7 0-8 0-9 0-10 0-12 0-13 0-14 0-15 0-16 0-17 0-18 0-19 0-20 0-21 0-22 0-23 0-24 0-25 0-26 0-27 0-28 0-29 0-30 0-31 0-32 0-33 0-34 0-35 0-37 0-38 0-39 0-40 0-42 0-43 0-44 0-45 0-46 0-47 0-48 0-49 0-50 0-51 0-52 0-53 0-55 0-56 0-57 0-58 0-59 0-60 0-61 0-63 0-64 0-65 0-66 0-67 0-69 0-70 0-71 0-72 0-75 0-78 0-79 0-80 0-81 0-82 0-83 0-84 0-85 0-86 0-87 0-88 0-89 0-90 0-91 0-92 0-93 0-94 0-95 0-96 0-97 0-98 0-101 0-102 0-103 0-104 0-105 0-106 0-107 0-108 0-109 0-110 0-111 0-113 0-114 0-116 0-117 0-118 0-119 0-120 0-121 0-122 0-123 0-124 0-125 0-126 0-127 0-128 0-129 0-130 0-131 0-132 0-133 0-134 0-139 0-140 0-142 0-143 0-144 0-145 0-146 0-147 0-148 0-149 0-150 0-151 0-152 0-153 0-154 0-155 0-156 0-157 0-158 0-159 0-160 0-161 0-162 0-163 0-164 0-165 0-166 0-167 0-168 0-169 0-170 0-171 0-172 0-173 0-174 0-175 0-176 0-177 0-178 0-179 0-180 0-181 0-182 0-183 0-184 0-185 0-186 0-187 0-188 0-189 0-190 0-191 0-194 0-196 0-199 0-202 0-203 0-204 0-205 0-206 0-207 0-230 0-231 0-232 0-233 0-234 0-235 0-236 0-237 0-238 0-239 0-240 0-241 0-242 0-243 0-244 0-245 0-246 0-247 0-248 1-0 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-9 1-10 1-11 1-12 1-13 1-14 1-15 1-16 1-17 1-18 1-19 1-20 1-21 1-22 1-23 1-24 1-25 1-26 1-27 1-28 1-29 1-30 1-31 1-32 1-33 1-34 1-35 1-36 1-37 1-38 1-39 2-0 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 2-12 2-13 2-14 2-15 2-16 2-17 2-18 2-19 2-20 2-21 2-22 2-23 2-24 2-25 2-26 2-27 2-28 ```

Continent: Mists

``` https://api.guildwars2.com/v2/continents/2/floors?ids=all 0-208 0-209 0-210 0-213 0-214 0-215 0-218 0-219 0-220 0-223 0-224 0-225 0-226 ```

That diff has 41 "removed" and 28 "added" ids. If you count the Mists hero points, that's 13. Exactly the difference between the two values. So it seems that there are no missing hero points, but rather have changed ids or something.

TwelveBaud commented 6 years ago

Those heroes have also accomplished the WvW hero challenges though. I think the 13 number is a red herring.

BenLubar commented 6 years ago

I also noticed that the Flame Castrum hero challenge in Fireheart Rise cannot be unlocked with WvW proofs, and several of the ones that can be unlocked with WvW proofs are blank (no map name or completion bar, just "hero challenge complete" with the rest of the notification blank).

Also, the wiki says:

which does not seem to be true right now, so this is probably broken somewhere deeper than the API.