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;
}
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))
{
player.sendPacket(new ExVariationResult(0, 0, false));
player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return;
}
if (_feeCount <= 0)
{
player.sendPacket(new ExVariationResult(0, 0, false));
player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return;
}
@ -99,7 +99,7 @@ public class RequestRefine extends AbstractRefinePacket
final long adenaFee = fee.getAdenaFee();
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);
return;
}
@ -107,14 +107,14 @@ public class RequestRefine extends AbstractRefinePacket
final Variation variation = VariationData.getInstance().getVariation(mineralItem.getId());
if (variation == null)
{
player.sendPacket(new ExVariationResult(0, 0, false));
player.sendPacket(ExVariationResult.FAIL);
return;
}
VariationInstance augment = VariationData.getInstance().generateRandomVariation(variation, targetItem);
if (augment == null)
{
player.sendPacket(new ExVariationResult(0, 0, false));
player.sendPacket(ExVariationResult.FAIL);
return;
}
@ -137,35 +137,30 @@ public class RequestRefine extends AbstractRefinePacket
}
}
player.sendPacket(new ExVariationResult(augment.getOption1Id(), augment.getOption2Id(), true));
// Consume the life stone.
if (!player.destroyItem("RequestRefine", mineralItem, 1, null, false))
{
return;
}
player.destroyItem("RequestRefine", mineralItem, 1, null, false);
// 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.
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)
{
player.addRequest(new VariationRequest(player));
}
VariationRequest request = player.getRequest(VariationRequest.class);
final VariationRequest request = player.getRequest(VariationRequest.class);
request.setAugmentedItem(_targetItemObjId);
request.setMineralItem(_mineralItemObjId);
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 _lifestoneItemId;
private final int _gemstoneItemId;
private final long _gemstoneCount;
private final int _unk2;
private final int _insertResult;
public ExPutIntensiveResultForVariationMake(int refinerItemObjId, int lifeStoneId, int gemstoneItemId, long gemstoneCount)
public ExPutIntensiveResultForVariationMake(int refinerItemObjId, int lifeStoneId, int insertResult)
{
_refinerItemObjId = refinerItemObjId;
_lifestoneItemId = lifeStoneId;
_gemstoneItemId = gemstoneItemId;
_gemstoneCount = gemstoneCount;
_unk2 = 1;
_insertResult = insertResult;
}
@Override
@ -42,9 +38,7 @@ public class ExPutIntensiveResultForVariationMake implements IClientOutgoingPack
OutgoingPackets.EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE.writeId(packet);
packet.writeD(_refinerItemObjId);
packet.writeD(_lifestoneItemId);
packet.writeD(_gemstoneItemId);
packet.writeQ(_gemstoneCount);
packet.writeD(_unk2);
packet.writeC(_insertResult);
return true;
}
}

View File

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

View File

@ -70,6 +70,6 @@ public class RequestConfirmRefinerItem extends AbstractRefinePacket
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))
{
player.sendPacket(new ExVariationResult(0, 0, false));
player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return;
}
if (_feeCount <= 0)
{
player.sendPacket(new ExVariationResult(0, 0, false));
player.sendPacket(ExVariationResult.FAIL);
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
return;
}
@ -99,7 +99,7 @@ public class RequestRefine extends AbstractRefinePacket
final long adenaFee = fee.getAdenaFee();
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);
return;
}
@ -107,14 +107,14 @@ public class RequestRefine extends AbstractRefinePacket
final Variation variation = VariationData.getInstance().getVariation(mineralItem.getId());
if (variation == null)
{
player.sendPacket(new ExVariationResult(0, 0, false));
player.sendPacket(ExVariationResult.FAIL);
return;
}
VariationInstance augment = VariationData.getInstance().generateRandomVariation(variation, targetItem);
if (augment == null)
{
player.sendPacket(new ExVariationResult(0, 0, false));
player.sendPacket(ExVariationResult.FAIL);
return;
}
@ -137,35 +137,30 @@ public class RequestRefine extends AbstractRefinePacket
}
}
player.sendPacket(new ExVariationResult(augment.getOption1Id(), augment.getOption2Id(), true));
// Consume the life stone.
if (!player.destroyItem("RequestRefine", mineralItem, 1, null, false))
{
return;
}
player.destroyItem("RequestRefine", mineralItem, 1, null, false);
// 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.
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)
{
player.addRequest(new VariationRequest(player));
}
VariationRequest request = player.getRequest(VariationRequest.class);
final VariationRequest request = player.getRequest(VariationRequest.class);
request.setAugmentedItem(_targetItemObjId);
request.setMineralItem(_mineralItemObjId);
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 _lifestoneItemId;
private final int _gemstoneItemId;
private final long _gemstoneCount;
private final int _unk2;
private final int _insertResult;
public ExPutIntensiveResultForVariationMake(int refinerItemObjId, int lifeStoneId, int gemstoneItemId, long gemstoneCount)
public ExPutIntensiveResultForVariationMake(int refinerItemObjId, int lifeStoneId, int insertResult)
{
_refinerItemObjId = refinerItemObjId;
_lifestoneItemId = lifeStoneId;
_gemstoneItemId = gemstoneItemId;
_gemstoneCount = gemstoneCount;
_unk2 = 1;
_insertResult = insertResult;
}
@Override
@ -42,9 +38,7 @@ public class ExPutIntensiveResultForVariationMake implements IClientOutgoingPack
OutgoingPackets.EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE.writeId(packet);
packet.writeD(_refinerItemObjId);
packet.writeD(_lifestoneItemId);
packet.writeD(_gemstoneItemId);
packet.writeQ(_gemstoneCount);
packet.writeD(_unk2);
packet.writeC(_insertResult);
return true;
}
}

View File

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