Jump to content

Recommended Posts

Posted

Can anyone help me? i cant find the line  <<for (int scrollId : CRYSTAL_SCROLLS)>>

 

in java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java

 

I have gracia final l2j how can i find it?

 

 

seach for :

 

if (Rnd.get(100) < chance)

        {

            synchronized(item)

 

and paste the  code above it...

Posted

Can anyone help me? i cant find the line  <<for (int scrollId : CRYSTAL_SCROLLS)>>

 

in java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java

 

I have gracia final l2j how can i find it?

 

 

i think L2j make another code so the above can't apply it but in

com.l2jserver.gameserver.network.clientpackets;

you can edit any scroll you want

// itemId, (isWeapon, isBlessed, isCrystal, isSafe, grade, max enchant level, chance increase, allowed item IDs)

// allowed items list must be sorted by ascending order

_scrolls.put(729, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_A, 0, 0, null));

_scrolls.put(730, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_A, 0, 0, null));

_scrolls.put(731, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_A, 0, 0, null));

_scrolls.put(732, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_A, 0, 0, null));

_scrolls.put(947, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_B, 0, 0, null));

_scrolls.put(948, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_B, 0, 0, null));

_scrolls.put(949, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_B, 0, 0, null));

_scrolls.put(950, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_B, 0, 0, null));

_scrolls.put(951, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_C, 0, 0, null));

_scrolls.put(952, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_C, 0, 0, null));

_scrolls.put(953, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_C, 0, 0, null));

_scrolls.put(954, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_C, 0, 0, null));

_scrolls.put(955, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_D, 0, 0, null));

_scrolls.put(956, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_D, 0, 0, null));

_scrolls.put(957, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_D, 0, 0, null));

_scrolls.put(958, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_D, 0, 0, null));

_scrolls.put(959, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_S, 0, 0, null));

_scrolls.put(960, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_S, 0, 0, null));

_scrolls.put(961, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_S, 0, 0, null));

_scrolls.put(962, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_S, 0, 0, null));

_scrolls.put(6569, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_A, 0, 0, null));

_scrolls.put(6570, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_A, 0, 0, null));

_scrolls.put(6571, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_B, 0, 0, null));

_scrolls.put(6572, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_B, 0, 0, null));

_scrolls.put(6573, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_C, 0, 0, null));

_scrolls.put(6574, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_C, 0, 0, null));

_scrolls.put(6575, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_D, 0, 0, null));

_scrolls.put(6576, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_D, 0, 0, null));

_scrolls.put(6577, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_S, 0, 0, null));

_scrolls.put(6578, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_S, 0, 0, null));

_scrolls.put(22006, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_D, 0, 10, null));

_scrolls.put(22007, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_C, 0, 10, null));

_scrolls.put(22008, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_B, 0, 10, null));

_scrolls.put(22009, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_A, 0, 10, null));

_scrolls.put(22010, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_D, 0, 10, null));

_scrolls.put(22011, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_C, 0, 10, null));

_scrolls.put(22012, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_B, 0, 10, null));

_scrolls.put(22013, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_A, 0, 10, null));

_scrolls.put(22014, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_B, 16, 10, null));

_scrolls.put(22015, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_A, 16, 10, null));

_scrolls.put(22016, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_B, 16, 10, null));

_scrolls.put(22017, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_A, 16, 10, null));

_scrolls.put(22018, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_B, 0, 100, null));

_scrolls.put(22019, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_A, 0, 100, null));

_scrolls.put(22020, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_B, 0, 100, null));

_scrolls.put(22021, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_A, 0, 100, null));

 

// Master Yogi's Scroll Enchant Weapon (event)

_scrolls.put(13540, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_NONE, 0, 0, new int[]{ 13539 }));

 

// itemId, (isWeapon, grade, max enchant level, chance increase)

_supports.put(12362, new EnchantItem(true, L2Item.CRYSTAL_D, 9, 20, null));

_supports.put(12363, new EnchantItem(true, L2Item.CRYSTAL_C, 9, 18, null));

_supports.put(12364, new EnchantItem(true, L2Item.CRYSTAL_B, 9, 15, null));

_supports.put(12365, new EnchantItem(true, L2Item.CRYSTAL_A, 9, 12, null));

_supports.put(12366, new EnchantItem(true, L2Item.CRYSTAL_S, 9, 10, null));

_supports.put(12367, new EnchantItem(false, L2Item.CRYSTAL_D, 9, 35, null));

_supports.put(12368, new EnchantItem(false, L2Item.CRYSTAL_C, 9, 27, null));

_supports.put(12369, new EnchantItem(false, L2Item.CRYSTAL_B, 9, 23, null));

_supports.put(12370, new EnchantItem(false, L2Item.CRYSTAL_A, 9, 18, null));

_supports.put(12371, new EnchantItem(false, L2Item.CRYSTAL_S, 9, 15, null));

_supports.put(14702, new EnchantItem(true, L2Item.CRYSTAL_D, 9, 20, null));

_supports.put(14703, new EnchantItem(true, L2Item.CRYSTAL_C, 9, 18, null));

_supports.put(14704, new EnchantItem(true, L2Item.CRYSTAL_B, 9, 15, null));

_supports.put(14705, new EnchantItem(true, L2Item.CRYSTAL_A, 9, 12, null));

_supports.put(14706, new EnchantItem(true, L2Item.CRYSTAL_S, 9, 10, null));

_supports.put(14707, new EnchantItem(false, L2Item.CRYSTAL_D, 9, 35, null));

_supports.put(14708, new EnchantItem(false, L2Item.CRYSTAL_C, 9, 27, null));

_supports.put(14709, new EnchantItem(false, L2Item.CRYSTAL_B, 9, 23, null));

_supports.put(14710, new EnchantItem(false, L2Item.CRYSTAL_A, 9, 18, null));

_supports.put(14711, new EnchantItem(false, L2Item.CRYSTAL_S, 9, 15, null));

 

Posted

Very useful for servers with donate because you can sell Crystal scrools for real money and the players may trade it in the game for other stuff with other players if they want. Double chance that the player will donate. :D

  • 2 weeks later...
Posted

Wonderful how easily people nowadays abuse karma for fixing 2 strings =]

The share is useless and the way it's coded is bad..

Anyway, thanks for sharing, I guess.

well no useless... bad coded :/ i dont know :P

wtvr...i dont get the thing only some strings...... if the outcome is usefull then why not?

well... ok... if it was really 2 strings it would be stupid but it's not...

  • 5 months later...
  • 1 month later...
  • 1 month later...
Posted

I have a better option:

 

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

### Eclipse Workspace Patch 1.0
#P L2J_Server
Index: java/com/l2jserver/gameserver/network/clientpackets/AbstractEnchantPacket.java
===================================================================
--- java/com/l2jserver/gameserver/network/clientpackets/AbstractEnchantPacket.java	(revision 24)
+++ java/com/l2jserver/gameserver/network/clientpackets/AbstractEnchantPacket.java	(working copy)
@@ -55,32 +55,6 @@
			if (enchantItem == null)
				return false;

-			int type2 = enchantItem.getItem().getType2();
-			
-			// checking scroll type and configured maximum enchant level
-			switch (type2)
-			{
-				// weapon scrolls can enchant only weapons
-				case L2Item.TYPE2_WEAPON:
-					if (!_isWeapon
-							|| (Config.ENCHANT_MAX_WEAPON > 0 && enchantItem.getEnchantLevel() >= Config.ENCHANT_MAX_WEAPON))
-						return false;
-					break;
-					// armor scrolls can enchant only accessory and armors
-				case L2Item.TYPE2_SHIELD_ARMOR:
-					if (_isWeapon
-							|| (Config.ENCHANT_MAX_ARMOR > 0 && enchantItem.getEnchantLevel() >= Config.ENCHANT_MAX_ARMOR))
-						return false;
-					break;
-				case L2Item.TYPE2_ACCESSORY:
-					if (_isWeapon
-							|| (Config.ENCHANT_MAX_JEWELRY > 0 && enchantItem.getEnchantLevel() >= Config.ENCHANT_MAX_JEWELRY))
-						return false;
-					break;
-				default:
-					return false;
-			}
-			
			// check for crystal types
			if (_grade != enchantItem.getItem().getItemGradeSPlus())
				return false;
