Skip to content

[Share] Progressive enchant

Featured Replies

Index: java/com/l2jserver/Config.java

===================================================================

--- java/com/l2jserver/Config.java   (revision 4086)

+++ java/com/l2jserver/Config.java   (working copy)

@@ -915,6 +928,10 @@

   public static int ENCHANT_MAX_JEWELRY;

   public static int ENCHANT_SAFE_MAX;

   public static int ENCHANT_SAFE_MAX_FULL;

+   public static boolean ENCHANT_STEP_ENABLED;

+   public static String ENCHANT_STEP_MODE;

+   public static int ENCHANT_STEP_STATIC;

+   public static double ENCHANT_STEP_DYNAMIC;

   public static int AUGMENTATION_NG_SKILL_CHANCE;

   public static int AUGMENTATION_NG_GLOW_CHANCE;

   public static int AUGMENTATION_MID_SKILL_CHANCE;

@@ -1425,6 +1447,10 @@

               ENCHANT_MAX_JEWELRY = Integer.parseInt(Character.getProperty("EnchantMaxJewelry", "0"));

               ENCHANT_SAFE_MAX = Integer.parseInt(Character.getProperty("EnchantSafeMax", "3"));

               ENCHANT_SAFE_MAX_FULL = Integer.parseInt(Character.getProperty("EnchantSafeMaxFull", "4"));

+               ENCHANT_STEP_ENABLED = Boolean.parseBoolean(Character.getProperty("EnchantStepEnabled", "False"));

+               ENCHANT_STEP_MODE = Character.getProperty("EnchantStepMode", "static");

+               ENCHANT_STEP_STATIC = Integer.parseInt(Character.getProperty("EnchantStepStatic", "3"));

+               ENCHANT_STEP_DYNAMIC = Double.parseDouble(Character.getProperty("EnchantStepDynamic", "0.95"));

               AUGMENTATION_NG_SKILL_CHANCE = Integer.parseInt(Character.getProperty("AugmentationNGSkillChance", "15"));

               AUGMENTATION_NG_GLOW_CHANCE = Integer.parseInt(Character.getProperty("AugmentationNGGlowChance", "0"));

               AUGMENTATION_MID_SKILL_CHANCE = Integer.parseInt(Character.getProperty("AugmentationMidSkillChance", "30"));

@@ -2730,7 +2771,10 @@

      else if (pName.equalsIgnoreCase("EnchantMaxJewelry")) ENCHANT_MAX_JEWELRY = Integer.parseInt(pValue);

      else if (pName.equalsIgnoreCase("EnchantSafeMax")) ENCHANT_SAFE_MAX = Integer.parseInt(pValue);

      else if (pName.equalsIgnoreCase("EnchantSafeMaxFull")) ENCHANT_SAFE_MAX_FULL = Integer.parseInt(pValue);

+      else if (pName.equalsIgnoreCase("EnchantStepEnabled")) ENCHANT_STEP_ENABLED = Boolean.parseBoolean(pValue);

+      else if (pName.equalsIgnoreCase("EnchantStepMode")) ENCHANT_STEP_MODE = pValue;

+      else if (pName.equalsIgnoreCase("EnchantStepStatic")) ENCHANT_STEP_STATIC = Integer.parseInt(pValue);

+      else if (pName.equalsIgnoreCase("EnchantStepDynamic")) ENCHANT_STEP_DYNAMIC = Double.parseDouble(pValue);

      else if (pName.equalsIgnoreCase("AugmentationNGSkillChance")) AUGMENTATION_NG_SKILL_CHANCE = Integer.parseInt(pValue);

      else if (pName.equalsIgnoreCase("AugmentationNGGlowChance")) AUGMENTATION_NG_GLOW_CHANCE = Integer.parseInt(pValue);

      else if (pName.equalsIgnoreCase("AugmentationMidSkillChance")) AUGMENTATION_MID_SKILL_CHANCE = Integer.parseInt(pValue);

Index: java/com/l2jserver/gameserver/network/clientpackets/AbstractEnchantPacket.java

===================================================================

--- java/com/l2jserver/gameserver/network/clientpackets/AbstractEnchantPacket.java   (revision 4075)

+++ java/com/l2jserver/gameserver/network/clientpackets/AbstractEnchantPacket.java   (working copy)

@@ -181,11 +181,36 @@

         else

         {

            if (_isWeapon)

-               chance = Config.ENCHANT_CHANCE_WEAPON;

+               if (Config.ENCHANT_STEP_ENABLED)

+               {

+                  if (Config.ENCHANT_STEP_MODE == "static")

+                      chance = Config.ENCHANT_CHANCE_WEAPON-(Config.ENCHANT_STEP_STATIC*(enchantItem.getEnchantLevel()-Config.ENCHANT_SAFE_MAX));

+                  else if (Config.ENCHANT_STEP_MODE == "dynamic")

+                     chance = (int) Math.round(Config.ENCHANT_CHANCE_WEAPON*Math.pow(Config.ENCHANT_STEP_DYNAMIC,(enchantItem.getEnchantLevel()-Config.ENCHANT_SAFE_MAX)));

+               }

+               else

+                  chance = Config.ENCHANT_CHANCE_WEAPON;

            else if (isAccessory)

-               chance = Config.ENCHANT_CHANCE_JEWELRY;

+               if (Config.ENCHANT_STEP_ENABLED)

+               {

+                   if (Config.ENCHANT_STEP_MODE == "static")

+                       chance = Config.ENCHANT_CHANCE_JEWELRY-(Config.ENCHANT_STEP_STATIC*(enchantItem.getEnchantLevel()-Config.ENCHANT_SAFE_MAX));

+                   else if (Config.ENCHANT_STEP_MODE == "dynamic")

+                      chance = (int) Math.round(Config.ENCHANT_CHANCE_JEWELRY*Math.pow(Config.ENCHANT_STEP_DYNAMIC,(enchantItem.getEnchantLevel()-Config.ENCHANT_SAFE_MAX)));

+               }

+               else

+                   chance = Config.ENCHANT_CHANCE_JEWELRY;

+              

            else

-               chance = Config.ENCHANT_CHANCE_ARMOR;

+               if (Config.ENCHANT_STEP_ENABLED)

+               {

+                   if (Config.ENCHANT_STEP_MODE == "static")

+                       chance = Config.ENCHANT_CHANCE_ARMOR-(Config.ENCHANT_STEP_STATIC*(enchantItem.getEnchantLevel()-Config.ENCHANT_SAFE_MAX));

+                   else if (Config.ENCHANT_STEP_MODE == "dynamic")

+                      chance = (int) Math.round(Config.ENCHANT_CHANCE_ARMOR*Math.pow(Config.ENCHANT_STEP_DYNAMIC,(enchantItem.getEnchantLevel()-Config.ENCHANT_SAFE_MAX)));

+               }

+               else

+                   chance = Config.ENCHANT_CHANCE_ARMOR;

         }

 

         chance += _chanceAdd;

 

### Eclipse Workspace Patch 1.0

#P L2_GameServer

Index: java/config/Character.properties

===================================================================

--- java/config/Character.properties   (revision 4088)

+++ java/config/Character.properties   (working copy)

@@ -319,6 +319,22 @@

EnchantSafeMax = 3

EnchantSafeMaxFull = 4

 

+# Enable/Disable progressive enchanting system (experimental).

+EnchantStepEnabled = False

+# Progressive enchanting mode. Values allowed = static, dynamic

+EnchantStepMode = static

+# If EnchantStepMode = static:

+# Value in percent (%). Reduced from enchant rate on each next enchant.

+# Example: +3 safe enchant. EnchantChanceWeapon = 66. EnchantStep = 3

+#+4 = 66%, +5 = 63%, +7 = 60%, +8 = 57% etc.

+# If EnchantStepMode = dynamic:

+# enchant chance is multiplied by (EnchantStep^(item enchant level)-safe enchant)

+# for example, if enchant step is 0.95

+# +10 = 66*(0.95^(10-4))

+# it only starts to make a real difference after +10,

+# so it's useful for servers with high max enchant.

+EnchantStepStatic = 3

+EnchantStepDynamic = 0.95

 

# ---------------------------------------------------------------------------

# Augmenting

Locked.

Next stupid action like this will lead to a 1-week ban.

Stop leeching already posted topics, especially without adding credits.

Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.