From 3563a89445dcfacf63dc279ffc5846a280aa3b0f Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 23 Jan 2020 01:58:41 +0000 Subject: [PATCH] Multiple time limited zone checks on login. --- .../network/clientpackets/EnterWorld.java | 28 +++++++++++-------- .../network/clientpackets/EnterWorld.java | 18 +++++++----- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 097e131e55..6b829ac5dd 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -648,19 +648,23 @@ public class EnterWorld implements IClientIncomingPacket } // Check if in time limited hunting zone. - final long stormIsleExitTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_RESET_TIME + 1, 0); - final long primevalIsleExitTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_RESET_TIME + 6, 0); - if (stormIsleExitTime > System.currentTimeMillis()) + if (player.isInTimedHuntingZone()) { - player.startTimedHuntingZone(1, stormIsleExitTime - System.currentTimeMillis()); - } - else if (primevalIsleExitTime > System.currentTimeMillis()) - { - player.startTimedHuntingZone(6, primevalIsleExitTime - System.currentTimeMillis()); - } - else if (player.isInTimedHuntingZone()) - { - player.teleToLocation(MapRegionManager.getInstance().getTeleToLocation(player, TeleportWhereType.TOWN)); + final long currentTime = System.currentTimeMillis(); + final long stormIsleExitTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_RESET_TIME + 1, 0); + final long primevalIsleExitTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_RESET_TIME + 6, 0); + if ((stormIsleExitTime > currentTime) && player.isInTimedHuntingZone(1)) + { + player.startTimedHuntingZone(1, stormIsleExitTime - currentTime); + } + else if ((primevalIsleExitTime > currentTime) && player.isInTimedHuntingZone(6)) + { + player.startTimedHuntingZone(6, primevalIsleExitTime - currentTime); + } + else + { + player.teleToLocation(MapRegionManager.getInstance().getTeleToLocation(player, TeleportWhereType.TOWN)); + } } if (Config.ENABLE_ATTENDANCE_REWARDS) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index d1e6d0fe5f..8bfd9fe9a3 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -633,14 +633,18 @@ public class EnterWorld implements IClientIncomingPacket } // Check if in time limited hunting zone. - final long pirateTombExitTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_RESET_TIME + 2, 0); - if (pirateTombExitTime > System.currentTimeMillis()) + if (player.isInTimedHuntingZone()) { - player.startTimedHuntingZone(2, pirateTombExitTime - System.currentTimeMillis()); - } - else if (player.isInTimedHuntingZone()) - { - player.teleToLocation(MapRegionManager.getInstance().getTeleToLocation(player, TeleportWhereType.TOWN)); + final long currentTime = System.currentTimeMillis(); + final long pirateTombExitTime = player.getVariables().getLong(PlayerVariables.HUNTING_ZONE_RESET_TIME + 2, 0); + if ((pirateTombExitTime > currentTime) && player.isInTimedHuntingZone(2)) + { + player.startTimedHuntingZone(1, pirateTombExitTime - currentTime); + } + else + { + player.teleToLocation(MapRegionManager.getInstance().getTeleToLocation(player, TeleportWhereType.TOWN)); + } } if (Config.ENABLE_ATTENDANCE_REWARDS)