All pastes #93599 Raw Edit

Miscellany

public text v1 · immutable
#93599 ·published 2006-07-20 16:25 UTC
rendered paste body
Index: C:/Documents and Settings/Paraskevas/workspace/L2_GameServer_c4/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- C:/Documents and Settings/Paraskevas/workspace/L2_GameServer_c4/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(revision 2199)
+++ C:/Documents and Settings/Paraskevas/workspace/L2_GameServer_c4/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -3425,15 +3425,16 @@
 				dropLimit = Config.PLAYER_DROP_LIMIT;
 			}
 			
-			if (dropPercent > 0 && Rnd.get(100) < dropPercent)
+            int dropCount = 0;
+			while (dropPercent > 0 && Rnd.get(100) < dropPercent && dropCount < dropLimit)
 			{
+                int itemDropPercent = 0;
 				List<Integer> nonDroppableList = new FastList<Integer>();
 				List<Integer> nonDroppableListPet = new FastList<Integer>();
 				
 				nonDroppableList = Config.KARMA_LIST_NONDROPPABLE_ITEMS;
 				nonDroppableListPet = Config.KARMA_LIST_NONDROPPABLE_ITEMS;
 				
-				int dropCount = 0;
 				for (L2ItemInstance itemDrop : getInventory().getItems())
 				{
 					// Don't drop
@@ -3448,13 +3449,13 @@
 					if (itemDrop.isEquipped())
 					{
 						// Set proper chance according to Item type of equipped Item
-						dropPercent = itemDrop.getItem().getType2() == L2Item.TYPE2_WEAPON ? dropEquipWeapon : dropEquip; 
+                        itemDropPercent = itemDrop.getItem().getType2() == L2Item.TYPE2_WEAPON ? dropEquipWeapon : dropEquip; 
 						getInventory().unEquipItemInSlotAndRecord(itemDrop.getEquipSlot());
 					}
-					else dropPercent = dropItem; // Item in inventory
+					else itemDropPercent = dropItem; // Item in inventory
 					
 					// NOTE: Each time an item is dropped, the chance of another item being dropped gets lesser (dropCount * 2)
-					if (Rnd.get(100) < dropPercent - (dropCount * 2))
+					if (Rnd.get(100) < itemDropPercent)
 					{                    
 						dropItem("DieDrop", itemDrop, killer, true);
 						
@@ -3464,7 +3465,8 @@
 							_log.warning(getName() + " dropped id = " + itemDrop.getItemId() + ", count = " + itemDrop.getCount());
 						
 						dropCount++;
-						if (dropCount >= dropLimit) break;
+						break;
 					}
 				}
 			}