diff --git a/src/de/anura/core/API/Level.java b/src/de/anura/core/API/Level.java index 26f0954..09fa4a4 100644 --- a/src/de/anura/core/API/Level.java +++ b/src/de/anura/core/API/Level.java @@ -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); }