Added check for missing life stone data.
This commit is contained in:
@@ -88,6 +88,7 @@ public class AugmentationData
|
||||
|
||||
private final List<AugmentationChance> _augmentationChances = new ArrayList<>();
|
||||
private final List<augmentationChanceAcc> _augmentationChancesAcc = new ArrayList<>();
|
||||
private final List<Integer> _augmentationStones = new ArrayList<>();
|
||||
|
||||
private final Map<Integer, SkillHolder> _allSkills = new HashMap<>();
|
||||
|
||||
@@ -392,6 +393,10 @@ public class AugmentationData
|
||||
|
||||
if (OptionData.getInstance().getOptions(aAugmentId) != null)
|
||||
{
|
||||
if (!_augmentationStones.contains(aStoneId))
|
||||
{
|
||||
_augmentationStones.add(aStoneId);
|
||||
}
|
||||
_augmentationChances.add(new AugmentationChance(aWeaponType, aStoneId, aVariationId, aCategoryChance, aAugmentId, aAugmentChance));
|
||||
}
|
||||
else
|
||||
@@ -490,6 +495,10 @@ public class AugmentationData
|
||||
aAugmentId = Integer.parseInt(aNodeAttributes.getNamedItem("id").getNodeValue());
|
||||
aAugmentChance = Float.parseFloat(aNodeAttributes.getNamedItem("chance").getNodeValue());
|
||||
|
||||
if (!_augmentationStones.contains(aStoneId))
|
||||
{
|
||||
_augmentationStones.add(aStoneId);
|
||||
}
|
||||
_augmentationChancesAcc.add(new augmentationChanceAcc(aWeaponType, aStoneId, aVariationId, aCategoryChance, aAugmentId, aAugmentChance));
|
||||
}
|
||||
}
|
||||
@@ -1042,6 +1051,11 @@ public class AugmentationData
|
||||
return new L2Augmentation(((stat34 << 16) + stat12));
|
||||
}
|
||||
|
||||
public boolean isAugmentaionStoneValid(int stoneId)
|
||||
{
|
||||
return _augmentationStones.contains(stoneId);
|
||||
}
|
||||
|
||||
public static AugmentationData getInstance()
|
||||
{
|
||||
return SingletonHolder._instance;
|
||||
|
@@ -17,6 +17,7 @@
|
||||
package com.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jmobius.commons.network.PacketReader;
|
||||
import com.l2jmobius.gameserver.datatables.AugmentationData;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.model.items.type.CrystalType;
|
||||
@@ -62,6 +63,12 @@ public class RequestConfirmRefinerItem extends AbstractRefinePacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (!AugmentationData.getInstance().isAugmentaionStoneValid(refinerItem.getId()))
|
||||
{
|
||||
activeChar.sendMessage("This is not a proper life stone."); // need to update retailchances.xml with this item
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isValid(activeChar, targetItem, refinerItem))
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THIS_IS_NOT_A_SUITABLE_ITEM);
|
||||
|
Reference in New Issue
Block a user