Addition of enchant_limit item value.

Contributed by CostyKiller.
This commit is contained in:
MobiusDevelopment
2020-12-03 16:08:35 +00:00
parent b140419920
commit 6130ef32b9
70 changed files with 260 additions and 58 deletions

View File

@ -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.
*/

View File

@ -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;
}

View File

@ -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());