@@ -202,56 +188,56 @@
		// itemId, (isWeapon, isBlessed, isCrystal, isSafe, grade, max enchant level, chance increase, allowed item IDs)
		// allowed items IDs must be sorted by ascending order
		// Scrolls: Enchant Weapon
-		_scrolls.put(729, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_A, 0, 0, null));
-		_scrolls.put(947, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_B, 0, 0, null));
-		_scrolls.put(951, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_C, 0, 0, null));
-		_scrolls.put(955, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_D, 0, 0, null));
-		_scrolls.put(959, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_S, 0, 0, null));
+		_scrolls.put(729, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_A, maxenchant(), 0, null));
+		_scrolls.put(947, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_B, maxenchant(), 0, null));
+		_scrolls.put(951, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_C, maxenchant(), 0, null));
+		_scrolls.put(955, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_D, maxenchant(), 0, null));
+		_scrolls.put(959, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_S, maxenchant(), 0, null));
		// Scrolls: Enchant Armor
-		_scrolls.put(730, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_A, 0, 0, null));
-		_scrolls.put(948, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_B, 0, 0, null));
-		_scrolls.put(952, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_C, 0, 0, null));
-		_scrolls.put(956, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_D, 0, 0, null));
-		_scrolls.put(960, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_S, 0, 0, null));
+		_scrolls.put(730, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_A, maxenchant(), 0, null));
+		_scrolls.put(948, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_B, maxenchant(), 0, null));
+		_scrolls.put(952, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_C, maxenchant(), 0, null));
+		_scrolls.put(956, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_D, maxenchant(), 0, null));
+		_scrolls.put(960, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_S, maxenchant(), 0, null));

		// Blessed Scrolls: Enchant Weapon
-		_scrolls.put(6569, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_A, 0, 0, null));
-		_scrolls.put(6571, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_B, 0, 0, null));
-		_scrolls.put(6573, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_C, 0, 0, null));
-		_scrolls.put(6575, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_D, 0, 0, null));
-		_scrolls.put(6577, new EnchantScroll(true, true, false, false, L2Item.CRYSTAL_S, 0, 0, null));
+		_scrolls.put(6569, new EnchantScroll(true, true, false, true, L2Item.CRYSTAL_A, blessedmaxenchant(), 0, null));
+		_scrolls.put(6571, new EnchantScroll(true, true, false, true, L2Item.CRYSTAL_B, blessedmaxenchant(), 0, null));
+		_scrolls.put(6573, new EnchantScroll(true, true, false, true, L2Item.CRYSTAL_C, blessedmaxenchant(), 0, null));
+		_scrolls.put(6575, new EnchantScroll(true, true, false, true, L2Item.CRYSTAL_D, blessedmaxenchant(), 0, null));
+		_scrolls.put(6577, new EnchantScroll(true, true, false, true, L2Item.CRYSTAL_S, blessedmaxenchant(), 0, null));
		// Blessed Scrolls: Enchant Armor
-		_scrolls.put(6570, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_A, 0, 0, null));
-		_scrolls.put(6572, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_B, 0, 0, null));
-		_scrolls.put(6574, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_C, 0, 0, null));
-		_scrolls.put(6576, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_D, 0, 0, null));
-		_scrolls.put(6578, new EnchantScroll(false, true, false, false, L2Item.CRYSTAL_S, 0, 0, null));
+		_scrolls.put(6570, new EnchantScroll(false, true, false, true, L2Item.CRYSTAL_A, blessedmaxenchant(), 0, null));
+		_scrolls.put(6572, new EnchantScroll(false, true, false, true, L2Item.CRYSTAL_B, blessedmaxenchant(), 0, null));
+		_scrolls.put(6574, new EnchantScroll(false, true, false, true, L2Item.CRYSTAL_C, blessedmaxenchant(), 0, null));
+		_scrolls.put(6576, new EnchantScroll(false, true, false, true, L2Item.CRYSTAL_D, blessedmaxenchant(), 0, null));
+		_scrolls.put(6578, new EnchantScroll(false, true, false, true, L2Item.CRYSTAL_S, blessedmaxenchant(), 0, null));

		// Crystal Scrolls: Enchant Weapon
