Jump to content
  • 0

Little Help With List Of Skills Showed


Question

Posted (edited)

hello MxC the problem is related to subclass skills where i maked free for main clases and subclases, the problem come when for example warrior class try to get warrior ability skills, then i want my list only show the skills available for the player class here is the code i trying to do work but unsuccessfull, maybe someone know how to solve this , i must do it with all class but when work one i will add others this is my code to show skills:

	/**
	 * Display the Sub-Class Skill list to the player.
	 * @param player the player
	 */
	public static void showSubClassSkillList(L2PcInstance player)
	{
		final List<L2SkillLearn> subClassSkills = SkillTreesData.getInstance().getAvailableSubClassSkills(player);
		final AcquireSkillList asl = new AcquireSkillList(AcquireSkillType.SUBCLASS);
		int count = 0;
		
		for (L2SkillLearn s : subClassSkills)
		{
			
			if (SkillData.getInstance().getInfo(s.getSkillId(), s.getSkillLevel()) != null)
			{
				count++;
				asl.addSkill(s.getSkillId(), s.getSkillLevel(), s.getSkillLevel(), 0, 0);
			}
		}
		if (count > 0)
		{
			for (L2SkillLearn s : subClassSkills)
			{
				if ((player.getClassId().getId() == 1) && (s.getSkillId() != 801) && (s.getSkillId() != 650) && (s.getSkillId() != 651) && (s.getSkillId() != 656))
				{
					player.sendPacket(asl);
				}
			}
		}
		else
		{
			player.sendPacket(SystemMessageId.NO_MORE_SKILLS_TO_LEARN);
		}
	}

but no work in the list appear all skills without restriction, if someone can give me a hand, thanks in advance.

 

i tested with both parts and same no work:

	/**
	 * Gets the available sub class skills.
	 * @param player the sub-class skill learning player
	 * @return all the available Sub-Class skills for a given {@code player}
	 */
	public List<L2SkillLearn> getAvailableSubClassSkills(L2PcInstance player)
	{
		final List<L2SkillLearn> result = new ArrayList<>();
		for (L2SkillLearn skill : _subClassSkillTree.values())
		{
			if (player.getLevel() >= skill.getGetLevel())
			{
				final L2Skill oldSkill = player.getSkills().get(skill.getSkillId());
				if (oldSkill != null)
				{
					if ((oldSkill.getLevel() == (skill.getSkillLevel() - 1)) || ((player.getClassId().getId() == 1) && (skill.getSkillId() != 801) && (skill.getSkillId() != 650) && (skill.getSkillId() != 651) && (skill.getSkillId() != 656)))
					
					{
						
						result.add(skill);
					}
				}
				else if ((skill.getSkillLevel() == 1) || ((player.getClassId().getId() == 1) && (skill.getSkillId() != 801) && (skill.getSkillId() != 650) && (skill.getSkillId() != 651) && (skill.getSkillId() != 656)))
				{
					result.add(skill);
				}
			}
		}
		return result;
	}
 

thanks in advance.

Edited by b0rto

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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


×
×
  • 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..