removed config option, og scoring now forced

This commit is contained in:
FinnHornhoover 2023-10-11 14:12:40 +03:00
parent e88ef52d12
commit b146328484
6 changed files with 13 additions and 33 deletions

View File

@ -51,11 +51,6 @@ motd=Welcome to OpenFusion!
# and pre-Academy builds must *not* contain it. # and pre-Academy builds must *not* contain it.
#enabledpatches=1013 #enabledpatches=1013
# Use Original FusionFall's racing score and reward calculation?
# Set false to use Retro's calculation, make sure you have the correct
# patch(es) loaded.
#ogracingscores=true
# xdt json filename # xdt json filename
#xdtdata=xdt.json #xdtdata=xdt.json
# NPC json filename # NPC json filename

View File

@ -103,18 +103,12 @@ static void racingEnd(CNSocket* sock, CNPacketData* data) {
uint64_t now = getTime() / 1000; uint64_t now = getTime() / 1000;
int timeDiff = now - epRace.startTime; int timeDiff = now - epRace.startTime;
int podsCollected = epRace.collectedRings.size(); int podsCollected = epRace.collectedRings.size();
int score = 0, fm = 0;
if (settings::OGRACINGSCORES) { int score = std::min(epInfo.maxScore, (int)std::exp(
score = std::min(epInfo.maxScore, (int)std::exp( (epInfo.podFactor * podsCollected) / epInfo.maxPods
(epInfo.podFactor * podsCollected) / epInfo.maxPods - (epInfo.timeFactor * timeDiff) / epInfo.maxTime
- (epInfo.timeFactor * timeDiff) / epInfo.maxTime + epInfo.scaleFactor));
+ epInfo.scaleFactor)); int fm = (1.0 + std::exp(epInfo.scaleFactor - 1.0) * epInfo.podFactor * podsCollected) / epInfo.maxPods;
fm = (1.0 + std::exp(epInfo.scaleFactor - 1.0) * epInfo.podFactor * podsCollected) / epInfo.maxPods;
} else {
score = std::max(0, 500 * podsCollected - 10 * timeDiff);
fm = score * plr->level * (1.0f / 36) * 0.3f;
}
// we submit the ranking first... // we submit the ranking first...
Database::RaceRanking postRanking = {}; Database::RaceRanking postRanking = {};

View File

@ -7,9 +7,9 @@
struct EPInfo { struct EPInfo {
// available through XDT (maxScore may be updated by drops) // available through XDT (maxScore may be updated by drops)
int zoneX, zoneY, EPID, maxScore; int zoneX, zoneY, EPID, maxScore;
// (maybe) available through drops // available through drops
int maxTime = 0, maxPods = 0; int maxTime, maxPods;
double scaleFactor = 0.0, podFactor = 0.0, timeFactor = 0.0; double scaleFactor, podFactor, timeFactor;
}; };
struct EPRace { struct EPRace {

View File

@ -576,15 +576,11 @@ static void loadDrops(json& dropData) {
// time limit isn't stored in the XDT, so we include it in the reward table instead // time limit isn't stored in the XDT, so we include it in the reward table instead
epInfo.maxTime = (int)race["TimeLimit"]; epInfo.maxTime = (int)race["TimeLimit"];
epInfo.maxScore = (int)race["ScoreCap"];
// the following has to be present based on the score calculation method epInfo.maxPods = (int)race["TotalPods"];
if (settings::OGRACINGSCORES) { epInfo.scaleFactor = (double)race["ScaleFactor"];
epInfo.maxScore = (int)race["ScoreCap"]; epInfo.podFactor = (double)race["PodFactor"];
epInfo.maxPods = (int)race["TotalPods"]; epInfo.timeFactor = (double)race["TimeFactor"];
epInfo.scaleFactor = (double)race["ScaleFactor"];
epInfo.podFactor = (double)race["PodFactor"];
epInfo.timeFactor = (double)race["TimeFactor"];
}
// score cutoffs // score cutoffs
std::vector<int> rankScores; std::vector<int> rankScores;

View File

@ -66,9 +66,6 @@ int settings::MONITORINTERVAL = 5000;
// event mode settings // event mode settings
int settings::EVENTMODE = 0; int settings::EVENTMODE = 0;
// racing score mode
bool settings::OGRACINGSCORES = true;
void settings::init() { void settings::init() {
INIReader reader("config.ini"); INIReader reader("config.ini");
@ -113,7 +110,6 @@ void settings::init() {
EVENTMODE = reader.GetInteger("shard", "eventmode", EVENTMODE); EVENTMODE = reader.GetInteger("shard", "eventmode", EVENTMODE);
DISABLEFIRSTUSEFLAG = reader.GetBoolean("shard", "disablefirstuseflag", DISABLEFIRSTUSEFLAG); DISABLEFIRSTUSEFLAG = reader.GetBoolean("shard", "disablefirstuseflag", DISABLEFIRSTUSEFLAG);
ANTICHEAT = reader.GetBoolean("shard", "anticheat", ANTICHEAT); ANTICHEAT = reader.GetBoolean("shard", "anticheat", ANTICHEAT);
OGRACINGSCORES = reader.GetBoolean("shard", "ogracingscores", OGRACINGSCORES);
MONITORENABLED = reader.GetBoolean("monitor", "enabled", MONITORENABLED); MONITORENABLED = reader.GetBoolean("monitor", "enabled", MONITORENABLED);
MONITORPORT = reader.GetInteger("monitor", "port", MONITORPORT); MONITORPORT = reader.GetInteger("monitor", "port", MONITORPORT);
MONITORINTERVAL = reader.GetInteger("monitor", "interval", MONITORINTERVAL); MONITORINTERVAL = reader.GetInteger("monitor", "interval", MONITORINTERVAL);

View File

@ -36,7 +36,6 @@ namespace settings {
extern int MONITORPORT; extern int MONITORPORT;
extern int MONITORINTERVAL; extern int MONITORINTERVAL;
extern bool DISABLEFIRSTUSEFLAG; extern bool DISABLEFIRSTUSEFLAG;
extern bool OGRACINGSCORES;
void init(); void init();
} }