-		_scrolls.put(731, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_A, 0, 0, null));
-		_scrolls.put(949, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_B, 0, 0, null));
-		_scrolls.put(953, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_C, 0, 0, null));
-		_scrolls.put(957, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_D, 0, 0, null));
-		_scrolls.put(961, new EnchantScroll(true, false, true, false, L2Item.CRYSTAL_S, 0, 0, null));
+		_scrolls.put(731, new EnchantScroll(true, false, true, true, L2Item.CRYSTAL_A, crystalmaxenchant(), 0, null));
+		_scrolls.put(949, new EnchantScroll(true, false, true, true, L2Item.CRYSTAL_B, crystalmaxenchant(), 0, null));
+		_scrolls.put(953, new EnchantScroll(true, false, true, true, L2Item.CRYSTAL_C, crystalmaxenchant(), 0, null));
+		_scrolls.put(957, new EnchantScroll(true, false, true, true, L2Item.CRYSTAL_D, crystalmaxenchant(), 0, null));
+		_scrolls.put(961, new EnchantScroll(true, false, true, true, L2Item.CRYSTAL_S, crystalmaxenchant(), 0, null));
		// Crystal Scrolls: Enchant Armor
-		_scrolls.put(732, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_A, 0, 0, null));
-		_scrolls.put(950, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_B, 0, 0, null));
-		_scrolls.put(954, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_C, 0, 0, null));
-		_scrolls.put(958, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_D, 0, 0, null));
-		_scrolls.put(962, new EnchantScroll(false, false, true, false, L2Item.CRYSTAL_S, 0, 0, null));
+		_scrolls.put(732, new EnchantScroll(false, false, true, true, L2Item.CRYSTAL_A, crystalmaxenchant(), 0, null));
+		_scrolls.put(950, new EnchantScroll(false, false, true, true, L2Item.CRYSTAL_B, crystalmaxenchant(), 0, null));
+		_scrolls.put(954, new EnchantScroll(false, false, true, true, L2Item.CRYSTAL_C, crystalmaxenchant(), 0, null));
+		_scrolls.put(958, new EnchantScroll(false, false, true, true, L2Item.CRYSTAL_D, crystalmaxenchant(), 0, null));
+		_scrolls.put(962, new EnchantScroll(false, false, true, true, L2Item.CRYSTAL_S, crystalmaxenchant(), 0, null));

		// Weapon Enchant Scrolls
-		_scrolls.put(20517, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_S, 0, 10, null));
-		_scrolls.put(22006, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_D, 0, 10, null));
-		_scrolls.put(22007, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_C, 0, 10, null));
-		_scrolls.put(22008, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_B, 0, 10, null));
-		_scrolls.put(22009, new EnchantScroll(true, false, false, false, L2Item.CRYSTAL_A, 0, 10, null));
+		_scrolls.put(20517, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_S, crystalmaxenchant(), 10, null));
+		_scrolls.put(22006, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_D, crystalmaxenchant(), 10, null));
+		_scrolls.put(22007, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_C, crystalmaxenchant(), 10, null));
+		_scrolls.put(22008, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_B, crystalmaxenchant(), 10, null));
+		_scrolls.put(22009, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_A, crystalmaxenchant(), 10, null));
		// Armor Enchant Scrolls
-		_scrolls.put(20518, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_S, 0, 10, null));
-		_scrolls.put(22010, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_D, 0, 10, null));
-		_scrolls.put(22011, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_C, 0, 10, null));
-		_scrolls.put(22012, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_B, 0, 10, null));
-		_scrolls.put(22013, new EnchantScroll(false, false, false, false, L2Item.CRYSTAL_A, 0, 10, null));
+		_scrolls.put(20518, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_S, crystalmaxenchant(), 10, null));
+		_scrolls.put(22010, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_D, crystalmaxenchant(), 10, null));
+		_scrolls.put(22011, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_C, crystalmaxenchant(), 10, null));
+		_scrolls.put(22012, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_B, crystalmaxenchant(), 10, null));
+		_scrolls.put(22013, new EnchantScroll(false, false, false, true, L2Item.CRYSTAL_A, crystalmaxenchant(), 10, null));

		// Ancient Weapon Enchant Crystal
		_scrolls.put(20519, new EnchantScroll(true, false, false, true, L2Item.CRYSTAL_S, 16, 10, null));
