From 3e8a788ea5397e7310abf015d7ac61f729e708fe Mon Sep 17 00:00:00 2001 From: Irk Date: Mon, 20 Jan 2025 12:24:02 +1100 Subject: [PATCH] Fix Highscores and new Query New Boss Points Highscore Query. Now the query avoid all the characters from account 1. Removing all the Sample from highscores or Characters on account id 1 --- src/game/game.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/game/game.cpp b/src/game/game.cpp index 8100e1ba..4788422f 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -382,10 +382,11 @@ Game::Game() { { static_cast(LOYALTY_POINTS), "Loyalty Points" }, { static_cast(MAGIC_LEVEL), "Magic Level" }, { static_cast(SHIELDING), "Shielding" }, - { static_cast(HighscoreCategories_t::SWORD_FIGHTING), "Sword Fighting" }, + { static_cast(SWORD_FIGHTING), "Sword Fighting" }, }; m_highscoreCategories = { + HighscoreCategory("Boss Points", static_cast(HighscoreCategories_t::BOSS_POINTS)), HighscoreCategory("Experience Points", static_cast(HighscoreCategories_t::EXPERIENCE)), HighscoreCategory("Fist Fighting", static_cast(HighscoreCategories_t::FIST_FIGHTING)), HighscoreCategory("Club Fighting", static_cast(HighscoreCategories_t::CLUB_FIGHTING)), @@ -8571,9 +8572,8 @@ std::string Game::generateHighscoreQueryForEntries(const std::string &categoryNa query << "SELECT *, @row AS `entries`, " << page << " AS `page` FROM (SELECT *, (@row := @row + 1) AS `rn` FROM (SELECT `id`, `name`, `level`, `vocation`, `" << categoryName << "` AS `points`, @curRank := IF(@prevRank = `" << categoryName << "`, @curRank, IF(@prevRank := `" << categoryName - << "`, @curRank + 1, @curRank + 1)) AS `rank` FROM `players` `p`, (SELECT @curRank := 0, @prevRank := NULL, @row := 0) `r` WHERE `group_id` < " - << static_cast(GROUP_TYPE_GAMEMASTER) << " ORDER BY `" << categoryName << "` DESC) `t`"; - + << "`, @curRank + 1, @curRank + 1)) AS `rank` FROM `players` `p`, (SELECT @curRank := 0, @prevRank := NULL, @row := 0) `r` WHERE `account_id` != " + << 1 << " ORDER BY `" << categoryName << "` DESC) `t`"; if (vocation != 0xFFFFFFFF) { query << generateVocationConditionHighscore(vocation); } @@ -8588,9 +8588,8 @@ std::string Game::generateHighscoreQueryForOurRank(const std::string &categoryNa query << "SELECT *, @row AS `entries`, (@ourRow DIV " << entriesStr << ") + 1 AS `page` FROM (SELECT *, (@row := @row + 1) AS `rn`, @ourRow := IF(`id` = " << playerGUID << ", @row - 1, @ourRow) AS `rw` FROM (SELECT `id`, `name`, `level`, `vocation`, `" << categoryName << "` AS `points`, @curRank := IF(@prevRank = `" - << categoryName << "`, @curRank, IF(@prevRank := `" << categoryName << "`, @curRank + 1, @curRank + 1)) AS `rank` FROM `players` `p`, (SELECT @curRank := 0, @prevRank := NULL, @row := 0, @ourRow := 0) `r` WHERE `group_id` < " - << static_cast(GROUP_TYPE_GAMEMASTER) << " ORDER BY `" << categoryName << "` DESC) `t`"; - + << categoryName << "`, @curRank, IF(@prevRank := `" << categoryName << "`, @curRank + 1, @curRank + 1)) AS `rank` FROM `players` `p`, (SELECT @curRank := 0, @prevRank := NULL, @row := 0, @ourRow := 0) `r` WHERE `account_id` != " + << 1 << " ORDER BY `" << categoryName << "` DESC) `t`"; if (vocation != 0xFFFFFFFF) { query << generateVocationConditionHighscore(vocation); }