ClassId must be set after setting base class.

This commit is contained in:
MobiusDev 2017-10-01 19:43:52 +00:00
parent d975666566
commit 39c3d13c7d
14 changed files with 21 additions and 14 deletions

View File

@ -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);

View File

@ -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()))

View File

@ -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);

View File

@ -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))

View File

@ -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);

View File

@ -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()))

View File

@ -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);

View File

@ -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))

View File

@ -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);

View File

@ -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()))

View File

@ -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);

View File

@ -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))

View File

@ -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);

View File

@ -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))