From 6130ef32b94a0cc02d9d7fd6be1eec83ef4307a8 Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Thu, 3 Dec 2020 16:08:35 +0000
Subject: [PATCH] Addition of enchant_limit item value. Contributed by
CostyKiller.
---
L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
L2J_Mobius_3.0_Helios/dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
L2J_Mobius_5.0_Salvation/dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/EnchantItemData.xml | 6 +-----
.../dist/game/data/stats/items/80800-80899.xml | 4 +++-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/EnchantItemData.xml | 2 +-
.../dist/game/data/stats/items/80800-80899.xml | 2 ++
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../dist/game/data/xsd/items.xsd | 1 +
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
.../org/l2jmobius/gameserver/model/items/Item.java | 11 +++++++++++
.../model/items/enchant/AbstractEnchantItem.java | 4 ++--
.../network/clientpackets/RequestEnchantItem.java | 2 +-
70 files changed, 260 insertions(+), 58 deletions(-)
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/items.xsd b/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/items.xsd
index be5f762c9f..fb24816202 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/Item.java
index 6459f9d768..a5b5fa741d 100644
--- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -140,6 +140,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -214,6 +215,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -616,6 +618,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index e7e28992ac..2673bee38c 100644
--- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/xsd/items.xsd b/L2J_Mobius_2.5_Underground/dist/game/data/xsd/items.xsd
index 95eb3c64ae..f3bfdc3cc8 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/Item.java
index 6459f9d768..a5b5fa741d 100644
--- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -140,6 +140,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -214,6 +215,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -616,6 +618,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 5efbe1a603..f0cace76ce 100644
--- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/xsd/items.xsd b/L2J_Mobius_3.0_Helios/dist/game/data/xsd/items.xsd
index 95eb3c64ae..f3bfdc3cc8 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/Item.java
index 6459f9d768..a5b5fa741d 100644
--- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -140,6 +140,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -214,6 +215,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -616,6 +618,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 448718720a..ba570c265f 100644
--- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 5efbe1a603..f0cace76ce 100644
--- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/items.xsd b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/items.xsd
index 95eb3c64ae..f3bfdc3cc8 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/Item.java
index a8b5ae54f1..3f1db930e3 100644
--- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -140,6 +140,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -214,6 +215,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -616,6 +618,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 5efbe1a603..f0cace76ce 100644
--- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/items.xsd b/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/items.xsd
index 1e89bcec9a..2aac0e0dff 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/Item.java
index 2e601d1ce4..e3387ac537 100644
--- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -141,6 +141,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -215,6 +216,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -617,6 +619,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 2f070a92a4..4211bdefc8 100644
--- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/items.xsd b/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/items.xsd
index ecd0e354a3..631f046d33 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/Item.java
index 0888a264d0..2ac9a1e5a2 100644
--- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -143,6 +143,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -219,6 +220,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -622,6 +624,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 2f070a92a4..4211bdefc8 100644
--- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/items.xsd b/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/items.xsd
index ecd0e354a3..631f046d33 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/Item.java
index 0991a34565..f3a2c90720 100644
--- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -143,6 +143,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -219,6 +220,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -623,6 +625,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 221b73c891..0820cef3bc 100644
--- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -119,7 +119,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/EnchantItemData.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/EnchantItemData.xml
index 1b642c887e..eedfadf2d7 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/EnchantItemData.xml
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/EnchantItemData.xml
@@ -19,13 +19,9 @@
-
+
-
-
-
-
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/items/80800-80899.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/items/80800-80899.xml
index 07883cc9ba..25481b3f53 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/items/80800-80899.xml
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/stats/items/80800-80899.xml
@@ -455,6 +455,7 @@
+
@@ -471,8 +472,9 @@
-
+
+
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/items.xsd b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/items.xsd
index 1011724ea9..5a793727b8 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/Item.java
index 0991a34565..f3a2c90720 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -143,6 +143,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -219,6 +220,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -623,6 +625,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index e8a4f7d6ff..511d19d217 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -119,7 +119,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/EnchantItemData.xml b/L2J_Mobius_8.0_Homunculus/dist/game/data/EnchantItemData.xml
index 23df0e58fb..3884e7c7d8 100644
--- a/L2J_Mobius_8.0_Homunculus/dist/game/data/EnchantItemData.xml
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/EnchantItemData.xml
@@ -31,7 +31,7 @@
-
+
diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/stats/items/80800-80899.xml b/L2J_Mobius_8.0_Homunculus/dist/game/data/stats/items/80800-80899.xml
index f995f87006..0ec577d5d6 100644
--- a/L2J_Mobius_8.0_Homunculus/dist/game/data/stats/items/80800-80899.xml
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/stats/items/80800-80899.xml
@@ -460,6 +460,7 @@
+
@@ -478,6 +479,7 @@
+
diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/Item.java
index 0991a34565..f3a2c90720 100644
--- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -143,6 +143,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -219,6 +220,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -623,6 +625,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index e8a4f7d6ff..511d19d217 100644
--- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -119,7 +119,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/items.xsd b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/items.xsd
index 487afe90e8..4663f1d0bc 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/Item.java
index 9c51d11b3a..1dbdc3ab0c 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -140,6 +140,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -214,6 +215,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -616,6 +618,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index e7e28992ac..2673bee38c 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/items.xsd b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/items.xsd
index 487afe90e8..4663f1d0bc 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/Item.java
index 9c51d11b3a..1dbdc3ab0c 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -140,6 +140,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -214,6 +215,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -616,6 +618,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index e7e28992ac..2673bee38c 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/items.xsd b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/items.xsd
index 487afe90e8..4663f1d0bc 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/Item.java
index f0be6cc293..efac051bc6 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -141,6 +141,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -215,6 +216,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -617,6 +619,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 92ca7ff0e7..67fbe97164 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/items.xsd b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/items.xsd
index 7fdde48ccb..b1e0459900 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/Item.java
index 1593354bba..1dcf025295 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -143,6 +143,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -219,6 +220,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -622,6 +624,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 92ca7ff0e7..67fbe97164 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/items.xsd b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/items.xsd
index 7fdde48ccb..b1e0459900 100644
--- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/Item.java
index 1593354bba..1dcf025295 100644
--- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -143,6 +143,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -219,6 +220,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -622,6 +624,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index e8a4f7d6ff..511d19d217 100644
--- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -119,7 +119,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/items.xsd b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/items.xsd
index 7fdde48ccb..b1e0459900 100644
--- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/Item.java
index 1593354bba..1dcf025295 100644
--- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -143,6 +143,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -219,6 +220,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -622,6 +624,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index e8a4f7d6ff..511d19d217 100644
--- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -119,7 +119,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/items.xsd b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/items.xsd
index 487afe90e8..4663f1d0bc 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/items.xsd
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/items.xsd
@@ -71,6 +71,7 @@
+
diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/Item.java
index 6459f9d768..a5b5fa741d 100644
--- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -140,6 +140,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -214,6 +215,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -616,6 +618,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 8592a7024d..5932eed22a 100644
--- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -117,7 +117,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/Item.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/Item.java
index 6899d6fb2b..99891d5bc2 100644
--- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/Item.java
+++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/Item.java
@@ -143,6 +143,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
private boolean _tradeable;
private boolean _depositable;
private int _enchantable;
+ private int _enchantLimit;
private boolean _elementable;
private boolean _questItem;
private boolean _freightable;
@@ -219,6 +220,7 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
_elementable = set.getBoolean("element_enabled", false);
_enchantable = set.getInt("enchant_enabled", 0);
+ _enchantLimit = set.getInt("enchant_limit", 0);
_freightable = set.getBoolean("is_freightable", false);
_allowSelfResurrection = set.getBoolean("allow_self_resurrection", false);
_isOlyRestricted = set.getBoolean("is_oly_restricted", false);
@@ -622,6 +624,15 @@ public abstract class Item extends ListenersContainer implements IIdentifiable
return Arrays.binarySearch(Config.ENCHANT_BLACKLIST, _itemId) < 0 ? _enchantable : 0;
}
+ /**
+ * Returns the enchantment limit of the item
+ * @return int
+ */
+ public int getEnchantLimit()
+ {
+ return _enchantLimit > 0 ? _enchantLimit : 0;
+ }
+
/**
* @return {@code true} if the item can be elemented, {@code false} otherwise.
*/
diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
index 00a1abbca1..fa124a8d6e 100644
--- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
+++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
@@ -142,7 +142,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (itemToEnchant.isEnchantable() == 0)
+ else if ((itemToEnchant.isEnchantable() == 0) || (!(itemToEnchant.getItem().getEnchantLimit() == 0) && (itemToEnchant.getEnchantLevel() == itemToEnchant.getItem().getEnchantLimit())))
{
return false;
}
@@ -150,7 +150,7 @@ public abstract class AbstractEnchantItem
{
return false;
}
- else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
+ else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) || ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
{
return false;
}
diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
index 92816f60fd..49719db37d 100644
--- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
+++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
@@ -119,7 +119,7 @@ public class RequestEnchantItem implements IClientIncomingPacket
}
// first validation check - also over enchant check
- if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && (item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel())))
+ if (!scrollTemplate.isValid(item, supportTemplate) || (Config.DISABLE_OVER_ENCHANTING && ((item.getEnchantLevel() == scrollTemplate.getMaxEnchantLevel()) || (!(item.getItem().getEnchantLimit() == 0) && (item.getEnchantLevel() == item.getItem().getEnchantLimit())))))
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());