SuperEvilMegacorp / vainglory-assets

Community provided art, schemas, and other assets that make using the Vainglory API easier
https://developer.vainglorygame.com
MIT License
54 stars 40 forks source link

Bug: Player Object Issues #219

Closed Skillz4Killz closed 7 years ago

Skillz4Killz commented 7 years ago

The data being presented is either incorrect data or requires clarification that tells us what that data is. Please note: There are hundreds of accounts with these issues.

Data retrieved from a Player Object:

IGN: Cdw849 Region: EU

{ elo_earned_season_4: 0,
elo_earned_season_5: 753.409662444039,
elo_earned_season_6: 1088.5247873184278,
elo_earned_season_7: 1349.403975530395,
karmaLevel: 1,
level: 29,
lifetimeGold: 15275.875,
lossStreak: 0,
played: 572,
played_ranked: 86,
skillTier: 13,
winStreak: 0,
wins: 642,
xp: 143933 }

Played/Wins Issue: Coming in Next Update

lifetimeGold:

This comes with 2 main issues. Either way, this requires both a fix or a clarification, please.

  1. What is lifetimeGold exactly. For many months we have been left confused as to what it is and our best guesses to what it represents are by experimenting and figuring it out. There have been many assumptions made on this that it could be simply a bit-integer issue whereby the number is not able to be shown properly until it is multiplied by 1000.
  2. Another theory that was mentioned is that it is showing actual gold earned in the last match. In which case this does not belong in a Player object but in Match objects. EDIT: If this does indeed represent the gold at the end of a match. How can it be a decimal? SEMC has shown gold values to players in patch notes as decimal values when they were decimal values and as whole numbers(as it was changed to 5 per second recently). Gold received from Minions is also a whole number(if I am not mistaken) therefore all gold how can it be a decimal value. Clarification, please.

Streaks:

The current dilemma with streaks is that both win streaks and loss streaks can not be 0 if the player has played matches recently. Either win or loss streaks MUST be 1 or more. Both streaks being 0 is impossible once a player has played a match. Either this data is being sent incorrectly OR this data requires clarification for what it actually represents.

elo_earned_season_x

A possible theory of why this data shows lower than the in game trophies might be because this data represents the last value when the season ended while trophies represent the highest earned in the season. This requires clarification as to what it represents. These values have had many reports that the values are shown incorrectly. I don't currently have any data but as I find them in the coming days I will add them below.The latest season 8(current) is also missing. Sincerest apologies.

svperfecta commented 7 years ago

Hi Skillz - We're aware of a bug that some stats being reported don't include the most recent match. IE: When a match is finished, some values represent the life to date values BEFORE the match, and some are after the match.

The upcoming patch will fix several of these, noted here:

https://github.com/madglory/gamelocker-vainglory/blob/master/CHANGELOG.md

Would you mind updating this ticket to reflect the ones that will still be broken? The remaining ones are likely already in progress for the next next version of the game :)

Skillz4Killz commented 7 years ago

Updated with only those not present on Changelog. Will keep an eye out and update this as the changelog is updated.

svperfecta commented 7 years ago

Thanks y'all - I think we need to break this up into "what we can fix today" and "what requires a game change"

Lifetime Gold

Lifetime gold is poorly named, as we know. It actually means "gold earned in a match" and we put it in the wrong location (I think we put it on profiles, it should on participant).

I can can get approval from you guys to move it, i'll put it where it belongs (on participant).

Should only take me 30 minutes or so to fix and update the tests.

NOTE: If we agree on this solution, we can split this out, categorize as a bug, mark in-progress and assign to guilder.

svperfecta commented 7 years ago

Streaks

My unerstanding of the streaks bug is that its accurate for all previous matches, but not the current one.

If this is correct, we can split it out, add it to the Game Data: /matches Uber ticket

svperfecta commented 7 years ago

Elo Earned Season X

My understanding of ELO streaks bug is that its accurate for all previous matches, but not the current one.

If this is correct, we can split it out, add it to the Game Data: /matches Uber ticket

cklugewicz commented 7 years ago

Streaks is always zero and has been for the last 4 patches (since 2.4)

cklugewicz commented 7 years ago

Elo earned has been inaccurate for a significant number of users since it was released in 2.4 and does not include the current season at all.

Skillz4Killz commented 7 years ago

The changelog mentioned fixing this issue so I removed it from the original post before but I am still having reports of players win/played being incorrect.

Wins/Played

These two fields represent a number of matches a player has played and how many they have won. Many players are being returned where the number of wins is actually higher than the amount of matches played. This leads to many problems, for example, calculating the Win Rate will lead to a % more than 100. It will also give a negative amount of losses.

schneefux commented 7 years ago

