Jump to content
  • 0

How To Remove Item Penalthy For Lvl


Question

Posted

hello there i want to ask you how to remove penalthy for items so if someone is 1 lvl to wear s grade item is there any config? i search but dont found :C

 

if im wrong section again im sorry

4 answers to this question

Recommended Posts

  • 0
Posted

You should have an option somewhere in the config files, there are already a check about that

		if (!Config.EXPERTISE_PENALTY)
			return;
  • 0
Posted

There should be something about expertise penality in L2PcInstance, according to aCis's source the method is called refreshExpertisePenalty().

You can safely comment its usage in the source.

  • 0
Posted (edited)

found this 

	public void refreshExpertisePenalty()
	{
		if (!Config.EXPERTISE_PENALTY)
			return;
		
		// This code works on principle that first 1-5 levels of penalty is for weapon and 6-10levels are for armor
		int intensityW = 0; // Default value
		int intensityA = 5; // Default value.
		int intensity = 0; // Level of grade penalty.
		
		for (final L2ItemInstance item : getInventory().getItems())
		{
			if (item != null && item.isEquipped()) // Checks if items equipped
			{
				
				final int crystaltype = item.getItem().getCrystalType(); // Gets grade of item
				// Checks if item crystal levels is above character levels and also if last penalty for weapon was lower.
				if (crystaltype > getExpertiseIndex() && item.isWeapon() && crystaltype > intensityW)
				{
					intensityW = crystaltype - getExpertiseIndex();
				}
				// Checks if equiped armor, accesories are above character level and adds each armor penalty.
				if (crystaltype > getExpertiseIndex() && !item.isWeapon())
				{
					intensityA += crystaltype - getExpertiseIndex();
				}
			}
		}
		
		if (intensityA == 5)// Means that there isn't armor penalty.
		{
			intensity = intensityW;
		}
		
		else
		{
			intensity = intensityW + intensityA;
		}
		
		// Checks if penalty is above maximum and sets it to maximum.
		if (intensity > 10)
		{
			intensity = 10;
		}
		
		if (getExpertisePenalty() != intensity)
		{
			int penalties = _masteryPenalty + _masteryWeapPenalty + intensity;
			if (penalties > 10) // Checks if penalties are out of bounds for skill level on XML
			{
				penalties = 10;
			}
			
			_expertisePenalty = intensity;
			
			if (penalties > 0)
			{
				super.addSkill(SkillTable.getInstance().getInfo(4267, intensity));
				sendSkillList();
			}
			else
			{
				super.removeSkill(getKnownSkill(4267));
				sendSkillList();
				_expertisePenalty = 0;
			}
		}
	}
	
Edited by haskovo
Guest
This topic is now closed to further replies.


×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock