diff --git a/Server/src/main/java/core/game/node/entity/skill/Skills.java b/Server/src/main/java/core/game/node/entity/skill/Skills.java index 2b5362b79..6835a1f11 100644 --- a/Server/src/main/java/core/game/node/entity/skill/Skills.java +++ b/Server/src/main/java/core/game/node/entity/skill/Skills.java @@ -401,6 +401,22 @@ public final class Skills { } } + public void correct(double divisor){ + for(int i = 0; i < staticLevels.length; i++){ + experience[i] /= divisor; + staticLevels[i] = getStaticLevelByExperience(i); + dynamicLevels[i] = staticLevels[i]; + if(i == PRAYER){ + setPrayerPoints(staticLevels[i]); + } + if(i == HITPOINTS){ + setLifepoints(staticLevels[i]); + } + } + experienceMutiplier = 5.0; + updateCombatLevel(); + } + public void parseExpRate(ByteBuffer buffer) { experienceMutiplier = buffer.getDouble(); if(GameWorld.getSettings().getDefault_xp_rate() != experienceMutiplier){ diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaveParser.kt b/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaveParser.kt index 98e3ecbfa..be882969a 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaveParser.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaveParser.kt @@ -372,6 +372,11 @@ class PlayerSaveParser(val player: Player) { if (GameWorld.settings?.default_xp_rate != 5.0) { player.skills.experienceMutiplier = GameWorld.settings?.default_xp_rate!! } + val divisor: Double + if(player.skills.experienceMutiplier >= 10){ + divisor = player.skills.experienceMutiplier / 5.0 + player.skills.correct(divisor) + } if (saveFile!!.containsKey("milestone")) { val milestone: JSONObject = saveFile!!["milestone"] as JSONObject player.skills.combatMilestone = (milestone.get("combatMilestone")).toString().toInt()