All pastes #954087 Raw Edit

Something

public text v1 · immutable
#954087 ·published 2008-03-23 17:40 UTC
rendered paste body
Index: java/config/rates.properties
===================================================================
--- java/config/rates.properties	(revision 1798)
+++ java/config/rates.properties	(working copy)
@@ -9,6 +9,7 @@
 RateDropAdena = 1.
 RateConsumableCost = 1.
 RateDropItems = 1.
+RateRaidDropItems = 1.
 RateDropSpoil = 1.
 RateDropManor = 1
 # NOTE: this need quests to be rewritten in dp in order to work
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java	(revision 1798)
+++ java/net/sf/l2j/Config.java	(working copy)
@@ -617,6 +617,8 @@
     public static float		RATE_CONSUMABLE_COST;
     /** Rate for dropped items */
     public static float		RATE_DROP_ITEMS;
+    /** Rate for dropped items by Raid Bosses */
+    public static float		RATE_DROP_ITEMS_BY_RAID;
     /** Rate for spoiled items */
     public static float		RATE_DROP_SPOIL;
     /** Rate for manor items */
@@ -1429,6 +1431,7 @@
                 RATE_DROP_ADENA                 = Float.parseFloat(ratesSettings.getProperty("RateDropAdena", "1."));
                 RATE_CONSUMABLE_COST            = Float.parseFloat(ratesSettings.getProperty("RateConsumableCost", "1."));
                 RATE_DROP_ITEMS                 = Float.parseFloat(ratesSettings.getProperty("RateDropItems", "1."));
+                RATE_DROP_ITEMS_BY_RAID         = Float.parseFloat(ratesSettings.getProperty("RateRaidDropItems", "1."));
                 RATE_DROP_SPOIL                 = Float.parseFloat(ratesSettings.getProperty("RateDropSpoil", "1."));
                 RATE_DROP_MANOR                 = Integer.parseInt(ratesSettings.getProperty("RateDropManor", "1"));
                 RATE_DROP_QUEST                 = Float.parseFloat(ratesSettings.getProperty("RateDropQuest", "1."));
@@ -1826,6 +1829,7 @@
         else if (pName.equalsIgnoreCase("RateDropAdena")) RATE_DROP_ADENA = Float.parseFloat(pValue);
         else if (pName.equalsIgnoreCase("RateConsumableCost")) RATE_CONSUMABLE_COST = Float.parseFloat(pValue);
         else if (pName.equalsIgnoreCase("RateDropItems")) RATE_DROP_ITEMS = Float.parseFloat(pValue);
+        else if (pName.equalsIgnoreCase("RateRaidDropItems")) RATE_DROP_ITEMS_BY_RAID = Float.parseFloat(pValue);
         else if (pName.equalsIgnoreCase("RateDropSpoil")) RATE_DROP_SPOIL = Float.parseFloat(pValue);
         else if (pName.equalsIgnoreCase("RateDropManor")) RATE_DROP_MANOR = Integer.parseInt(pValue);
         else if (pName.equalsIgnoreCase("RateDropQuest")) RATE_DROP_QUEST = Float.parseFloat(pValue);
Index: java/net/sf/l2j/gameserver/model/L2Attackable.java
===================================================================
--- java/net/sf/l2j/gameserver/model/L2Attackable.java	(revision 1798)
+++ java/net/sf/l2j/gameserver/model/L2Attackable.java	(working copy)
@@ -1030,7 +1030,7 @@
      private RewardItem calculateRewardItem(L2PcInstance lastAttacker, L2DropData drop, int levelModifier, boolean isSweep)
      {
          // Get default drop chance
-         float dropChance = drop.getChance();
+         float dropChance = drop.getChance();                  
 
          int deepBlueDrop = 1;
          if (Config.DEEPBLUE_DROP_RULES)
@@ -1040,7 +1040,7 @@
                  // We should multiply by the server's drop rate, so we always get a low chance of drop for deep blue mobs.
                  // NOTE: This is valid only for adena drops! Others drops will still obey server's rate
                  deepBlueDrop = 3;
-                 if (drop.getItemId() == 57) deepBlueDrop *= (int)Config.RATE_DROP_ITEMS;
+                 if (drop.getItemId() == 57) deepBlueDrop *= isRaid()? (int)Config.RATE_DROP_ITEMS_BY_RAID : (int)Config.RATE_DROP_ITEMS;
              }
          }
 
@@ -1052,7 +1052,7 @@
          // Applies Drop rates
          if (drop.getItemId() == 57) dropChance *= Config.RATE_DROP_ADENA;
          else if (isSweep) dropChance *= Config.RATE_DROP_SPOIL;
-         else dropChance *= Config.RATE_DROP_ITEMS;
+         else dropChance *= isRaid() ? Config.RATE_DROP_ITEMS_BY_RAID : Config.RATE_DROP_ITEMS;
 
          if (Config.L2JMOD_CHAMPION_ENABLE && isChampion())
 	         dropChance *= Config.L2JMOD_CHAMPION_REWARDS;
