Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Enchant Config

Iniciado por Swarlog, Ago 19, 2022, 01:32 AM

Tema anterior - Siguiente tema

Swarlog

Con este codigo podras configurar los enchant de tu server como tu quieras, tanto weapons como armors y jewlery !

Por ejemplo: Desde +3 hasta +9 "90%", desde 9 a 10 "80%" asi succesivamente.

Os dejo las properties primero para que os hagais una idea .

Sorry but you are not allowed to view spoiler contents.





### Eclipse Workspace Patch 1.0
    #P aCis
    Index: gameserver/java/net/sf/l2j/Config.java
    ===================================================================
    --- gameserver/java/net/sf/l2j/Config.java      (revision 90)
    +++ gameserver/java/net/sf/l2j/Config.java      (working copy)
    @@ -34,6 +34,8 @@
     import java.util.logging.Logger;
     
     import javolution.util.FastList;
    +import javolution.util.FastMap;
    +import javolution.text.TypeFormat;
     import net.sf.l2j.util.StringUtil;
     
     /**
    @@ -322,9 +324,17 @@
         public static int ALT_GAME_FREIGHT_PRICE;
         
         /** Enchant */
    -    public static int ENCHANT_CHANCE_WEAPON;
    -    public static int ENCHANT_CHANCE_ARMOR;
    -    public static int ENCHANT_CHANCE_JEWELRY;
    +       public final static FastMap<Integer, Integer> NORMAL_WEAPON_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
    +       public final static FastMap<Integer, Integer> BLESS_WEAPON_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
    +       public final static FastMap<Integer, Integer> CRYTAL_WEAPON_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
    +
    +       public final static FastMap<Integer, Integer> NORMAL_ARMOR_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
    +       public final static FastMap<Integer, Integer> BLESS_ARMOR_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
    +       public final static FastMap<Integer, Integer> CRYSTAL_ARMOR_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
    +
    +       public final static FastMap<Integer, Integer> NORMAL_JEWELRY_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
    +       public final static FastMap<Integer, Integer> BLESS_JEWELRY_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
    +       public final static FastMap<Integer, Integer> CRYSTAL_JEWELRY_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
         public static int ENCHANT_MAX_WEAPON;
         public static int ENCHANT_MAX_ARMOR;
         public static int ENCHANT_MAX_JEWELRY;
    @@ -917,9 +927,99 @@
                        ALT_GAME_FREIGHTS           = Boolean.parseBoolean(playersSettings.getProperty("AltGameFreights", "False"));
                     ALT_GAME_FREIGHT_PRICE         = Integer.parseInt(playersSettings.getProperty("AltGameFreightPrice", "1000"));
     
    -                ENCHANT_CHANCE_WEAPON          = Integer.parseInt(playersSettings.getProperty("EnchantChanceWeapon", "66"));
    -                ENCHANT_CHANCE_ARMOR   = Integer.parseInt(playersSettings.getProperty("EnchantChanceArmor", "66"));
    -                ENCHANT_CHANCE_JEWELRY  = Integer.parseInt(playersSettings.getProperty("EnchantChanceJewelry", "66"));
    +                       String[] propertySplit = playersSettings.getProperty("NormalWeaponEnchantLevel", "").split(";");
    +                       for(String readData : propertySplit)
    +                       {
    +                               String[] writeData = readData.split(",");
    +                               if(writeData.length != 2) continue;
    +                               try {
    +                                       NORMAL_WEAPON_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    +                               } catch(NumberFormatException nfe) {}
    +                       }
    +
    +                       propertySplit = playersSettings.getProperty("BlessWeaponEnchantLevel", "").split(";");
    +                       for(String readData : propertySplit)
    +                       {
    +                               String[] writeData = readData.split(",");
    +                               if(writeData.length != 2) continue;
    +                               try {
    +                                       BLESS_WEAPON_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    +                               } catch(NumberFormatException nfe) {}
    +                       }
    +
    +                       propertySplit = playersSettings.getProperty("CrystalWeaponEnchantLevel", "").split(";");
    +                       for(String readData : propertySplit)
    +                       {
    +                               String[] writeData = readData.split(",");
    +                               if(writeData.length != 2) continue;
    +                               try {
    +                                       CRYTAL_WEAPON_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    +                               } catch(NumberFormatException nfe) {}
    +                       }
    +
    +                       ////
    +
    +                       propertySplit = playersSettings.getProperty("NormalArmorEnchantLevel", "").split(";");
    +                       for(String readData : propertySplit)
    +                       {
    +                               String[] writeData = readData.split(",");
    +                               if(writeData.length != 2) continue;
    +                               try {
    +                                       NORMAL_ARMOR_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    +                               } catch(NumberFormatException nfe) {}
    +                       }
    +
    +                       propertySplit = playersSettings.getProperty("BlessArmorEnchantLevel", "").split(";");
    +                       for(String readData : propertySplit)
    +                       {
    +                               String[] writeData = readData.split(",");
    +                               if(writeData.length != 2) continue;
    +                               try {
    +                                       BLESS_ARMOR_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    +                               } catch(NumberFormatException nfe) {}
    +                       }
    +
    +                       propertySplit = playersSettings.getProperty("CrystalArmorEnchantLevel", "").split(";");
    +                       for(String readData : propertySplit)
    +                       {
    +                               String[] writeData = readData.split(",");
    +                               if(writeData.length != 2) continue;
    +                               try {
    +                                       CRYSTAL_ARMOR_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    +                               } catch(NumberFormatException nfe) {}
    +                       }
    +
    +                       ////
    +
    +                       propertySplit = playersSettings.getProperty("NormalJewelryEnchantLevel", "").split(";");
    +                       for(String readData : propertySplit)
    +                       {
    +                               String[] writeData = readData.split(",");
    +                               if(writeData.length != 2) continue;
    +                               try {
    +                                       NORMAL_JEWELRY_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    +                               } catch(NumberFormatException nfe) {}
    +                       }
    +
    +                       propertySplit = playersSettings.getProperty("BlessJewelryEnchantLevel", "").split(";");
    +                       for(String readData : propertySplit)
    +                       {
    +                               String[] writeData = readData.split(",");
    +                               if(writeData.length != 2) continue;
    +                               try {
    +                                       BLESS_JEWELRY_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    +                               } catch(NumberFormatException nfe) {}
    +                       }
    +
    +                       propertySplit = playersSettings.getProperty("CrystalJewelryEnchantLevel", "").split(";");
    +                       for(String readData : propertySplit)
    +                       {
    +                               String[] writeData = readData.split(",");
    +                               if(writeData.length != 2) continue;
    +                               try {
    +                                       CRYSTAL_JEWELRY_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
    +                               } catch(NumberFormatException nfe) {}
    +                       }
                     ENCHANT_MAX_WEAPON             = Integer.parseInt(playersSettings.getProperty("EnchantMaxWeapon", "16"));
                     ENCHANT_MAX_ARMOR              = Integer.parseInt(playersSettings.getProperty("EnchantMaxArmor", "16"));
                     ENCHANT_MAX_JEWELRY    = Integer.parseInt(playersSettings.getProperty("EnchantMaxJewelry", "16"));
    @@ -1375,9 +1475,9 @@
             else if (pName.equalsIgnoreCase("MaximumWarehouseSlotsForClan")) WAREHOUSE_SLOTS_CLAN = Integer.parseInt(pValue);
             else if (pName.equalsIgnoreCase("MaximumFreightSlots")) FREIGHT_SLOTS = Integer.parseInt(pValue);
     
    -        else if (pName.equalsIgnoreCase("EnchantChanceWeapon")) ENCHANT_CHANCE_WEAPON = Integer.parseInt(pValue);
    -        else if (pName.equalsIgnoreCase("EnchantChanceArmor")) ENCHANT_CHANCE_ARMOR = Integer.parseInt(pValue);
    -        else if (pName.equalsIgnoreCase("EnchantChanceJewelry")) ENCHANT_CHANCE_JEWELRY = Integer.parseInt(pValue);
    + //       else if (pName.equalsIgnoreCase("EnchantChanceWeapon")) ENCHANT_CHANCE_WEAPON = Integer.parseInt(pValue);
    + //       else if (pName.equalsIgnoreCase("EnchantChanceArmor")) ENCHANT_CHANCE_ARMOR = Integer.parseInt(pValue);
    + //       else if (pName.equalsIgnoreCase("EnchantChanceJewelry")) ENCHANT_CHANCE_JEWELRY = Integer.parseInt(pValue);
             else if (pName.equalsIgnoreCase("EnchantMaxWeapon")) ENCHANT_MAX_WEAPON = Integer.parseInt(pValue);
             else if (pName.equalsIgnoreCase("EnchantMaxArmor")) ENCHANT_MAX_ARMOR = Integer.parseInt(pValue);
             else if (pName.equalsIgnoreCase("EnchantMaxJewelry")) ENCHANT_MAX_JEWELRY = Integer.parseInt(pValue);
    Index: gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java
    ===================================================================
    --- gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java (revision 90)
    +++ gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java (working copy)
    @@ -40,7 +40,13 @@
     {
         protected static final Logger _log = Logger.getLogger(Inventory.class.getName());
         private static final String _C__58_REQUESTENCHANTITEM = "[C] 58 RequestEnchantItem";
    -    private static final int[] CRYSTAL_SCROLLS = { 731, 732, 949, 950, 953, 954, 957, 958, 961, 962 };
    +       private static final int[] CRYSTAL_SCROLLS = { 731, 732, 949, 950, 953, 954, 957, 958, 961, 962 };
    +       private static final int[] NORMAL_WEAPON_SCROLLS = { 729, 947, 951, 955, 959 };
    +       private static final int[] BLESSED_WEAPON_SCROLLS = { 6569, 6571, 6573, 6575, 6577 };
    +       private static final int[] CRYSTAL_WEAPON_SCROLLS = { 731, 949, 953, 957, 961 };
    +       private static final int[] NORMAL_ARMOR_SCROLLS = { 730, 948, 952, 956, 960 };
    +       private static final int[] BLESSED_ARMOR_SCROLLS = { 6570, 6572, 6574, 6576, 6578 };
    +       private static final int[] CRYSTAL_ARMOR_SCROLLS = { 732, 950, 954, 958, 962 };
         
         private int _objectId;
     
    @@ -200,21 +206,150 @@
             int chance = 0;
             int maxEnchantLevel = 0;
     
    -        if (item.getItem().getType2() == L2Item.TYPE2_WEAPON)
    -        {
    -               chance = Config.ENCHANT_CHANCE_WEAPON;
    -               maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
    -        }
    -        else if (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR)
    -        {
    -               chance = Config.ENCHANT_CHANCE_ARMOR;
    -               maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
    -        }
    -        else if (item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)
    -        {
    -               chance = Config.ENCHANT_CHANCE_JEWELRY;
    -               maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
    -        }
    +               if(item.getItem().getType2() == L2Item.TYPE2_WEAPON)
    +               {
    +                       for(int normalweaponscroll : NORMAL_WEAPON_SCROLLS)
    +                       {
    +                               if(scroll.getItemId() == normalweaponscroll)
    +                               {
    +                                       if(item.getEnchantLevel() + 1 > Config.NORMAL_WEAPON_ENCHANT_LEVEL.size())
    +                                       {
    +                                               chance = Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(Config.NORMAL_WEAPON_ENCHANT_LEVEL.size());
    +                                       }
    +                                       else
    +                                       {
    +                                               chance = Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    +                                       }
    +                                       maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
    +                               }
    +                       }
    +                       for(int blessedweaponscroll : BLESSED_WEAPON_SCROLLS)
    +                       {
    +                               if(scroll.getItemId() == blessedweaponscroll)
    +                               {
    +                                       if(item.getEnchantLevel() + 1 > Config.BLESS_WEAPON_ENCHANT_LEVEL.size())
    +                                       {
    +                                               chance = Config.BLESS_WEAPON_ENCHANT_LEVEL.get(Config.BLESS_WEAPON_ENCHANT_LEVEL.size());
    +                                       }
    +                                       else
    +                                       {
    +                                               chance = Config.BLESS_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    +                                       }
    +                                       maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
    +                               }
    +                       }
    +                       for(int crystalweaponscroll : CRYSTAL_WEAPON_SCROLLS)
    +                       {
    +                               if(scroll.getItemId() == crystalweaponscroll)
    +                               {
    +                                       if(item.getEnchantLevel() + 1 > Config.CRYTAL_WEAPON_ENCHANT_LEVEL.size())
    +                                       {
    +                                               chance = Config.CRYTAL_WEAPON_ENCHANT_LEVEL.get(Config.CRYTAL_WEAPON_ENCHANT_LEVEL.size());
    +                                       }
    +                                       else
    +                                       {
    +                                               chance = Config.CRYTAL_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    +                                       }
    +                                       maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
    +                               }
    +                       }
    +               }
    +               else if(item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR)
    +               {
    +                       for(int normalarmorscroll : NORMAL_ARMOR_SCROLLS)
    +                       {
    +                               if(scroll.getItemId() == normalarmorscroll)
    +                               {
    +                                       if(item.getEnchantLevel() + 1 > Config.NORMAL_ARMOR_ENCHANT_LEVEL.size())
    +                                       {
    +                                               chance = Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(Config.NORMAL_ARMOR_ENCHANT_LEVEL.size());
    +                                       }
    +                                       else
    +                                       {
    +                                               chance = Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    +                                       }
    +                                       maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
    +                               }
    +                       }
    +                       for(int blessedarmorscroll : BLESSED_ARMOR_SCROLLS)
    +                       {
    +                               if(scroll.getItemId() == blessedarmorscroll)
    +                               {
    +                                       if(item.getEnchantLevel() + 1 > Config.BLESS_ARMOR_ENCHANT_LEVEL.size())
    +                                       {
    +                                               chance = Config.BLESS_ARMOR_ENCHANT_LEVEL.get(Config.BLESS_ARMOR_ENCHANT_LEVEL.size());
    +                                       }
    +                                       else
    +                                       {
    +                                               chance = Config.BLESS_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    +                                       }
    +                                       maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
    +                               }
    +                       }
    +                       for(int crystalarmorscroll : CRYSTAL_ARMOR_SCROLLS)
    +                       {
    +                               if(scroll.getItemId() == crystalarmorscroll)
    +                               {
    +                                       if(item.getEnchantLevel() + 1 > Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.size())
    +                                       {
    +                                               chance = Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.get(Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.size());
    +                                       }
    +                                       else
    +                                       {
    +                                               chance = Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    +                                       }
    +                                       maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
    +                               }
    +                       }
    +               }
    +               else if(item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)
    +               {
    +                       for(int normaljewelscroll : NORMAL_ARMOR_SCROLLS)
    +                       {
    +                               if(scroll.getItemId() == normaljewelscroll)
    +                               {
    +                                       if(item.getEnchantLevel() + 1 > Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size())
    +                                       {
    +                                               chance = Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size());
    +                                       }
    +                                       else
    +                                       {
    +                                               chance = Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    +                                       }
    +                                       maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
    +                               }
    +                       }
    +                       for(int blessedjewelscroll : BLESSED_ARMOR_SCROLLS)
    +                       {
    +                               if(scroll.getItemId() == blessedjewelscroll)
    +                               {
    +                                       if(item.getEnchantLevel() + 1 > Config.BLESS_JEWELRY_ENCHANT_LEVEL.size())
    +                                       {
    +                                               chance = Config.BLESS_JEWELRY_ENCHANT_LEVEL.get(Config.BLESS_JEWELRY_ENCHANT_LEVEL.size());
    +                                       }
    +                                       else
    +                                       {
    +                                               chance = Config.BLESS_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    +                                       }
    +                                       maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
    +                               }
    +                       }
    +                       for(int crystaljewelscroll : CRYSTAL_ARMOR_SCROLLS)
    +                       {
    +                               if(scroll.getItemId() == crystaljewelscroll)
    +                               {
    +                                       if(item.getEnchantLevel() + 1 > Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.size())
    +                                       {
    +                                               chance = Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.get(Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.size());
    +                                       }
    +                                       else
    +                                       {
    +                                               chance = Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
    +                                       }
    +                                       maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
    +                               }
    +                       }
    +               }
     
             if (item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX
                     || (item.getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR
    Index: gameserver/config/players.properties
    ===================================================================
    --- gameserver/config/players.properties        (revision 90)
    +++ gameserver/config/players.properties        (working copy)
    @@ -77,10 +77,35 @@
     #=============================================================
     #                           Enchant
     #=============================================================
    -# % Chance of succeding to enchant an item when it has a chance of breaking
    -EnchantChanceWeapon = 66
    -EnchantChanceArmor = 66
    -EnchantChanceJewelry = 66
    +#-------------------------------------------------------------
    +# Chance of Normal enchant scroll
    +#-------------------------------------------------------------
    +# Weapon
    +NormalWeaponEnchantLevel = 1,100;2,100;3,100;4,96;5,92;6,88;7,84;8,80;9,76;10,72;11,68;12,64;13,60;14,56;15,62;16,58;
    +# Armor
    +NormalArmorEnchantLevel = 1,100;2,100;3,100;4,96;5,92;6,88;7,84;8,80;9,76;10,72;11,68;12,64;13,60;14,56;15,62;16,58;
    +# Jewelry
    +NormalJewelryEnchantLevel = 1,100;2,100;3,100;4,95;5,90;6,85;7,80;8,75;9,70;10,65;11,60;12,55;13,50;14,45;15,40;16,35;
    +
    +#-------------------------------------------------------------
    +# Chance bless enchant scroll
    +#-------------------------------------------------------------
    +# Weapon
    +BlessWeaponEnchantLevel = 1,100;2,100;3,100;4,97;5,94;6,91;7,88;8,85;9,82;10,79;11,76;12,73;13,70;14,67;15,64;16,61;
    +# Armor
    +BlessArmorEnchantLevel = 1,100;2,100;3,100;4,97;5,94;6,91;7,88;8,85;9,82;10,79;11,76;12,73;13,70;14,67;15,64;16,61;
    +# Jewelry
    +BlessJewelryEnchantLevel = 1,100;2,100;3,100;4,96;5,92;6,88;7,84;8,80;9,76;10,72;11,68;12,64;13,60;14,56;15,62;16,58;
    +
    +#-------------------------------------------------------------
    +# Chance crystal scroll
    +#-------------------------------------------------------------
    +# Weapon
    +CrystalWeaponEnchantLevel = 1,100;2,100;3,100;4,98;5,96;6,94;7,92;8,90;9,88;10,86;11,84;12,82;13,80;14,78;15,76;16,74;
    +# Armor
    +CrystalArmorEnchantLevel = 1,100;2,100;3,100;4,98;5,96;6,94;7,92;8,90;9,88;10,86;11,84;12,82;13,80;14,78;15,76;16,74;
    +# Jewelry
    +CrystalJewelryEnchantLevel = 1,100;2,100;3,100;4,97;5,94;6,91;7,88;8,85;9,82;10,79;11,76;12,73;13,70;14,67;15,64;16,61;
     
     # Enchant limit [default = 16], 0 =unlimited
     EnchantMaxWeapon = 16

By ClauElx