Advertisement
CostyKiller

Fix min enchant and support bless down level

Nov 18th, 2020
990
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 6.23 KB | None | 0 0
  1. Index: java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java
  2. ===================================================================
  3. --- java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java  (revision 7809)
  4. +++ java/org/l2jmobius/gameserver/model/items/enchant/AbstractEnchantItem.java  (working copy)
  5. @@ -39,6 +39,7 @@
  6.         EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM,
  7.         EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP,
  8.         EtcItemType.BLESS_ENCHT_AM,
  9. +       EtcItemType.BLESS_ENCHT_AM_DOWN,
  10.         EtcItemType.BLESS_ENCHT_WP,
  11.         EtcItemType.ENCHT_AM,
  12.         EtcItemType.ENCHT_WP,
  13. @@ -56,6 +57,7 @@
  14.    
  15.     private final int _id;
  16.     private final CrystalType _grade;
  17. +   private final int _minEnchantLevel;
  18.     private final int _maxEnchantLevel;
  19.     private final double _bonusRate;
  20.    
  21. @@ -71,6 +73,7 @@
  22.             throw new IllegalAccessError();
  23.         }
  24.         _grade = set.getEnum("targetGrade", CrystalType.class, CrystalType.NONE);
  25. +       _minEnchantLevel = set.getInt("maxEnchant", 0);
  26.         _maxEnchantLevel = set.getInt("maxEnchant", 127);
  27.         _bonusRate = set.getDouble("bonusRate", 0);
  28.     }
  29. @@ -113,6 +116,14 @@
  30.     public abstract boolean isWeapon();
  31.    
  32.     /**
  33. +    * @return the minimum enchant level that this scroll/item can be used with
  34. +    */
  35. +   public int getMinEnchantLevel()
  36. +   {
  37. +       return _minEnchantLevel;
  38. +   }
  39. +  
  40. +   /**
  41.      * @return the maximum enchant level that this scroll/item can be used with
  42.      */
  43.     public int getMaxEnchantLevel()
  44. @@ -139,7 +150,7 @@
  45.         {
  46.             return false;
  47.         }
  48. -       else if ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel))
  49. +       else if (((_minEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() < _minEnchantLevel)) && ((_maxEnchantLevel != 0) && (itemToEnchant.getEnchantLevel() >= _maxEnchantLevel)))
  50.         {
  51.             return false;
  52.         }
  53.  
  54.        
  55. Index: java/org/l2jmobius/gameserver/model/items/enchant/EnchantScroll.java
  56. ===================================================================
  57. --- java/org/l2jmobius/gameserver/model/items/enchant/EnchantScroll.java    (revision 7809)
  58. +++ java/org/l2jmobius/gameserver/model/items/enchant/EnchantScroll.java    (working copy)
  59. @@ -35,6 +35,7 @@
  60.  {
  61.     private final boolean _isWeapon;
  62.     private final boolean _isBlessed;
  63. +   private final boolean _isBlessedDown;
  64.     private final boolean _isSafe;
  65.     private final boolean _isGiant;
  66.     private final int _scrollGroupId;
  67. @@ -48,6 +49,7 @@
  68.         final ItemType type = getItem().getItemType();
  69.         _isWeapon = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.ENCHT_WP) || (type == EtcItemType.GIANT_ENCHT_WP);
  70.         _isBlessed = (type == EtcItemType.BLESS_ENCHT_AM) || (type == EtcItemType.BLESS_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_WP) || (type == EtcItemType.BLESSED_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_AM) || (type == EtcItemType.BLESSED_GIANT_ENCHT_ATTR_INC_PROP_ENCHT_WP);
  71. +       _isBlessedDown = (type == EtcItemType.BLESS_ENCHT_AM_DOWN);
  72.         _isSafe = (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ENCHT_ATTR_CRYSTAL_ENCHANT_WP);
  73.         _isGiant = (type == EtcItemType.GIANT_ENCHT_AM) || (type == EtcItemType.GIANT_ENCHT_WP);
  74.     }
  75. @@ -59,7 +61,7 @@
  76.     }
  77.    
  78.     /**
  79. -    * @return {@code true} for blessed scrolls (enchanted item will remain on failure), {@code false} otherwise
  80. +    * @return {@code true} for blessed scrolls (enchanted item will remain on failure and enchant value will reset to 0), {@code false} otherwise
  81.      */
  82.     public boolean isBlessed()
  83.     {
  84. @@ -67,6 +69,14 @@
  85.     }
  86.    
  87.     /**
  88. +    * @return {@code true} for blessed scrolls (enchanted item will remain on failure and enchant value will go down by 1), {@code false} otherwise
  89. +    */
  90. +   public boolean isBlessedDown()
  91. +   {
  92. +       return _isBlessedDown;
  93. +   }
  94. +  
  95. +   /**
  96.      * @return {@code true} for safe-enchant scrolls (enchant level will remain on failure), {@code false} otherwise
  97.      */
  98.     public boolean isSafe()
  99. @@ -123,6 +133,10 @@
  100.             {
  101.                 return false;
  102.             }
  103. +           else if ((isBlessedDown() && !supportItem.isBlessed()) || (!isBlessedDown() && supportItem.isBlessed()))
  104. +           {
  105. +               return false;
  106. +           }
  107.             else if ((isGiant() && !supportItem.isGiant()) || (!isGiant() && supportItem.isGiant()))
  108.             {
  109.                 return false;
  110.  
  111.  
  112. Index: java/org/l2jmobius/gameserver/model/items/type/EtcItemType.java
  113. ===================================================================
  114. --- java/org/l2jmobius/gameserver/model/items/type/EtcItemType.java (revision 7809)
  115. +++ java/org/l2jmobius/gameserver/model/items/type/EtcItemType.java (working copy)
  116. @@ -46,6 +46,7 @@
  117.     GIANT_ENCHT_AM,
  118.     BLESS_ENCHT_WP,
  119.     BLESS_ENCHT_AM,
  120. +   BLESS_ENCHT_AM_DOWN,
  121.     COUPON,
  122.     ELIXIR,
  123.     ENCHT_ATTR,
  124.  
  125.  
  126. Index: java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java
  127. ===================================================================
  128. --- java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java (revision 7809)
  129. +++ java/org/l2jmobius/gameserver/network/clientpackets/RequestEnchantItem.java (working copy)
  130. @@ -320,12 +320,19 @@
  131.                             player.broadcastUserInfo();
  132.                         }
  133.                        
  134. -                       if (scrollTemplate.isBlessed() || ((supportTemplate != null) && supportTemplate.isBlessed()))
  135. +                       if (scrollTemplate.isBlessed() || scrollTemplate.isBlessedDown() || ((supportTemplate != null) && supportTemplate.isBlessed()))
  136.                         {
  137. +                           // blessed enchant - enchant value down by 1
  138. +                           if (scrollTemplate.isBlessedDown())
  139. +                           {
  140. +                               item.setEnchantLevel(item.getEnchantLevel() - 1);
  141. +                           }
  142. +                           else
  143.                             // blessed enchant - clear enchant value
  144. -                           client.sendPacket(SystemMessageId.THE_BLESSED_ENCHANT_FAILED_THE_ENCHANT_VALUE_OF_THE_ITEM_BECAME_0);
  145. -                          
  146. -                           item.setEnchantLevel(0);
  147. +                           {
  148. +                               client.sendPacket(SystemMessageId.THE_BLESSED_ENCHANT_FAILED_THE_ENCHANT_VALUE_OF_THE_ITEM_BECAME_0);
  149. +                               item.setEnchantLevel(0);
  150. +                           }
  151.                             item.updateDatabase();
  152.                             client.sendPacket(new EnchantResult(EnchantResult.BLESSED_FAIL, 0, 0));
  153.                             if (Config.LOG_ITEM_ENCHANTS)
  154.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement