Fixed augmentation last stone display.

Contributed by Index.
This commit is contained in:
MobiusDevelopment
2022-05-16 23:02:50 +00:00
parent d8dde6787a
commit c99a13ca01
8 changed files with 46 additions and 66 deletions

View File

@@ -70,6 +70,6 @@ public class RequestConfirmRefinerItem extends AbstractRefinePacket
return; return;
} }
player.sendPacket(new ExPutIntensiveResultForVariationMake(_refinerItemObjId, refinerItem.getId(), fee.getItemId(), fee.getItemCount())); player.sendPacket(new ExPutIntensiveResultForVariationMake(_refinerItemObjId, refinerItem.getId(), 1));
} }
} }

View File

@@ -84,14 +84,14 @@ public class RequestRefine extends AbstractRefinePacket
if (!isValid(player, targetItem, mineralItem, feeItem, fee)) if (!isValid(player, targetItem, mineralItem, feeItem, fee))
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS); player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return; return;
} }
if (_feeCount <= 0) if (_feeCount <= 0)
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS); player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return; return;
} }
@@ -99,7 +99,7 @@ public class RequestRefine extends AbstractRefinePacket
final long adenaFee = fee.getAdenaFee(); final long adenaFee = fee.getAdenaFee();
if ((adenaFee > 0) && (player.getAdena() < adenaFee)) if ((adenaFee > 0) && (player.getAdena() < adenaFee))
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS); player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return; return;
} }
@@ -107,14 +107,14 @@ public class RequestRefine extends AbstractRefinePacket
final Variation variation = VariationData.getInstance().getVariation(mineralItem.getId()); final Variation variation = VariationData.getInstance().getVariation(mineralItem.getId());
if (variation == null) if (variation == null)
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
return; return;
} }
VariationInstance augment = VariationData.getInstance().generateRandomVariation(variation, targetItem); VariationInstance augment = VariationData.getInstance().generateRandomVariation(variation, targetItem);
if (augment == null) if (augment == null)
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
return; return;
} }
@@ -137,35 +137,30 @@ public class RequestRefine extends AbstractRefinePacket
} }
} }
player.sendPacket(new ExVariationResult(augment.getOption1Id(), augment.getOption2Id(), true));
// Consume the life stone. // Consume the life stone.
if (!player.destroyItem("RequestRefine", mineralItem, 1, null, false)) player.destroyItem("RequestRefine", mineralItem, 1, null, false);
{
return;
}
// Consume the gemstones. // Consume the gemstones.
if ((feeItem != null) && !player.destroyItem("RequestRefine", feeItem, _feeCount, null, false)) if (feeItem != null)
{ {
return; player.destroyItem("RequestRefine", feeItem, _feeCount, null, false);
} }
// Consume Adena. // Consume Adena.
if ((adenaFee > 0) && !player.reduceAdena("RequestRefine", adenaFee, player, false)) if (adenaFee > 0)
{ {
return; player.reduceAdena("RequestRefine", adenaFee, player, false);
} }
// Request (continues at ExApplyVariationOption).
if (player.getRequest(VariationRequest.class) == null) if (player.getRequest(VariationRequest.class) == null)
{ {
player.addRequest(new VariationRequest(player)); player.addRequest(new VariationRequest(player));
} }
final VariationRequest request = player.getRequest(VariationRequest.class);
VariationRequest request = player.getRequest(VariationRequest.class);
request.setAugmentedItem(_targetItemObjId); request.setAugmentedItem(_targetItemObjId);
request.setMineralItem(_mineralItemObjId);
request.setAugment(augment); request.setAugment(augment);
player.sendPacket(new ExVariationResult(augment.getOption1Id(), augment.getOption2Id(), true));
} }
} }

View File

