Keep sublevel when giving available skills.

This commit is contained in:
MobiusDev
2018-05-04 15:41:08 +00:00
parent 32df4e178a
commit 475bb35bcc
6 changed files with 48 additions and 6 deletions

View File

@@ -2561,7 +2561,8 @@ public final class L2PcInstance extends L2Playable
for (Skill skill : skills) for (Skill skill : skills)
{ {
if (getKnownSkill(skill.getId()) == skill) final Skill oldSkill = getKnownSkill(skill.getId());
if (oldSkill == skill)
{ {
continue; continue;
} }
@@ -2577,6 +2578,12 @@ public final class L2PcInstance extends L2Playable
stopSkillEffects(true, skill.getId()); stopSkillEffects(true, skill.getId());
} }
// Mobius: Keep sublevel on skill level increase.
if ((oldSkill != null) && (oldSkill.getSubLevel() > 0) && (skill.getSubLevel() == 0) && (oldSkill.getLevel() < skill.getLevel()))
{
skill = SkillData.getInstance().getSkill(skill.getId(), skill.getLevel(), oldSkill.getSubLevel());
}
addSkill(skill, false); addSkill(skill, false);
skillsForStore.add(skill); skillsForStore.add(skill);
} }

View File

@@ -2567,7 +2567,8 @@ public final class L2PcInstance extends L2Playable
for (Skill skill : skills) for (Skill skill : skills)
{ {
if (getKnownSkill(skill.getId()) == skill) final Skill oldSkill = getKnownSkill(skill.getId());
if (oldSkill == skill)
{ {
continue; continue;
} }
@@ -2583,6 +2584,12 @@ public final class L2PcInstance extends L2Playable
stopSkillEffects(true, skill.getId()); stopSkillEffects(true, skill.getId());
} }
// Mobius: Keep sublevel on skill level increase.
if ((oldSkill != null) && (oldSkill.getSubLevel() > 0) && (skill.getSubLevel() == 0) && (oldSkill.getLevel() < skill.getLevel()))
{
skill = SkillData.getInstance().getSkill(skill.getId(), skill.getLevel(), oldSkill.getSubLevel());
}
addSkill(skill, false); addSkill(skill, false);
skillsForStore.add(skill); skillsForStore.add(skill);
} }

View File

@@ -2569,7 +2569,8 @@ public final class L2PcInstance extends L2Playable
for (Skill skill : skills) for (Skill skill : skills)
{ {
if (getKnownSkill(skill.getId()) == skill) final Skill oldSkill = getKnownSkill(skill.getId());
if (oldSkill == skill)
{ {
continue; continue;
} }
@@ -2585,6 +2586,12 @@ public final class L2PcInstance extends L2Playable
stopSkillEffects(true, skill.getId()); stopSkillEffects(true, skill.getId());
} }
// Mobius: Keep sublevel on skill level increase.
if ((oldSkill != null) && (oldSkill.getSubLevel() > 0) && (skill.getSubLevel() == 0) && (oldSkill.getLevel() < skill.getLevel()))
{
skill = SkillData.getInstance().getSkill(skill.getId(), skill.getLevel(), oldSkill.getSubLevel());
}
addSkill(skill, false); addSkill(skill, false);
skillsForStore.add(skill); skillsForStore.add(skill);
} }

View File

@@ -2572,7 +2572,8 @@ public final class L2PcInstance extends L2Playable
for (Skill skill : skills) for (Skill skill : skills)
{ {
if (getKnownSkill(skill.getId()) == skill) final Skill oldSkill = getKnownSkill(skill.getId());
if (oldSkill == skill)
{ {
continue; continue;
} }
@@ -2588,6 +2589,12 @@ public final class L2PcInstance extends L2Playable
stopSkillEffects(true, skill.getId()); stopSkillEffects(true, skill.getId());
} }
// Mobius: Keep sublevel on skill level increase.
if ((oldSkill != null) && (oldSkill.getSubLevel() > 0) && (skill.getSubLevel() == 0) && (oldSkill.getLevel() < skill.getLevel()))
{
skill = SkillData.getInstance().getSkill(skill.getId(), skill.getLevel(), oldSkill.getSubLevel());
}
addSkill(skill, false); addSkill(skill, false);
skillsForStore.add(skill); skillsForStore.add(skill);
} }

View File

@@ -2543,7 +2543,8 @@ public final class L2PcInstance extends L2Playable
for (Skill skill : skills) for (Skill skill : skills)
{ {
if (getKnownSkill(skill.getId()) == skill) final Skill oldSkill = getKnownSkill(skill.getId());
if (oldSkill == skill)
{ {
continue; continue;
} }
@@ -2559,6 +2560,12 @@ public final class L2PcInstance extends L2Playable
stopSkillEffects(true, skill.getId()); stopSkillEffects(true, skill.getId());
} }
// Mobius: Keep sublevel on skill level increase.
if ((oldSkill != null) && (oldSkill.getSubLevel() > 0) && (skill.getSubLevel() == 0) && (oldSkill.getLevel() < skill.getLevel()))
{
skill = SkillData.getInstance().getSkill(skill.getId(), skill.getLevel(), oldSkill.getSubLevel());
}
addSkill(skill, false); addSkill(skill, false);
skillsForStore.add(skill); skillsForStore.add(skill);
} }

View File

@@ -2543,7 +2543,8 @@ public final class L2PcInstance extends L2Playable
for (Skill skill : skills) for (Skill skill : skills)
{ {
if (getKnownSkill(skill.getId()) == skill) final Skill oldSkill = getKnownSkill(skill.getId());
if (oldSkill == skill)
{ {
continue; continue;
} }
@@ -2559,6 +2560,12 @@ public final class L2PcInstance extends L2Playable
stopSkillEffects(true, skill.getId()); stopSkillEffects(true, skill.getId());
} }
// Mobius: Keep sublevel on skill level increase.
if ((oldSkill != null) && (oldSkill.getSubLevel() > 0) && (skill.getSubLevel() == 0) && (oldSkill.getLevel() < skill.getLevel()))
{
skill = SkillData.getInstance().getSkill(skill.getId(), skill.getLevel(), oldSkill.getSubLevel());
}
addSkill(skill, false); addSkill(skill, false);
skillsForStore.add(skill); skillsForStore.add(skill);
} }