Bring back maximum scores obtained stats for compatibility
This commit is contained in:
parent
5a7099da02
commit
067feb70f5
@ -3066,8 +3066,11 @@ void ServerLobby::computeNewRankings()
|
||||
// Update the maximum (reliable floor) score. At min RD, it is equal to the raw score.
|
||||
// TODO : make the public-facing score and rankings based on a reliable floor score ?
|
||||
double reliable_score = m_scores.at(id) - 3*new_rating_deviations[i] + 3*MIN_RATING_DEVIATION;
|
||||
if (reliable_score > m_max_scores.at(id))
|
||||
m_max_scores.at(id) = m_scores.at(id) - 3*new_rating_deviations[i] + 3*MIN_RATING_DEVIATION;
|
||||
if (reliable_score > m_reliable_scores.at(id))
|
||||
m_reliable_scores.at(id) = m_scores.at(id) - 3*new_rating_deviations[i] + 3*MIN_RATING_DEVIATION;
|
||||
|
||||
if (m_scores.at(id) > m_max_scores.at(id))
|
||||
m_max_scores.at(id) = m_scores.at(id);
|
||||
}
|
||||
|
||||
// Used to display rating change at the end of a race
|
||||
@ -3276,6 +3279,7 @@ void ServerLobby::clearDisconnectedRankedPlayer()
|
||||
m_scores.erase(id);
|
||||
m_max_scores.erase(id);
|
||||
m_num_ranked_races.erase(id);
|
||||
m_reliable_scores.erase(id);
|
||||
m_rating_deviations.erase(id);
|
||||
m_num_ranked_disconnects.erase(id);
|
||||
it = m_ranked_players.erase(it);
|
||||
@ -4483,8 +4487,9 @@ void ServerLobby::getRankingForPlayer(std::shared_ptr<NetworkPlayerProfile> p)
|
||||
|
||||
// Default result
|
||||
double score = 4000.0;
|
||||
double max_score = 1300.0;
|
||||
double max_score = 4000.0;
|
||||
unsigned num_races = 0;
|
||||
double reliable_score = 1300.0;
|
||||
double rating_deviation = 1000.0;
|
||||
uint64_t disconnection = 0;
|
||||
if (result->get("success", &rec_success))
|
||||
@ -4494,6 +4499,7 @@ void ServerLobby::getRankingForPlayer(std::shared_ptr<NetworkPlayerProfile> p)
|
||||
result->get("scores", &score);
|
||||
result->get("max-scores", &max_score);
|
||||
result->get("num-races-done", &num_races);
|
||||
result->get("reliable-scores", &reliable_score);
|
||||
result->get("rating-deviation", &rating_deviation);
|
||||
result->get("disconnection", &disconnection);
|
||||
}
|
||||
@ -4526,6 +4532,7 @@ void ServerLobby::getRankingForPlayer(std::shared_ptr<NetworkPlayerProfile> p)
|
||||
m_scores[id] = score;
|
||||
m_max_scores[id] = max_score;
|
||||
m_num_ranked_races[id] = num_races;
|
||||
m_reliable_scores[id] = reliable_score;
|
||||
m_rating_deviations[id] = rating_deviation;
|
||||
m_num_ranked_disconnects[id] = disconnection;
|
||||
} // getRankingForPlayer
|
||||
@ -4543,7 +4550,8 @@ void ServerLobby::submitRankingsToAddons()
|
||||
public:
|
||||
SubmitRankingRequest(uint32_t online_id, double scores,
|
||||
double max_scores, unsigned num_races,
|
||||
double rating_deviation, uint64_t disconnection,
|
||||
double reliable_scores, double rating_deviation,
|
||||
uint64_t disconnection,
|
||||
const std::string& country_code)
|
||||
: XMLRequest(Online::RequestManager::HTTP_MAX_PRIORITY)
|
||||
{
|
||||
@ -4551,6 +4559,7 @@ void ServerLobby::submitRankingsToAddons()
|
||||
addParameter("scores", scores);
|
||||
addParameter("max-scores", max_scores);
|
||||
addParameter("num-races-done", num_races);
|
||||
addParameter("reliable-scores", reliable_scores);
|
||||
addParameter("rating-deviation", rating_deviation);
|
||||
addParameter("disconnection", disconnection);
|
||||
addParameter("country-code", country_code);
|
||||
@ -4574,8 +4583,8 @@ void ServerLobby::submitRankingsToAddons()
|
||||
const uint32_t id = RaceManager::get()->getKartInfo(i).getOnlineId();
|
||||
auto request = std::make_shared<SubmitRankingRequest>
|
||||
(id, m_scores.at(id), m_max_scores.at(id),
|
||||
m_num_ranked_races.at(id), m_rating_deviations.at(id),
|
||||
m_num_ranked_disconnects.at(id),
|
||||
m_num_ranked_races.at(id), m_reliable_scores.at(id),
|
||||
m_rating_deviations.at(id), m_num_ranked_disconnects.at(id),
|
||||
RaceManager::get()->getKartInfo(i).getCountryCode());
|
||||
NetworkConfig::get()->setUserDetails(request, "submit-ranking");
|
||||
Log::info("ServerLobby", "Submiting ranking for %s (%d) : %lf, %lf %d",
|
||||
|
@ -199,10 +199,13 @@ private:
|
||||
/** The rating uncertainty for each current player */
|
||||
std::map<uint32_t, double> m_rating_deviations;
|
||||
|
||||
/** The maximum scores obtained for each current player */
|
||||
std::map<uint32_t, double> m_max_scores;
|
||||
|
||||
/** The maximum reliable ranking scores achieved for each current player.
|
||||
This is not the same as the maximum raw ranking points,
|
||||
because a very high rating with very high RD is most likely lucky. */
|
||||
std::map<uint32_t, double> m_max_scores;
|
||||
std::map<uint32_t, double> m_reliable_scores;
|
||||
|
||||
/** Number of disconnects in the previous 64 ranked races for each current players */
|
||||
std::map<uint32_t, uint64_t> m_num_ranked_disconnects; // TODO Initialized to 0 for a new player on 1st connection to a ranked server
|
||||
|
Loading…
x
Reference in New Issue
Block a user