From 39c3d13c7d2f0ddf1f4b76ccbb84783a7dad2be8 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 1 Oct 2017 19:43:52 +0000 Subject: [PATCH] ClassId must be set after setting base class. --- .../areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java | 3 ++- .../data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java | 2 +- .../game/data/scripts/ai/others/ClassMaster/ClassMaster.java | 3 ++- .../scripts/handlers/admincommandhandlers/AdminEditChar.java | 2 +- .../areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java | 3 ++- .../data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java | 2 +- .../game/data/scripts/ai/others/ClassMaster/ClassMaster.java | 3 ++- .../scripts/handlers/admincommandhandlers/AdminEditChar.java | 2 +- .../areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java | 3 ++- .../data/scripts/ai/areas/TalkingIsland/Hardin/Hardin.java | 2 +- .../game/data/scripts/ai/others/ClassMaster/ClassMaster.java | 3 ++- .../scripts/handlers/admincommandhandlers/AdminEditChar.java | 2 +- .../game/data/scripts/ai/others/ClassMaster/ClassMaster.java | 3 ++- .../scripts/handlers/admincommandhandlers/AdminEditChar.java | 2 +- 14 files changed, 21 insertions(+), 14 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java index 25db941e6f..0ba72f82bf 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java @@ -306,7 +306,6 @@ public final class AwakeningMaster extends AbstractNpcAI for (ClassId newClass : player.getClassId().getNextClassIds()) { - player.setClassId(newClass.getId()); if (player.isDualClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -315,6 +314,8 @@ public final class AwakeningMaster extends AbstractNpcAI { player.setBaseClass(player.getActiveClass()); } + player.setClassId(newClass.getId()); + player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER); final UserInfo ui = new UserInfo(player, false); ui.addComponentType(UserInfoType.BASIC_INFO); 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 2c4bc51193..59fe835f29 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 @@ -138,7 +138,6 @@ public final class Hardin extends AbstractNpcAI player.getAppearance().setSex(true); } // Change class - player.setClassId(newClass.getId()); if (player.isDualClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -147,6 +146,7 @@ public final class Hardin extends AbstractNpcAI { player.setBaseClass(player.getActiveClass()); } + player.setClassId(newClass.getId()); // Adjustments SkillTreesData.getInstance().cleanSkillUponAwakening(player); for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 2ebf04d748..edfcac0476 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -391,7 +391,6 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader } } - player.setClassId(classId); if (player.isSubClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -400,6 +399,8 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader { player.setBaseClass(player.getActiveClass()); } + player.setClassId(classId); + if (player.isInCategory(CategoryType.AWAKEN_GROUP)) { SkillTreesData.getInstance().cleanSkillUponAwakening(player); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java index b9f0ab5ed6..f5e71b53d4 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java @@ -371,7 +371,6 @@ public class AdminEditChar implements IAdminCommandHandler { player.resetOriginalClass(); // revert agent of chaos changes } - player.setClassId(classidval); if (player.isSubClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -380,6 +379,7 @@ public class AdminEditChar implements IAdminCommandHandler { player.setBaseClass(player.getActiveClass()); } + player.setClassId(classidval); // Sex checks. if (player.getRace().equals(Race.KAMAEL)) diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java index 25db941e6f..0ba72f82bf 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java @@ -306,7 +306,6 @@ public final class AwakeningMaster extends AbstractNpcAI for (ClassId newClass : player.getClassId().getNextClassIds()) { - player.setClassId(newClass.getId()); if (player.isDualClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -315,6 +314,8 @@ public final class AwakeningMaster extends AbstractNpcAI { player.setBaseClass(player.getActiveClass()); } + player.setClassId(newClass.getId()); + player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER); final UserInfo ui = new UserInfo(player, false); ui.addComponentType(UserInfoType.BASIC_INFO); 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 2c4bc51193..59fe835f29 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 @@ -138,7 +138,6 @@ public final class Hardin extends AbstractNpcAI player.getAppearance().setSex(true); } // Change class - player.setClassId(newClass.getId()); if (player.isDualClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -147,6 +146,7 @@ public final class Hardin extends AbstractNpcAI { player.setBaseClass(player.getActiveClass()); } + player.setClassId(newClass.getId()); // Adjustments SkillTreesData.getInstance().cleanSkillUponAwakening(player); for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index 2ebf04d748..edfcac0476 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -391,7 +391,6 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader } } - player.setClassId(classId); if (player.isSubClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -400,6 +399,8 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader { player.setBaseClass(player.getActiveClass()); } + player.setClassId(classId); + if (player.isInCategory(CategoryType.AWAKEN_GROUP)) { SkillTreesData.getInstance().cleanSkillUponAwakening(player); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java index b9f0ab5ed6..f5e71b53d4 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java @@ -371,7 +371,6 @@ public class AdminEditChar implements IAdminCommandHandler { player.resetOriginalClass(); // revert agent of chaos changes } - player.setClassId(classidval); if (player.isSubClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -380,6 +379,7 @@ public class AdminEditChar implements IAdminCommandHandler { player.setBaseClass(player.getActiveClass()); } + player.setClassId(classidval); // Sex checks. if (player.getRace().equals(Race.KAMAEL)) diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java index 25db941e6f..0ba72f82bf 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/AwakeningMaster/AwakeningMaster.java @@ -306,7 +306,6 @@ public final class AwakeningMaster extends AbstractNpcAI for (ClassId newClass : player.getClassId().getNextClassIds()) { - player.setClassId(newClass.getId()); if (player.isDualClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -315,6 +314,8 @@ public final class AwakeningMaster extends AbstractNpcAI { player.setBaseClass(player.getActiveClass()); } + player.setClassId(newClass.getId()); + player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER); final UserInfo ui = new UserInfo(player, false); ui.addComponentType(UserInfoType.BASIC_INFO); 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 2c4bc51193..59fe835f29 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 @@ -138,7 +138,6 @@ public final class Hardin extends AbstractNpcAI player.getAppearance().setSex(true); } // Change class - player.setClassId(newClass.getId()); if (player.isDualClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -147,6 +146,7 @@ public final class Hardin extends AbstractNpcAI { player.setBaseClass(player.getActiveClass()); } + player.setClassId(newClass.getId()); // Adjustments SkillTreesData.getInstance().cleanSkillUponAwakening(player); for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace())) diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index d0b7cafb98..2ce567aec4 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -391,7 +391,6 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader } } - player.setClassId(classId); if (player.isSubClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -400,6 +399,8 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader { player.setBaseClass(player.getActiveClass()); } + player.setClassId(classId); + if (player.isInCategory(CategoryType.AWAKEN_GROUP)) { SkillTreesData.getInstance().cleanSkillUponAwakening(player); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java index b9f0ab5ed6..f5e71b53d4 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java @@ -371,7 +371,6 @@ public class AdminEditChar implements IAdminCommandHandler { player.resetOriginalClass(); // revert agent of chaos changes } - player.setClassId(classidval); if (player.isSubClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -380,6 +379,7 @@ public class AdminEditChar implements IAdminCommandHandler { player.setBaseClass(player.getActiveClass()); } + player.setClassId(classidval); // Sex checks. if (player.getRace().equals(Race.KAMAEL)) diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java index d40ea3667c..0d78dca83c 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/ClassMaster/ClassMaster.java @@ -359,7 +359,6 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader } } - player.setClassId(classId); if (player.isSubClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -368,6 +367,8 @@ public final class ClassMaster extends AbstractNpcAI implements IGameXmlReader { player.setBaseClass(player.getActiveClass()); } + player.setClassId(classId); + if (player.isInCategory(CategoryType.AWAKEN_GROUP)) { SkillTreesData.getInstance().cleanSkillUponAwakening(player); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java index da152c02aa..d27f8b9825 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java @@ -367,7 +367,6 @@ public class AdminEditChar implements IAdminCommandHandler final L2PcInstance player = target.getActingPlayer(); if ((ClassId.getClassId(classidval) != null) && (player.getClassId().getId() != classidval)) { - player.setClassId(classidval); if (player.isSubClassActive()) { player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass()); @@ -376,6 +375,7 @@ public class AdminEditChar implements IAdminCommandHandler { player.setBaseClass(player.getActiveClass()); } + player.setClassId(classidval); // Sex checks. if (player.getRace().equals(Race.KAMAEL))