Try this.
Index: dist/game/data/scripts/handlers/effecthandlers/SummonCubic.java
===================================================================
--- dist/game/data/scripts/handlers/effecthandlers/SummonCubic.java (revision 5990)
+++ dist/game/data/scripts/handlers/effecthandlers/SummonCubic.java (working copy)
@@ -18,7 +18,6 @@
import java.util.logging.Logger;
-import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.data.xml.impl.CubicData;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@@ -93,10 +92,9 @@
final int allowedCubicCount = (int) effected.getActingPlayer().getStat().getValue(Stats.MAX_CUBIC, 1);
final int currentCubicCount = player.getCubics().size();
// Extra cubics are removed, one by one, randomly.
- for (int i = 0; i <= ((currentCubicCount + 1) - allowedCubicCount); i++)
+ if (currentCubicCount >= allowedCubicCount)
{
- final int removedCubicId = (int) player.getCubics().keySet().toArray()[Rnd.get(currentCubicCount)];
- final CubicInstance removedCubic = player.getCubicById(removedCubicId);
+ final CubicInstance removedCubic = player.getCubicById(player.getCubics().values().stream().findAny().get().getTemplate().getId());
removedCubic.deactivate();
}
}