Additional fix for Female Soulhounds awakening.
Contributed by champzix1.
This commit is contained in:
@@ -180,9 +180,9 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fix for Female Soulhounds
|
||||||
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
// Fix for Female Soulhounds
|
|
||||||
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -303,42 +303,53 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ClassId newClass : player.getClassId().getNextClassIds())
|
// Fix for Female Soulhounds
|
||||||
|
int newClassId = -1;
|
||||||
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
player.setClassId(newClass.getId());
|
newClassId = ClassId.FEOH_SOUL_HOUND.getId();
|
||||||
if (player.isDualClassActive())
|
|
||||||
{
|
|
||||||
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.setBaseClass(player.getActiveClass());
|
|
||||||
}
|
|
||||||
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
|
||||||
final UserInfo ui = new UserInfo(player, false);
|
|
||||||
ui.addComponentType(UserInfoType.BASIC_INFO);
|
|
||||||
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
|
||||||
player.sendPacket(ui);
|
|
||||||
player.broadcastInfo();
|
|
||||||
|
|
||||||
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
|
||||||
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
|
||||||
{
|
|
||||||
if (player.isInCategory(ent.getKey()))
|
|
||||||
{
|
|
||||||
giveItems(player, ent.getValue(), 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
|
||||||
|
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
|
||||||
{
|
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
|
||||||
}
|
|
||||||
player.sendSkillList();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (ClassId newClass : player.getClassId().getNextClassIds())
|
||||||
|
{
|
||||||
|
newClassId = newClass.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setClassId(newClassId);
|
||||||
|
if (player.isDualClassActive())
|
||||||
|
{
|
||||||
|
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.setBaseClass(player.getActiveClass());
|
||||||
|
}
|
||||||
|
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
||||||
|
final UserInfo ui = new UserInfo(player, false);
|
||||||
|
ui.addComponentType(UserInfoType.BASIC_INFO);
|
||||||
|
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
||||||
|
player.sendPacket(ui);
|
||||||
|
player.broadcastInfo();
|
||||||
|
|
||||||
|
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
||||||
|
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
||||||
|
{
|
||||||
|
if (player.isInCategory(ent.getKey()))
|
||||||
|
{
|
||||||
|
giveItems(player, ent.getValue(), 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
||||||
|
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
player.sendSkillList();
|
||||||
|
|
||||||
ThreadPool.schedule(() ->
|
ThreadPool.schedule(() ->
|
||||||
{
|
{
|
||||||
|
@@ -180,9 +180,9 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fix for Female Soulhounds
|
||||||
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
// Fix for Female Soulhounds
|
|
||||||
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -303,42 +303,53 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ClassId newClass : player.getClassId().getNextClassIds())
|
// Fix for Female Soulhounds
|
||||||
|
int newClassId = -1;
|
||||||
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
player.setClassId(newClass.getId());
|
newClassId = ClassId.FEOH_SOUL_HOUND.getId();
|
||||||
if (player.isDualClassActive())
|
|
||||||
{
|
|
||||||
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.setBaseClass(player.getActiveClass());
|
|
||||||
}
|
|
||||||
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
|
||||||
final UserInfo ui = new UserInfo(player, false);
|
|
||||||
ui.addComponentType(UserInfoType.BASIC_INFO);
|
|
||||||
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
|
||||||
player.sendPacket(ui);
|
|
||||||
player.broadcastInfo();
|
|
||||||
|
|
||||||
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
|
||||||
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
|
||||||
{
|
|
||||||
if (player.isInCategory(ent.getKey()))
|
|
||||||
{
|
|
||||||
giveItems(player, ent.getValue(), 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
|
||||||
|
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
|
||||||
{
|
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
|
||||||
}
|
|
||||||
player.sendSkillList();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (ClassId newClass : player.getClassId().getNextClassIds())
|
||||||
|
{
|
||||||
|
newClassId = newClass.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setClassId(newClassId);
|
||||||
|
if (player.isDualClassActive())
|
||||||
|
{
|
||||||
|
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.setBaseClass(player.getActiveClass());
|
||||||
|
}
|
||||||
|
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
||||||
|
final UserInfo ui = new UserInfo(player, false);
|
||||||
|
ui.addComponentType(UserInfoType.BASIC_INFO);
|
||||||
|
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
||||||
|
player.sendPacket(ui);
|
||||||
|
player.broadcastInfo();
|
||||||
|
|
||||||
|
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
||||||
|
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
||||||
|
{
|
||||||
|
if (player.isInCategory(ent.getKey()))
|
||||||
|
{
|
||||||
|
giveItems(player, ent.getValue(), 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
||||||
|
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
player.sendSkillList();
|
||||||
|
|
||||||
ThreadPool.schedule(() ->
|
ThreadPool.schedule(() ->
|
||||||
{
|
{
|
||||||
|
@@ -180,9 +180,9 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fix for Female Soulhounds
|
||||||
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
// Fix for Female Soulhounds
|
|
||||||
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -303,42 +303,53 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ClassId newClass : player.getClassId().getNextClassIds())
|
// Fix for Female Soulhounds
|
||||||
|
int newClassId = -1;
|
||||||
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
player.setClassId(newClass.getId());
|
newClassId = ClassId.FEOH_SOUL_HOUND.getId();
|
||||||
if (player.isDualClassActive())
|
|
||||||
{
|
|
||||||
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.setBaseClass(player.getActiveClass());
|
|
||||||
}
|
|
||||||
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
|
||||||
final UserInfo ui = new UserInfo(player, false);
|
|
||||||
ui.addComponentType(UserInfoType.BASIC_INFO);
|
|
||||||
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
|
||||||
player.sendPacket(ui);
|
|
||||||
player.broadcastInfo();
|
|
||||||
|
|
||||||
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
|
||||||
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
|
||||||
{
|
|
||||||
if (player.isInCategory(ent.getKey()))
|
|
||||||
{
|
|
||||||
giveItems(player, ent.getValue(), 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
|
||||||
|
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
|
||||||
{
|
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
|
||||||
}
|
|
||||||
player.sendSkillList();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (ClassId newClass : player.getClassId().getNextClassIds())
|
||||||
|
{
|
||||||
|
newClassId = newClass.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setClassId(newClassId);
|
||||||
|
if (player.isDualClassActive())
|
||||||
|
{
|
||||||
|
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.setBaseClass(player.getActiveClass());
|
||||||
|
}
|
||||||
|
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
||||||
|
final UserInfo ui = new UserInfo(player, false);
|
||||||
|
ui.addComponentType(UserInfoType.BASIC_INFO);
|
||||||
|
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
||||||
|
player.sendPacket(ui);
|
||||||
|
player.broadcastInfo();
|
||||||
|
|
||||||
|
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
||||||
|
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
||||||
|
{
|
||||||
|
if (player.isInCategory(ent.getKey()))
|
||||||
|
{
|
||||||
|
giveItems(player, ent.getValue(), 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
||||||
|
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
player.sendSkillList();
|
||||||
|
|
||||||
ThreadPool.schedule(() ->
|
ThreadPool.schedule(() ->
|
||||||
{
|
{
|
||||||
|
@@ -180,9 +180,9 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fix for Female Soulhounds
|
||||||
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
// Fix for Female Soulhounds
|
|
||||||
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -303,42 +303,53 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ClassId newClass : player.getClassId().getNextClassIds())
|
// Fix for Female Soulhounds
|
||||||
|
int newClassId = -1;
|
||||||
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
player.setClassId(newClass.getId());
|
newClassId = ClassId.FEOH_SOUL_HOUND.getId();
|
||||||
if (player.isDualClassActive())
|
|
||||||
{
|
|
||||||
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.setBaseClass(player.getActiveClass());
|
|
||||||
}
|
|
||||||
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
|
||||||
final UserInfo ui = new UserInfo(player, false);
|
|
||||||
ui.addComponentType(UserInfoType.BASIC_INFO);
|
|
||||||
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
|
||||||
player.sendPacket(ui);
|
|
||||||
player.broadcastInfo();
|
|
||||||
|
|
||||||
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
|
||||||
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
|
||||||
{
|
|
||||||
if (player.isInCategory(ent.getKey()))
|
|
||||||
{
|
|
||||||
giveItems(player, ent.getValue(), 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
|
||||||
|
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
|
||||||
{
|
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
|
||||||
}
|
|
||||||
player.sendSkillList();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (ClassId newClass : player.getClassId().getNextClassIds())
|
||||||
|
{
|
||||||
|
newClassId = newClass.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setClassId(newClassId);
|
||||||
|
if (player.isDualClassActive())
|
||||||
|
{
|
||||||
|
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.setBaseClass(player.getActiveClass());
|
||||||
|
}
|
||||||
|
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
||||||
|
final UserInfo ui = new UserInfo(player, false);
|
||||||
|
ui.addComponentType(UserInfoType.BASIC_INFO);
|
||||||
|
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
||||||
|
player.sendPacket(ui);
|
||||||
|
player.broadcastInfo();
|
||||||
|
|
||||||
|
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
||||||
|
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
||||||
|
{
|
||||||
|
if (player.isInCategory(ent.getKey()))
|
||||||
|
{
|
||||||
|
giveItems(player, ent.getValue(), 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
||||||
|
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
player.sendSkillList();
|
||||||
|
|
||||||
ThreadPool.schedule(() ->
|
ThreadPool.schedule(() ->
|
||||||
{
|
{
|
||||||
|
@@ -180,9 +180,9 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fix for Female Soulhounds
|
||||||
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
// Fix for Female Soulhounds
|
|
||||||
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -303,42 +303,53 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ClassId newClass : player.getClassId().getNextClassIds())
|
// Fix for Female Soulhounds
|
||||||
|
int newClassId = -1;
|
||||||
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
player.setClassId(newClass.getId());
|
newClassId = ClassId.FEOH_SOUL_HOUND.getId();
|
||||||
if (player.isDualClassActive())
|
|
||||||
{
|
|
||||||
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.setBaseClass(player.getActiveClass());
|
|
||||||
}
|
|
||||||
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
|
||||||
final UserInfo ui = new UserInfo(player, false);
|
|
||||||
ui.addComponentType(UserInfoType.BASIC_INFO);
|
|
||||||
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
|
||||||
player.sendPacket(ui);
|
|
||||||
player.broadcastInfo();
|
|
||||||
|
|
||||||
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
|
||||||
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
|
||||||
{
|
|
||||||
if (player.isInCategory(ent.getKey()))
|
|
||||||
{
|
|
||||||
giveItems(player, ent.getValue(), 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
|
||||||
|
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
|
||||||
{
|
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
|
||||||
}
|
|
||||||
player.sendSkillList();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (ClassId newClass : player.getClassId().getNextClassIds())
|
||||||
|
{
|
||||||
|
newClassId = newClass.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setClassId(newClassId);
|
||||||
|
if (player.isDualClassActive())
|
||||||
|
{
|
||||||
|
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.setBaseClass(player.getActiveClass());
|
||||||
|
}
|
||||||
|
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
||||||
|
final UserInfo ui = new UserInfo(player, false);
|
||||||
|
ui.addComponentType(UserInfoType.BASIC_INFO);
|
||||||
|
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
||||||
|
player.sendPacket(ui);
|
||||||
|
player.broadcastInfo();
|
||||||
|
|
||||||
|
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
||||||
|
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
||||||
|
{
|
||||||
|
if (player.isInCategory(ent.getKey()))
|
||||||
|
{
|
||||||
|
giveItems(player, ent.getValue(), 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
||||||
|
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
player.sendSkillList();
|
||||||
|
|
||||||
ThreadPool.schedule(() ->
|
ThreadPool.schedule(() ->
|
||||||
{
|
{
|
||||||
|
@@ -180,9 +180,9 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fix for Female Soulhounds
|
||||||
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
// Fix for Female Soulhounds
|
|
||||||
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
player.sendPacket(new ExChangeToAwakenedClass(ClassId.FEOH_SOUL_HOUND.getId()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -303,42 +303,53 @@ public final class AwakeningMaster extends AbstractNpcAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ClassId newClass : player.getClassId().getNextClassIds())
|
// Fix for Female Soulhounds
|
||||||
|
int newClassId = -1;
|
||||||
|
if (player.getClassId() == ClassId.FEMALE_SOUL_HOUND)
|
||||||
{
|
{
|
||||||
player.setClassId(newClass.getId());
|
newClassId = ClassId.FEOH_SOUL_HOUND.getId();
|
||||||
if (player.isDualClassActive())
|
|
||||||
{
|
|
||||||
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.setBaseClass(player.getActiveClass());
|
|
||||||
}
|
|
||||||
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
|
||||||
final UserInfo ui = new UserInfo(player, false);
|
|
||||||
ui.addComponentType(UserInfoType.BASIC_INFO);
|
|
||||||
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
|
||||||
player.sendPacket(ui);
|
|
||||||
player.broadcastInfo();
|
|
||||||
|
|
||||||
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
|
||||||
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
|
||||||
{
|
|
||||||
if (player.isInCategory(ent.getKey()))
|
|
||||||
{
|
|
||||||
giveItems(player, ent.getValue(), 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
|
||||||
|
|
||||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
|
||||||
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
|
||||||
{
|
|
||||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
|
||||||
}
|
|
||||||
player.sendSkillList();
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (ClassId newClass : player.getClassId().getNextClassIds())
|
||||||
|
{
|
||||||
|
newClassId = newClass.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
player.setClassId(newClassId);
|
||||||
|
if (player.isDualClassActive())
|
||||||
|
{
|
||||||
|
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.setBaseClass(player.getActiveClass());
|
||||||
|
}
|
||||||
|
player.sendPacket(SystemMessageId.CONGRATULATIONS_YOU_VE_COMPLETED_A_CLASS_TRANSFER);
|
||||||
|
final UserInfo ui = new UserInfo(player, false);
|
||||||
|
ui.addComponentType(UserInfoType.BASIC_INFO);
|
||||||
|
ui.addComponentType(UserInfoType.MAX_HPCPMP);
|
||||||
|
player.sendPacket(ui);
|
||||||
|
player.broadcastInfo();
|
||||||
|
|
||||||
|
player.broadcastPacket(new SocialAction(player.getObjectId(), 20));
|
||||||
|
for (Entry<CategoryType, Integer> ent : AWAKE_POWER.entrySet())
|
||||||
|
{
|
||||||
|
if (player.isInCategory(ent.getKey()))
|
||||||
|
{
|
||||||
|
giveItems(player, ent.getValue(), 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
||||||
|
|
||||||
|
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||||
|
for (L2SkillLearn skill : SkillTreesData.getInstance().getRaceSkillTree(player.getRace()))
|
||||||
|
{
|
||||||
|
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||||
|
}
|
||||||
|
player.sendSkillList();
|
||||||
|
|
||||||
ThreadPool.schedule(() ->
|
ThreadPool.schedule(() ->
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user