From e8efb64cb091269769b6de2719a8c3054503d241 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 5 Dec 2022 07:04:02 +0000 Subject: [PATCH] Revelation skill exploit prevention. Contributed by nasseka. --- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- .../network/clientpackets/RequestAcquireSkill.java | 2 -- .../clientpackets/ability/RequestAbilityList.java | 1 + .../clientpackets/ability/RequestAcquireAbilityList.java | 9 ++++++++- 36 files changed, 108 insertions(+), 36 deletions(-) diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 71602fa056..cbf0660288 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -433,8 +433,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 29ef68b60f..98163911e7 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 3428d4fdc5..fe38f10270 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 3d6cbee909..ec54c6e22d 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -433,8 +433,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index f323619d5d..72498f1eae 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 087e2fa4ac..9239b6073b 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 3d6cbee909..ec54c6e22d 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -433,8 +433,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index f323619d5d..72498f1eae 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 087e2fa4ac..9239b6073b 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 3d6cbee909..ec54c6e22d 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -433,8 +433,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 420e9a4820..88486e2345 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 2fd670cef8..169d5d2a52 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 8a31153644..5a22b87a84 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -383,8 +383,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 420e9a4820..88486e2345 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 2fd670cef8..169d5d2a52 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 03c1bfd18d..32744550ba 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -383,8 +383,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 420e9a4820..88486e2345 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 2fd670cef8..169d5d2a52 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 03c1bfd18d..32744550ba 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -383,8 +383,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 420e9a4820..88486e2345 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 2fd670cef8..169d5d2a52 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 15f7c15322..ca3d7e2834 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -383,8 +383,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 420e9a4820..88486e2345 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 2fd670cef8..169d5d2a52 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index e6458e841c..a360f6ecf2 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -391,8 +391,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 420e9a4820..88486e2345 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 2fd670cef8..169d5d2a52 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index e6458e841c..a360f6ecf2 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -391,8 +391,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 420e9a4820..88486e2345 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index 2fd670cef8..169d5d2a52 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 3bd30fbb41..309de2bdbf 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -391,8 +391,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 22c79182ba..a9cbb9204f 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index c148c53fb5..b91f5c7ad1 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java index 3bd30fbb41..309de2bdbf 100644 --- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java +++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/RequestAcquireSkill.java @@ -391,8 +391,6 @@ public class RequestAcquireSkill implements ClientPacket final String varName = count == 0 ? REVELATION_VAR_NAMES[0] : REVELATION_VAR_NAMES[1]; player.getVariables().set(varName, skill.getId()); giveSkill(player, trainer, skill); - // Exploit prevention. - SkillData.getInstance().getSkill(1570, 1).applyEffects(player, player); } final List skills = SkillTreeData.getInstance().getAvailableRevelationSkills(player, SubclassType.BASECLASS); diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java index 22c79182ba..a9cbb9204f 100644 --- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java +++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAbilityList.java @@ -48,5 +48,6 @@ public class RequestAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); + player.sendSkillList(); } } diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java index c148c53fb5..b91f5c7ad1 100644 --- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java +++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/ability/RequestAcquireAbilityList.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import org.l2jmobius.commons.network.ReadablePacket; +import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillTreeData; import org.l2jmobius.gameserver.model.SkillLearn; @@ -194,6 +195,12 @@ public class RequestAcquireAbilityList implements ClientPacket } player.sendPacket(new ExAcquireAPSkillList(player)); - player.getStat().recalculateStats(true); + + ThreadPool.schedule(() -> + { + player.sendSkillList(); + player.getStat().recalculateStats(false); + player.broadcastInfo(); + }, 100); } } \ No newline at end of file