Improve level calculation/Add farm & fight level

This commit is contained in:
kaenganxt
2014-12-17 17:14:49 +01:00
parent a7e0838cac
commit 6b0a6e738e

View File

@@ -87,11 +87,13 @@ public final class Level {
ResultSet pots = Core.getMySql().querySelect("SELECT count(*) as pots FROM coreFoundPots WHERE player" + whereClause);
ResultSet stages = Core.getMySql().querySelect("SELECT count(*) as stages FROM jumpUsers WHERE playerId" + whereClause);
ResultSet smashClasses = Core.getMySql().querySelect("SELECT count(*) as classes FROM smashClasses WHERE playerId" + whereClause);
ResultSet ffStats = Core.getMySql().querySelect("SELECT SUM(totalKillsAlive) as killsAlive, SUM(totalKillsUndead) as killsUndead, SUM(totalDeaths) as totalDeaths, SUM(hasWon) as wins, COUNT(*) as games FROM ffStatsPlayers WHERE playerId" + whereClause);
stats.first();
features.first();
pots.first();
stages.first();
smashClasses.first();
ffStats.first();
int time = stats.getInt("onlineTime");
double walked = stats.getInt("walkedMeters");
int wins = stats.getInt("aimTheWaterWins");
@@ -99,15 +101,32 @@ public final class Level {
double deaths = stats.getInt("smashDeaths");
double killstreak = stats.getInt("smashKillstreak");
double smashMoney = stats.getInt("smashMoney");
int maxSmashLevel = stats.getInt("maxSmashLevel");
int maxFFLevel = stats.getInt("maxFFLevel");
int feature = features.getInt("features");
int pot = pots.getInt("pots");
int stage = stages.getInt("stages");
int classes = smashClasses.getInt("classes");
double level = (time * 0.0375 + walked / 300.0 + wins * 400 + feature * 1200 + pot * 200 + stage * 300) / 400.0;
int ffKills = ffStats.getInt("killsAlive") + ffStats.getInt("killsUndead");
int ffDeaths = ffStats.getInt("totalDeaths");
int ffWins = ffStats.getInt("wins");
int ffGames = ffStats.getInt("games");
double fLevel = (ffKills/(ffDeaths + 1)) * 2 * (ffKills / 25) + ffWins / 5 + ffGames / 15;
double level = (time * 0.0375 + walked / 300.0 + wins * 250 + feature * 1200 + pot * 200 + stage * 400) / 400.0;
double sLevel = ((kills / (deaths + 1)) * kills / 90 + smashMoney / 90 + classes * 5 + (killstreak * killstreak) / 4) / 3 + 1;
if (maxSmashLevel < sLevel) {
maxSmashLevel = (int) sLevel;
}
if (maxFFLevel < fLevel) {
maxFFLevel = (int) fLevel;
}
level += (double) (maxSmashLevel / 4);
level += (double) maxFFLevel;
System.out.println(level);
anuraLevel.put(P, (int) level);
smashLevel.put(P, (int) sLevel);
Core.getMySql().queryUpdate("UPDATE coreStats SET level = '" + level + "', smashLevel = '" + sLevel + "' WHERE player" + whereClause);
ffLevel.put(P, (int) fLevel);
Core.getMySql().queryUpdate("UPDATE coreStats SET level = '" + level + "', smashLevel = '" + sLevel + "', maxSmashLevel = '" + maxSmashLevel + "', ffLevel = '" + fLevel + "', maxFFLevel = '" + maxFFLevel + "' WHERE player" + whereClause);
} catch(Throwable e) {
Errors.reportException(e);
}