@@ -305,6 +291,22 @@
		return _scrolls.get(scroll.getItemId());
	}

+	
+	private static int maxenchant()
+	{
+		return Config.MAX_ENCHANT;
+	}
+
+	private static int blessedmaxenchant()
+	{
+		return Config.BLESSED_MAX_ENCHANT;
+	}
+	
+	private static int crystalmaxenchant()
+	{
+		return Config.CRYSTAL_MAX_ENCHANT;
+	}
+	
	/**
	 * Return enchant template for support item
	 */

 

Configs:

# Max enchant with Simple scrolls ?
MaxEnchant = 8

# Max enchant with Blessed scrolls ?
BlessedMaxEnchant = 16

# Max enchant with Crystal scrolls ?
CrystalMaxEnchant = 26

 

Working on Freya(L2jServer)

Posted
    ### Eclipse Workspace Patch 1.0
    #P L2_GameServer
    Index: java/config/Character.properties
    ===================================================================
    --- java/config/Character.properties   (revision 1)
    +++ java/config/Character.properties   (working copy)
    @@ -288,6 +288,12 @@
    BlessedEnchantChanceArmor = 66
    BlessedEnchantChanceJewelry = 66
     
    +# DEFAULT NEEDS TO BE VERIFIED, MUST BE CHANGED HERE AND IN CONFIG.JAVA IF NOT CORRECT
    +# Default: 50,50,50
    +CrystalEnchantChanceWeapon = 50
    +CrystalEnchantChanceArmor = 50
    +CrystalEnchantChanceJewelry = 50
    +
    # This is the enchant limit, if set to 0, there will be no limit.
    # Example: If this is set to 10, the maximum enchant will be 10.
    # Default: 0, 0, 0
    Index: java/net/sf/l2j/Config.java
    ===================================================================
    --- java/net/sf/l2j/Config.java   (revision 1)
    +++ java/net/sf/l2j/Config.java   (working copy)
    @@ -813,6 +823,9 @@
       public static int BLESSED_ENCHANT_CHANCE_WEAPON;
       public static int BLESSED_ENCHANT_CHANCE_ARMOR;
       public static int BLESSED_ENCHANT_CHANCE_JEWELRY;
    +   public static int CRYSTAL_ENCHANT_CHANCE_WEAPON;
    +   public static int CRYSTAL_ENCHANT_CHANCE_ARMOR;
    +   public static int CRYSTAL_ENCHANT_CHANCE_JEWELRY;
       public static int ENCHANT_MAX_WEAPON;
       public static int ENCHANT_MAX_ARMOR;
       public static int ENCHANT_MAX_JEWELRY;
    @@ -1237,6 +1250,9 @@
                   BLESSED_ENCHANT_CHANCE_WEAPON = Integer.parseInt(Character.getProperty("BlessedEnchantChanceWeapon", "66"));
                   BLESSED_ENCHANT_CHANCE_ARMOR = Integer.parseInt(Character.getProperty("BlessedEnchantChanceArmor", "66"));
                   BLESSED_ENCHANT_CHANCE_JEWELRY = Integer.parseInt(Character.getProperty("BlessedEnchantChanceJewelry", "66"));
    +               CRYSTAL_ENCHANT_CHANCE_WEAPON = Integer.parseInt(Character.getProperty("CrystalEnchantChanceWeapon", "50"));
    +               CRYSTAL_ENCHANT_CHANCE_ARMOR = Integer.parseInt(Character.getProperty("CrystalEnchantChanceArmor", "50"));
    +               CRYSTAL_ENCHANT_CHANCE_JEWELRY = Integer.parseInt(Character.getProperty("CrystalEnchantChanceJewelry", "50"));
                   ENCHANT_MAX_WEAPON = Integer.parseInt(Character.getProperty("EnchantMaxWeapon", "0"));
                   ENCHANT_MAX_ARMOR = Integer.parseInt(Character.getProperty("EnchantMaxArmor", "0"));
                   ENCHANT_MAX_JEWELRY = Integer.parseInt(Character.getProperty("EnchantMaxJewelry", "0"));
    Index: java/net/sf/l2j/gameserver/network/clientpackets/AbstractEnchantPacket.java
    ===================================================================
    --- java/net/sf/l2j/gameserver/network/clientpackets/AbstractEnchantPacket.java   (revision 1)
    +++ java/net/sf/l2j/gameserver/network/clientpackets/AbstractEnchantPacket.java   (working copy)
    @@ -178,6 +178,19 @@
                else
                   chance = Config.BLESSED_ENCHANT_CHANCE_ARMOR;
             }
    +         if (_isCrystal)
    +         {
    +            // crystal scrolls does not use support items
    +            if (supportItem != null)
    +               return -1;
    +
    +            if (_isWeapon)
    +               chance = Config.CRYSTAL_ENCHANT_CHANCE_WEAPON;
    +            else if (isAccessory)
    +               chance = Config.CRYSTAL_ENCHANT_CHANCE_JEWELRY;
    +            else
    +               chance = Config.CRYSTAL_ENCHANT_CHANCE_ARMOR;
    +         }
             else
             {
                if (_isWeapon)
     

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • [New Server] L2Aquila — Gracia Final x9300 No Wipe | Custom Farming Zones Hi all, Rolling a fresh Gracia Final x9300 server — stable core, dedicated box, no wipe, no close, 24/7. WHAT TO EXPECT • 9300x EXP / 3000x SP / 5500x Adena / Safe +3 / Max +25 • Custom Shop + Custom Farming Zones • Free Starter Pack with 20 Custom Coins • Accounts auto-created on first login — no registration • Olympiads, TvT, CTF, offline trading, buff shop LINKS • Website & downloads: https://l2aquila.com/downloads/ • Forum: https://l2aquila.com/forum/ • Discord: https://discord.gg/5ZyBRvG4k • Gameplay tour: https://youtu.be/5QS8qpDG_wc • Install guide: https://youtu.be/F_BfBeiof-s Happy to answer any questions here. Feedback welcome!
    • [New Server] L2Aquila — Gracia Final x9300 No Wipe | Custom Farming Zones Hi all, Rolling a fresh Gracia Final x9300 server — stable core, dedicated box, no wipe, no close, 24/7. WHAT TO EXPECT • 9300x EXP / 3000x SP / 5500x Adena / Safe +3 / Max +25 • Custom Shop + Custom Farming Zones • Free Starter Pack with 20 Custom Coins • Accounts auto-created on first login — no registration • Olympiads, TvT, CTF, offline trading, buff shop LINKS • Website & downloads: https://l2aquila.com/downloads/ • Forum: https://l2aquila.com/forum/ • Discord: https://discord.gg/5ZyBRvG4k • Gameplay tour: https://youtu.be/5QS8qpDG_wc • Install guide: https://youtu.be/F_BfBeiof-s Happy to answer any questions here. Feedback welcome!
    • Hey everyone! A few of us are currently brainstorming and designing a new Lineage 2 private server. Our goal is to capture that classic L2 atmosphere we all fell in love with back in the day, but with a modern, refined feel. We’re aiming for a community-driven, dynamic server where good PvP, meaningful progression, clan life, and that nostalgic L2 vibe take center stage—a place where it just feels good to log in and play. Instead of deciding everything on our own behind closed doors, we want to build something the community actually wants to play on. We’ve put together a short survey to gather your thoughts: What did you love most about older/classic servers? What burnout factors or mechanics are you tired of? What systems or QoL (quality of life) features would you like to see? What red flags make you avoid a server entirely? It only takes a few minutes to fill out, and every single response helps us shape the vision for this project. We can't promise every single idea will be implemented, but we promise to read and consider all of your feedback.   https://docs.google.com/forms/d/e/1FAIpQLScKXptLs9ci_y8PfSmfy9dr2iSvZ9KI9dF3qDaKeFgg9RAaMQ/viewform?pli=1   Thanks a lot for your time and help in bringing this project to life! Let us know your thoughts in the comments as well.
    • Standard Google accounts added in login:password format; aged 7–14 days on average after registration; high quality, manually registered!
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..