@@ -23,17 +23,13 @@ public class ExPutIntensiveResultForVariationMake implements IClientOutgoingPack
{ {
private final int _refinerItemObjId; private final int _refinerItemObjId;
private final int _lifestoneItemId; private final int _lifestoneItemId;
private final int _gemstoneItemId; private final int _insertResult;
private final long _gemstoneCount;
private final int _unk2;
public ExPutIntensiveResultForVariationMake(int refinerItemObjId, int lifeStoneId, int gemstoneItemId, long gemstoneCount) public ExPutIntensiveResultForVariationMake(int refinerItemObjId, int lifeStoneId, int insertResult)
{ {
_refinerItemObjId = refinerItemObjId; _refinerItemObjId = refinerItemObjId;
_lifestoneItemId = lifeStoneId; _lifestoneItemId = lifeStoneId;
_gemstoneItemId = gemstoneItemId; _insertResult = insertResult;
_gemstoneCount = gemstoneCount;
_unk2 = 1;
} }
@Override @Override
@@ -42,9 +38,7 @@ public class ExPutIntensiveResultForVariationMake implements IClientOutgoingPack
OutgoingPackets.EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE.writeId(packet); OutgoingPackets.EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE.writeId(packet);
packet.writeD(_refinerItemObjId); packet.writeD(_refinerItemObjId);
packet.writeD(_lifestoneItemId); packet.writeD(_lifestoneItemId);
packet.writeD(_gemstoneItemId); packet.writeC(_insertResult);
packet.writeQ(_gemstoneCount);
packet.writeD(_unk2);
return true; return true;
} }
} }

View File

@@ -19,11 +19,10 @@ package org.l2jmobius.gameserver.network.serverpackets;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
/**
* Format: (ch)ddd
*/
public class ExVariationResult implements IClientOutgoingPacket public class ExVariationResult implements IClientOutgoingPacket
{ {
public static final ExVariationResult FAIL = new ExVariationResult(0, 0, false);
private final int _option1; private final int _option1;
private final int _option2; private final int _option2;
private final int _success; private final int _success;
@@ -41,6 +40,8 @@ public class ExVariationResult implements IClientOutgoingPacket
OutgoingPackets.EX_VARIATION_RESULT.writeId(packet); OutgoingPackets.EX_VARIATION_RESULT.writeId(packet);
packet.writeD(_option1); packet.writeD(_option1);
packet.writeD(_option2); packet.writeD(_option2);
packet.writeQ(0); // GemStoneCount
packet.writeQ(0); // NecessaryGemStoneCount
packet.writeD(_success); packet.writeD(_success);
return true; return true;
} }

View File

@@ -70,6 +70,6 @@ public class RequestConfirmRefinerItem extends AbstractRefinePacket
return; return;
} }
player.sendPacket(new ExPutIntensiveResultForVariationMake(_refinerItemObjId, refinerItem.getId(), fee.getItemId(), fee.getItemCount())); player.sendPacket(new ExPutIntensiveResultForVariationMake(_refinerItemObjId, refinerItem.getId(), 1));
} }
} }

View File

@@ -84,14 +84,14 @@ public class RequestRefine extends AbstractRefinePacket
if (!isValid(player, targetItem, mineralItem, feeItem, fee)) if (!isValid(player, targetItem, mineralItem, feeItem, fee))
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS); player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return; return;
} }
if (_feeCount <= 0) if (_feeCount <= 0)
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS); player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return; return;
} }
@@ -99,7 +99,7 @@ public class RequestRefine extends AbstractRefinePacket
final long adenaFee = fee.getAdenaFee(); final long adenaFee = fee.getAdenaFee();
if ((adenaFee > 0) && (player.getAdena() < adenaFee)) if ((adenaFee > 0) && (player.getAdena() < adenaFee))
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS); player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return; return;
} }
@@ -107,14 +107,14 @@ public class RequestRefine extends AbstractRefinePacket
final Variation variation = VariationData.getInstance().getVariation(mineralItem.getId()); final Variation variation = VariationData.getInstance().getVariation(mineralItem.getId());
if (variation == null) if (variation == null)
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
return; return;
} }
VariationInstance augment = VariationData.getInstance().generateRandomVariation(variation, targetItem); VariationInstance augment = VariationData.getInstance().generateRandomVariation(variation, targetItem);
if (augment == null) if (augment == null)
{ {
player.sendPacket(new ExVariationResult(0, 0, false)); player.sendPacket(ExVariationResult.FAIL);
return; return;
} }
@@ -137,35 +137,30 @@ public class RequestRefine extends AbstractRefinePacket
} }
} }
player.sendPacket(new ExVariationResult(augment.getOption1Id(), augment.getOption2Id(), true));
// Consume the life stone. // Consume the life stone.
if (!player.destroyItem("RequestRefine", mineralItem, 1, null, false)) player.destroyItem("RequestRefine", mineralItem, 1, null, false);
{
return;
}
// Consume the gemstones. // Consume the gemstones.
if ((feeItem != null) && !player.destroyItem("RequestRefine", feeItem, _feeCount, null, false)) if (feeItem != null)
{ {
return; player.destroyItem("RequestRefine", feeItem, _feeCount, null, false);
} }
// Consume Adena. // Consume Adena.
if ((adenaFee > 0) && !player.reduceAdena("RequestRefine", adenaFee, player, false)) if (adenaFee > 0)
{ {
return; player.reduceAdena("RequestRefine", adenaFee, player, false);
} }
// Request (continues at ExApplyVariationOption).
if (player.getRequest(VariationRequest.class) == null) if (player.getRequest(VariationRequest.class) == null)
{ {
player.addRequest(new VariationRequest(player)); player.addRequest(new VariationRequest(player));
} }
final VariationRequest request = player.getRequest(VariationRequest.class);
VariationRequest request = player.getRequest(VariationRequest.class);
request.setAugmentedItem(_targetItemObjId); request.setAugmentedItem(_targetItemObjId);
request.setMineralItem(_mineralItemObjId);
request.setAugment(augment); request.setAugment(augment);
player.sendPacket(new ExVariationResult(augment.getOption1Id(), augment.getOption2Id(), true));
} }
} }

