Support for extractable items with enchant.

This commit is contained in:
MobiusDev
2015-12-02 08:06:12 +00:00
parent ed29d1e9eb
commit 599f3a0dca
3 changed files with 87 additions and 9 deletions

View File

@ -27,20 +27,26 @@ public class L2ExtractableProduct
private final int _min;
private final int _max;
private final int _chance;
private final int _minEnchant;
private final int _maxEnchant;
/**
* Create Extractable product
* @param id crete item id
* @param id create item id
* @param min item count max
* @param max item count min
* @param chance chance for creating
* @param minEnchant item min enchant
* @param maxEnchant item max enchant
*/
public L2ExtractableProduct(int id, int min, int max, double chance)
public L2ExtractableProduct(int id, int min, int max, double chance, int minEnchant, int maxEnchant)
{
_id = id;
_min = min;
_max = max;
_chance = (int) (chance * 1000);
_minEnchant = minEnchant;
_maxEnchant = maxEnchant;
}
public int getId()
@ -62,4 +68,14 @@ public class L2ExtractableProduct
{
return _chance;
}
public int getMinEnchant()
{
return _minEnchant;
}
public int getMaxEnchant()
{
return _maxEnchant;
}
}

View File

@ -88,7 +88,7 @@ public final class L2EtcItem extends L2Item
continue;
}
String[] data = part.split(",");
if (data.length != 4)
if ((data.length != 4) && (data.length != 6))
{
_log.info(StringUtil.concat("> Couldnt parse ", part, " in capsuled_items! item ", toString()));
continue;
@ -96,14 +96,25 @@ public final class L2EtcItem extends L2Item
int itemId = Integer.parseInt(data[0]);
int min = Integer.parseInt(data[1]);
int max = Integer.parseInt(data[2]);
double chance = Double.parseDouble(data[3]);
if (max < min)
{
_log.info(StringUtil.concat("> Max amount < Min amount in ", part, ", item ", toString()));
continue;
}
L2ExtractableProduct product = new L2ExtractableProduct(itemId, min, max, chance);
_extractableItems.add(product);
double chance = Double.parseDouble(data[3]);
int minEnchant = 0;
int maxEnchant = 0;
if (data.length == 6)
{
minEnchant = Integer.parseInt(data[4]);
maxEnchant = Integer.parseInt(data[5]);
if (maxEnchant < minEnchant)
{
_log.info(StringUtil.concat("> Max enchant < Min enchant in ", part, ", item ", toString()));
continue;
}
}
_extractableItems.add(new L2ExtractableProduct(itemId, min, max, chance, minEnchant, maxEnchant));
}
((ArrayList<?>) _extractableItems).trimToSize();