Fixed incorrect wilderness level calculation

This commit is contained in:
Avi Weinstock
2022-08-25 12:49:48 +00:00
committed by Ryan
parent 77b0fc4eb6
commit 3e6b156bba
@@ -286,13 +286,6 @@ public final class WildernessZone extends MapZone {
if (e instanceof Player && !e.asPlayer().isArtificial()) { if (e instanceof Player && !e.asPlayer().isArtificial()) {
Player p = (Player) e; Player p = (Player) e;
p.getSkullManager().setLevel(getWilderness(p)); p.getSkullManager().setLevel(getWilderness(p));
Component overlay = p.getInterfaceManager().getOverlay();
if (overlay == null || overlay.getId() != 381) {
show(p);
}
if (!p.getSkullManager().isWildernessDisabled()) {
p.getPacketDispatch().sendString("Level: " + p.getSkullManager().getLevel(), 381, 1);
}
} }
} }
@@ -316,23 +309,12 @@ public final class WildernessZone extends MapZone {
* @return the level. * @return the level.
*/ */
public static int getWilderness(Entity e) { public static int getWilderness(Entity e) {
if (e.getLocation().getY() < 3524) { int y = e.getLocation().getY();
return -1; if(6400 < y) {
} return ((y - 9920) / 8) + 1;
final int regionId = e.getViewport().getRegion().getId(); } else {
int offsetY = 3524; return ((y - 3520) / 8) + 1;
if (regionId == 12443 || e.getViewport().getRegion().getId() == 12444) { }
offsetY = 9923;
} else if (regionId == 12193) {
offsetY = 10000 - 80;
} else if (regionId == 11937) {
offsetY = 9920;
}
int level = (int) Math.ceil((double) (e.getLocation().getY() - offsetY) / 8d);
if (level < 0) {
return 1;
}
return level;
} }
/** /**