Many players are being returned where the number of wins is actually higher than the amount of matches played.

Ingame, it says "1082 wins" for me. The API returns 1081 wins. I played a Blitz match, now I am at 1083 (1082 in the API) wins. The number does not represent what it used to be - the number of standard matches won - both in game and in the API.

curl -g "https://api.dc01.gamelockerapp.com/shards/eu/players?filter[playerNames]=shutterfly" -H "Authorization: Bearer $APIKEY" -H "X-TITLE-ID: semc-vainglory" -H "Accept: application/vnd.api+json"

Skillz4Killz commented 7 years ago

@schneefux wins in game vs in API is a separate bug that was supposed to be fixed with the 2.7 patch where the number of wins was 1 less than in-game. It was stated in the changelog that the API was reporting the number of wins pre-match and not post-match. In order for it to show correctly, you had to play another match and it would update the API. EDIT: I am starting to think nothing in the changelog was actually fixed in the recent update. I'm not seeing any of these changes made.

The number of wins representing standard only or all matches doesn't matter. The wins field should never be higher than the played field. EDIT: Unless played does not include Blitz. In which case this would be true for me as well as I play a ton of blitz yet isn't the case and it shows up properly for me. So I'm not sure what the issue is really with these data points.

Relevant:

{ played: 572,
wins: 642,

Full

{ elo_earned_season_4: 0,
elo_earned_season_5: 753.409662444039,
elo_earned_season_6: 1088.5247873184278,
elo_earned_season_7: 1349.403975530395,
karmaLevel: 1,
level: 29,
lifetimeGold: 15275.875,
lossStreak: 0,
played: 572,
played_ranked: 86,
skillTier: 13,
winStreak: 0,
wins: 642,
xp: 143933 }
schneefux commented 7 years ago

The changelog says:

The next version of VG will include fixes for the following fields: […] wins

You said:

These two fields represent a number of matches a player has played and how many they have won.

I said:

The number does not represent what it used to be - the number of standard matches won - both in game and in the API.

wins is not the number of matches won, and it is not the number of standard matches won either. It is the number of standard matches won + the number of Brawl matches won since about 2.3 (?). That is a data issue. It is related to your issue, because you cannot compare wins and played if wins does not return a number of wins. I haven't tested whether played is broken in the same way, but judging from your problem, it might represent the number of casual matches played.

wins in game vs in API is a separate bug that was supposed to be fixed with the 2.7 patch This is #78

Skillz4Killz commented 7 years ago

Oo I must have misunderstood that as to say in the next update meaning 2.7 because that was written before 2.7 was released.

In the beginning, wins represented Casual + Ranked aka Standard. After that patch, it became Standard + Brawls

Assuming the following:

Standard = Casual + Ranked Brawl = Blitz + Battle Royale wins = Standard + Brawl The only remaining game modes are privates/practice.

Since wins is higher than played we can be certain that wins is getting more data than played meaning played = (Standard + Brawl) - x

If wins includes private/practice matches then the assumption that wins = Standard + Brawl is incorrect. Either way, this is bugged A) wins or played reporting incorrectly B) requires clarification if this includes privates/practice and then the bug is that played does not include them.

svperfecta commented 7 years ago

Hey folks - I'm not sure what this ticket is asking for anymore. Let's clarify specifically what the problem is right now, or if its a duplicate, close it?

svperfecta commented 7 years ago

Ok, I clarified this in #263 and I'd like to close this.

Skillz4Killz commented 7 years ago

@genexp #263 has nothing to do with this issue. #263 is a whole separate bug.

Wins/Played No matter whether a bug existst that shows data at the beginning or end of a match, wins CANNOT be higher than played. This is broken.

{ played: 572,
wins: 642,
}

Win/Loss Streaks No matter whether a bug exists that shows data at beginning or end of a match winStreak and lossStreak CANNOT both be 0. If a player has data in the API they must have played atleast 1 match. meaning either winStreak or lossStreak is more than 0. BOTH CANNOT BE 0. And every player object reports 0. This is broken.

{ 
lossStreak: 0,
winStreak: 0,
}

elo_earned_season_x No matter whether a bug existst that shows data at the beginning or end of a match players are reporting these values (which are historical values and will never change) as lower than their in game values. Need a clarification from SEMC as to how this is possible. My theory is that this shows the last moment VST and not the highest. In game shows highest. This is why no one has reported elo_earned as higher than their in game but everyone reports lower.

Current Season Elo This is missing and needs to be added in.

lifetimeGold You already know. Its also been made into a separate issue so well leave that out from here.

svperfecta commented 7 years ago

@Skillz4Killz I think we chatted, and we split this up into four bugs right? I'd like to close this is possible. It's an uber bug :)