mirror of
https://github.com/DarkflameUniverse/DarkflameServer
synced 2024-08-30 18:43:58 +00:00
Leaderboard Scoring Updates
This commit is contained in:
parent
dcbca46e75
commit
3cb16ddb5f
@ -123,7 +123,7 @@ void LeaderboardManager::SaveScore(LWOOBJID playerID, uint32_t gameID, uint32_t
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SurvivalNS:
|
case SurvivalNS:
|
||||||
if (time >= storedTime)
|
if (score < storedScore || time >= storedTime)
|
||||||
highscore = false;
|
highscore = false;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -150,7 +150,7 @@ void LeaderboardManager::SaveScore(LWOOBJID playerID, uint32_t gameID, uint32_t
|
|||||||
|
|
||||||
delete statement;
|
delete statement;
|
||||||
} else {
|
} else {
|
||||||
// Note: last_played will be set to sysdate by default when inserting into leaderboard
|
// Note: last_played will be set to SYSDATE() by default when inserting into leaderboard
|
||||||
auto* statement = Database::CreatePreppedStmt("INSERT INTO leaderboard (character_id, game_id, time, score) VALUES (?, ?, ?, ?);");
|
auto* statement = Database::CreatePreppedStmt("INSERT INTO leaderboard (character_id, game_id, time, score) VALUES (?, ?, ?, ?);");
|
||||||
statement->setUInt64(1, character->GetID());
|
statement->setUInt64(1, character->GetID());
|
||||||
statement->setInt(2, gameID);
|
statement->setInt(2, gameID);
|
||||||
@ -174,13 +174,16 @@ Leaderboard *LeaderboardManager::GetLeaderboard(uint32_t gameID, InfoType infoTy
|
|||||||
query = standingsScoreQuery; // Shooting gallery is based on the highest score.
|
query = standingsScoreQuery; // Shooting gallery is based on the highest score.
|
||||||
break;
|
break;
|
||||||
case FootRace:
|
case FootRace:
|
||||||
query = standingsTimeQuery; // The higher your time, the better (for FootRace)
|
query = standingsTimeQuery; // The higher your time, the better for FootRace.
|
||||||
break;
|
break;
|
||||||
case Survival:
|
case Survival:
|
||||||
query = classicSurvivalScoring ? standingsTimeQuery : standingsScoreQuery;
|
query = classicSurvivalScoring ? standingsTimeQuery : standingsScoreQuery;
|
||||||
break;
|
break;
|
||||||
|
case SurvivalNS:
|
||||||
|
query = standingsScoreQueryAsc; // BoNS is scored by highest wave (score) first, then time.
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
query = standingsTimeQueryAsc; // SurvivalNS, MonumentRace, and Racing are all based on the shortest time.
|
query = standingsTimeQueryAsc; // MonumentRace and Racing are based on the shortest time.
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case InfoType::Friends:
|
case InfoType::Friends:
|
||||||
@ -189,13 +192,16 @@ Leaderboard *LeaderboardManager::GetLeaderboard(uint32_t gameID, InfoType infoTy
|
|||||||
query = friendsScoreQuery; // Shooting gallery is based on the highest score.
|
query = friendsScoreQuery; // Shooting gallery is based on the highest score.
|
||||||
break;
|
break;
|
||||||
case FootRace:
|
case FootRace:
|
||||||
query = friendsTimeQuery; // The higher your time, the better (for FootRace)
|
query = friendsTimeQuery; // The higher your time, the better for FootRace.
|
||||||
break;
|
break;
|
||||||
case Survival:
|
case Survival:
|
||||||
query = classicSurvivalScoring ? friendsTimeQuery : friendsScoreQuery;
|
query = classicSurvivalScoring ? friendsTimeQuery : friendsScoreQuery;
|
||||||
break;
|
break;
|
||||||
|
case SurvivalNS:
|
||||||
|
query = friendsScoreQueryAsc; // BoNS is scored by highest wave (score) first, then time.
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
query = friendsTimeQueryAsc; // SurvivalNS, MonumentRace, and Racing are all based on the shortest time.
|
query = friendsTimeQueryAsc; // MonumentRace and Racing are based on the shortest time.
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -205,13 +211,16 @@ Leaderboard *LeaderboardManager::GetLeaderboard(uint32_t gameID, InfoType infoTy
|
|||||||
query = topPlayersScoreQuery; // Shooting gallery is based on the highest score.
|
query = topPlayersScoreQuery; // Shooting gallery is based on the highest score.
|
||||||
break;
|
break;
|
||||||
case FootRace:
|
case FootRace:
|
||||||
query = topPlayersTimeQuery; // The higher your time, the better (for FootRace)
|
query = topPlayersTimeQuery; // The higher your time, the better for FootRace.
|
||||||
break;
|
break;
|
||||||
case Survival:
|
case Survival:
|
||||||
query = classicSurvivalScoring ? topPlayersTimeQuery : topPlayersScoreQuery;
|
query = classicSurvivalScoring ? topPlayersTimeQuery : topPlayersScoreQuery;
|
||||||
break;
|
break;
|
||||||
|
case SurvivalNS:
|
||||||
|
query = topPlayersScoreQueryAsc; // BoNS is scored by highest wave (score) first, then time.
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
query = topPlayersTimeQueryAsc; // SurvivalNS, MonumentRace, and Racing are all based on the shortest time.
|
query = topPlayersTimeQueryAsc; // MonumentRace and Racing are based on the shortest time.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user