Jump to content
  • 0

{HELP}Custom Enchant Mobs


Question

Posted

### Eclipse Workspace Patch 1.0#P elfobitchIndex:
 /gameserver/model/L2Attackable.java
===================================================================---
 /gameserver/model/L2Attackable.java   (revision 903)
+++ /gameserver/model/L2Attackable.java   (working copy)
@@ -244,12 +244,22 @@      
 protected int _itemId;       protected int _count;
+      private int _enchant = -1;
+      private int _chance = 0;
+             public RewardItem(int itemId, int count)     
  {        
  _itemId = itemId;    
      _count = count;       }
+      public RewardItem(int itemId, int count, int enchant, int chance)
+      {
+         this(itemId, count);
+         _enchant = enchant;
+         _chance = chance;
+      }
+             public int getItemId()      
 {         
 return _itemId;
@@ -259,6 +269,9 @@     
  {         
 return _count;       
}
+            
+      public int getEnchant()
{ return _enchant; }
+      public int getEnchantChance()
{ return _chance;
}    
}     
/**@@ -1560,7 +1573,7 @@       
}        
if(itemCount > 0)
-         return new RewardItem(drop.getItemId(), itemCount);
+         return new RewardItem(drop.getItemId(), itemCount, drop.getEnchant(), drop.getEnchantChance());      
 else if(itemCount == 0 && Config.DEBUG)       
{  
        _log.fine("Roll produced 0 items to drop...");
@@ -1845,7 +1858,7 @@  
        }  
         if(itemCount > 0)
-           
 return new RewardItem(drop.getItemId(), itemCount);
+            return new RewardItem(drop.getItemId(), itemCount, drop.getEnchant(), drop.getEnchantChance());
          else if(itemCount == 0 && Config.DEBUG)  
        {
            _log.fine("Roll produced 0 items to drop...");
@@ -2503,6 +2516,16 @@
         // Init the dropped L2ItemInstance and add it in the world as a visible object at the position where mob was last
          *
          */
         ditem = ItemTable.getInstance().createItem("Loot", item.getItemId(), item.getCount(), mainDamageDealer, this);          ditem.getDropProtection().protect(mainDamageDealer);
         +            if(item.getEnchant() > 0)
             +            {
             +               if(ditem.getItem().getType1() == L2Item.TYPE1_WEAPON_RING_EARRING_NECKLACE+                     || ditem.getItem().getType1() == L2Item.TYPE1_SHIELD_ARMOR)
                 +               {
                 +                  double chance = Rnd.get(1, 100);
                 +                  if(chance <= item.getEnchantChance())
                     +                     ditem.setEnchantLevel(item.getEnchant());
                 +               }
             +            }          
         ditem.dropMe(this, newX, newY, newZ);   
         // Add drop to auto destroy item taskIndex:
         /gameserver/datatables/sql/NpcTable.java
         ===================================================================
         --- gameserver/head-src/com/l2jfrozen/gameserver/datatables/sql/NpcTable.java
 (revision 903)
 +++ gameserver/head-src/com/l2jfrozen/gameserver/datatables/sql/NpcTable.java
 (working copy)
 @@ -247,7 +247,7
 @@             {
             statement = con.prepareStatement("SELECT " + L2DatabaseFactory.getInstance().safetyString(new String[]         
                 {
                 -                     "mobId", "itemId", "min", "max", "category", "chance"
                 +                     "mobId", "itemId", "min", "max", "category", "chance", "enchant", "enchantChance"                })
                 + " FROM custom_droplist ORDER BY mobId, chance DESC");  
             ResultSet dropData = statement.executeQuery();
             @@ -270,6 +270,8 @@
             dropDat.setMinDrop(dropData.getInt("min"));   
             dropDat.setMaxDrop(dropData.getInt("max"));
             dropDat.setChance(dropData.getInt("chance"));
             +                  dropDat.setEnchant(dropData.getInt("enchant"));
             +                  dropDat.setEnchantChance(dropData.getInt("enchantChance"));
             int category = dropData.getInt("category");
             @@ -295,7 +297,7 @@   
             {           
                 statement = con.prepareStatement("SELECT " + L2DatabaseFactory.getInstance().safetyString(new String[]           
                     {
                     -                  "mobId", "itemId", "min", "max", "category", "chance"
                     +                  "mobId", "itemId", "min", "max", "category", "chance", "enchant", "enchantChance"             })
                     + " FROM droplist ORDER BY mobId, chance DESC");  
                 ResultSet dropData = statement.executeQuery();   
                 L2DropData dropDat = null;
                 @@ -319,6 +321,8 @@
                 dropDat.setMinDrop(dropData.getInt("min"));
                 dropDat.setMaxDrop(dropData.getInt("max"));  
                 dropDat.setChance(dropData.getInt("chance"));
                 +               dropDat.setEnchant(dropData.getInt("enchant"));
                 +               dropDat.setEnchantChance(dropData.getInt("enchantChance"));
                 int category = dropData.getInt("category");
                 Index: /gameserver/script/faenor/FaenorInterface.java
                 ===================================================================
                 ---/gameserver/script/faenor/FaenorInterface.java   
                 (revision 903)+++
                 gameserver/head-src/com/l2jfrozen/gameserver/script/faenor/FaenorInterface.java
                 (working copy)
                 @@ -82,6 +82,27 @@
                 addDrop(npc, drop, false);   
                 } +   public void addQuestDrop(int npcID, int itemID, int min, int max, int chance, String questID, String[] states,
                     +         int enchant, int enchantChance)
                     +   {
                     +      L2NpcTemplate npc = npcTable.getTemplate(npcID);
                     +      if (npc == null)
                         +      {
                         +         _log.info("FeanorInterface: Npc "+npcID+" is null..");
                         +         return;
                         +      }
                     +      L2DropData drop = new L2DropData();
                     +      drop.setItemId(itemID);
                     +      drop.setMinDrop(min);
                     +      drop.setMaxDrop(max);
                     +      drop.setEnchant(enchant);
                     +      drop.setEnchantChance(enchantChance);
                     +      drop.setChance(chance);
                     +      drop.setQuestID(questID);
                     +      drop.addStates(states);
                     +      addDrop(npc, drop, false);
                     +   }
                 +       /**     * Adds a new Drop to an NPC   
                   *@@ -106,7 +127,31 @@
                   *       addDrop(npc, drop, sweep);   
                   *        }
                   *        +  
                   *         +   public void addDrop(int npcID, int itemID, int min, int max, boolean sweep, int chance,+         int enchant, int enchantChance) throws NullPointerException
                   *         +   {
                   *         +      L2NpcTemplate npc = npcTable.getTemplate(npcID);
                   *         +      if (npc == null)
                   *         +      {
                   *         +         if (Config.DEBUG)
                   *         +         {
                   *         +            _log.warning("Npc doesnt Exist");
                   *         +         }
                   *         +         throw new NullPointerException();
                   *         +      }
                   *         +      L2DropData drop = new L2DropData();
                   *         +      drop.setItemId(itemID);
                   *         +      drop.setMinDrop(min);
                   *         +      drop.setMaxDrop(max);
                   *         +      drop.setChance(chance);
                   *         +      drop.setEnchant(enchant);
                   *         +      drop.setEnchantChance(enchantChance);
                   *         +     
                   *          +      addDrop(npc, drop, sweep);
                   *          +   }
                   *           +       /**     * Adds a new drop to an NPC. If the drop is sweep, it adds it to the NPC's Sweep category If the drop is non-sweep,     * it creates a new category for this drop.
                   *           Index: /gameserver/handler/admincommandhandlers/AdminEditNpc.java
                   *           ===================================================================
                   *           --- /gameserver/handler/admincommandhandlers/AdminEditNpc.java  
                   *            (revision 903)+++
                   *            /gameserver/handler/admincommandhandlers/AdminEditNpc.java
                   *              (working copy)
                   *              @@ -407,7 +407,7 @@
                   *                                   e.printStackTrace();
                   *                                                  }
                   *                                                  
                   *                                                             }
                   *                                                             -            else if(st.countTokens() == 6)
                   *                                                             +            else if(st.countTokens() == 8)
                   *                                                                         {   
                   *                                                                                      try   
                   *                                                                                                   {
                   *                                                                                                   @@ -417,8 +417,10 @@
                   *             int min = Integer.parseInt(st.nextToken());   
                   *            int max = Integer.parseInt(st.nextToken());   
                   *            int chance = Integer.parseInt(st.nextToken());
                   *             +                  int enchant = Integer.parseInt(st.nextToken());
                   *             +                  int enchantChance = Integer.parseInt(st.nextToken());
                   *             -                  updateDropData(activeChar, npcId, itemId, min, max, category, chance);
                   *            +                  updateDropData(activeChar, npcId, itemId, min, max, category, chance, enchant, enchantChance);  
                   *            }       
                   *             catch(Exception e)  
                   *                                                                                                                                                                                          {@@ -430,7 +432,7 @@
                                                                                                                                                                 }  
                                                                                                                                                               else  
                   *                                                                                                                                                                                                                            {
                   *                                                                                                                                                                                                                            -               activeChar.sendMessage("Usage: //edit_drop <npc_id> <item_id> <category> [<min> <max> <chance>]");
                   *                                                                                                                                                                                                                            +               activeChar.sendMessage("Usage: //edit_drop <npc_id> <item_id> <category> [<min> <max> <chance> <enchant> <enchantChance>]");  
                   *                                                                                                                                                                                                                                       }              st = null;
                   *                                                                                                                                                                                                                                       @@ -440,7 +442,7 @@  
                   *                                                                                                                                                                                                                                                  if(Config.ENABLE_ALL_EXCEPTIONS)
                   *                                                                                                                                                                                                                                                                  e.printStackTrace();  
                   *                                                                                                                                                                                                                                                                             -            activeChar.sendMessage("Usage: //edit_drop <npc_id> <item_id> <category> [<min> <max> <chance>]");
                   *                                                                                                                                                                                                                                                                             +            activeChar.sendMessage("Usage: //edit_drop <npc_id> <item_id> <category> [<min> <max> <chance> <enchant> <enchantChance>]");
                   *                                                                                                                                                                                                                                                                                       }     
                   *                                                                                                                                                                                                                                                                                         }       else if(command.startsWith("admin_add_drop "))
                   *                                                                                                                                                                                                                                                                                         @@ -474,7 +476,7 @@
                   *                                                                                                                                                                                                                                                                                                           npcData = null;  
                   *                                                                                                                                                                                                                                                                                                                         }  
                   *                                                                                                                                                                                                                                                                                                                                    }
                   *                                                                                                                                                                                                                                                                                                                                    -            else if(st.countTokens() == 6)
                   *                                                                                                                                                                                                                                                                                                                                    +            else if(st.countTokens() == 8)   
                   *                                                                                                                                                                                                                                                                                                                                              {      
                   *                                                                                                                                                                                                                                                                                                                                                        try    
                   *                                                                                                                                                                                                                                                                                                                                                                    {
                   *                                                                                                                                                                                                                                                                                                                                                                    @@ -484,8 +486,10 @@
                   *                                                                                                                                                                                                                                                                                                                                                                                       int min = Integer.parseInt(st.nextToken());
                   *                                                                                                                                                                                                                                                                                                                                                                                                         int max = Integer.parseInt(st.nextToken());
                   *                                                                                                                                                                                                                                                                                                                                                                                                                           int chance = Integer.parseInt(st.nextToken());
                   *                                                                                                                                                                                                                                                                                                                                                                                                                           +                  int enchant = Integer.parseInt(st.nextToken());
                   *                                                                                                                                                                                                                                                                                                                                                                                                                           +                  int enchantChance = Integer.parseInt(st.nextToken());
                   *                                                                                                                                                                                                                                                                                                                                                                                                                            -                  addDropData(activeChar, npcId, itemId, min, max, category, chance);
                   *                                                                                                                                                                                                                                                                                                                                                                                                                            +                  addDropData(activeChar, npcId, itemId, min, max, category, chance, enchant, enchantChance);   
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                         }  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                       catch(Exception e)
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                      {
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                      @@ -497,7 +501,7 @@
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   }  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          {
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          -               activeChar.sendMessage("Usage: //add_drop <npc_id> [<item_id> <category> <min> <max> <chance>]");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          +               activeChar.sendMessage("Usage: //add_drop <npc_id> [<item_id> <category> <min> <max> <chance> <enchant> <enchantChance>]");  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     }              st = null;
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     @@ -507,7 +511,7 @@   
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               if(Config.ENABLE_ALL_EXCEPTIONS)
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               e.printStackTrace();  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          -            activeChar.sendMessage("Usage: //add_drop <npc_id> [<item_id> <category> <min> <max> <chance>]");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          +            activeChar.sendMessage("Usage: //add_drop <npc_id> [<item_id> <category> <min> <max> <chance> <enchant> <enchantChance>]");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   }    
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           else if(command.startsWith("admin_del_drop "))
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @@ -1323,7 +1327,7 @@
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 {    
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       con = L2DatabaseFactory.getInstance().getConnection(false);
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       -         PreparedStatement statement = con.prepareStatement("SELECT mobId, itemId, min, max, category, chance FROM droplist WHERE mobId=" + npcId + " AND itemId=" + itemId + " AND category=" + category);
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       +         PreparedStatement statement = con.prepareStatement("SELECT mobId, itemId, min, max, category, chance, enchant, enchantChance FROM droplist WHERE mobId=" + npcId + " AND itemId=" + itemId + " AND category=" + category);  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ResultSet dropData = statement.executeQuery();
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         @@ -1340,9 +1344,11 @@     
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 replyMSG.append("<tr><td>MIN(" + dropData.getInt("min") + ")</td><td><edit var=\"min\" width=80></td></tr>");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             replyMSG.append("<tr><td>MAX(" + dropData.getInt("max") + ")</td><td><edit var=\"max\" width=80></td></tr>");  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        replyMSG.append("<tr><td>CHANCE(" + dropData.getInt("chance") + ")</td><td><edit var=\"chance\" width=80></td></tr>");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        +            replyMSG.append("<tr><td>ENC-VALUE(" + dropData.getInt("enchant") + ")</td><td><edit var=\"enchant\" width=80></td></tr>");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        +            replyMSG.append("<tr><td>ENC-CHANCE(" + dropData.getInt("enchantChance") + ")</td><td><edit var=\"enchantChance\" width=80></td></tr>");  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   replyMSG.append("</table>");  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              replyMSG.append("<center>");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              -            replyMSG.append("<button value=\"Save Modify\" action=\"bypass -h admin_edit_drop " + npcId + " " + itemId + " " + category + " $min $max $chance\"  width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              +            replyMSG.append("<button value=\"Save Modify\" action=\"bypass -h admin_edit_drop " + npcId + " " + itemId + " " + category + " $min $max $chance $enchant $enchantChance\"  width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          replyMSG.append("<br><button value=\"DropList\" action=\"bypass -h admin_show_droplist " + dropData.getInt("mobId") + "\"  width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     replyMSG.append("</center>");    
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           }
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           @@ -1383,9 +1389,11 @@
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 replyMSG.append("<tr><td>MAX</td><td><edit var=\"max\" width=80></td></tr>");   
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     replyMSG.append("<tr><td>CATEGORY(sweep=-1)</td><td><edit var=\"category\" width=80></td></tr>");  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          replyMSG.append("<tr><td>CHANCE(0-1000000)</td><td><edit var=\"chance\" width=80></td></tr>");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          +      replyMSG.append("<tr><td>ENC-VALUE(0-65535)</td><td><edit var=\"enchant\" width=80></td></tr>");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          +      replyMSG.append("<tr><td>ENC-CHANCE(0-100)</td><td><edit var=\"enchantChance\" width=80></td></tr>");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 replyMSG.append("</table>");  
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      replyMSG.append("<center>");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      -      replyMSG.append("<button value=\"SAVE\" action=\"bypass -h admin_add_drop " + npcData.npcId + " $itemId $category $min $max $chance\"  width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      +      replyMSG.append("<button value=\"SAVE\" action=\"bypass -h admin_add_drop " + npcData.npcId + " $itemId $category $min $max $chance $enchant $enchantChance\"  width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             replyMSG.append("<br><button value=\"DropList\" action=\"bypass -h admin_show_droplist " + npcData.npcId + "\"  width=100 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\">");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    replyMSG.append("</center>");       replyMSG.append("</body></html>");
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    @@ -1397,7 +1405,7 @@
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           replyMSG = null;
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              }
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              -   private void updateDropData(L2PcInstance activeChar, int npcId, int itemId, int min, int max, int category, int chance)
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              +   private void updateDropData(L2PcInstance activeChar, int npcId, int itemId, int min, int max, int category, int chance, int enchant, int enchantChance)
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 {     
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Connection con = null;
                   *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   @@ -1405,13 +1413,15 @@  
                   *                 

                 }
                     }
             }
                 }
         }

i Delete the Patch cause to do not advertise another work !

 

 

Mporei kapoios na voi8isi an exei kapoios to swsto

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...