From c4988df6a037b71dc683df87d3ef334c33216f45 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 10 Nov 2015 08:52:13 +0000 Subject: [PATCH] Auto remove, skilltree and AcquireSkillList fixes. Contributed by rocknowx. --- .../admincommandhandlers/AdminEditChar.java | 3 +- .../skillTrees/4rthClass/AeoreCardinal.xml | 1 - .../skillTrees/4rthClass/AeoreEva'sSaint.xml | 1 - .../4rthClass/AeoreShillienSaint.xml | 1 - .../skillTrees/4rthClass/FeohArchmage.xml | 1 - .../skillTrees/4rthClass/FeohMysticMuse.xml | 1 - .../skillTrees/4rthClass/FeohSoulhound.xml | 1 - .../skillTrees/4rthClass/FeohSoultaker.xml | 1 - .../4rthClass/FeohStormScreamer.xml | 1 - .../skillTrees/4rthClass/IssDominator.xml | 1 - .../skillTrees/4rthClass/IssDoomcryer.xml | 1 - .../skillTrees/4rthClass/IssHierophant.xml | 1 - .../4rthClass/IssSpectralDancer.xml | 1 - .../skillTrees/4rthClass/IssSwordMuse.xml | 1 - .../skillTrees/4rthClass/OthellAdventurer.xml | 1 - .../4rthClass/OthellGhostHunter.xml | 1 - .../skillTrees/4rthClass/OthellWindRider.xml | 1 - .../4rthClass/SigelEva'sTemplar.xml | 1 - .../skillTrees/4rthClass/SigelHellKnight.xml | 1 - .../4rthClass/SigelPhoenixKnight.xml | 1 - .../4rthClass/SigelShillienTemplar.xml | 1 - .../skillTrees/4rthClass/TyrrDoombringer.xml | 1 - .../skillTrees/4rthClass/TyrrDreadnought.xml | 1 - .../data/skillTrees/4rthClass/TyrrDuelist.xml | 1 - .../4rthClass/TyrrGrandKhavatari.xml | 1 - .../data/skillTrees/4rthClass/TyrrTitan.xml | 1 - .../skillTrees/4rthClass/WynnArcanaLord.xml | 1 - .../4rthClass/WynnElementalMaster.xml | 1 - .../4rthClass/WynnSpectralMaster.xml | 1 - .../skillTrees/4rthClass/YulGhostSentinel.xml | 1 - .../4rthClass/YulMoonlightSentinel.xml | 1 - .../skillTrees/4rthClass/YulSagittarius.xml | 1 - .../skillTrees/4rthClass/YulTrickster.xml | 1 - .../skillTrees/ErtheiaClass/Eviscerator.xml | 3 + .../skillTrees/ErtheiaClass/Sayha'sSeer.xml | 3 + .../game/data/skillTrees/raceSkillTree.xml | 5 -- .../data/xml/impl/SkillTreesData.java | 68 ++++++++++++++++++- .../model/actor/instance/L2PcInstance.java | 2 +- .../serverpackets/AcquireSkillList.java | 3 +- 39 files changed, 76 insertions(+), 43 deletions(-) diff --git a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java index d36e3c3b67..8cfd11efe8 100644 --- a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java +++ b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java @@ -356,6 +356,7 @@ public class AdminEditChar implements IAdminCommandHandler final L2PcInstance player = target.getActingPlayer(); if ((ClassId.getClassId(classidval) != null) && (player.getClassId().getId() != classidval)) { + final boolean wasAwaken = player.isAwaken(); player.setClassId(classidval); if (player.isSubClassActive()) @@ -377,7 +378,7 @@ public class AdminEditChar implements IAdminCommandHandler player.storeMe(); player.sendMessage("A GM changed your class to " + newclass + "."); player.broadcastUserInfo(); - if (player.isAwaken()) + if (!wasAwaken && player.isAwaken()) { SkillTreesData.getInstance().cleanSkillUponAwakening(player); } diff --git a/trunk/dist/game/data/skillTrees/4rthClass/AeoreCardinal.xml b/trunk/dist/game/data/skillTrees/4rthClass/AeoreCardinal.xml index 135c6b1308..6cf979c00a 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/AeoreCardinal.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/AeoreCardinal.xml @@ -13,7 +13,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/AeoreEva'sSaint.xml b/trunk/dist/game/data/skillTrees/4rthClass/AeoreEva'sSaint.xml index 734d1021d7..0fb614767d 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/AeoreEva'sSaint.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/AeoreEva'sSaint.xml @@ -12,7 +12,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/AeoreShillienSaint.xml b/trunk/dist/game/data/skillTrees/4rthClass/AeoreShillienSaint.xml index d9c6f686cd..fead307baa 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/AeoreShillienSaint.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/AeoreShillienSaint.xml @@ -12,7 +12,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/FeohArchmage.xml b/trunk/dist/game/data/skillTrees/4rthClass/FeohArchmage.xml index 1222f8381d..ba0b0c6de3 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/FeohArchmage.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/FeohArchmage.xml @@ -16,7 +16,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/FeohMysticMuse.xml b/trunk/dist/game/data/skillTrees/4rthClass/FeohMysticMuse.xml index cd7b0d83c2..791ad41584 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/FeohMysticMuse.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/FeohMysticMuse.xml @@ -33,7 +33,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/FeohSoulhound.xml b/trunk/dist/game/data/skillTrees/4rthClass/FeohSoulhound.xml index 8e2bd94b66..808446feab 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/FeohSoulhound.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/FeohSoulhound.xml @@ -30,7 +30,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/FeohSoultaker.xml b/trunk/dist/game/data/skillTrees/4rthClass/FeohSoultaker.xml index 8e9282ce74..41c2ce6346 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/FeohSoultaker.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/FeohSoultaker.xml @@ -26,7 +26,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/FeohStormScreamer.xml b/trunk/dist/game/data/skillTrees/4rthClass/FeohStormScreamer.xml index 58e1ce3e1d..4c523fc06d 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/FeohStormScreamer.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/FeohStormScreamer.xml @@ -31,7 +31,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/IssDominator.xml b/trunk/dist/game/data/skillTrees/4rthClass/IssDominator.xml index 6a77fc1db7..6cd8585833 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/IssDominator.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/IssDominator.xml @@ -11,7 +11,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/IssDoomcryer.xml b/trunk/dist/game/data/skillTrees/4rthClass/IssDoomcryer.xml index c1e1836a87..b9384584d3 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/IssDoomcryer.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/IssDoomcryer.xml @@ -11,7 +11,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/IssHierophant.xml b/trunk/dist/game/data/skillTrees/4rthClass/IssHierophant.xml index d886ab0d80..6fd8619ade 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/IssHierophant.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/IssHierophant.xml @@ -11,7 +11,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/IssSpectralDancer.xml b/trunk/dist/game/data/skillTrees/4rthClass/IssSpectralDancer.xml index 5918de69b6..1dc39c1783 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/IssSpectralDancer.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/IssSpectralDancer.xml @@ -11,7 +11,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/IssSwordMuse.xml b/trunk/dist/game/data/skillTrees/4rthClass/IssSwordMuse.xml index e9ebfcb9c8..8b8e912d87 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/IssSwordMuse.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/IssSwordMuse.xml @@ -11,7 +11,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/OthellAdventurer.xml b/trunk/dist/game/data/skillTrees/4rthClass/OthellAdventurer.xml index 95f0f1cd08..b1c1e6e484 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/OthellAdventurer.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/OthellAdventurer.xml @@ -11,7 +11,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/OthellGhostHunter.xml b/trunk/dist/game/data/skillTrees/4rthClass/OthellGhostHunter.xml index f8b65baee4..4bad7f69f8 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/OthellGhostHunter.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/OthellGhostHunter.xml @@ -11,7 +11,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/OthellWindRider.xml b/trunk/dist/game/data/skillTrees/4rthClass/OthellWindRider.xml index 8c894ec572..b163ec2094 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/OthellWindRider.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/OthellWindRider.xml @@ -11,7 +11,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/SigelEva'sTemplar.xml b/trunk/dist/game/data/skillTrees/4rthClass/SigelEva'sTemplar.xml index 0db99ed5ec..1321a2d926 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/SigelEva'sTemplar.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/SigelEva'sTemplar.xml @@ -12,7 +12,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/SigelHellKnight.xml b/trunk/dist/game/data/skillTrees/4rthClass/SigelHellKnight.xml index e6ce148301..89f59d3222 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/SigelHellKnight.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/SigelHellKnight.xml @@ -12,7 +12,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/SigelPhoenixKnight.xml b/trunk/dist/game/data/skillTrees/4rthClass/SigelPhoenixKnight.xml index 5160e95ce8..8a263aff60 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/SigelPhoenixKnight.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/SigelPhoenixKnight.xml @@ -12,7 +12,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/SigelShillienTemplar.xml b/trunk/dist/game/data/skillTrees/4rthClass/SigelShillienTemplar.xml index 044a44119e..efc9041be3 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/SigelShillienTemplar.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/SigelShillienTemplar.xml @@ -12,7 +12,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/TyrrDoombringer.xml b/trunk/dist/game/data/skillTrees/4rthClass/TyrrDoombringer.xml index d8c6d3bf99..a8427ec49e 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/TyrrDoombringer.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/TyrrDoombringer.xml @@ -13,7 +13,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/TyrrDreadnought.xml b/trunk/dist/game/data/skillTrees/4rthClass/TyrrDreadnought.xml index 6c27c3d0d7..d3b1734ddc 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/TyrrDreadnought.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/TyrrDreadnought.xml @@ -12,7 +12,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/TyrrDuelist.xml b/trunk/dist/game/data/skillTrees/4rthClass/TyrrDuelist.xml index b7934b2dce..d345411d1f 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/TyrrDuelist.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/TyrrDuelist.xml @@ -12,7 +12,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/TyrrGrandKhavatari.xml b/trunk/dist/game/data/skillTrees/4rthClass/TyrrGrandKhavatari.xml index 930f6a0adb..57cd7712cb 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/TyrrGrandKhavatari.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/TyrrGrandKhavatari.xml @@ -12,7 +12,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/TyrrTitan.xml b/trunk/dist/game/data/skillTrees/4rthClass/TyrrTitan.xml index 7fd1a65f98..b005567d0c 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/TyrrTitan.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/TyrrTitan.xml @@ -13,7 +13,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/WynnArcanaLord.xml b/trunk/dist/game/data/skillTrees/4rthClass/WynnArcanaLord.xml index 56c6582d66..d684cf9c91 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/WynnArcanaLord.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/WynnArcanaLord.xml @@ -17,7 +17,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/WynnElementalMaster.xml b/trunk/dist/game/data/skillTrees/4rthClass/WynnElementalMaster.xml index 2a76a11bc0..f0cc49b618 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/WynnElementalMaster.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/WynnElementalMaster.xml @@ -17,7 +17,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/WynnSpectralMaster.xml b/trunk/dist/game/data/skillTrees/4rthClass/WynnSpectralMaster.xml index 4761d5b811..f984e85820 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/WynnSpectralMaster.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/WynnSpectralMaster.xml @@ -17,7 +17,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/YulGhostSentinel.xml b/trunk/dist/game/data/skillTrees/4rthClass/YulGhostSentinel.xml index d41030154b..315ab1a51f 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/YulGhostSentinel.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/YulGhostSentinel.xml @@ -17,7 +17,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/YulMoonlightSentinel.xml b/trunk/dist/game/data/skillTrees/4rthClass/YulMoonlightSentinel.xml index 1511982e41..5b6b8d31a1 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/YulMoonlightSentinel.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/YulMoonlightSentinel.xml @@ -17,7 +17,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/YulSagittarius.xml b/trunk/dist/game/data/skillTrees/4rthClass/YulSagittarius.xml index 7c46465ee7..3d595c2553 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/YulSagittarius.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/YulSagittarius.xml @@ -17,7 +17,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/4rthClass/YulTrickster.xml b/trunk/dist/game/data/skillTrees/4rthClass/YulTrickster.xml index 6ffcc7e4b8..3526e4a78f 100644 --- a/trunk/dist/game/data/skillTrees/4rthClass/YulTrickster.xml +++ b/trunk/dist/game/data/skillTrees/4rthClass/YulTrickster.xml @@ -16,7 +16,6 @@ - diff --git a/trunk/dist/game/data/skillTrees/ErtheiaClass/Eviscerator.xml b/trunk/dist/game/data/skillTrees/ErtheiaClass/Eviscerator.xml index 0764095c31..c761ea50cc 100644 --- a/trunk/dist/game/data/skillTrees/ErtheiaClass/Eviscerator.xml +++ b/trunk/dist/game/data/skillTrees/ErtheiaClass/Eviscerator.xml @@ -3,6 +3,9 @@ + + + diff --git a/trunk/dist/game/data/skillTrees/ErtheiaClass/Sayha'sSeer.xml b/trunk/dist/game/data/skillTrees/ErtheiaClass/Sayha'sSeer.xml index 5e1bb49c86..f3698d48a0 100644 --- a/trunk/dist/game/data/skillTrees/ErtheiaClass/Sayha'sSeer.xml +++ b/trunk/dist/game/data/skillTrees/ErtheiaClass/Sayha'sSeer.xml @@ -3,6 +3,9 @@ + + + diff --git a/trunk/dist/game/data/skillTrees/raceSkillTree.xml b/trunk/dist/game/data/skillTrees/raceSkillTree.xml index a712131107..16ceacc9f0 100644 --- a/trunk/dist/game/data/skillTrees/raceSkillTree.xml +++ b/trunk/dist/game/data/skillTrees/raceSkillTree.xml @@ -26,9 +26,4 @@ - - - - - \ No newline at end of file diff --git a/trunk/java/com/l2jserver/gameserver/data/xml/impl/SkillTreesData.java b/trunk/java/com/l2jserver/gameserver/data/xml/impl/SkillTreesData.java index e5f1d02a0f..86eed294ea 100644 --- a/trunk/java/com/l2jserver/gameserver/data/xml/impl/SkillTreesData.java +++ b/trunk/java/com/l2jserver/gameserver/data/xml/impl/SkillTreesData.java @@ -653,6 +653,11 @@ public final class SkillTreesData implements IXmlReader return getAvailableSkills(player, classId, includeByFs, includeAutoGet, player); } + public List getAvailableSkillsList(L2PcInstance player, ClassId classId, boolean includeByFs, boolean includeAutoGet) + { + return getAvailableSkillsList(player, classId, includeByFs, includeAutoGet, player); + } + /** * Gets the available skills. * @param player the learning skill player @@ -715,6 +720,56 @@ public final class SkillTreesData implements IXmlReader return result; } + private List getAvailableSkillsList(L2PcInstance player, ClassId classId, boolean includeByFs, boolean includeAutoGet, ISkillsHolder holder) + { + final List result = new LinkedList<>(); + final Map skills = getCompleteClassSkillTree(classId); + + if (skills.isEmpty()) + { + // The Skill Tree for this class is undefined. + LOGGER.warning(getClass().getSimpleName() + ": Skilltree for class " + classId + " is not defined!"); + return result; + } + + final boolean isAwaken = player.isInCategory(CategoryType.AWAKEN_GROUP); + + for (Entry entry : skills.entrySet()) + { + final L2SkillLearn skill = entry.getValue(); + + // Skill level doesn't exist. + if (SkillData.getInstance().getMaxLevel(skill.getSkillId()) < skill.getSkillLevel()) + { + continue; + } + + if (((skill.getSkillId() == CommonSkill.DIVINE_INSPIRATION.getId()) && (!Config.AUTO_LEARN_DIVINE_INSPIRATION && includeAutoGet) && !player.isGM()) || (!includeAutoGet && skill.isAutoGet()) || (!includeByFs && skill.isLearnedByFS()) || isRemoveSkill(classId, skill.getSkillId())) + { + continue; + } + + if (isAwaken && !isCurrentClassSkillNoParent(classId, entry.getKey())) + { + continue; + } + + final Skill oldSkill = holder.getKnownSkill(skill.getSkillId()); + if (oldSkill != null) + { + if (oldSkill.getLevel() == (skill.getSkillLevel() - 1)) + { + result.add(skill); + } + } + else if (skill.getSkillLevel() == 1) + { + result.add(skill); + } + } + return result; + } + public Collection getAllAvailableSkills(L2PcInstance player, ClassId classId, boolean includeByFs, boolean includeAutoGet) { // Get available skills @@ -1463,11 +1518,20 @@ public final class SkillTreesData implements IXmlReader for (Skill skill : player.getAllSkills()) { final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getId()); + final int Lvl_cur = skill.getLevel(); final int hashCode = SkillData.getSkillHashCode(skill.getId(), maxLvl); + final int hash_cur = SkillData.getSkillHashCode(skill.getId(), Lvl_cur); // must in parent class + final int hash_curx = SkillData.getSkillHashCode(skill.getId(), Lvl_cur + 1); // some skill not update maxlvl in stats - if (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isRemoveSkill(player.getClassId(), skill.getId())) + final int _classlv = player.getClassId().level(); + ClassId _classId = player.getClassId(); + for (int i = 0; i < _classlv; i++) { - player.removeSkill(skill, true, true); + _classId = _classId.getParent(); + if (isCurrentClassSkillNoParent(_classId, hash_cur) && (!isCurrentClassSkillNoParent(player.getClassId(), hashCode) && !isCurrentClassSkillNoParent(player.getClassId(), hash_curx)) && !isRemoveSkill(player.getClassId(), skill.getId())) + { + player.removeSkill(skill, true, true); + } } } } diff --git a/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java b/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java index 3189dab022..326fc66ee7 100644 --- a/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java +++ b/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java @@ -2657,7 +2657,7 @@ public final class L2PcInstance extends L2Playable // Remove skills if required. for (Skill sk : getSkills().values()) { - final L2SkillLearn s = SkillTreesData.getInstance().getSkillLearn(sk.getId(), sk.getLevel(), this); + final L2SkillLearn s = SkillTreesData.getInstance().getSkillLearn(sk.getId(), 1, this); if ((s != null) && !s.getRemoveSkills().isEmpty()) { s.getRemoveSkills().forEach(skillId -> diff --git a/trunk/java/com/l2jserver/gameserver/network/serverpackets/AcquireSkillList.java b/trunk/java/com/l2jserver/gameserver/network/serverpackets/AcquireSkillList.java index 0fad517dde..c36cebf349 100644 --- a/trunk/java/com/l2jserver/gameserver/network/serverpackets/AcquireSkillList.java +++ b/trunk/java/com/l2jserver/gameserver/network/serverpackets/AcquireSkillList.java @@ -40,8 +40,7 @@ public class AcquireSkillList extends L2GameServerPacket public AcquireSkillList(L2PcInstance activeChar) { _activeChar = activeChar; - _learnable = SkillTreesData.getInstance().getAvailableSkills(activeChar, activeChar.getClassId(), false, false); - _learnable.addAll(SkillTreesData.getInstance().getNextAvailableSkills(activeChar, activeChar.getClassId(), false, false)); + _learnable = SkillTreesData.getInstance().getAvailableSkillsList(activeChar, activeChar.getClassId(), false, false); } @Override