Fixing enchant level showing always 0 after successful enchant.

This commit is contained in:
MobiusDevelopment 2019-04-22 22:43:36 +00:00
parent 218c004b2b
commit 6131c3b641
2 changed files with 41 additions and 8 deletions

View File

@ -32,6 +32,7 @@ public class EnchantResult implements IClientOutgoingPacket
private final int _crystal;
private final int _count;
private final int _enchantLevel;
@SuppressWarnings("unused")
private final int[] _enchantOptions;
public EnchantResult(int result, int crystal, int count, int enchantLevel, int[] options)
@ -61,11 +62,21 @@ public class EnchantResult implements IClientOutgoingPacket
packet.writeD(_result);
packet.writeD(_crystal);
packet.writeQ(_count);
packet.writeD(_enchantLevel);
for (int option : _enchantOptions)
{
packet.writeH(option);
}
// Guessing.
// With 166 options became 3x write integers instead of shorts and enchant level moved bellow.
// Commenting until actually knowing.
// for (int option : _enchantOptions)
// {
// packet.writeD(option);
// }
packet.writeD(0x00);
packet.writeD(0x00);
packet.writeD(0x00);
packet.writeD(_enchantLevel); // Confirmed.
return true;
}
}

View File

@ -16,6 +16,7 @@
*/
package org.l2jmobius.gameserver.network.serverpackets;
import org.l2jmobius.Config;
import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.network.OutgoingPackets;
@ -61,11 +62,32 @@ public class EnchantResult implements IClientOutgoingPacket
packet.writeD(_result);
packet.writeD(_crystal);
packet.writeQ(_count);
packet.writeD(_enchantLevel);
for (int option : _enchantOptions)
if (!Config.PROTOCOL_LIST.contains(166)) // 152
{
packet.writeH(option);
packet.writeD(_enchantLevel);
for (int option : _enchantOptions)
{
packet.writeH(option);
}
}
else
{
// Guessing.
// With 166 options became 3x write integers instead of shorts and enchant level moved bellow.
// Commenting until actually knowing.
// for (int option : _enchantOptions)
// {
// packet.writeD(option);
// }
packet.writeD(0x00);
packet.writeD(0x00);
packet.writeD(0x00);
packet.writeD(_enchantLevel); // Confirmed.
}
return true;
}
}