diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/skillTrees.xsd
index 8978dca1ea..4199a77a4f 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 9d1cc99f37..8129ca011b 100644
--- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_2.5_Underground/dist/game/data/xsd/skillTrees.xsd
index 5b2c6792d7..fef3567aba 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 9d1cc99f37..8129ca011b 100644
--- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_3.0_Helios/dist/game/data/xsd/skillTrees.xsd
index 5b2c6792d7..fef3567aba 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 9d1cc99f37..8129ca011b 100644
--- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/skillTrees.xsd
index 6c822603ed..3c97ba7277 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 9d1cc99f37..8129ca011b 100644
--- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/skillTrees.xsd
index 6c822603ed..3c97ba7277 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 9d1cc99f37..8129ca011b 100644
--- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/skillTrees.xsd
index 6c822603ed..3c97ba7277 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 9d1cc99f37..8129ca011b 100644
--- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/skillTrees.xsd
index 11a327509a..5e33ebeb22 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/xsd/skillTrees.xsd
@@ -31,6 +31,7 @@
+
diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 58f37dc4da..6193a64534 100644
--- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/skillTrees.xsd
index 11a327509a..5e33ebeb22 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/xsd/skillTrees.xsd
@@ -31,6 +31,7 @@
+
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 ab37abe2a1..1ce1c1d3f0 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
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_8.0_Homunculus/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_8.0_Homunculus/dist/game/data/xsd/skillTrees.xsd
index 11a327509a..5e33ebeb22 100644
--- a/L2J_Mobius_8.0_Homunculus/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_8.0_Homunculus/dist/game/data/xsd/skillTrees.xsd
@@ -31,6 +31,7 @@
+
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 ab37abe2a1..1ce1c1d3f0 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
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/skillTrees.xsd
index 5b2c6792d7..fef3567aba 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 5c7dce8c0b..db1a593951 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/skillTrees.xsd
index 5b2c6792d7..fef3567aba 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 5c7dce8c0b..db1a593951 100644
--- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/skillTrees.xsd
index 5b2c6792d7..fef3567aba 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 5c7dce8c0b..db1a593951 100644
--- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/skillTrees.xsd
index 5b2c6792d7..fef3567aba 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 5c7dce8c0b..db1a593951 100644
--- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/skillTrees.xsd
index 5b2c6792d7..fef3567aba 100644
--- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 5c7dce8c0b..db1a593951 100644
--- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/skillTrees.xsd
index c5d4e0e7af..573397bd90 100644
--- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
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 85b9768c26..9fe122caaa 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
@@ -270,7 +270,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/skillTrees.xsd
index 5b2c6792d7..fef3567aba 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 5c7dce8c0b..db1a593951 100644
--- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/xsd/skillTrees.xsd
index c5d4e0e7af..573397bd90 100644
--- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
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 85b9768c26..9fe122caaa 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
@@ -270,7 +270,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}
diff --git a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/skillTrees.xsd b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/skillTrees.xsd
index c5d4e0e7af..573397bd90 100644
--- a/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/skillTrees.xsd
+++ b/L2J_Mobius_Essence_5.0_Sylph/dist/game/data/xsd/skillTrees.xsd
@@ -32,6 +32,7 @@
+
diff --git a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
index 85b9768c26..9fe122caaa 100644
--- a/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
+++ b/L2J_Mobius_Essence_5.0_Sylph/java/org/l2jmobius/gameserver/data/xml/SkillTreeData.java
@@ -270,7 +270,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
skillLearn.addRemoveSkills(removeSkillId);
- _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
+ {
+ _removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
+ }
break;
}
}