ExEnchantSkillInfoDetail changes to avoid wrong display.

This commit is contained in:
MobiusDev 2017-08-17 20:25:40 +00:00
parent ac48741739
commit cef955f9e0
2 changed files with 31 additions and 11 deletions

View File

@ -24,6 +24,7 @@ import java.util.Set;
import com.l2jmobius.gameserver.enums.SkillEnchantType; import com.l2jmobius.gameserver.enums.SkillEnchantType;
import com.l2jmobius.gameserver.model.StatsSet; import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.itemcontainer.Inventory;
/** /**
* @author Sdw * @author Sdw
@ -81,4 +82,28 @@ public class EnchantSkillHolder
{ {
return _requiredItems.getOrDefault(type, Collections.emptySet()); return _requiredItems.getOrDefault(type, Collections.emptySet());
} }
public ItemHolder getRequiredBook(SkillEnchantType type)
{
for (ItemHolder item : _requiredItems.getOrDefault(type, Collections.emptySet()))
{
if (item.getId() != Inventory.ADENA_ID)
{
return item;
}
}
return null;
}
public ItemHolder getRequiredAdena(SkillEnchantType type)
{
for (ItemHolder item : _requiredItems.getOrDefault(type, Collections.emptySet()))
{
if (item.getId() == Inventory.ADENA_ID)
{
return item;
}
}
return new ItemHolder(Inventory.ADENA_ID, 0);
}
} }

View File

@ -16,19 +16,16 @@
*/ */
package com.l2jmobius.gameserver.network.serverpackets; package com.l2jmobius.gameserver.network.serverpackets;
import java.util.Set;
import com.l2jmobius.commons.network.PacketWriter; import com.l2jmobius.commons.network.PacketWriter;
import com.l2jmobius.gameserver.data.xml.impl.EnchantSkillGroupsData; import com.l2jmobius.gameserver.data.xml.impl.EnchantSkillGroupsData;
import com.l2jmobius.gameserver.enums.SkillEnchantType; import com.l2jmobius.gameserver.enums.SkillEnchantType;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.EnchantSkillHolder; import com.l2jmobius.gameserver.model.holders.EnchantSkillHolder;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.network.OutgoingPackets; import com.l2jmobius.gameserver.network.OutgoingPackets;
import com.l2jmobius.gameserver.util.SkillEnchantConverter; import com.l2jmobius.gameserver.util.SkillEnchantConverter;
/** /**
* @author KenM * @author KenM, Mobius
*/ */
public class ExEnchantSkillInfoDetail implements IClientOutgoingPacket public class ExEnchantSkillInfoDetail implements IClientOutgoingPacket
{ {
@ -57,13 +54,11 @@ public class ExEnchantSkillInfoDetail implements IClientOutgoingPacket
{ {
packet.writeQ(_enchantSkillHolder.getSp(_type)); packet.writeQ(_enchantSkillHolder.getSp(_type));
packet.writeD(_enchantSkillHolder.getChance(_type)); packet.writeD(_enchantSkillHolder.getChance(_type));
final Set<ItemHolder> holders = _enchantSkillHolder.getRequiredItems(_type); packet.writeD(0x02); // item count
packet.writeD(holders.size()); packet.writeD(_enchantSkillHolder.getRequiredAdena(_type).getId());
holders.forEach(holder -> packet.writeD((int) _enchantSkillHolder.getRequiredAdena(_type).getCount());
{ packet.writeD(_enchantSkillHolder.getRequiredBook(_type).getId());
packet.writeD(holder.getId()); packet.writeD((int) _enchantSkillHolder.getRequiredBook(_type).getCount());
packet.writeD((int) holder.getCount());
});
} }
return _enchantSkillHolder != null; return _enchantSkillHolder != null;