From 75bea9840c655d95cd488ae1013a861126ff4c82 Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Fri, 28 Oct 2022 23:49:20 +0000
Subject: [PATCH] Addition of Time Hunting zonePremiumUserOnly parameter.
Contributed by Fakee.
---
.../dist/game/data/xsd/TimedHuntingZoneData.xsd | 1 +
.../gameserver/data/xml/TimedHuntingZoneData.java | 8 +++++++-
.../gameserver/model/holders/TimedHuntingZoneHolder.java | 9 ++++++++-
.../serverpackets/huntingzones/TimedHuntingZoneList.java | 4 ++--
.../dist/game/data/xsd/TimedHuntingZoneData.xsd | 1 +
.../gameserver/data/xml/TimedHuntingZoneData.java | 8 +++++++-
.../gameserver/model/holders/TimedHuntingZoneHolder.java | 9 ++++++++-
.../serverpackets/huntingzones/TimedHuntingZoneList.java | 4 ++--
.../dist/game/data/xsd/TimedHuntingZoneData.xsd | 1 +
.../gameserver/data/xml/TimedHuntingZoneData.java | 8 +++++++-
.../gameserver/model/holders/TimedHuntingZoneHolder.java | 9 ++++++++-
.../serverpackets/huntingzones/TimedHuntingZoneList.java | 4 ++--
.../dist/game/data/xsd/TimedHuntingZoneData.xsd | 1 +
.../gameserver/data/xml/TimedHuntingZoneData.java | 8 +++++++-
.../gameserver/model/holders/TimedHuntingZoneHolder.java | 9 ++++++++-
.../serverpackets/huntingzones/TimedHuntingZoneList.java | 4 ++--
.../dist/game/data/xsd/TimedHuntingZoneData.xsd | 1 +
.../gameserver/data/xml/TimedHuntingZoneData.java | 8 +++++++-
.../gameserver/model/holders/TimedHuntingZoneHolder.java | 9 ++++++++-
.../serverpackets/huntingzones/TimedHuntingZoneList.java | 4 ++--
.../dist/game/data/xsd/TimedHuntingZoneData.xsd | 1 +
.../gameserver/data/xml/TimedHuntingZoneData.java | 8 +++++++-
.../gameserver/model/holders/TimedHuntingZoneHolder.java | 9 ++++++++-
.../serverpackets/huntingzones/TimedHuntingZoneList.java | 4 ++--
.../dist/game/data/xsd/TimedHuntingZoneData.xsd | 1 +
.../gameserver/data/xml/TimedHuntingZoneData.java | 8 +++++++-
.../gameserver/model/holders/TimedHuntingZoneHolder.java | 9 ++++++++-
.../serverpackets/huntingzones/TimedHuntingZoneList.java | 4 ++--
.../dist/game/data/xsd/TimedHuntingZoneData.xsd | 1 +
.../gameserver/data/xml/TimedHuntingZoneData.java | 8 +++++++-
.../gameserver/model/holders/TimedHuntingZoneHolder.java | 9 ++++++++-
.../serverpackets/huntingzones/TimedHuntingZoneList.java | 4 ++--
32 files changed, 144 insertions(+), 32 deletions(-)
diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/xsd/TimedHuntingZoneData.xsd b/L2J_Mobius_08.2_Homunculus/dist/game/data/xsd/TimedHuntingZoneData.xsd
index fd6203a715..cb685eca0c 100644
--- a/L2J_Mobius_08.2_Homunculus/dist/game/data/xsd/TimedHuntingZoneData.xsd
+++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/xsd/TimedHuntingZoneData.xsd
@@ -22,6 +22,7 @@
+
diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
index 35d6d60f92..8640a5f5d5 100644
--- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
+++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
@@ -93,6 +93,7 @@ public class TimedHuntingZoneData implements IXmlReader
boolean soloInstance = true;
boolean weekly = false;
boolean useWorldPrefix = false;
+ boolean zonePremiumUserOnly = false;
Location enterLocation = null;
Location exitLocation = null;
for (Node zoneNode = listNode.getFirstChild(); zoneNode != null; zoneNode = zoneNode.getNextSibling())
@@ -186,9 +187,14 @@ public class TimedHuntingZoneData implements IXmlReader
useWorldPrefix = Boolean.parseBoolean(zoneNode.getTextContent());
break;
}
+ case "zonePremiumUserOnly":
+ {
+ zonePremiumUserOnly = Boolean.parseBoolean(zoneNode.getTextContent());
+ break;
+ }
}
}
- _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, enterLocation, exitLocation));
+ _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, zonePremiumUserOnly, enterLocation, exitLocation));
}
}
}
diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
index 30f95830b7..719beba1f5 100644
--- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
+++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
@@ -41,12 +41,13 @@ public class TimedHuntingZoneHolder
private final boolean _soloInstance;
private final boolean _weekly;
private final boolean _useWorldPrefix;
+ private final boolean _zonePremiumUserOnly;
private final Location _enterLocation;
private final Location _exitLocation;
private final int _mapX;
private final int _mapY;
- public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, Location enterLocation, Location exitLocation)
+ public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, boolean zonePremiumUserOnly, Location enterLocation, Location exitLocation)
{
_id = id;
_name = name;
@@ -65,6 +66,7 @@ public class TimedHuntingZoneHolder
_soloInstance = soloInstance;
_weekly = weekly;
_useWorldPrefix = useWorldPrefix;
+ _zonePremiumUserOnly = zonePremiumUserOnly;
_enterLocation = enterLocation;
_exitLocation = exitLocation;
_mapX = ((_enterLocation.getX() - World.WORLD_X_MIN) >> 15) + World.TILE_X_MIN;
@@ -156,6 +158,11 @@ public class TimedHuntingZoneHolder
return _useWorldPrefix;
}
+ public boolean zonePremiumUserOnly()
+ {
+ return _zonePremiumUserOnly;
+ }
+
public Location getEnterLocation()
{
return _enterLocation;
diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
index 36d05e9317..1606e8cd45 100644
--- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
+++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
@@ -67,8 +67,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
packet.writeC(0); // bUserBound
packet.writeC(0); // bCanReEnter
- packet.writeC(0); // bIsInZonePCCafeUserOnly
- packet.writeC(0); // bIsPCCafeUser
+ packet.writeC(holder.zonePremiumUserOnly() ? 1 : 0); // bIsInZonePCCafeUserOnly
+ packet.writeC(_player.hasPremiumStatus() ? 1 : 0); // bIsPCCafeUser
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
}
return true;
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/xsd/TimedHuntingZoneData.xsd b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/xsd/TimedHuntingZoneData.xsd
index fd6203a715..cb685eca0c 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/xsd/TimedHuntingZoneData.xsd
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/xsd/TimedHuntingZoneData.xsd
@@ -22,6 +22,7 @@
+
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
index 35d6d60f92..8640a5f5d5 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
@@ -93,6 +93,7 @@ public class TimedHuntingZoneData implements IXmlReader
boolean soloInstance = true;
boolean weekly = false;
boolean useWorldPrefix = false;
+ boolean zonePremiumUserOnly = false;
Location enterLocation = null;
Location exitLocation = null;
for (Node zoneNode = listNode.getFirstChild(); zoneNode != null; zoneNode = zoneNode.getNextSibling())
@@ -186,9 +187,14 @@ public class TimedHuntingZoneData implements IXmlReader
useWorldPrefix = Boolean.parseBoolean(zoneNode.getTextContent());
break;
}
+ case "zonePremiumUserOnly":
+ {
+ zonePremiumUserOnly = Boolean.parseBoolean(zoneNode.getTextContent());
+ break;
+ }
}
}
- _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, enterLocation, exitLocation));
+ _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, zonePremiumUserOnly, enterLocation, exitLocation));
}
}
}
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
index 30f95830b7..719beba1f5 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
@@ -41,12 +41,13 @@ public class TimedHuntingZoneHolder
private final boolean _soloInstance;
private final boolean _weekly;
private final boolean _useWorldPrefix;
+ private final boolean _zonePremiumUserOnly;
private final Location _enterLocation;
private final Location _exitLocation;
private final int _mapX;
private final int _mapY;
- public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, Location enterLocation, Location exitLocation)
+ public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, boolean zonePremiumUserOnly, Location enterLocation, Location exitLocation)
{
_id = id;
_name = name;
@@ -65,6 +66,7 @@ public class TimedHuntingZoneHolder
_soloInstance = soloInstance;
_weekly = weekly;
_useWorldPrefix = useWorldPrefix;
+ _zonePremiumUserOnly = zonePremiumUserOnly;
_enterLocation = enterLocation;
_exitLocation = exitLocation;
_mapX = ((_enterLocation.getX() - World.WORLD_X_MIN) >> 15) + World.TILE_X_MIN;
@@ -156,6 +158,11 @@ public class TimedHuntingZoneHolder
return _useWorldPrefix;
}
+ public boolean zonePremiumUserOnly()
+ {
+ return _zonePremiumUserOnly;
+ }
+
public Location getEnterLocation()
{
return _enterLocation;
diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
index 36d05e9317..1606e8cd45 100644
--- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
+++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
@@ -67,8 +67,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
packet.writeC(0); // bUserBound
packet.writeC(0); // bCanReEnter
- packet.writeC(0); // bIsInZonePCCafeUserOnly
- packet.writeC(0); // bIsPCCafeUser
+ packet.writeC(holder.zonePremiumUserOnly() ? 1 : 0); // bIsInZonePCCafeUserOnly
+ packet.writeC(_player.hasPremiumStatus() ? 1 : 0); // bIsPCCafeUser
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
}
return true;
diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/xsd/TimedHuntingZoneData.xsd b/L2J_Mobius_10.2_MasterClass/dist/game/data/xsd/TimedHuntingZoneData.xsd
index fd6203a715..cb685eca0c 100644
--- a/L2J_Mobius_10.2_MasterClass/dist/game/data/xsd/TimedHuntingZoneData.xsd
+++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/xsd/TimedHuntingZoneData.xsd
@@ -22,6 +22,7 @@
+
diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
index 35d6d60f92..8640a5f5d5 100644
--- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
+++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
@@ -93,6 +93,7 @@ public class TimedHuntingZoneData implements IXmlReader
boolean soloInstance = true;
boolean weekly = false;
boolean useWorldPrefix = false;
+ boolean zonePremiumUserOnly = false;
Location enterLocation = null;
Location exitLocation = null;
for (Node zoneNode = listNode.getFirstChild(); zoneNode != null; zoneNode = zoneNode.getNextSibling())
@@ -186,9 +187,14 @@ public class TimedHuntingZoneData implements IXmlReader
useWorldPrefix = Boolean.parseBoolean(zoneNode.getTextContent());
break;
}
+ case "zonePremiumUserOnly":
+ {
+ zonePremiumUserOnly = Boolean.parseBoolean(zoneNode.getTextContent());
+ break;
+ }
}
}
- _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, enterLocation, exitLocation));
+ _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, zonePremiumUserOnly, enterLocation, exitLocation));
}
}
}
diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
index 30f95830b7..719beba1f5 100644
--- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
+++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
@@ -41,12 +41,13 @@ public class TimedHuntingZoneHolder
private final boolean _soloInstance;
private final boolean _weekly;
private final boolean _useWorldPrefix;
+ private final boolean _zonePremiumUserOnly;
private final Location _enterLocation;
private final Location _exitLocation;
private final int _mapX;
private final int _mapY;
- public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, Location enterLocation, Location exitLocation)
+ public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, boolean zonePremiumUserOnly, Location enterLocation, Location exitLocation)
{
_id = id;
_name = name;
@@ -65,6 +66,7 @@ public class TimedHuntingZoneHolder
_soloInstance = soloInstance;
_weekly = weekly;
_useWorldPrefix = useWorldPrefix;
+ _zonePremiumUserOnly = zonePremiumUserOnly;
_enterLocation = enterLocation;
_exitLocation = exitLocation;
_mapX = ((_enterLocation.getX() - World.WORLD_X_MIN) >> 15) + World.TILE_X_MIN;
@@ -156,6 +158,11 @@ public class TimedHuntingZoneHolder
return _useWorldPrefix;
}
+ public boolean zonePremiumUserOnly()
+ {
+ return _zonePremiumUserOnly;
+ }
+
public Location getEnterLocation()
{
return _enterLocation;
diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
index 36d05e9317..1606e8cd45 100644
--- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
+++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
@@ -67,8 +67,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
packet.writeC(0); // bUserBound
packet.writeC(0); // bCanReEnter
- packet.writeC(0); // bIsInZonePCCafeUserOnly
- packet.writeC(0); // bIsPCCafeUser
+ packet.writeC(holder.zonePremiumUserOnly() ? 1 : 0); // bIsInZonePCCafeUserOnly
+ packet.writeC(_player.hasPremiumStatus() ? 1 : 0); // bIsPCCafeUser
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
}
return true;
diff --git a/L2J_Mobius_10.3_MasterClass/dist/game/data/xsd/TimedHuntingZoneData.xsd b/L2J_Mobius_10.3_MasterClass/dist/game/data/xsd/TimedHuntingZoneData.xsd
index fd6203a715..cb685eca0c 100644
--- a/L2J_Mobius_10.3_MasterClass/dist/game/data/xsd/TimedHuntingZoneData.xsd
+++ b/L2J_Mobius_10.3_MasterClass/dist/game/data/xsd/TimedHuntingZoneData.xsd
@@ -22,6 +22,7 @@
+
diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
index 35d6d60f92..8640a5f5d5 100644
--- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
+++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
@@ -93,6 +93,7 @@ public class TimedHuntingZoneData implements IXmlReader
boolean soloInstance = true;
boolean weekly = false;
boolean useWorldPrefix = false;
+ boolean zonePremiumUserOnly = false;
Location enterLocation = null;
Location exitLocation = null;
for (Node zoneNode = listNode.getFirstChild(); zoneNode != null; zoneNode = zoneNode.getNextSibling())
@@ -186,9 +187,14 @@ public class TimedHuntingZoneData implements IXmlReader
useWorldPrefix = Boolean.parseBoolean(zoneNode.getTextContent());
break;
}
+ case "zonePremiumUserOnly":
+ {
+ zonePremiumUserOnly = Boolean.parseBoolean(zoneNode.getTextContent());
+ break;
+ }
}
}
- _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, enterLocation, exitLocation));
+ _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, zonePremiumUserOnly, enterLocation, exitLocation));
}
}
}
diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
index 30f95830b7..719beba1f5 100644
--- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
+++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
@@ -41,12 +41,13 @@ public class TimedHuntingZoneHolder
private final boolean _soloInstance;
private final boolean _weekly;
private final boolean _useWorldPrefix;
+ private final boolean _zonePremiumUserOnly;
private final Location _enterLocation;
private final Location _exitLocation;
private final int _mapX;
private final int _mapY;
- public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, Location enterLocation, Location exitLocation)
+ public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, boolean zonePremiumUserOnly, Location enterLocation, Location exitLocation)
{
_id = id;
_name = name;
@@ -65,6 +66,7 @@ public class TimedHuntingZoneHolder
_soloInstance = soloInstance;
_weekly = weekly;
_useWorldPrefix = useWorldPrefix;
+ _zonePremiumUserOnly = zonePremiumUserOnly;
_enterLocation = enterLocation;
_exitLocation = exitLocation;
_mapX = ((_enterLocation.getX() - World.WORLD_X_MIN) >> 15) + World.TILE_X_MIN;
@@ -156,6 +158,11 @@ public class TimedHuntingZoneHolder
return _useWorldPrefix;
}
+ public boolean zonePremiumUserOnly()
+ {
+ return _zonePremiumUserOnly;
+ }
+
public Location getEnterLocation()
{
return _enterLocation;
diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
index fbe73e91fb..8a13ae506d 100644
--- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
+++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
@@ -67,8 +67,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
packet.writeC(0); // bUserBound
packet.writeC(0); // bCanReEnter
- packet.writeC(0); // bIsInZonePCCafeUserOnly
- packet.writeC(0); // bIsPCCafeUser
+ packet.writeC(holder.zonePremiumUserOnly() ? 1 : 0); // bIsInZonePCCafeUserOnly
+ packet.writeC(_player.hasPremiumStatus() ? 1 : 0); // bIsPCCafeUser
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
packet.writeC(0); // bCanUseEntranceTicket
packet.writeD(0); // nEntranceCount
diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/xsd/TimedHuntingZoneData.xsd b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/xsd/TimedHuntingZoneData.xsd
index fd6203a715..cb685eca0c 100644
--- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/xsd/TimedHuntingZoneData.xsd
+++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/xsd/TimedHuntingZoneData.xsd
@@ -22,6 +22,7 @@
+
diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
index 5900d5a8e6..5af6ba42d5 100644
--- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
+++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
@@ -93,6 +93,7 @@ public class TimedHuntingZoneData implements IXmlReader
boolean soloInstance = true;
boolean weekly = false;
boolean useWorldPrefix = false;
+ boolean zonePremiumUserOnly = false;
Location enterLocation = null;
Location exitLocation = null;
for (Node zoneNode = listNode.getFirstChild(); zoneNode != null; zoneNode = zoneNode.getNextSibling())
@@ -186,9 +187,14 @@ public class TimedHuntingZoneData implements IXmlReader
useWorldPrefix = Boolean.parseBoolean(zoneNode.getTextContent());
break;
}
+ case "zonePremiumUserOnly":
+ {
+ zonePremiumUserOnly = Boolean.parseBoolean(zoneNode.getTextContent());
+ break;
+ }
}
}
- _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, enterLocation, exitLocation));
+ _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, zonePremiumUserOnly, enterLocation, exitLocation));
}
}
}
diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
index 30f95830b7..719beba1f5 100644
--- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
+++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
@@ -41,12 +41,13 @@ public class TimedHuntingZoneHolder
private final boolean _soloInstance;
private final boolean _weekly;
private final boolean _useWorldPrefix;
+ private final boolean _zonePremiumUserOnly;
private final Location _enterLocation;
private final Location _exitLocation;
private final int _mapX;
private final int _mapY;
- public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, Location enterLocation, Location exitLocation)
+ public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, boolean zonePremiumUserOnly, Location enterLocation, Location exitLocation)
{
_id = id;
_name = name;
@@ -65,6 +66,7 @@ public class TimedHuntingZoneHolder
_soloInstance = soloInstance;
_weekly = weekly;
_useWorldPrefix = useWorldPrefix;
+ _zonePremiumUserOnly = zonePremiumUserOnly;
_enterLocation = enterLocation;
_exitLocation = exitLocation;
_mapX = ((_enterLocation.getX() - World.WORLD_X_MIN) >> 15) + World.TILE_X_MIN;
@@ -156,6 +158,11 @@ public class TimedHuntingZoneHolder
return _useWorldPrefix;
}
+ public boolean zonePremiumUserOnly()
+ {
+ return _zonePremiumUserOnly;
+ }
+
public Location getEnterLocation()
{
return _enterLocation;
diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
index 36d05e9317..1606e8cd45 100644
--- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
+++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
@@ -67,8 +67,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
packet.writeC(0); // bUserBound
packet.writeC(0); // bCanReEnter
- packet.writeC(0); // bIsInZonePCCafeUserOnly
- packet.writeC(0); // bIsPCCafeUser
+ packet.writeC(holder.zonePremiumUserOnly() ? 1 : 0); // bIsInZonePCCafeUserOnly
+ packet.writeC(_player.hasPremiumStatus() ? 1 : 0); // bIsPCCafeUser
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
}
return true;
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/TimedHuntingZoneData.xsd b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/TimedHuntingZoneData.xsd
index fd6203a715..cb685eca0c 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/TimedHuntingZoneData.xsd
+++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/TimedHuntingZoneData.xsd
@@ -22,6 +22,7 @@
+
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
index 5900d5a8e6..5af6ba42d5 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
@@ -93,6 +93,7 @@ public class TimedHuntingZoneData implements IXmlReader
boolean soloInstance = true;
boolean weekly = false;
boolean useWorldPrefix = false;
+ boolean zonePremiumUserOnly = false;
Location enterLocation = null;
Location exitLocation = null;
for (Node zoneNode = listNode.getFirstChild(); zoneNode != null; zoneNode = zoneNode.getNextSibling())
@@ -186,9 +187,14 @@ public class TimedHuntingZoneData implements IXmlReader
useWorldPrefix = Boolean.parseBoolean(zoneNode.getTextContent());
break;
}
+ case "zonePremiumUserOnly":
+ {
+ zonePremiumUserOnly = Boolean.parseBoolean(zoneNode.getTextContent());
+ break;
+ }
}
}
- _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, enterLocation, exitLocation));
+ _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, zonePremiumUserOnly, enterLocation, exitLocation));
}
}
}
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
index 30f95830b7..719beba1f5 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
@@ -41,12 +41,13 @@ public class TimedHuntingZoneHolder
private final boolean _soloInstance;
private final boolean _weekly;
private final boolean _useWorldPrefix;
+ private final boolean _zonePremiumUserOnly;
private final Location _enterLocation;
private final Location _exitLocation;
private final int _mapX;
private final int _mapY;
- public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, Location enterLocation, Location exitLocation)
+ public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, boolean zonePremiumUserOnly, Location enterLocation, Location exitLocation)
{
_id = id;
_name = name;
@@ -65,6 +66,7 @@ public class TimedHuntingZoneHolder
_soloInstance = soloInstance;
_weekly = weekly;
_useWorldPrefix = useWorldPrefix;
+ _zonePremiumUserOnly = zonePremiumUserOnly;
_enterLocation = enterLocation;
_exitLocation = exitLocation;
_mapX = ((_enterLocation.getX() - World.WORLD_X_MIN) >> 15) + World.TILE_X_MIN;
@@ -156,6 +158,11 @@ public class TimedHuntingZoneHolder
return _useWorldPrefix;
}
+ public boolean zonePremiumUserOnly()
+ {
+ return _zonePremiumUserOnly;
+ }
+
public Location getEnterLocation()
{
return _enterLocation;
diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
index 36d05e9317..1606e8cd45 100644
--- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
+++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
@@ -67,8 +67,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
packet.writeC(0); // bUserBound
packet.writeC(0); // bCanReEnter
- packet.writeC(0); // bIsInZonePCCafeUserOnly
- packet.writeC(0); // bIsPCCafeUser
+ packet.writeC(holder.zonePremiumUserOnly() ? 1 : 0); // bIsInZonePCCafeUserOnly
+ packet.writeC(_player.hasPremiumStatus() ? 1 : 0); // bIsPCCafeUser
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
}
return true;
diff --git a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/TimedHuntingZoneData.xsd b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/TimedHuntingZoneData.xsd
index fd6203a715..cb685eca0c 100644
--- a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/TimedHuntingZoneData.xsd
+++ b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/TimedHuntingZoneData.xsd
@@ -22,6 +22,7 @@
+
diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
index 5900d5a8e6..5af6ba42d5 100644
--- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
+++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
@@ -93,6 +93,7 @@ public class TimedHuntingZoneData implements IXmlReader
boolean soloInstance = true;
boolean weekly = false;
boolean useWorldPrefix = false;
+ boolean zonePremiumUserOnly = false;
Location enterLocation = null;
Location exitLocation = null;
for (Node zoneNode = listNode.getFirstChild(); zoneNode != null; zoneNode = zoneNode.getNextSibling())
@@ -186,9 +187,14 @@ public class TimedHuntingZoneData implements IXmlReader
useWorldPrefix = Boolean.parseBoolean(zoneNode.getTextContent());
break;
}
+ case "zonePremiumUserOnly":
+ {
+ zonePremiumUserOnly = Boolean.parseBoolean(zoneNode.getTextContent());
+ break;
+ }
}
}
- _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, enterLocation, exitLocation));
+ _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, zonePremiumUserOnly, enterLocation, exitLocation));
}
}
}
diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
index 30f95830b7..719beba1f5 100644
--- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
+++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
@@ -41,12 +41,13 @@ public class TimedHuntingZoneHolder
private final boolean _soloInstance;
private final boolean _weekly;
private final boolean _useWorldPrefix;
+ private final boolean _zonePremiumUserOnly;
private final Location _enterLocation;
private final Location _exitLocation;
private final int _mapX;
private final int _mapY;
- public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, Location enterLocation, Location exitLocation)
+ public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, boolean zonePremiumUserOnly, Location enterLocation, Location exitLocation)
{
_id = id;
_name = name;
@@ -65,6 +66,7 @@ public class TimedHuntingZoneHolder
_soloInstance = soloInstance;
_weekly = weekly;
_useWorldPrefix = useWorldPrefix;
+ _zonePremiumUserOnly = zonePremiumUserOnly;
_enterLocation = enterLocation;
_exitLocation = exitLocation;
_mapX = ((_enterLocation.getX() - World.WORLD_X_MIN) >> 15) + World.TILE_X_MIN;
@@ -156,6 +158,11 @@ public class TimedHuntingZoneHolder
return _useWorldPrefix;
}
+ public boolean zonePremiumUserOnly()
+ {
+ return _zonePremiumUserOnly;
+ }
+
public Location getEnterLocation()
{
return _enterLocation;
diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
index 36d05e9317..1606e8cd45 100644
--- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
+++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
@@ -67,8 +67,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
packet.writeC(0); // bUserBound
packet.writeC(0); // bCanReEnter
- packet.writeC(0); // bIsInZonePCCafeUserOnly
- packet.writeC(0); // bIsPCCafeUser
+ packet.writeC(holder.zonePremiumUserOnly() ? 1 : 0); // bIsInZonePCCafeUserOnly
+ packet.writeC(_player.hasPremiumStatus() ? 1 : 0); // bIsPCCafeUser
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
}
return true;
diff --git a/L2J_Mobius_Essence_6.3_Crusader/dist/game/data/xsd/TimedHuntingZoneData.xsd b/L2J_Mobius_Essence_6.3_Crusader/dist/game/data/xsd/TimedHuntingZoneData.xsd
index fd6203a715..cb685eca0c 100644
--- a/L2J_Mobius_Essence_6.3_Crusader/dist/game/data/xsd/TimedHuntingZoneData.xsd
+++ b/L2J_Mobius_Essence_6.3_Crusader/dist/game/data/xsd/TimedHuntingZoneData.xsd
@@ -22,6 +22,7 @@
+
diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
index 5900d5a8e6..5af6ba42d5 100644
--- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
+++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/data/xml/TimedHuntingZoneData.java
@@ -93,6 +93,7 @@ public class TimedHuntingZoneData implements IXmlReader
boolean soloInstance = true;
boolean weekly = false;
boolean useWorldPrefix = false;
+ boolean zonePremiumUserOnly = false;
Location enterLocation = null;
Location exitLocation = null;
for (Node zoneNode = listNode.getFirstChild(); zoneNode != null; zoneNode = zoneNode.getNextSibling())
@@ -186,9 +187,14 @@ public class TimedHuntingZoneData implements IXmlReader
useWorldPrefix = Boolean.parseBoolean(zoneNode.getTextContent());
break;
}
+ case "zonePremiumUserOnly":
+ {
+ zonePremiumUserOnly = Boolean.parseBoolean(zoneNode.getTextContent());
+ break;
+ }
}
}
- _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, enterLocation, exitLocation));
+ _timedHuntingZoneData.put(id, new TimedHuntingZoneHolder(id, name, initialTime, maxAddedTime, resetDelay, entryItemId, entryFee, minLevel, maxLevel, remainRefillTime, refillTimeMax, pvpZone, noPvpZone, instanceId, soloInstance, weekly, useWorldPrefix, zonePremiumUserOnly, enterLocation, exitLocation));
}
}
}
diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
index 30f95830b7..719beba1f5 100644
--- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
+++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/holders/TimedHuntingZoneHolder.java
@@ -41,12 +41,13 @@ public class TimedHuntingZoneHolder
private final boolean _soloInstance;
private final boolean _weekly;
private final boolean _useWorldPrefix;
+ private final boolean _zonePremiumUserOnly;
private final Location _enterLocation;
private final Location _exitLocation;
private final int _mapX;
private final int _mapY;
- public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, Location enterLocation, Location exitLocation)
+ public TimedHuntingZoneHolder(int id, String name, int initialTime, int maximumAddedTime, int resetDelay, int entryItemId, int entryFee, int minLevel, int maxLevel, int remainRefillTime, int refillTimeMax, boolean pvpZone, boolean noPvpZone, int instanceId, boolean soloInstance, boolean weekly, boolean useWorldPrefix, boolean zonePremiumUserOnly, Location enterLocation, Location exitLocation)
{
_id = id;
_name = name;
@@ -65,6 +66,7 @@ public class TimedHuntingZoneHolder
_soloInstance = soloInstance;
_weekly = weekly;
_useWorldPrefix = useWorldPrefix;
+ _zonePremiumUserOnly = zonePremiumUserOnly;
_enterLocation = enterLocation;
_exitLocation = exitLocation;
_mapX = ((_enterLocation.getX() - World.WORLD_X_MIN) >> 15) + World.TILE_X_MIN;
@@ -156,6 +158,11 @@ public class TimedHuntingZoneHolder
return _useWorldPrefix;
}
+ public boolean zonePremiumUserOnly()
+ {
+ return _zonePremiumUserOnly;
+ }
+
public Location getEnterLocation()
{
return _enterLocation;
diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
index fbe73e91fb..8a13ae506d 100644
--- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
+++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java
@@ -67,8 +67,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
packet.writeC(_isInTimedHuntingZone ? 0 : 1); // field activated (272 C to D)
packet.writeC(0); // bUserBound
packet.writeC(0); // bCanReEnter
- packet.writeC(0); // bIsInZonePCCafeUserOnly
- packet.writeC(0); // bIsPCCafeUser
+ packet.writeC(holder.zonePremiumUserOnly() ? 1 : 0); // bIsInZonePCCafeUserOnly
+ packet.writeC(_player.hasPremiumStatus() ? 1 : 0); // bIsPCCafeUser
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
packet.writeC(0); // bCanUseEntranceTicket
packet.writeD(0); // nEntranceCount