U3Games

Games | Desarrollo & Soporte => L2 | Sección de Servidores => Lineage => L2 | Implementaciones => Mensaje iniciado por: Swarlog en Jul 26, 2025, 11:50 PM

Título: Fail Enchant Reward
Publicado por: Swarlog en Jul 26, 2025, 11:50 PM
CitarCODE:

### Eclipse Workspace Patch 1.0
#P Dream_GameServer
Index: src/com/dream/Config.java
===================================================================
--- src/com/dream/Config.java    (revision 1783)
+++ src/com/dream/Config.java    (working copy)
@@ -91,6 +91,14 @@
     public static boolean GRIDS_ALWAYS_ON;
     public static String PROTECTED_ITEMS;
     public static FastList<Integer> LIST_PROTECTED_ITEMS = new FastList<>();
+    public static boolean ALLOW_REWARD_FAIL_ENCHANT;
+    public static int REWARD_FAIL_ENCHANT;
+    public static int REWARD_FAIL_ENCHANT_COUNT;
     public static Pattern CNAME_PATTERN;
     public static Pattern PET_NAME_PATTERN;
     public static Pattern CLAN_ALLY_NAME_PATTERN;
@@ -217,6 +225,25 @@
                 LIST_PROTECTED_ITEMS.add(Integer.parseInt(id.trim()));
             }
+            ALLOW_REWARD_FAIL_ENCHANT = Boolean.parseBoolean(altSettings.getProperty("AllowRewardFailEnchant", "False"));
+            REWARD_FAIL_ENCHANT = Integer.parseInt(altSettings.getProperty("RewardFailEnchantitemId", "57"));
+            REWARD_FAIL_ENCHANT_COUNT = Integer.parseInt(altSettings.getProperty("RewardFailEnchantCount", "2"));

             DESTROY_DROPPED_PLAYER_ITEM = Boolean.parseBoolean(altSettings.getProperty("DestroyPlayerDroppedItem", "false"));
             DESTROY_EQUIPABLE_PLAYER_ITEM = Boolean.parseBoolean(altSettings.getProperty("DestroyEquipableItem", "false"));
             SAVE_DROPPED_ITEM = Boolean.parseBoolean(altSettings.getProperty("SaveDroppedItem", "false"));

Index: src/com/dream/game/network/clientpackets/RequestEnchantItem.java
===================================================================
--- src/com/dream/game/network/clientpackets/RequestEnchantItem.java    (revision 1754)
+++ src/com/dream/game/network/clientpackets/RequestEnchantItem.java    (working copy)
@@ -620,6 +620,18 @@
                         activeChar.sendPacket(new ExPutEnchantTargetItemResult(2, 0, 0));
                         return;
                     }
+                   
+                    if (Config.ALLOW_REWARD_FAIL_ENCHANT)
+                    {
+                        L2ItemInstance reward = activeChar.getInventory().addItem("Enchant", Config.REWARD_FAIL_ENCHANT, Config.REWARD_FAIL_ENCHANT_COUNT, activeChar, null);
+                        sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);
+                        sm.addItemName(reward);
+                        sm.addNumber(Config.REWARD_FAIL_ENCHANT_COUNT);
+                        activeChar.sendPacket(sm);
+                        activeChar.getInventory().updateInventory(reward);
+                        activeChar.sendPacket(new ExPutEnchantTargetItemResult(1, Config.REWARD_FAIL_ENCHANT, Config.REWARD_FAIL_ENCHANT_COUNT));
+                    }
+                   
                     if (item.getEnchantLevel() > 0)
                     {
                         sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_S2_EVAPORATED);

CitarProperties:

# Allow Reward Fail Enchant Default = False
AllowRewardFailEnchant = False

# Item ID for reward Fail enchant
RewardFailEnchantitemId = 57

#Count of reward Fail Enchant
RewardFailEnchantCount = 2