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;
}
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.
It doesn't say that anywhere.
https://acis.i-live.eu/index.php?topic=30.0
check it from source java file names
example in 367 ->
https://acis.i-live.eu/index.php?topic=30.255 l2bufferinstance renamed to schemebuffer | l2pcinstance renamed to player
check changeset 367 to understand
DISCORD :
https://discord.com/users/325653525793210378
utchiha_market
telegram :
https://t.me/utchiha_market
SELLIX STORE :
https://utchihamkt.mysellix.io/
Join our server for more products :
https://discord.gg/uthciha-services
https://campsite.bio/utchihaamkt
Eldamar Don't tell me what to do, stop spamming and mind your own business, it's 2025, who's going to play your server like it's 2007, you're ridiculous.
Question
b0rto
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:
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:
thanks in advance.
Edited by b0rto0 answers to this question
Recommended Posts
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.