Эх сурвалжийг харах

BETA: Extractable items should give non stackable items one at the time.

Reported by: yksdtc
Patch by: jurchiks
Zoey76 11 жил өмнө
parent
commit
9909129971

+ 0 - 4
L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/EventItem.java

@@ -18,8 +18,6 @@
  */
 package handlers.itemhandlers;
 
-import java.util.logging.Logger;
-
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.instancemanager.HandysBlockCheckerManager;
 import com.l2jserver.gameserver.model.ArenaParticipantsHolder;
@@ -33,8 +31,6 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
 public class EventItem implements IItemHandler
 {
-	private static final Logger _log = Logger.getLogger(EventItem.class.getName());
-	
 	@Override
 	public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
 	{

+ 22 - 13
L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ExtractableItems.java

@@ -19,10 +19,8 @@
 package handlers.itemhandlers;
 
 import java.util.List;
-import java.util.logging.Logger;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.model.L2ExtractableProduct;
 import com.l2jserver.gameserver.model.actor.L2Playable;
@@ -33,12 +31,11 @@ import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.util.Rnd;
 
 /**
- * @author FBIagent 11/12/2006
+ * Extractable Items handler.
+ * @author FBIagent
  */
 public class ExtractableItems implements IItemHandler
 {
-	private static Logger _log = Logger.getLogger(ItemTable.class.getName());
-	
 	@Override
 	public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
 	{
@@ -64,19 +61,31 @@ public class ExtractableItems implements IItemHandler
 		}
 		
 		boolean created = false;
-		// calculate extraction
-		int min;
-		int max;
-		int createitemAmount;
 		for (L2ExtractableProduct expi : exitem)
 		{
 			if (Rnd.get(100000) <= expi.getChance())
 			{
-				min = (int) (expi.getMin() * Config.RATE_EXTRACTABLE);
-				max = (int) (expi.getMax() * Config.RATE_EXTRACTABLE);
+				final int min = (int) (expi.getMin() * Config.RATE_EXTRACTABLE);
+				final int max = (int) (expi.getMax() * Config.RATE_EXTRACTABLE);
 				
-				createitemAmount = (max == min) ? min : (Rnd.get((max - min) + 1) + min);
-				activeChar.addItem("Extract", expi.getId(), createitemAmount, activeChar, true);
+				int createItemAmount = (max == min) ? min : (Rnd.get((max - min) + 1) + min);
+				if (createItemAmount == 0)
+				{
+					continue;
+				}
+				
+				if (item.isStackable() || (createItemAmount == 1))
+				{
+					activeChar.addItem("Extract", expi.getId(), createItemAmount, activeChar, true);
+				}
+				else
+				{
+					while (createItemAmount > 0)
+					{
+						activeChar.addItem("Extract", expi.getId(), 1, activeChar, true);
+						createItemAmount--;
+					}
+				}
 				created = true;
 			}
 		}

+ 1 - 1
L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SpecialXMas.java

@@ -25,7 +25,7 @@ import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ShowXMasSeal;
 
 /**
- * @author devScarlet & mrTJO
+ * @author devScarlet, mrTJO
  */
 public class SpecialXMas implements IItemHandler
 {