tobaJK

aCis craft enchant

Oct 27th, 2018 (edited)
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.27 KB | None | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2. #P aCis_gameserver
  3. Index: java/net/sf/l2j/gameserver/model/craft/RecipeItemMaker.java
  4. ===================================================================
  5. --- java/net/sf/l2j/gameserver/model/craft/RecipeItemMaker.java (revision 3)
  6. +++ java/net/sf/l2j/gameserver/model/craft/RecipeItemMaker.java (working copy)
  7. @@ -268,14 +268,19 @@
  8.         final int itemId = _recipe.getProduct().getId();
  9.         final int itemCount = _recipe.getProduct().getValue();
  10.        
  11. -       _target.getInventory().addItem("Manufacture", itemId, itemCount, _target, _player);
  12. +       final ItemInstance item = ItemInstance.create("Manufacture", itemId, itemCount, _target, _player);
  13. +       if (_recipe.hasEnchant() && Rnd.get(100) < _recipe.getEnchantChance())
  14. +           item.setEnchantLevel(_recipe.getEnchant());
  15.        
  16. +       _target.getInventory().addItem("Manufacture", item, _target, _player);
  17. +      
  18.         // inform customer of earned item
  19.         if (_target != _player)
  20.         {
  21.             // inform manufacturer of earned profit
  22.             if (itemCount == 1)
  23.             {
  24.                 _player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S2_CREATED_FOR_S1_FOR_S3_ADENA).addString(_target.getName()).addItemName(itemId).addItemNumber(_price));
  25.                 _target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_CREATED_S2_FOR_S3_ADENA).addString(_player.getName()).addItemName(itemId).addItemNumber(_price));
  26.             }
  27. @@ -288,6 +293,8 @@
  28.        
  29.         if (itemCount > 1)
  30.             _target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.EARNED_S2_S1_S).addItemName(itemId).addNumber(itemCount));
  31. +       else if (item.getEnchantLevel() > 0)
  32. +           _target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_PICKED_UP_A_S1_S2).addNumber(item.getEnchantLevel()).addItemName(itemId));
  33.         else
  34.             _target.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.EARNED_ITEM_S1).addItemName(itemId));
  35.        
  36.  
  37. Index: java/net/sf/l2j/gameserver/model/item/Recipe.java
  38. ===================================================================
  39. --- java/net/sf/l2j/gameserver/model/item/Recipe.java   (revision 3)
  40. +++ java/net/sf/l2j/gameserver/model/item/Recipe.java   (working copy)
  41. @@ -2,6 +2,8 @@
  42.  
  43.  import java.util.List;
  44.  
  45. +import net.sf.l2j.commons.random.Rnd;
  46. +
  47.  import net.sf.l2j.gameserver.model.holder.IntIntHolder;
  48.  import net.sf.l2j.gameserver.templates.StatsSet;
  49.  
  50. @@ -21,6 +23,8 @@
  51.     private final int _successRate;
  52.     private final int _mpCost;
  53.     private final boolean _isDwarven;
  54. +   private final IntIntHolder _enchant;
  55. +   private final int _enchantChance;
  56.    
  57.     public Recipe(StatsSet set)
  58.     {
  59. @@ -34,6 +38,8 @@
  60.         _successRate = set.getInteger("successRate");
  61.         _mpCost = set.getInteger("mpConsume");
  62.         _isDwarven = set.getBool("isDwarven");
  63. +       _enchant = set.getString("enchant", "").isEmpty() ? null : set.getIntIntHolder("enchant");
  64. +       _enchantChance = set.getInteger("enchantChance", 0);
  65.     }
  66.    
  67.     public List<IntIntHolder> getMaterials()
  68. @@ -80,4 +86,19 @@
  69.     {
  70.         return _isDwarven;
  71.     }
  72. +  
  73. +   public int getEnchant()
  74. +   {
  75. +       return Rnd.get(Math.min(_enchant.getId(), _enchant.getValue()), Math.max(_enchant.getId(), _enchant.getValue()));
  76. +   }
  77. +  
  78. +   public int getEnchantChance()
  79. +   {
  80. +       return _enchantChance;
  81. +   }
  82. +  
  83. +   public boolean hasEnchant()
  84. +   {
  85. +       return _enchant != null;
  86. +   }
  87.  }
  88. \ No newline at end of file
Add Comment
Please, Sign In to add comment