diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/config/Character.ini b/L2J_Mobius_1.0_Ertheia/dist/game/config/Character.ini index 4587c68f49..6bdd1ac076 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/config/Character.ini +++ b/L2J_Mobius_1.0_Ertheia/dist/game/config/Character.ini @@ -209,6 +209,46 @@ HardinEnableDualClassChecks = True # Default: False HardinEnableErtheias = False +# Skills removed upon changing class. +# Example: +# ClassId1,SkillId1,SkillId2...;\ +# ClassId2,SkillId1,SkillId2...;\ +# ClassId3,SkillId1,SkillId2... +HardinRemovedSkills = 148,10104,10065,10098,19558,10097,10042,19552;\ +149,10105,10069,10099,10102,10068,19559,19553;\ +150,10106,10076,10075,19567,10100,19555,10103,10092,10073;\ +151,10107,19566,10075,10101,19556,10094,10079,10080,19561;\ +152,10304,345,10318,7,10320,10301,430,10324,10332,261;\ +153,10306,48,10325,10321,10333,286,320;\ +154,176,10311,10315,94,10334,139;\ +155,10309,10335,10308,10322,10301,10324,10327,346,35,222;\ +156,10311,10315,10329,11620,10312,19109,10330,10341,19089,172;\ +157,10328,10311,483,10316,10340,1514,485,793;\ +158,10561,19301,531,10560,10558,19299,10703,10562;\ +159,10608,10705,531,10610,10606,410,19303,10609,10522;\ +160,10655,531,10704,10656,10653,19305,410,10522;\ +161,10701,10700,19309,531,19311,19306,10522;\ +162,10811;10952;10810;\ +163,10857,10953,10856;\ +164,10904,10954,10903;\ +165,10951,10955,19203,10950;\ +166,11124,11106,19408,11024,11008,11010,11009,11007,11134,11153;\ +167,11151,11121,11152,11010,19313,11027,1262,1129,19405,1334,11135;\ +168,11176,11112,19408,11008,19312,11025,11136;\ +169,11125,11118,11026,19408,19313,11009,11137;\ +170,11226,11115,19408,791,11138,19313,11007,11028,11225;\ +171,11581,11524,11525,19430,19425,11580,11509,19421,19204,19427,11508,11529,11530,11532,19422;\ +172,11583,11552,11620,19431,19425,19443,11509,11607,11608,11613,19228,11609,19205,437,19231,11605,19433,19421,19423,19434;\ +173,11606,11585,11552,19425,19426,19421,11511,11508,11610,11611,367,19206,11614,11612,19424,19232,19436;\ +174,19437,19444,19445,19446,11588,11552,11620,11524,11525,19430,1416,11509,11558,11559,11557,11604,11508;\ +175,19444,19445,19446,19441,19503,1244,19430,19425,11509,19207,19448,19421,11508,19438;\ +176,11350,11387,11394,11320,11322,11321,11369,11370,11359,11347;\ +177,11353,11393,11389,11363,11371,11330,11329,11331,11372,11361,11348;\ +178,11356,11391,11395,11374,11338,11339,11365,11340,11373,11349;\ +179,1425,19209,11851,11861,11850;\ +180,11853,19210,11852,11862;\ +181,11855,19212,11856,11854,11863,11859 + # --------------------------------------------------------------------------- # Summons configuration diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java index 66b7e0f8e6..74c93e9520 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland.Hardin; +import java.util.List; + import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.xml.impl.ClassListData; import com.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -98,11 +100,11 @@ public final class Hardin extends AbstractNpcAI } if (Config.HARDIN_RETAIL_LIMITATIONS) { - if (c == ClassId.TYRR_MAESTRO && (player.getRace() != Race.DWARF)) + if ((c == ClassId.TYRR_MAESTRO) && (player.getRace() != Race.DWARF)) { continue; } - if (c == ClassId.ISS_DOMINATOR && (player.getRace() != Race.ORC)) + if ((c == ClassId.ISS_DOMINATOR) && (player.getRace() != Race.ORC)) { continue; } @@ -153,6 +155,14 @@ public final class Hardin extends AbstractNpcAI { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); } + final List removedSkillIds = Config.HARDIN_REMOVED_SKILLS.get(newClass.getId()); + if (removedSkillIds != null) + { + for (int skillId : removedSkillIds) + { + player.removeSkill(skillId); + } + } player.store(false); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java index 8ea9587fb2..541e33b06f 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java @@ -759,6 +759,7 @@ public final class Config public static boolean HARDIN_RETAIL_LIMITATIONS; public static boolean HARDIN_ENABLE_DUALCLASS_CHECKS; public static boolean HARDIN_ENABLE_ERTHEIAS; + public static Map> HARDIN_REMOVED_SKILLS; // -------------------------------------------------- // Vitality Settings @@ -1501,6 +1502,22 @@ public final class Config HARDIN_RETAIL_LIMITATIONS = Character.getBoolean("HardinRetailLimitations", true); HARDIN_ENABLE_DUALCLASS_CHECKS = Character.getBoolean("HardinEnableDualClassChecks", true); HARDIN_ENABLE_ERTHEIAS = Character.getBoolean("HardinEnableErtheias", false); + HARDIN_REMOVED_SKILLS = new HashMap<>(); + for (String classRow : Character.getString("HardinRemovedSkills", "").split(";")) + { + if (classRow.isEmpty()) + { + continue; + } + final String[] classInfo = classRow.split(","); + final int classId = Integer.parseInt(classInfo[0]); + HARDIN_REMOVED_SKILLS.put(classId, new ArrayList<>()); + for (int i = 1; i < classInfo.length; i++) + { + HARDIN_REMOVED_SKILLS.get(classId).add(Integer.parseInt(classInfo[i])); + } + } + ENABLE_VITALITY = Character.getBoolean("EnableVitality", true); STARTING_VITALITY_POINTS = Character.getInt("StartingVitalityPoints", 140000); RAIDBOSS_USE_VITALITY = Character.getBoolean("RaidbossUseVitality", true); diff --git a/L2J_Mobius_2.5_Underground/dist/game/config/Character.ini b/L2J_Mobius_2.5_Underground/dist/game/config/Character.ini index 4b207362b3..08884d7286 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/config/Character.ini +++ b/L2J_Mobius_2.5_Underground/dist/game/config/Character.ini @@ -209,6 +209,46 @@ HardinEnableDualClassChecks = True # Default: False HardinEnableErtheias = False +# Skills removed upon changing class. +# Example: +# ClassId1,SkillId1,SkillId2...;\ +# ClassId2,SkillId1,SkillId2...;\ +# ClassId3,SkillId1,SkillId2... +HardinRemovedSkills = 148,10104,10065,10098,19558,10097,10042,19552;\ +149,10105,10069,10099,10102,10068,19559,19553;\ +150,10106,10076,10075,19567,10100,19555,10103,10092,10073;\ +151,10107,19566,10075,10101,19556,10094,10079,10080,19561;\ +152,10304,345,10318,7,10320,10301,430,10324,10332,261;\ +153,10306,48,10325,10321,10333,286,320;\ +154,176,10311,10315,94,10334,139;\ +155,10309,10335,10308,10322,10301,10324,10327,346,35,222;\ +156,10311,10315,10329,11620,10312,19109,10330,10341,19089,172;\ +157,10328,10311,483,10316,10340,1514,485,793;\ +158,10561,19301,531,10560,10558,19299,10703,10562;\ +159,10608,10705,531,10610,10606,410,19303,10609,10522;\ +160,10655,531,10704,10656,10653,19305,410,10522;\ +161,10701,10700,19309,531,19311,19306,10522;\ +162,10811;10952;10810;\ +163,10857,10953,10856;\ +164,10904,10954,10903;\ +165,10951,10955,19203,10950;\ +166,11124,11106,19408,11024,11008,11010,11009,11007,11134,11153;\ +167,11151,11121,11152,11010,19313,11027,1262,1129,19405,1334,11135;\ +168,11176,11112,19408,11008,19312,11025,11136;\ +169,11125,11118,11026,19408,19313,11009,11137;\ +170,11226,11115,19408,791,11138,19313,11007,11028,11225;\ +171,11581,11524,11525,19430,19425,11580,11509,19421,19204,19427,11508,11529,11530,11532,19422;\ +172,11583,11552,11620,19431,19425,19443,11509,11607,11608,11613,19228,11609,19205,437,19231,11605,19433,19421,19423,19434;\ +173,11606,11585,11552,19425,19426,19421,11511,11508,11610,11611,367,19206,11614,11612,19424,19232,19436;\ +174,19437,19444,19445,19446,11588,11552,11620,11524,11525,19430,1416,11509,11558,11559,11557,11604,11508;\ +175,19444,19445,19446,19441,19503,1244,19430,19425,11509,19207,19448,19421,11508,19438;\ +176,11350,11387,11394,11320,11322,11321,11369,11370,11359,11347;\ +177,11353,11393,11389,11363,11371,11330,11329,11331,11372,11361,11348;\ +178,11356,11391,11395,11374,11338,11339,11365,11340,11373,11349;\ +179,1425,19209,11851,11861,11850;\ +180,11853,19210,11852,11862;\ +181,11855,19212,11856,11854,11863,11859 + # --------------------------------------------------------------------------- # Summons configuration diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java index 66b7e0f8e6..74c93e9520 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland.Hardin; +import java.util.List; + import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.xml.impl.ClassListData; import com.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -98,11 +100,11 @@ public final class Hardin extends AbstractNpcAI } if (Config.HARDIN_RETAIL_LIMITATIONS) { - if (c == ClassId.TYRR_MAESTRO && (player.getRace() != Race.DWARF)) + if ((c == ClassId.TYRR_MAESTRO) && (player.getRace() != Race.DWARF)) { continue; } - if (c == ClassId.ISS_DOMINATOR && (player.getRace() != Race.ORC)) + if ((c == ClassId.ISS_DOMINATOR) && (player.getRace() != Race.ORC)) { continue; } @@ -153,6 +155,14 @@ public final class Hardin extends AbstractNpcAI { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); } + final List removedSkillIds = Config.HARDIN_REMOVED_SKILLS.get(newClass.getId()); + if (removedSkillIds != null) + { + for (int skillId : removedSkillIds) + { + player.removeSkill(skillId); + } + } player.store(false); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java index fca8bfdea6..f9d06c3b63 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java @@ -766,6 +766,7 @@ public final class Config public static boolean HARDIN_RETAIL_LIMITATIONS; public static boolean HARDIN_ENABLE_DUALCLASS_CHECKS; public static boolean HARDIN_ENABLE_ERTHEIAS; + public static Map> HARDIN_REMOVED_SKILLS; // -------------------------------------------------- // Vitality Settings @@ -1516,6 +1517,22 @@ public final class Config HARDIN_RETAIL_LIMITATIONS = Character.getBoolean("HardinRetailLimitations", true); HARDIN_ENABLE_DUALCLASS_CHECKS = Character.getBoolean("HardinEnableDualClassChecks", true); HARDIN_ENABLE_ERTHEIAS = Character.getBoolean("HardinEnableErtheias", false); + HARDIN_REMOVED_SKILLS = new HashMap<>(); + for (String classRow : Character.getString("HardinRemovedSkills", "").split(";")) + { + if (classRow.isEmpty()) + { + continue; + } + final String[] classInfo = classRow.split(","); + final int classId = Integer.parseInt(classInfo[0]); + HARDIN_REMOVED_SKILLS.put(classId, new ArrayList<>()); + for (int i = 1; i < classInfo.length; i++) + { + HARDIN_REMOVED_SKILLS.get(classId).add(Integer.parseInt(classInfo[i])); + } + } + ENABLE_VITALITY = Character.getBoolean("EnableVitality", true); STARTING_VITALITY_POINTS = Character.getInt("StartingVitalityPoints", 140000); RAIDBOSS_USE_VITALITY = Character.getBoolean("RaidbossUseVitality", true); diff --git a/L2J_Mobius_3.0_Helios/dist/game/config/Character.ini b/L2J_Mobius_3.0_Helios/dist/game/config/Character.ini index 4b207362b3..08884d7286 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/config/Character.ini +++ b/L2J_Mobius_3.0_Helios/dist/game/config/Character.ini @@ -209,6 +209,46 @@ HardinEnableDualClassChecks = True # Default: False HardinEnableErtheias = False +# Skills removed upon changing class. +# Example: +# ClassId1,SkillId1,SkillId2...;\ +# ClassId2,SkillId1,SkillId2...;\ +# ClassId3,SkillId1,SkillId2... +HardinRemovedSkills = 148,10104,10065,10098,19558,10097,10042,19552;\ +149,10105,10069,10099,10102,10068,19559,19553;\ +150,10106,10076,10075,19567,10100,19555,10103,10092,10073;\ +151,10107,19566,10075,10101,19556,10094,10079,10080,19561;\ +152,10304,345,10318,7,10320,10301,430,10324,10332,261;\ +153,10306,48,10325,10321,10333,286,320;\ +154,176,10311,10315,94,10334,139;\ +155,10309,10335,10308,10322,10301,10324,10327,346,35,222;\ +156,10311,10315,10329,11620,10312,19109,10330,10341,19089,172;\ +157,10328,10311,483,10316,10340,1514,485,793;\ +158,10561,19301,531,10560,10558,19299,10703,10562;\ +159,10608,10705,531,10610,10606,410,19303,10609,10522;\ +160,10655,531,10704,10656,10653,19305,410,10522;\ +161,10701,10700,19309,531,19311,19306,10522;\ +162,10811;10952;10810;\ +163,10857,10953,10856;\ +164,10904,10954,10903;\ +165,10951,10955,19203,10950;\ +166,11124,11106,19408,11024,11008,11010,11009,11007,11134,11153;\ +167,11151,11121,11152,11010,19313,11027,1262,1129,19405,1334,11135;\ +168,11176,11112,19408,11008,19312,11025,11136;\ +169,11125,11118,11026,19408,19313,11009,11137;\ +170,11226,11115,19408,791,11138,19313,11007,11028,11225;\ +171,11581,11524,11525,19430,19425,11580,11509,19421,19204,19427,11508,11529,11530,11532,19422;\ +172,11583,11552,11620,19431,19425,19443,11509,11607,11608,11613,19228,11609,19205,437,19231,11605,19433,19421,19423,19434;\ +173,11606,11585,11552,19425,19426,19421,11511,11508,11610,11611,367,19206,11614,11612,19424,19232,19436;\ +174,19437,19444,19445,19446,11588,11552,11620,11524,11525,19430,1416,11509,11558,11559,11557,11604,11508;\ +175,19444,19445,19446,19441,19503,1244,19430,19425,11509,19207,19448,19421,11508,19438;\ +176,11350,11387,11394,11320,11322,11321,11369,11370,11359,11347;\ +177,11353,11393,11389,11363,11371,11330,11329,11331,11372,11361,11348;\ +178,11356,11391,11395,11374,11338,11339,11365,11340,11373,11349;\ +179,1425,19209,11851,11861,11850;\ +180,11853,19210,11852,11862;\ +181,11855,19212,11856,11854,11863,11859 + # --------------------------------------------------------------------------- # Summons configuration diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java index 66b7e0f8e6..74c93e9520 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland.Hardin; +import java.util.List; + import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.xml.impl.ClassListData; import com.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -98,11 +100,11 @@ public final class Hardin extends AbstractNpcAI } if (Config.HARDIN_RETAIL_LIMITATIONS) { - if (c == ClassId.TYRR_MAESTRO && (player.getRace() != Race.DWARF)) + if ((c == ClassId.TYRR_MAESTRO) && (player.getRace() != Race.DWARF)) { continue; } - if (c == ClassId.ISS_DOMINATOR && (player.getRace() != Race.ORC)) + if ((c == ClassId.ISS_DOMINATOR) && (player.getRace() != Race.ORC)) { continue; } @@ -153,6 +155,14 @@ public final class Hardin extends AbstractNpcAI { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); } + final List removedSkillIds = Config.HARDIN_REMOVED_SKILLS.get(newClass.getId()); + if (removedSkillIds != null) + { + for (int skillId : removedSkillIds) + { + player.removeSkill(skillId); + } + } player.store(false); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java index 861533743a..17f3269c91 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java @@ -767,6 +767,7 @@ public final class Config public static boolean HARDIN_RETAIL_LIMITATIONS; public static boolean HARDIN_ENABLE_DUALCLASS_CHECKS; public static boolean HARDIN_ENABLE_ERTHEIAS; + public static Map> HARDIN_REMOVED_SKILLS; // -------------------------------------------------- // Vitality Settings @@ -1524,6 +1525,22 @@ public final class Config HARDIN_RETAIL_LIMITATIONS = Character.getBoolean("HardinRetailLimitations", true); HARDIN_ENABLE_DUALCLASS_CHECKS = Character.getBoolean("HardinEnableDualClassChecks", true); HARDIN_ENABLE_ERTHEIAS = Character.getBoolean("HardinEnableErtheias", false); + HARDIN_REMOVED_SKILLS = new HashMap<>(); + for (String classRow : Character.getString("HardinRemovedSkills", "").split(";")) + { + if (classRow.isEmpty()) + { + continue; + } + final String[] classInfo = classRow.split(","); + final int classId = Integer.parseInt(classInfo[0]); + HARDIN_REMOVED_SKILLS.put(classId, new ArrayList<>()); + for (int i = 1; i < classInfo.length; i++) + { + HARDIN_REMOVED_SKILLS.get(classId).add(Integer.parseInt(classInfo[i])); + } + } + ENABLE_VITALITY = Character.getBoolean("EnableVitality", true); STARTING_VITALITY_POINTS = Character.getInt("StartingVitalityPoints", 140000); RAIDBOSS_USE_VITALITY = Character.getBoolean("RaidbossUseVitality", true); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/config/Character.ini b/L2J_Mobius_4.0_GrandCrusade/dist/game/config/Character.ini index 8e91be3fa1..7e50e643b0 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/config/Character.ini +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/config/Character.ini @@ -209,6 +209,46 @@ HardinEnableDualClassChecks = True # Default: False HardinEnableErtheias = False +# Skills removed upon changing class. +# Example: +# ClassId1,SkillId1,SkillId2...;\ +# ClassId2,SkillId1,SkillId2...;\ +# ClassId3,SkillId1,SkillId2... +HardinRemovedSkills = 148,10104,10065,10098,19558,10097,10042,19552;\ +149,10105,10069,10099,10102,10068,19559,19553;\ +150,10106,10076,10075,19567,10100,19555,10103,10092,10073;\ +151,10107,19566,10075,10101,19556,10094,10079,10080,19561;\ +152,10304,345,10318,7,10320,10301,430,10324,10332,261;\ +153,10306,48,10325,10321,10333,286,320;\ +154,176,10311,10315,94,10334,139;\ +155,10309,10335,10308,10322,10301,10324,10327,346,35,222;\ +156,10311,10315,10329,11620,10312,19109,10330,10341,19089,172;\ +157,10328,10311,483,10316,10340,1514,485,793;\ +158,10561,19301,531,10560,10558,19299,10703,10562;\ +159,10608,10705,531,10610,10606,410,19303,10609,10522;\ +160,10655,531,10704,10656,10653,19305,410,10522;\ +161,10701,10700,19309,531,19311,19306,10522;\ +162,10811;10952;10810;\ +163,10857,10953,10856;\ +164,10904,10954,10903;\ +165,10951,10955,19203,10950;\ +166,11124,11106,19408,11024,11008,11010,11009,11007,11134,11153;\ +167,11151,11121,11152,11010,19313,11027,1262,1129,19405,1334,11135;\ +168,11176,11112,19408,11008,19312,11025,11136;\ +169,11125,11118,11026,19408,19313,11009,11137;\ +170,11226,11115,19408,791,11138,19313,11007,11028,11225;\ +171,11581,11524,11525,19430,19425,11580,11509,19421,19204,19427,11508,11529,11530,11532,19422;\ +172,11583,11552,11620,19431,19425,19443,11509,11607,11608,11613,19228,11609,19205,437,19231,11605,19433,19421,19423,19434;\ +173,11606,11585,11552,19425,19426,19421,11511,11508,11610,11611,367,19206,11614,11612,19424,19232,19436;\ +174,19437,19444,19445,19446,11588,11552,11620,11524,11525,19430,1416,11509,11558,11559,11557,11604,11508;\ +175,19444,19445,19446,19441,19503,1244,19430,19425,11509,19207,19448,19421,11508,19438;\ +176,11350,11387,11394,11320,11322,11321,11369,11370,11359,11347;\ +177,11353,11393,11389,11363,11371,11330,11329,11331,11372,11361,11348;\ +178,11356,11391,11395,11374,11338,11339,11365,11340,11373,11349;\ +179,1425,19209,11851,11861,11850;\ +180,11853,19210,11852,11862;\ +181,11855,19212,11856,11854,11863,11859 + # --------------------------------------------------------------------------- # Summons configuration diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java index 66b7e0f8e6..74c93e9520 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland.Hardin; +import java.util.List; + import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.xml.impl.ClassListData; import com.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -98,11 +100,11 @@ public final class Hardin extends AbstractNpcAI } if (Config.HARDIN_RETAIL_LIMITATIONS) { - if (c == ClassId.TYRR_MAESTRO && (player.getRace() != Race.DWARF)) + if ((c == ClassId.TYRR_MAESTRO) && (player.getRace() != Race.DWARF)) { continue; } - if (c == ClassId.ISS_DOMINATOR && (player.getRace() != Race.ORC)) + if ((c == ClassId.ISS_DOMINATOR) && (player.getRace() != Race.ORC)) { continue; } @@ -153,6 +155,14 @@ public final class Hardin extends AbstractNpcAI { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); } + final List removedSkillIds = Config.HARDIN_REMOVED_SKILLS.get(newClass.getId()); + if (removedSkillIds != null) + { + for (int skillId : removedSkillIds) + { + player.removeSkill(skillId); + } + } player.store(false); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/Config.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/Config.java index 23c9037299..ef5eccccae 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/Config.java @@ -760,6 +760,7 @@ public final class Config public static boolean HARDIN_RETAIL_LIMITATIONS; public static boolean HARDIN_ENABLE_DUALCLASS_CHECKS; public static boolean HARDIN_ENABLE_ERTHEIAS; + public static Map> HARDIN_REMOVED_SKILLS; // -------------------------------------------------- // Vitality Settings @@ -1517,6 +1518,22 @@ public final class Config HARDIN_RETAIL_LIMITATIONS = Character.getBoolean("HardinRetailLimitations", true); HARDIN_ENABLE_DUALCLASS_CHECKS = Character.getBoolean("HardinEnableDualClassChecks", true); HARDIN_ENABLE_ERTHEIAS = Character.getBoolean("HardinEnableErtheias", false); + HARDIN_REMOVED_SKILLS = new HashMap<>(); + for (String classRow : Character.getString("HardinRemovedSkills", "").split(";")) + { + if (classRow.isEmpty()) + { + continue; + } + final String[] classInfo = classRow.split(","); + final int classId = Integer.parseInt(classInfo[0]); + HARDIN_REMOVED_SKILLS.put(classId, new ArrayList<>()); + for (int i = 1; i < classInfo.length; i++) + { + HARDIN_REMOVED_SKILLS.get(classId).add(Integer.parseInt(classInfo[i])); + } + } + ENABLE_VITALITY = Character.getBoolean("EnableVitality", true); STARTING_VITALITY_POINTS = Character.getInt("StartingVitalityPoints", 140000); RAIDBOSS_USE_VITALITY = Character.getBoolean("RaidbossUseVitality", true); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/config/Character.ini b/L2J_Mobius_5.0_Salvation/dist/game/config/Character.ini index 052d535ea1..54dd991e62 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/config/Character.ini +++ b/L2J_Mobius_5.0_Salvation/dist/game/config/Character.ini @@ -209,6 +209,46 @@ HardinEnableDualClassChecks = True # Default: False HardinEnableErtheias = False +# Skills removed upon changing class. +# Example: +# ClassId1,SkillId1,SkillId2...;\ +# ClassId2,SkillId1,SkillId2...;\ +# ClassId3,SkillId1,SkillId2... +HardinRemovedSkills = 148,10104,10065,10098,19558,10097,10042,19552;\ +149,10105,10069,10099,10102,10068,19559,19553;\ +150,10106,10076,10075,19567,10100,19555,10103,10092,10073;\ +151,10107,19566,10075,10101,19556,10094,10079,10080,19561;\ +152,10304,345,10318,7,10320,10301,430,10324,10332,261;\ +153,10306,48,10325,10321,10333,286,320;\ +154,176,10311,10315,94,10334,139;\ +155,10309,10335,10308,10322,10301,10324,10327,346,35,222;\ +156,10311,10315,10329,11620,10312,19109,10330,10341,19089,172;\ +157,10328,10311,483,10316,10340,1514,485,793;\ +158,10561,19301,531,10560,10558,19299,10703,10562;\ +159,10608,10705,531,10610,10606,410,19303,10609,10522;\ +160,10655,531,10704,10656,10653,19305,410,10522;\ +161,10701,10700,19309,531,19311,19306,10522;\ +162,10811;10952;10810;\ +163,10857,10953,10856;\ +164,10904,10954,10903;\ +165,10951,10955,19203,10950;\ +166,11124,11106,19408,11024,11008,11010,11009,11007,11134,11153;\ +167,11151,11121,11152,11010,19313,11027,1262,1129,19405,1334,11135;\ +168,11176,11112,19408,11008,19312,11025,11136;\ +169,11125,11118,11026,19408,19313,11009,11137;\ +170,11226,11115,19408,791,11138,19313,11007,11028,11225;\ +171,11581,11524,11525,19430,19425,11580,11509,19421,19204,19427,11508,11529,11530,11532,19422;\ +172,11583,11552,11620,19431,19425,19443,11509,11607,11608,11613,19228,11609,19205,437,19231,11605,19433,19421,19423,19434;\ +173,11606,11585,11552,19425,19426,19421,11511,11508,11610,11611,367,19206,11614,11612,19424,19232,19436;\ +174,19437,19444,19445,19446,11588,11552,11620,11524,11525,19430,1416,11509,11558,11559,11557,11604,11508;\ +175,19444,19445,19446,19441,19503,1244,19430,19425,11509,19207,19448,19421,11508,19438;\ +176,11350,11387,11394,11320,11322,11321,11369,11370,11359,11347;\ +177,11353,11393,11389,11363,11371,11330,11329,11331,11372,11361,11348;\ +178,11356,11391,11395,11374,11338,11339,11365,11340,11373,11349;\ +179,1425,19209,11851,11861,11850;\ +180,11853,19210,11852,11862;\ +181,11855,19212,11856,11854,11863,11859 + # --------------------------------------------------------------------------- # Summons configuration diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java index 66b7e0f8e6..74c93e9520 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland.Hardin; +import java.util.List; + import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.xml.impl.ClassListData; import com.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -98,11 +100,11 @@ public final class Hardin extends AbstractNpcAI } if (Config.HARDIN_RETAIL_LIMITATIONS) { - if (c == ClassId.TYRR_MAESTRO && (player.getRace() != Race.DWARF)) + if ((c == ClassId.TYRR_MAESTRO) && (player.getRace() != Race.DWARF)) { continue; } - if (c == ClassId.ISS_DOMINATOR && (player.getRace() != Race.ORC)) + if ((c == ClassId.ISS_DOMINATOR) && (player.getRace() != Race.ORC)) { continue; } @@ -153,6 +155,14 @@ public final class Hardin extends AbstractNpcAI { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); } + final List removedSkillIds = Config.HARDIN_REMOVED_SKILLS.get(newClass.getId()); + if (removedSkillIds != null) + { + for (int skillId : removedSkillIds) + { + player.removeSkill(skillId); + } + } player.store(false); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/Config.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/Config.java index 2793f6d96a..3ace6d94a3 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/Config.java @@ -755,6 +755,7 @@ public final class Config public static boolean HARDIN_RETAIL_LIMITATIONS; public static boolean HARDIN_ENABLE_DUALCLASS_CHECKS; public static boolean HARDIN_ENABLE_ERTHEIAS; + public static Map> HARDIN_REMOVED_SKILLS; // -------------------------------------------------- // Vitality Settings @@ -1520,6 +1521,22 @@ public final class Config HARDIN_RETAIL_LIMITATIONS = Character.getBoolean("HardinRetailLimitations", true); HARDIN_ENABLE_DUALCLASS_CHECKS = Character.getBoolean("HardinEnableDualClassChecks", true); HARDIN_ENABLE_ERTHEIAS = Character.getBoolean("HardinEnableErtheias", false); + HARDIN_REMOVED_SKILLS = new HashMap<>(); + for (String classRow : Character.getString("HardinRemovedSkills", "").split(";")) + { + if (classRow.isEmpty()) + { + continue; + } + final String[] classInfo = classRow.split(","); + final int classId = Integer.parseInt(classInfo[0]); + HARDIN_REMOVED_SKILLS.put(classId, new ArrayList<>()); + for (int i = 1; i < classInfo.length; i++) + { + HARDIN_REMOVED_SKILLS.get(classId).add(Integer.parseInt(classInfo[i])); + } + } + ENABLE_VITALITY = Character.getBoolean("EnableVitality", true); STARTING_VITALITY_POINTS = Character.getInt("StartingVitalityPoints", 140000); RAIDBOSS_USE_VITALITY = Character.getBoolean("RaidbossUseVitality", true); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/config/Character.ini b/L2J_Mobius_5.5_EtinasFate/dist/game/config/Character.ini index 052d535ea1..54dd991e62 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/config/Character.ini +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/config/Character.ini @@ -209,6 +209,46 @@ HardinEnableDualClassChecks = True # Default: False HardinEnableErtheias = False +# Skills removed upon changing class. +# Example: +# ClassId1,SkillId1,SkillId2...;\ +# ClassId2,SkillId1,SkillId2...;\ +# ClassId3,SkillId1,SkillId2... +HardinRemovedSkills = 148,10104,10065,10098,19558,10097,10042,19552;\ +149,10105,10069,10099,10102,10068,19559,19553;\ +150,10106,10076,10075,19567,10100,19555,10103,10092,10073;\ +151,10107,19566,10075,10101,19556,10094,10079,10080,19561;\ +152,10304,345,10318,7,10320,10301,430,10324,10332,261;\ +153,10306,48,10325,10321,10333,286,320;\ +154,176,10311,10315,94,10334,139;\ +155,10309,10335,10308,10322,10301,10324,10327,346,35,222;\ +156,10311,10315,10329,11620,10312,19109,10330,10341,19089,172;\ +157,10328,10311,483,10316,10340,1514,485,793;\ +158,10561,19301,531,10560,10558,19299,10703,10562;\ +159,10608,10705,531,10610,10606,410,19303,10609,10522;\ +160,10655,531,10704,10656,10653,19305,410,10522;\ +161,10701,10700,19309,531,19311,19306,10522;\ +162,10811;10952;10810;\ +163,10857,10953,10856;\ +164,10904,10954,10903;\ +165,10951,10955,19203,10950;\ +166,11124,11106,19408,11024,11008,11010,11009,11007,11134,11153;\ +167,11151,11121,11152,11010,19313,11027,1262,1129,19405,1334,11135;\ +168,11176,11112,19408,11008,19312,11025,11136;\ +169,11125,11118,11026,19408,19313,11009,11137;\ +170,11226,11115,19408,791,11138,19313,11007,11028,11225;\ +171,11581,11524,11525,19430,19425,11580,11509,19421,19204,19427,11508,11529,11530,11532,19422;\ +172,11583,11552,11620,19431,19425,19443,11509,11607,11608,11613,19228,11609,19205,437,19231,11605,19433,19421,19423,19434;\ +173,11606,11585,11552,19425,19426,19421,11511,11508,11610,11611,367,19206,11614,11612,19424,19232,19436;\ +174,19437,19444,19445,19446,11588,11552,11620,11524,11525,19430,1416,11509,11558,11559,11557,11604,11508;\ +175,19444,19445,19446,19441,19503,1244,19430,19425,11509,19207,19448,19421,11508,19438;\ +176,11350,11387,11394,11320,11322,11321,11369,11370,11359,11347;\ +177,11353,11393,11389,11363,11371,11330,11329,11331,11372,11361,11348;\ +178,11356,11391,11395,11374,11338,11339,11365,11340,11373,11349;\ +179,1425,19209,11851,11861,11850;\ +180,11853,19210,11852,11862;\ +181,11855,19212,11856,11854,11863,11859 + # --------------------------------------------------------------------------- # Summons configuration diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java index 66b7e0f8e6..74c93e9520 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland.Hardin; +import java.util.List; + import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.xml.impl.ClassListData; import com.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -98,11 +100,11 @@ public final class Hardin extends AbstractNpcAI } if (Config.HARDIN_RETAIL_LIMITATIONS) { - if (c == ClassId.TYRR_MAESTRO && (player.getRace() != Race.DWARF)) + if ((c == ClassId.TYRR_MAESTRO) && (player.getRace() != Race.DWARF)) { continue; } - if (c == ClassId.ISS_DOMINATOR && (player.getRace() != Race.ORC)) + if ((c == ClassId.ISS_DOMINATOR) && (player.getRace() != Race.ORC)) { continue; } @@ -153,6 +155,14 @@ public final class Hardin extends AbstractNpcAI { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); } + final List removedSkillIds = Config.HARDIN_REMOVED_SKILLS.get(newClass.getId()); + if (removedSkillIds != null) + { + for (int skillId : removedSkillIds) + { + player.removeSkill(skillId); + } + } player.store(false); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/Config.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/Config.java index 2793f6d96a..3ace6d94a3 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/Config.java @@ -755,6 +755,7 @@ public final class Config public static boolean HARDIN_RETAIL_LIMITATIONS; public static boolean HARDIN_ENABLE_DUALCLASS_CHECKS; public static boolean HARDIN_ENABLE_ERTHEIAS; + public static Map> HARDIN_REMOVED_SKILLS; // -------------------------------------------------- // Vitality Settings @@ -1520,6 +1521,22 @@ public final class Config HARDIN_RETAIL_LIMITATIONS = Character.getBoolean("HardinRetailLimitations", true); HARDIN_ENABLE_DUALCLASS_CHECKS = Character.getBoolean("HardinEnableDualClassChecks", true); HARDIN_ENABLE_ERTHEIAS = Character.getBoolean("HardinEnableErtheias", false); + HARDIN_REMOVED_SKILLS = new HashMap<>(); + for (String classRow : Character.getString("HardinRemovedSkills", "").split(";")) + { + if (classRow.isEmpty()) + { + continue; + } + final String[] classInfo = classRow.split(","); + final int classId = Integer.parseInt(classInfo[0]); + HARDIN_REMOVED_SKILLS.put(classId, new ArrayList<>()); + for (int i = 1; i < classInfo.length; i++) + { + HARDIN_REMOVED_SKILLS.get(classId).add(Integer.parseInt(classInfo[i])); + } + } + ENABLE_VITALITY = Character.getBoolean("EnableVitality", true); STARTING_VITALITY_POINTS = Character.getInt("StartingVitalityPoints", 140000); RAIDBOSS_USE_VITALITY = Character.getBoolean("RaidbossUseVitality", true); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/config/Character.ini b/L2J_Mobius_6.0_Fafurion/dist/game/config/Character.ini index 6ef5f9c4d1..2b919f590a 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/config/Character.ini +++ b/L2J_Mobius_6.0_Fafurion/dist/game/config/Character.ini @@ -213,6 +213,46 @@ HardinEnableDualClassChecks = True # Default: False HardinEnableErtheias = False +# Skills removed upon changing class. +# Example: +# ClassId1,SkillId1,SkillId2...;\ +# ClassId2,SkillId1,SkillId2...;\ +# ClassId3,SkillId1,SkillId2... +HardinRemovedSkills = 148,10104,10065,10098,19558,10097,10042,19552;\ +149,10105,10069,10099,10102,10068,19559,19553;\ +150,10106,10076,10075,19567,10100,19555,10103,10092,10073;\ +151,10107,19566,10075,10101,19556,10094,10079,10080,19561;\ +152,10304,345,10318,7,10320,10301,430,10324,10332,261;\ +153,10306,48,10325,10321,10333,286,320;\ +154,176,10311,10315,94,10334,139;\ +155,10309,10335,10308,10322,10301,10324,10327,346,35,222;\ +156,10311,10315,10329,11620,10312,19109,10330,10341,19089,172;\ +157,10328,10311,483,10316,10340,1514,485,793;\ +158,10561,19301,531,10560,10558,19299,10703,10562;\ +159,10608,10705,531,10610,10606,410,19303,10609,10522;\ +160,10655,531,10704,10656,10653,19305,410,10522;\ +161,10701,10700,19309,531,19311,19306,10522;\ +162,10811;10952;10810;\ +163,10857,10953,10856;\ +164,10904,10954,10903;\ +165,10951,10955,19203,10950;\ +166,11124,11106,19408,11024,11008,11010,11009,11007,11134,11153;\ +167,11151,11121,11152,11010,19313,11027,1262,1129,19405,1334,11135;\ +168,11176,11112,19408,11008,19312,11025,11136;\ +169,11125,11118,11026,19408,19313,11009,11137;\ +170,11226,11115,19408,791,11138,19313,11007,11028,11225;\ +171,11581,11524,11525,19430,19425,11580,11509,19421,19204,19427,11508,11529,11530,11532,19422;\ +172,11583,11552,11620,19431,19425,19443,11509,11607,11608,11613,19228,11609,19205,437,19231,11605,19433,19421,19423,19434;\ +173,11606,11585,11552,19425,19426,19421,11511,11508,11610,11611,367,19206,11614,11612,19424,19232,19436;\ +174,19437,19444,19445,19446,11588,11552,11620,11524,11525,19430,1416,11509,11558,11559,11557,11604,11508;\ +175,19444,19445,19446,19441,19503,1244,19430,19425,11509,19207,19448,19421,11508,19438;\ +176,11350,11387,11394,11320,11322,11321,11369,11370,11359,11347;\ +177,11353,11393,11389,11363,11371,11330,11329,11331,11372,11361,11348;\ +178,11356,11391,11395,11374,11338,11339,11365,11340,11373,11349;\ +179,1425,19209,11851,11861,11850;\ +180,11853,19210,11852,11862;\ +181,11855,19212,11856,11854,11863,11859 + # --------------------------------------------------------------------------- # Summons configuration diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java index 66b7e0f8e6..74c93e9520 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland.Hardin; +import java.util.List; + import com.l2jmobius.Config; import com.l2jmobius.gameserver.data.xml.impl.ClassListData; import com.l2jmobius.gameserver.data.xml.impl.SkillData; @@ -98,11 +100,11 @@ public final class Hardin extends AbstractNpcAI } if (Config.HARDIN_RETAIL_LIMITATIONS) { - if (c == ClassId.TYRR_MAESTRO && (player.getRace() != Race.DWARF)) + if ((c == ClassId.TYRR_MAESTRO) && (player.getRace() != Race.DWARF)) { continue; } - if (c == ClassId.ISS_DOMINATOR && (player.getRace() != Race.ORC)) + if ((c == ClassId.ISS_DOMINATOR) && (player.getRace() != Race.ORC)) { continue; } @@ -153,6 +155,14 @@ public final class Hardin extends AbstractNpcAI { player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true); } + final List removedSkillIds = Config.HARDIN_REMOVED_SKILLS.get(newClass.getId()); + if (removedSkillIds != null) + { + for (int skillId : removedSkillIds) + { + player.removeSkill(skillId); + } + } player.store(false); player.broadcastUserInfo(); player.sendSkillList(); diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/Config.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/Config.java index 13f9ec37b8..720dfbd7dc 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/Config.java @@ -756,6 +756,7 @@ public final class Config public static boolean HARDIN_RETAIL_LIMITATIONS; public static boolean HARDIN_ENABLE_DUALCLASS_CHECKS; public static boolean HARDIN_ENABLE_ERTHEIAS; + public static Map> HARDIN_REMOVED_SKILLS; // -------------------------------------------------- // Vitality Settings @@ -1528,6 +1529,22 @@ public final class Config HARDIN_RETAIL_LIMITATIONS = Character.getBoolean("HardinRetailLimitations", true); HARDIN_ENABLE_DUALCLASS_CHECKS = Character.getBoolean("HardinEnableDualClassChecks", true); HARDIN_ENABLE_ERTHEIAS = Character.getBoolean("HardinEnableErtheias", false); + HARDIN_REMOVED_SKILLS = new HashMap<>(); + for (String classRow : Character.getString("HardinRemovedSkills", "").split(";")) + { + if (classRow.isEmpty()) + { + continue; + } + final String[] classInfo = classRow.split(","); + final int classId = Integer.parseInt(classInfo[0]); + HARDIN_REMOVED_SKILLS.put(classId, new ArrayList<>()); + for (int i = 1; i < classInfo.length; i++) + { + HARDIN_REMOVED_SKILLS.get(classId).add(Integer.parseInt(classInfo[i])); + } + } + ENABLE_VITALITY = Character.getBoolean("EnableVitality", true); STARTING_VITALITY_POINTS = Character.getInt("StartingVitalityPoints", 140000); RAIDBOSS_USE_VITALITY = Character.getBoolean("RaidbossUseVitality", true);