Enabled skilltree data previous class unlearn on all times.
This commit is contained in:
parent
4022b9f6cc
commit
0115c378a6
@ -201,7 +201,7 @@ public class Joachim extends AbstractNpcAI
|
||||
player.setActiveClass(1);
|
||||
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
|
||||
player.sendPacket(getNpcHtmlMessage(player, npc, "34513-07.html"));
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
player.sendPacket(new AcquireSkillList(player));
|
||||
player.sendSkillList();
|
||||
player.broadcastUserInfo();
|
||||
|
@ -303,7 +303,7 @@ public class AwakeningMaster extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -152,7 +152,7 @@ public class Hardin extends AbstractNpcAI
|
||||
player.setBaseClass(player.getActiveClass());
|
||||
}
|
||||
// Adjustments
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -593,7 +593,7 @@ public class Raina extends AbstractNpcAI
|
||||
player.setActiveClass(classIndex);
|
||||
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
|
||||
player.sendPacket(getNpcHtmlMessage(player, npc, "reawakenSuccess.html"));
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
player.sendPacket(new AcquireSkillList(player));
|
||||
player.sendSkillList();
|
||||
giveItems(player, getCloakId(player), 1);
|
||||
@ -632,7 +632,7 @@ public class Raina extends AbstractNpcAI
|
||||
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED));
|
||||
player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_S1_HAS_BEEN_ADDED_CONGRATS);
|
||||
player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html"));
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
player.sendPacket(new AcquireSkillList(player));
|
||||
player.sendSkillList();
|
||||
giveItems(player, getPowerItemId(player), 1);
|
||||
|
@ -422,7 +422,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
||||
|
||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||
{
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
@ -864,7 +864,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
||||
|
||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||
{
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -423,7 +423,7 @@ public class AdminEditChar implements IAdminCommandHandler
|
||||
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
|
||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||
{
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, true);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -1476,7 +1476,7 @@ public class SkillTreeData implements IXmlReader
|
||||
return result;
|
||||
}
|
||||
|
||||
public void cleanSkillUponChangeClass(PlayerInstance player, boolean checkPreviousClasses)
|
||||
public void cleanSkillUponChangeClass(PlayerInstance player)
|
||||
{
|
||||
ClassId currentClass = player.getClassId();
|
||||
for (Skill skill : player.getAllSkills())
|
||||
@ -1510,24 +1510,21 @@ public class SkillTreeData implements IXmlReader
|
||||
}
|
||||
|
||||
// Check previous classes as well, in case classes where skipped.
|
||||
if (checkPreviousClasses)
|
||||
while (currentClass.getParent() != null)
|
||||
{
|
||||
while (currentClass.getParent() != null)
|
||||
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
|
||||
if (removedList != null)
|
||||
{
|
||||
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
|
||||
if (removedList != null)
|
||||
for (Integer skillId : removedList)
|
||||
{
|
||||
for (Integer skillId : removedList)
|
||||
final int currentLevel = player.getSkillLevel(skillId);
|
||||
if (currentLevel > 0)
|
||||
{
|
||||
final int currentLevel = player.getSkillLevel(skillId);
|
||||
if (currentLevel > 0)
|
||||
{
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
|
||||
}
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
|
||||
}
|
||||
}
|
||||
currentClass = currentClass.getParent();
|
||||
}
|
||||
currentClass = currentClass.getParent();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,7 @@ public class ExRequestClassChange implements IClientIncomingPacket
|
||||
|
||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||
{
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); // TODO: Move to skill learn method?
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player); // TODO: Move to skill learn method?
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -201,7 +201,7 @@ public class Joachim extends AbstractNpcAI
|
||||
player.setActiveClass(1);
|
||||
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
|
||||
player.sendPacket(getNpcHtmlMessage(player, npc, "34513-07.html"));
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
player.sendPacket(new AcquireSkillList(player));
|
||||
player.sendSkillList();
|
||||
player.broadcastUserInfo();
|
||||
|
@ -303,7 +303,7 @@ public class AwakeningMaster extends AbstractNpcAI
|
||||
}
|
||||
}
|
||||
giveItems(player, player.isDualClassActive() ? CHAOS_POMANDER_DUAL_CLASS : CHAOS_POMANDER, 2);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -152,7 +152,7 @@ public class Hardin extends AbstractNpcAI
|
||||
player.setBaseClass(player.getActiveClass());
|
||||
}
|
||||
// Adjustments
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -593,7 +593,7 @@ public class Raina extends AbstractNpcAI
|
||||
player.setActiveClass(classIndex);
|
||||
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
|
||||
player.sendPacket(getNpcHtmlMessage(player, npc, "reawakenSuccess.html"));
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
player.sendPacket(new AcquireSkillList(player));
|
||||
player.sendSkillList();
|
||||
giveItems(player, getCloakId(player), 1);
|
||||
@ -632,7 +632,7 @@ public class Raina extends AbstractNpcAI
|
||||
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.NEW_SLOT_USED));
|
||||
player.sendPacket(SystemMessageId.THE_NEW_SUBCLASS_S1_HAS_BEEN_ADDED_CONGRATS);
|
||||
player.sendPacket(getNpcHtmlMessage(player, npc, "addSuccess.html"));
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
player.sendPacket(new AcquireSkillList(player));
|
||||
player.sendSkillList();
|
||||
giveItems(player, getPowerItemId(player), 1);
|
||||
|
@ -422,7 +422,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
||||
|
||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||
{
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
@ -864,7 +864,7 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
||||
|
||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||
{
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -423,7 +423,7 @@ public class AdminEditChar implements IAdminCommandHandler
|
||||
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
|
||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||
{
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, true);
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player);
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -1476,7 +1476,7 @@ public class SkillTreeData implements IXmlReader
|
||||
return result;
|
||||
}
|
||||
|
||||
public void cleanSkillUponChangeClass(PlayerInstance player, boolean checkPreviousClasses)
|
||||
public void cleanSkillUponChangeClass(PlayerInstance player)
|
||||
{
|
||||
ClassId currentClass = player.getClassId();
|
||||
for (Skill skill : player.getAllSkills())
|
||||
@ -1510,24 +1510,21 @@ public class SkillTreeData implements IXmlReader
|
||||
}
|
||||
|
||||
// Check previous classes as well, in case classes where skipped.
|
||||
if (checkPreviousClasses)
|
||||
while (currentClass.getParent() != null)
|
||||
{
|
||||
while (currentClass.getParent() != null)
|
||||
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
|
||||
if (removedList != null)
|
||||
{
|
||||
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
|
||||
if (removedList != null)
|
||||
for (Integer skillId : removedList)
|
||||
{
|
||||
for (Integer skillId : removedList)
|
||||
final int currentLevel = player.getSkillLevel(skillId);
|
||||
if (currentLevel > 0)
|
||||
{
|
||||
final int currentLevel = player.getSkillLevel(skillId);
|
||||
if (currentLevel > 0)
|
||||
{
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
|
||||
}
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
|
||||
}
|
||||
}
|
||||
currentClass = currentClass.getParent();
|
||||
}
|
||||
currentClass = currentClass.getParent();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,7 @@ public class ExRequestClassChange implements IClientIncomingPacket
|
||||
|
||||
if (player.isInCategory(CategoryType.SIXTH_CLASS_GROUP))
|
||||
{
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player, false); // TODO: Move to skill learn method?
|
||||
SkillTreeData.getInstance().cleanSkillUponChangeClass(player); // TODO: Move to skill learn method?
|
||||
for (SkillLearn skill : SkillTreeData.getInstance().getRaceSkillTree(player.getRace()))
|
||||
{
|
||||
player.addSkill(SkillData.getInstance().getSkill(skill.getSkillId(), skill.getSkillLevel()), true);
|
||||
|
@ -1460,7 +1460,7 @@ public class SkillTreeData implements IXmlReader
|
||||
return result;
|
||||
}
|
||||
|
||||
public void cleanSkillUponChangeClass(PlayerInstance player, boolean checkPreviousClasses)
|
||||
public void cleanSkillUponChangeClass(PlayerInstance player)
|
||||
{
|
||||
ClassId currentClass = player.getClassId();
|
||||
for (Skill skill : player.getAllSkills())
|
||||
@ -1494,24 +1494,21 @@ public class SkillTreeData implements IXmlReader
|
||||
}
|
||||
|
||||
// Check previous classes as well, in case classes where skipped.
|
||||
if (checkPreviousClasses)
|
||||
while (currentClass.getParent() != null)
|
||||
{
|
||||
while (currentClass.getParent() != null)
|
||||
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
|
||||
if (removedList != null)
|
||||
{
|
||||
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
|
||||
if (removedList != null)
|
||||
for (Integer skillId : removedList)
|
||||
{
|
||||
for (Integer skillId : removedList)
|
||||
final int currentLevel = player.getSkillLevel(skillId);
|
||||
if (currentLevel > 0)
|
||||
{
|
||||
final int currentLevel = player.getSkillLevel(skillId);
|
||||
if (currentLevel > 0)
|
||||
{
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
|
||||
}
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
|
||||
}
|
||||
}
|
||||
currentClass = currentClass.getParent();
|
||||
}
|
||||
currentClass = currentClass.getParent();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1460,7 +1460,7 @@ public class SkillTreeData implements IXmlReader
|
||||
return result;
|
||||
}
|
||||
|
||||
public void cleanSkillUponChangeClass(PlayerInstance player, boolean checkPreviousClasses)
|
||||
public void cleanSkillUponChangeClass(PlayerInstance player)
|
||||
{
|
||||
ClassId currentClass = player.getClassId();
|
||||
for (Skill skill : player.getAllSkills())
|
||||
@ -1494,24 +1494,21 @@ public class SkillTreeData implements IXmlReader
|
||||
}
|
||||
|
||||
// Check previous classes as well, in case classes where skipped.
|
||||
if (checkPreviousClasses)
|
||||
while (currentClass.getParent() != null)
|
||||
{
|
||||
while (currentClass.getParent() != null)
|
||||
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
|
||||
if (removedList != null)
|
||||
{
|
||||
final Set<Integer> removedList = _removeSkillCache.get(currentClass);
|
||||
if (removedList != null)
|
||||
for (Integer skillId : removedList)
|
||||
{
|
||||
for (Integer skillId : removedList)
|
||||
final int currentLevel = player.getSkillLevel(skillId);
|
||||
if (currentLevel > 0)
|
||||
{
|
||||
final int currentLevel = player.getSkillLevel(skillId);
|
||||
if (currentLevel > 0)
|
||||
{
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
|
||||
}
|
||||
player.removeSkill(SkillData.getInstance().getSkill(skillId, currentLevel));
|
||||
}
|
||||
}
|
||||
currentClass = currentClass.getParent();
|
||||
}
|
||||
currentClass = currentClass.getParent();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user