From 475bb35bcca87a4e4650812100dc11ca40404de3 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 4 May 2018 15:41:08 +0000 Subject: [PATCH] Keep sublevel when giving available skills. --- .../gameserver/model/actor/instance/L2PcInstance.java | 9 ++++++++- .../gameserver/model/actor/instance/L2PcInstance.java | 9 ++++++++- .../gameserver/model/actor/instance/L2PcInstance.java | 9 ++++++++- .../gameserver/model/actor/instance/L2PcInstance.java | 9 ++++++++- .../gameserver/model/actor/instance/L2PcInstance.java | 9 ++++++++- .../gameserver/model/actor/instance/L2PcInstance.java | 9 ++++++++- 6 files changed, 48 insertions(+), 6 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 84ada1c5e4..4a45342017 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -2561,7 +2561,8 @@ public final class L2PcInstance extends L2Playable for (Skill skill : skills) { - if (getKnownSkill(skill.getId()) == skill) + final Skill oldSkill = getKnownSkill(skill.getId()); + if (oldSkill == skill) { continue; } @@ -2577,6 +2578,12 @@ public final class L2PcInstance extends L2Playable 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); skillsForStore.add(skill); } diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 45237d59bf..812a01c61e 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -2567,7 +2567,8 @@ public final class L2PcInstance extends L2Playable for (Skill skill : skills) { - if (getKnownSkill(skill.getId()) == skill) + final Skill oldSkill = getKnownSkill(skill.getId()); + if (oldSkill == skill) { continue; } @@ -2583,6 +2584,12 @@ public final class L2PcInstance extends L2Playable 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); skillsForStore.add(skill); } diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 186e413fcc..6ca0bb8abf 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -2569,7 +2569,8 @@ public final class L2PcInstance extends L2Playable for (Skill skill : skills) { - if (getKnownSkill(skill.getId()) == skill) + final Skill oldSkill = getKnownSkill(skill.getId()); + if (oldSkill == skill) { continue; } @@ -2585,6 +2586,12 @@ public final class L2PcInstance extends L2Playable 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); skillsForStore.add(skill); } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index c278267893..56ab6e755d 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -2572,7 +2572,8 @@ public final class L2PcInstance extends L2Playable for (Skill skill : skills) { - if (getKnownSkill(skill.getId()) == skill) + final Skill oldSkill = getKnownSkill(skill.getId()); + if (oldSkill == skill) { continue; } @@ -2588,6 +2589,12 @@ public final class L2PcInstance extends L2Playable 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); skillsForStore.add(skill); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index c171707228..f4821c3751 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -2543,7 +2543,8 @@ public final class L2PcInstance extends L2Playable for (Skill skill : skills) { - if (getKnownSkill(skill.getId()) == skill) + final Skill oldSkill = getKnownSkill(skill.getId()); + if (oldSkill == skill) { continue; } @@ -2559,6 +2560,12 @@ public final class L2PcInstance extends L2Playable 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); skillsForStore.add(skill); } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java index 58da85f464..3348201ec9 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/instance/L2PcInstance.java @@ -2543,7 +2543,8 @@ public final class L2PcInstance extends L2Playable for (Skill skill : skills) { - if (getKnownSkill(skill.getId()) == skill) + final Skill oldSkill = getKnownSkill(skill.getId()); + if (oldSkill == skill) { continue; } @@ -2559,6 +2560,12 @@ public final class L2PcInstance extends L2Playable 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); skillsForStore.add(skill); }