From 3362138af20890fc8273659a7e74a474fdf05c94 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 7 Sep 2020 08:22:29 +0000 Subject: [PATCH] Support for adding multiple non stackable items in multisells. --- .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ .../clientpackets/MultiSellChoose.java | 19 +++++++++++++++++++ 15 files changed, 285 insertions(+) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 8a1748f0a6..0fada29655 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -243,7 +244,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 5c2af81ac8..54f0e81640 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 5c2af81ac8..54f0e81640 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 5c2af81ac8..54f0e81640 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 74398b0587..5895189396 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 74398b0587..5895189396 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 74398b0587..5895189396 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 7f97da09b0..c283d7645d 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 7f97da09b0..c283d7645d 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 7f97da09b0..c283d7645d 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 7f97da09b0..c283d7645d 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 7f97da09b0..c283d7645d 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 7f97da09b0..c283d7645d 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index 7f97da09b0..c283d7645d 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -271,7 +272,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) { diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java index fa34a1d723..30cea655fa 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/MultiSellChoose.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.OptionalLong; @@ -236,7 +237,25 @@ public class MultiSellChoose implements IClientIncomingPacket } // Check for enchanted level and ingredient count requirements. + final List summedIngredients = new ArrayList<>(); for (ItemChanceHolder ingredient : entry.getIngredients()) + { + boolean added = false; + for (ItemChanceHolder summedIngredient : summedIngredients) + { + if ((summedIngredient.getId() == ingredient.getId()) && (summedIngredient.getEnchantmentLevel() == ingredient.getEnchantmentLevel())) + { + summedIngredients.add(new ItemChanceHolder(ingredient.getId(), ingredient.getChance(), ingredient.getCount() + summedIngredient.getCount(), ingredient.getEnchantmentLevel(), ingredient.isMaintainIngredient())); + summedIngredients.remove(summedIngredient); + added = true; + } + } + if (!added) + { + summedIngredients.add(ingredient); + } + } + for (ItemChanceHolder ingredient : summedIngredients) { if (ingredient.getEnchantmentLevel() > 0) {