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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...