From d48f8b8d1fc3261e36622bebe8250f59dfc602c6 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 16 Apr 2018 09:24:27 +0000 Subject: [PATCH] Keep sublevel on skill level increase. --- .../com/l2jmobius/gameserver/model/actor/L2Character.java | 8 ++++++++ .../com/l2jmobius/gameserver/model/actor/L2Character.java | 8 ++++++++ .../com/l2jmobius/gameserver/model/actor/L2Character.java | 8 ++++++++ .../com/l2jmobius/gameserver/model/actor/L2Character.java | 8 ++++++++ .../com/l2jmobius/gameserver/model/actor/L2Character.java | 8 ++++++++ .../com/l2jmobius/gameserver/model/actor/L2Character.java | 8 ++++++++ 6 files changed, 48 insertions(+) diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/L2Character.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/L2Character.java index 38ef251794..71ee545e7f 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/L2Character.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/L2Character.java @@ -49,6 +49,7 @@ import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2AttackableAI; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.xml.impl.CategoryData; +import com.l2jmobius.gameserver.data.xml.impl.SkillData; import com.l2jmobius.gameserver.data.xml.impl.TransformData; import com.l2jmobius.gameserver.enums.AttributeType; import com.l2jmobius.gameserver.enums.BasicProperty; @@ -3975,6 +3976,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe Skill oldSkill = null; if (newSkill != null) { + // Mobius: Keep sublevel on skill level increase. + final Skill existingSkill = _skills.get(newSkill.getId()); + if ((existingSkill != null) && (existingSkill.getSubLevel() > 0) && (newSkill.getSubLevel() == 0) && (existingSkill.getLevel() < newSkill.getLevel())) + { + newSkill = SkillData.getInstance().getSkill(newSkill.getId(), newSkill.getLevel(), existingSkill.getSubLevel()); + } + // Replace oldSkill by newSkill or Add the newSkill oldSkill = _skills.put(newSkill.getId(), newSkill); // If an old skill has been replaced, remove all its Func objects diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/L2Character.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/L2Character.java index 38ef251794..71ee545e7f 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/L2Character.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/L2Character.java @@ -49,6 +49,7 @@ import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2AttackableAI; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.xml.impl.CategoryData; +import com.l2jmobius.gameserver.data.xml.impl.SkillData; import com.l2jmobius.gameserver.data.xml.impl.TransformData; import com.l2jmobius.gameserver.enums.AttributeType; import com.l2jmobius.gameserver.enums.BasicProperty; @@ -3975,6 +3976,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe Skill oldSkill = null; if (newSkill != null) { + // Mobius: Keep sublevel on skill level increase. + final Skill existingSkill = _skills.get(newSkill.getId()); + if ((existingSkill != null) && (existingSkill.getSubLevel() > 0) && (newSkill.getSubLevel() == 0) && (existingSkill.getLevel() < newSkill.getLevel())) + { + newSkill = SkillData.getInstance().getSkill(newSkill.getId(), newSkill.getLevel(), existingSkill.getSubLevel()); + } + // Replace oldSkill by newSkill or Add the newSkill oldSkill = _skills.put(newSkill.getId(), newSkill); // If an old skill has been replaced, remove all its Func objects diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/L2Character.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/L2Character.java index 38ef251794..71ee545e7f 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/L2Character.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/L2Character.java @@ -49,6 +49,7 @@ import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2AttackableAI; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.xml.impl.CategoryData; +import com.l2jmobius.gameserver.data.xml.impl.SkillData; import com.l2jmobius.gameserver.data.xml.impl.TransformData; import com.l2jmobius.gameserver.enums.AttributeType; import com.l2jmobius.gameserver.enums.BasicProperty; @@ -3975,6 +3976,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe Skill oldSkill = null; if (newSkill != null) { + // Mobius: Keep sublevel on skill level increase. + final Skill existingSkill = _skills.get(newSkill.getId()); + if ((existingSkill != null) && (existingSkill.getSubLevel() > 0) && (newSkill.getSubLevel() == 0) && (existingSkill.getLevel() < newSkill.getLevel())) + { + newSkill = SkillData.getInstance().getSkill(newSkill.getId(), newSkill.getLevel(), existingSkill.getSubLevel()); + } + // Replace oldSkill by newSkill or Add the newSkill oldSkill = _skills.put(newSkill.getId(), newSkill); // If an old skill has been replaced, remove all its Func objects diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/L2Character.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/L2Character.java index 38ef251794..71ee545e7f 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/L2Character.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/L2Character.java @@ -49,6 +49,7 @@ import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2AttackableAI; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.xml.impl.CategoryData; +import com.l2jmobius.gameserver.data.xml.impl.SkillData; import com.l2jmobius.gameserver.data.xml.impl.TransformData; import com.l2jmobius.gameserver.enums.AttributeType; import com.l2jmobius.gameserver.enums.BasicProperty; @@ -3975,6 +3976,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe Skill oldSkill = null; if (newSkill != null) { + // Mobius: Keep sublevel on skill level increase. + final Skill existingSkill = _skills.get(newSkill.getId()); + if ((existingSkill != null) && (existingSkill.getSubLevel() > 0) && (newSkill.getSubLevel() == 0) && (existingSkill.getLevel() < newSkill.getLevel())) + { + newSkill = SkillData.getInstance().getSkill(newSkill.getId(), newSkill.getLevel(), existingSkill.getSubLevel()); + } + // Replace oldSkill by newSkill or Add the newSkill oldSkill = _skills.put(newSkill.getId(), newSkill); // If an old skill has been replaced, remove all its Func objects diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/L2Character.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/L2Character.java index 38ef251794..71ee545e7f 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/L2Character.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/L2Character.java @@ -49,6 +49,7 @@ import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2AttackableAI; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.xml.impl.CategoryData; +import com.l2jmobius.gameserver.data.xml.impl.SkillData; import com.l2jmobius.gameserver.data.xml.impl.TransformData; import com.l2jmobius.gameserver.enums.AttributeType; import com.l2jmobius.gameserver.enums.BasicProperty; @@ -3975,6 +3976,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe Skill oldSkill = null; if (newSkill != null) { + // Mobius: Keep sublevel on skill level increase. + final Skill existingSkill = _skills.get(newSkill.getId()); + if ((existingSkill != null) && (existingSkill.getSubLevel() > 0) && (newSkill.getSubLevel() == 0) && (existingSkill.getLevel() < newSkill.getLevel())) + { + newSkill = SkillData.getInstance().getSkill(newSkill.getId(), newSkill.getLevel(), existingSkill.getSubLevel()); + } + // Replace oldSkill by newSkill or Add the newSkill oldSkill = _skills.put(newSkill.getId(), newSkill); // If an old skill has been replaced, remove all its Func objects diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/L2Character.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/L2Character.java index 38ef251794..71ee545e7f 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/L2Character.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/L2Character.java @@ -49,6 +49,7 @@ import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.L2AttackableAI; import com.l2jmobius.gameserver.ai.L2CharacterAI; import com.l2jmobius.gameserver.data.xml.impl.CategoryData; +import com.l2jmobius.gameserver.data.xml.impl.SkillData; import com.l2jmobius.gameserver.data.xml.impl.TransformData; import com.l2jmobius.gameserver.enums.AttributeType; import com.l2jmobius.gameserver.enums.BasicProperty; @@ -3975,6 +3976,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe Skill oldSkill = null; if (newSkill != null) { + // Mobius: Keep sublevel on skill level increase. + final Skill existingSkill = _skills.get(newSkill.getId()); + if ((existingSkill != null) && (existingSkill.getSubLevel() > 0) && (newSkill.getSubLevel() == 0) && (existingSkill.getLevel() < newSkill.getLevel())) + { + newSkill = SkillData.getInstance().getSkill(newSkill.getId(), newSkill.getLevel(), existingSkill.getSubLevel()); + } + // Replace oldSkill by newSkill or Add the newSkill oldSkill = _skills.put(newSkill.getId(), newSkill); // If an old skill has been replaced, remove all its Func objects