From effd418284e29f19b15224c5b30b23d368f975c0 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 22 Jan 2020 23:52:22 +0000 Subject: [PATCH] Previous commit for equivalent Classic branch. --- .../game/data/scripts/ai/others/ClassMaster/ClassMaster.java | 5 +++-- .../scripts/handlers/admincommandhandlers/AdminEditChar.java | 2 ++ .../l2jmobius/gameserver/data/xml/impl/SkillTreesData.java | 5 +++-- .../clientpackets/classchange/ExRequestClassChange.java | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index e303114119..524cb4c125 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -33,6 +33,7 @@ import org.l2jmobius.Config; import org.l2jmobius.commons.util.IXmlReader; import org.l2jmobius.gameserver.data.xml.impl.CategoryData; import org.l2jmobius.gameserver.data.xml.impl.ClassListData; +import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.datatables.ItemTable; import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.enums.Race; @@ -386,9 +387,9 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader { player.setBaseClass(player.getActiveClass()); } + SkillTreesData.getInstance().cleanSkillUponChangeClass(player); // if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) // { - // SkillTreesData.getInstance().cleanSkillUponAwakening(player); // for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) // { // player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); @@ -787,9 +788,9 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader { player.setBaseClass(player.getActiveClass()); } + SkillTreesData.getInstance().cleanSkillUponChangeClass(player); // if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP)) // { - // SkillTreesData.getInstance().cleanSkillUponAwakening(player); // for (SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) // { // player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java index 4cc349f3c4..5e03709771 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java @@ -32,6 +32,7 @@ import org.l2jmobius.Config; import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.gameserver.data.sql.impl.CharNameTable; import org.l2jmobius.gameserver.data.xml.impl.ClassListData; +import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.enums.Race; import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.handler.IAdminCommandHandler; @@ -413,6 +414,7 @@ public class AdminEditChar implements IAdminCommandHandler } final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName(); + SkillTreesData.getInstance().cleanSkillUponChangeClass(player); player.store(false); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java index 17e8da0c00..adc2ddf1de 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/impl/SkillTreesData.java @@ -1447,14 +1447,15 @@ public class SkillTreesData implements IXmlReader return result; } - public void cleanSkillUponAwakening(PlayerInstance player) + public void cleanSkillUponChangeClass(PlayerInstance player) { + final ClassId currentClass = player.getClassId(); for (Skill skill : player.getAllSkills()) { final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getId()); final long hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl); - if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId()) && !isAwakenSaveSkill(player.getClassId(), skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel())) + if (!isCurrentClassSkillNoParent(currentClass, hashCode) && !isRemoveSkill(currentClass, skill.getId()) && !isAwakenSaveSkill(currentClass, skill.getId()) && !isAlchemySkill(skill.getId(), skill.getLevel())) { player.removeSkill(skill, true, true); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java index cf0c1fa837..ffab8ac24a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/classchange/ExRequestClassChange.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver.network.clientpackets.classchange; import org.l2jmobius.Config; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.data.xml.impl.CategoryData; +import org.l2jmobius.gameserver.data.xml.impl.SkillTreesData; import org.l2jmobius.gameserver.enums.CategoryType; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.base.ClassId; @@ -93,7 +94,7 @@ public class ExRequestClassChange implements IClientIncomingPacket { player.setBaseClass(player.getActiveClass()); } - + SkillTreesData.getInstance().cleanSkillUponChangeClass(player); if (Config.AUTO_LEARN_SKILLS) { player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);