diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/Aden/Joachim/Joachim.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/Aden/Joachim/Joachim.java index 1841fbdbb5..3e83e82221 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/Aden/Joachim/Joachim.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/Aden/Joachim/Joachim.java @@ -201,7 +201,7 @@ public class Joachim extends AbstractNpcAI player.setActiveClass(1); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(getNpcHtmlMessage(player, npc, "34513-07.html")); - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); player.sendPacket(new AcquireSkillList(player)); player.sendSkillList(); player.broadcastUserInfo(); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java index 06c9127035..0a8645cc39 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java @@ -303,7 +303,7 @@ public class AwakeningMaster extends AbstractNpcAI } } giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2); - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java index 60933765a1..da528b9e14 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java @@ -152,7 +152,7 @@ public class Hardin extends AbstractNpcAI player.setBaseClass(player.getActiveClass()); } // Adjustments - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/Raina/Raina.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/Raina/Raina.java index d091bd4c7d..014071883b 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/Raina/Raina.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/TalkingIsland/Raina/Raina.java @@ -593,7 +593,7 @@ public class Raina extends AbstractNpcAI player.setActiveClass(classIndex); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(getNpcHtmlMessage(player, npc, "reawakenSuccess.html")); - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); player.sendPacket(new AcquireSkillList(player)); player.sendSkillList(); giveItems(player, getCloakId(player), 1); @@ -632,7 +632,7 @@ public class Raina extends AbstractNpcAI player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED)); player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_S1_HAS_BEEN_ADDED_CONGRATS); player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html")); - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); player.sendPacket(new AcquireSkillList(player)); player.sendSkillList(); giveItems(player, getPowerItemId(player), 1); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 2ae1beb323..a9835ff707 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -422,7 +422,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); @@ -864,7 +864,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java index cfa27c1201..8141cb44d2 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java @@ -423,7 +423,7 @@ public class AdminEditChar implements IAdminCommandHandler final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName(); if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, true); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java index f0c22eeeae..ab37abe2a1 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java @@ -1476,7 +1476,7 @@ public class SkillTreeData implements IXmlReader return result; } - public void cleanSkillUponChangeClass(PlayerInstance player, boolean checkPreviousClasses) + public void cleanSkillUponChangeClass(PlayerInstance player) { ClassId currentClass = player.getClassId(); for (Skill skill : player.getAllSkills()) @@ -1510,24 +1510,21 @@ public class SkillTreeData implements IXmlReader } // Check previous classes as well, in case classes where skipped. - if (checkPreviousClasses) + while (currentClass.getParent() != null) { - while (currentClass.getParent() != null) + final Set removedList = _removeSkillCache.get(currentClass); + if (removedList != null) { - final Set removedList = _removeSkillCache.get(currentClass); - if (removedList != null) + for (Integer skillId : removedList) { - for (Integer skillId : removedList) + final int currentLevel = player.getSkillLevel(skillId); + if (currentLevel > 0) { - final int currentLevel = player.getSkillLevel(skillId); - if (currentLevel > 0) - { - player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel)); - } + player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel)); } } - currentClass = currentClass.getParent(); } + currentClass = currentClass.getParent(); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java index 61a0f10856..e33897c879 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java @@ -105,7 +105,7 @@ public class ExRequestClassChange implements IClientIncomingPacket if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); // TODO: Move to skill learn method? + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); // TODO: Move to skill learn method? for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Aden/Joachim/Joachim.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Aden/Joachim/Joachim.java index 1841fbdbb5..3e83e82221 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Aden/Joachim/Joachim.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/Aden/Joachim/Joachim.java @@ -201,7 +201,7 @@ public class Joachim extends AbstractNpcAI player.setActiveClass(1); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(getNpcHtmlMessage(player, npc, "34513-07.html")); - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); player.sendPacket(new AcquireSkillList(player)); player.sendSkillList(); player.broadcastUserInfo(); diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java index 06c9127035..0a8645cc39 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java @@ -303,7 +303,7 @@ public class AwakeningMaster extends AbstractNpcAI } } giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2); - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java index 60933765a1..da528b9e14 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java @@ -152,7 +152,7 @@ public class Hardin extends AbstractNpcAI player.setBaseClass(player.getActiveClass()); } // Adjustments - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/Raina/Raina.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/Raina/Raina.java index d091bd4c7d..014071883b 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/Raina/Raina.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/areas/TalkingIsland/Raina/Raina.java @@ -593,7 +593,7 @@ public class Raina extends AbstractNpcAI player.setActiveClass(classIndex); player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED)); player.sendPacket(getNpcHtmlMessage(player, npc, "reawakenSuccess.html")); - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); player.sendPacket(new AcquireSkillList(player)); player.sendSkillList(); giveItems(player, getCloakId(player), 1); @@ -632,7 +632,7 @@ public class Raina extends AbstractNpcAI player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED)); player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_S1_HAS_BEEN_ADDED_CONGRATS); player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html")); - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); player.sendPacket(new AcquireSkillList(player)); player.sendSkillList(); giveItems(player, getPowerItemId(player), 1); diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 2ae1beb323..a9835ff707 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -422,7 +422,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); @@ -864,7 +864,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java index cfa27c1201..8141cb44d2 100644 --- a/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java +++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java @@ -423,7 +423,7 @@ public class AdminEditChar implements IAdminCommandHandler final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName(); if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, true); + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java index f0c22eeeae..ab37abe2a1 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java @@ -1476,7 +1476,7 @@ public class SkillTreeData implements IXmlReader return result; } - public void cleanSkillUponChangeClass(PlayerInstance player, boolean checkPreviousClasses) + public void cleanSkillUponChangeClass(PlayerInstance player) { ClassId currentClass = player.getClassId(); for (Skill skill : player.getAllSkills()) @@ -1510,24 +1510,21 @@ public class SkillTreeData implements IXmlReader } // Check previous classes as well, in case classes where skipped. - if (checkPreviousClasses) + while (currentClass.getParent() != null) { - while (currentClass.getParent() != null) + final Set removedList = _removeSkillCache.get(currentClass); + if (removedList != null) { - final Set removedList = _removeSkillCache.get(currentClass); - if (removedList != null) + for (Integer skillId : removedList) { - for (Integer skillId : removedList) + final int currentLevel = player.getSkillLevel(skillId); + if (currentLevel > 0) { - final int currentLevel = player.getSkillLevel(skillId); - if (currentLevel > 0) - { - player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel)); - } + player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel)); } } - currentClass = currentClass.getParent(); } + currentClass = currentClass.getParent(); } } diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java index 61a0f10856..e33897c879 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java @@ -105,7 +105,7 @@ public class ExRequestClassChange implements IClientIncomingPacket if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) { - SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); // TODO: Move to skill learn method? + SkillTreeData.getInstance().cleanSkillUponChangeClass(player); // TODO: Move to skill learn method? for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace())) { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java index 1e432ef0cb..85b9768c26 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java @@ -1460,7 +1460,7 @@ public class SkillTreeData implements IXmlReader return result; } - public void cleanSkillUponChangeClass(PlayerInstance player, boolean checkPreviousClasses) + public void cleanSkillUponChangeClass(PlayerInstance player) { ClassId currentClass = player.getClassId(); for (Skill skill : player.getAllSkills()) @@ -1494,24 +1494,21 @@ public class SkillTreeData implements IXmlReader } // Check previous classes as well, in case classes where skipped. - if (checkPreviousClasses) + while (currentClass.getParent() != null) { - while (currentClass.getParent() != null) + final Set removedList = _removeSkillCache.get(currentClass); + if (removedList != null) { - final Set removedList = _removeSkillCache.get(currentClass); - if (removedList != null) + for (Integer skillId : removedList) { - for (Integer skillId : removedList) + final int currentLevel = player.getSkillLevel(skillId); + if (currentLevel > 0) { - final int currentLevel = player.getSkillLevel(skillId); - if (currentLevel > 0) - { - player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel)); - } + player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel)); } } - currentClass = currentClass.getParent(); } + currentClass = currentClass.getParent(); } } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java index 1e432ef0cb..85b9768c26 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java @@ -1460,7 +1460,7 @@ public class SkillTreeData implements IXmlReader return result; } - public void cleanSkillUponChangeClass(PlayerInstance player, boolean checkPreviousClasses) + public void cleanSkillUponChangeClass(PlayerInstance player) { ClassId currentClass = player.getClassId(); for (Skill skill : player.getAllSkills()) @@ -1494,24 +1494,21 @@ public class SkillTreeData implements IXmlReader } // Check previous classes as well, in case classes where skipped. - if (checkPreviousClasses) + while (currentClass.getParent() != null) { - while (currentClass.getParent() != null) + final Set removedList = _removeSkillCache.get(currentClass); + if (removedList != null) { - final Set removedList = _removeSkillCache.get(currentClass); - if (removedList != null) + for (Integer skillId : removedList) { - for (Integer skillId : removedList) + final int currentLevel = player.getSkillLevel(skillId); + if (currentLevel > 0) { - final int currentLevel = player.getSkillLevel(skillId); - if (currentLevel > 0) - { - player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel)); - } + player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel)); } } - currentClass = currentClass.getParent(); } + currentClass = currentClass.getParent(); } }