From d7411005b4afd756f55c4b24807d70ba1e13a6f2 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 18 Jun 2022 00:14:46 +0000 Subject: [PATCH] Ability skill count check. --- .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ .../gameserver/model/actor/Player.java | 23 +++++++++++++++++++ 12 files changed, 276 insertions(+) diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Player.java index 03cc97bd8c..e7a59a5cc7 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7655,6 +7655,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/Player.java index f66fe41530..2ca89dfdd9 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7658,6 +7658,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/Player.java index a57371c3e3..957f26f45d 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7660,6 +7660,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Player.java index 834dd8b7cb..b924e9f2dc 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7655,6 +7655,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Player.java index 491563e459..a796bc6318 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7672,6 +7672,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Player.java index 55e5e148e8..b05c24b25d 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7685,6 +7685,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Player.java index e986f6fef1..07e5b341d1 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7686,6 +7686,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java index 1bdc661cb7..89c6707bf0 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7701,6 +7701,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java index bd77655add..7d1494e422 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7803,6 +7803,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java index 240c7ade6c..c0c21c858a 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7829,6 +7829,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java index 29b6a6c482..5d51cd9ef7 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7866,6 +7866,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /** diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java index 3ef277e5b6..4e908ebf7d 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -7894,6 +7894,29 @@ public class Player extends Playable // Learn known dualclass skills. restoreDualSkills(); + + // Check ability skill count. + int count = 0; + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + count++; + } + } + // Too many ability skills. Remove them all. + if ((count > (Config.PLAYER_MAXIMUM_LEVEL - 85)) || (count > getAbilityPointsUsed())) + { + for (SkillLearn sk : SkillTreeData.getInstance().getAbilitySkillTree().values()) + { + final Skill knownSkill = getKnownSkill(sk.getSkillId()); + if ((knownSkill != null) && (knownSkill.getLevel() == sk.getSkillLevel())) + { + removeSkill(knownSkill, false); + } + } + } } /**