View File

@@ -23,17 +23,13 @@ public class ExPutIntensiveResultForVariationMake implements IClientOutgoingPack
{ {
private final int _refinerItemObjId; private final int _refinerItemObjId;
private final int _lifestoneItemId; private final int _lifestoneItemId;
private final int _gemstoneItemId; private final int _insertResult;
private final long _gemstoneCount;
private final int _unk2;
public ExPutIntensiveResultForVariationMake(int refinerItemObjId, int lifeStoneId, int gemstoneItemId, long gemstoneCount) public ExPutIntensiveResultForVariationMake(int refinerItemObjId, int lifeStoneId, int insertResult)
{ {
_refinerItemObjId = refinerItemObjId; _refinerItemObjId = refinerItemObjId;
_lifestoneItemId = lifeStoneId; _lifestoneItemId = lifeStoneId;
_gemstoneItemId = gemstoneItemId; _insertResult = insertResult;
_gemstoneCount = gemstoneCount;
_unk2 = 1;
} }
@Override @Override
@@ -42,9 +38,7 @@ public class ExPutIntensiveResultForVariationMake implements IClientOutgoingPack
OutgoingPackets.EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE.writeId(packet); OutgoingPackets.EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE.writeId(packet);
packet.writeD(_refinerItemObjId); packet.writeD(_refinerItemObjId);
packet.writeD(_lifestoneItemId); packet.writeD(_lifestoneItemId);
packet.writeD(_gemstoneItemId); packet.writeC(_insertResult);
packet.writeQ(_gemstoneCount);
packet.writeD(_unk2);
return true; return true;
} }
} }

View File

@@ -19,11 +19,10 @@ package org.l2jmobius.gameserver.network.serverpackets;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
/**
* Format: (ch)ddd
*/
public class ExVariationResult implements IClientOutgoingPacket public class ExVariationResult implements IClientOutgoingPacket
{ {
public static final ExVariationResult FAIL = new ExVariationResult(0, 0, false);
private final int _option1; private final int _option1;
private final int _option2; private final int _option2;
private final int _success; private final int _success;
@@ -41,6 +40,8 @@ public class ExVariationResult implements IClientOutgoingPacket
OutgoingPackets.EX_VARIATION_RESULT.writeId(packet); OutgoingPackets.EX_VARIATION_RESULT.writeId(packet);
packet.writeD(_option1); packet.writeD(_option1);
packet.writeD(_option2); packet.writeD(_option2);
packet.writeQ(0); // GemStoneCount
packet.writeQ(0); // NecessaryGemStoneCount
packet.writeD(_success); packet.writeD(_success);
return true; return true;
} }