@@ -1139,7 +1139,7 @@
           if (Config.DEEPBLUE_DROP_RULES) categoryDropChance = ((categoryDropChance - ((categoryDropChance * levelModifier)/100)) / deepBlueDrop);
 
           // Applies Drop rates
-          categoryDropChance *= Config.RATE_DROP_ITEMS;
+          categoryDropChance *= isRaid() ? Config.RATE_DROP_ITEMS_BY_RAID : Config.RATE_DROP_ITEMS;
           if (Config.L2JMOD_CHAMPION_ENABLE && isChampion())
 			categoryDropChance *= Config.L2JMOD_CHAMPION_REWARDS;
 
@@ -1152,7 +1152,7 @@
           // Check if an Item from this category must be dropped
           if (Rnd.get(L2DropData.MAX_CHANCE) < categoryDropChance)
           {
-        	  L2DropData drop = categoryDrops.dropOne();
+        	  L2DropData drop = categoryDrops.dropOne(isRaid());
         	  if (drop == null)
         		  return null;
 
@@ -1170,7 +1170,7 @@
 
         	  int dropChance = drop.getChance();
               if (drop.getItemId() == 57) dropChance *= Config.RATE_DROP_ADENA;
-              else dropChance *= Config.RATE_DROP_ITEMS;
+              else dropChance *= isRaid() ? Config.RATE_DROP_ITEMS_BY_RAID : Config.RATE_DROP_ITEMS;
               if (Config.L2JMOD_CHAMPION_ENABLE && isChampion())
 				dropChance *= Config.L2JMOD_CHAMPION_REWARDS;
 
Index: java/net/sf/l2j/gameserver/model/L2DropCategory.java
===================================================================
--- java/net/sf/l2j/gameserver/model/L2DropCategory.java	(revision 1798)
+++ java/net/sf/l2j/gameserver/model/L2DropCategory.java	(working copy)
@@ -37,7 +37,7 @@
 		_categoryBalancedChance = 0;
 	}
 
-    public void addDropData(L2DropData drop)
+    public void addDropData(L2DropData drop, boolean raid)
 	{
 	    if (drop.isQuestDrop()) {
 //			if (_questDrops == null)
@@ -47,7 +47,7 @@
 	        _drops.add(drop);
 	        _categoryChance += drop.getChance();
 	        // for drop selection inside a category: max 100 % chance for getting an item, scaling all values to that.
-	        _categoryBalancedChance += Math.min((drop.getChance()*Config.RATE_DROP_ITEMS),L2DropData.MAX_CHANCE);
+	        _categoryBalancedChance += Math.min((drop.getChance()*(raid?Config.RATE_DROP_ITEMS_BY_RAID : Config.RATE_DROP_ITEMS)),L2DropData.MAX_CHANCE);
 	    }
 	}
 
@@ -159,13 +159,13 @@
  *
  * @return selected drop from category, or null if nothing is dropped.
  */
-    public synchronized L2DropData dropOne()
+    public synchronized L2DropData dropOne(boolean raid)
     {
         int randomIndex = Rnd.get(getCategoryBalancedChance());
         int sum = 0;
         for (L2DropData drop : getAllDrops())
         {
-        	sum += Math.min((drop.getChance()*Config.RATE_DROP_ITEMS),L2DropData.MAX_CHANCE);
+        	sum += Math.min((drop.getChance()*(raid?Config.RATE_DROP_ITEMS_BY_RAID : Config.RATE_DROP_ITEMS)),L2DropData.MAX_CHANCE);
 
         	if (sum >= randomIndex)       // drop this item and exit the function
         		return drop;

Index: java/net/sf/l2j/gameserver/templates/L2NpcTemplate.java
===================================================================
--- java/net/sf/l2j/gameserver/templates/L2NpcTemplate.java	(revision 1798)
+++ java/net/sf/l2j/gameserver/templates/L2NpcTemplate.java	(working copy)
@@ -231,7 +231,7 @@
 	    	    	// if the category exists, add the drop to this category.
 	    			if (cat.getCategoryType() == categoryType)
 	    			{
-	    				cat.addDropData(drop);
+	    				cat.addDropData(drop, type.equalsIgnoreCase("L2RaidBoss") || type.equalsIgnoreCase("L2GrandBoss"));
 	    				catExists = true;
 	    				break;
 	    			}
@@ -239,7 +239,7 @@
 	    		if (!catExists)
 	    		{
 	    			L2DropCategory cat = new L2DropCategory(categoryType);
-	    			cat.addDropData(drop);
+	    			cat.addDropData(drop, type.equalsIgnoreCase("L2RaidBoss") || type.equalsIgnoreCase("L2GrandBoss"));
 	    			_categories.add(cat);
 	    		}
 	    	}