|
@@ -38,14 +38,11 @@ import com.l2jserver.util.StringUtil;
|
|
|
|
|
|
public class L2NpcInstance extends L2Npc
|
|
|
{
|
|
|
- private final List<ClassId> _classesToTeach;
|
|
|
-
|
|
|
public L2NpcInstance(int objectId, L2NpcTemplate template)
|
|
|
{
|
|
|
super(objectId, template);
|
|
|
setInstanceType(InstanceType.L2NpcInstance);
|
|
|
setIsInvul(false);
|
|
|
- _classesToTeach = template.getTeachInfo();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -74,7 +71,7 @@ public class L2NpcInstance extends L2Npc
|
|
|
|
|
|
public List<ClassId> getClassesToTeach()
|
|
|
{
|
|
|
- return _classesToTeach;
|
|
|
+ return getTemplate().getTeachInfo();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -91,14 +88,12 @@ public class L2NpcInstance extends L2Npc
|
|
|
}
|
|
|
|
|
|
final int npcId = npc.getTemplate().getNpcId();
|
|
|
-
|
|
|
if (npcId == 32611) //Tolonis (Officer)
|
|
|
{
|
|
|
final FastList<L2SkillLearn> skills = SkillTreesData.getInstance().getAvailableCollectSkills(player);
|
|
|
final AcquireSkillList asl = new AcquireSkillList(SkillType.Collect);
|
|
|
|
|
|
int counts = 0;
|
|
|
-
|
|
|
for (L2SkillLearn s : skills)
|
|
|
{
|
|
|
final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
|
|
@@ -121,7 +116,7 @@ public class L2NpcInstance extends L2Npc
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.NO_MORE_SKILLS_TO_LEARN));
|
|
|
+ player.sendPacket(SystemMessageId.NO_MORE_SKILLS_TO_LEARN);
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -137,7 +132,7 @@ public class L2NpcInstance extends L2Npc
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (((L2NpcInstance)npc).getClassesToTeach() == null)
|
|
|
+ if (((L2NpcInstance) npc).getClassesToTeach().isEmpty())
|
|
|
{
|
|
|
NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId());
|
|
|
final String sb = StringUtil.concat(
|
|
@@ -154,17 +149,16 @@ public class L2NpcInstance extends L2Npc
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- //Normal skills, No LearnedByFS, no AutoGet skills.
|
|
|
+ // Normal skills, No LearnedByFS, no AutoGet skills.
|
|
|
final FastList<L2SkillLearn> skills = SkillTreesData.getInstance().getAvailableSkills(player, classId, false, false);
|
|
|
final AcquireSkillList asl = new AcquireSkillList(AcquireSkillList.SkillType.ClassTransform);
|
|
|
int count = 0;
|
|
|
-
|
|
|
- for (L2SkillLearn s: skills)
|
|
|
+ player.setLearningClass(classId);
|
|
|
+ for (L2SkillLearn s : skills)
|
|
|
{
|
|
|
- final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
|
|
|
- if (sk != null)
|
|
|
+ if (SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel()) != null)
|
|
|
{
|
|
|
- asl.addSkill(s.getSkillId(), s.getSkillLevel(), s.getSkillLevel(), s.getLevelUpSp(), 0);
|
|
|
+ asl.addSkill(s.getSkillId(), s.getSkillLevel(), s.getSkillLevel(), s.getCalculatedLevelUpSp(player.getClassId(), classId), 0);
|
|
|
count++;
|
|
|
}
|
|
|
}
|
|
@@ -172,7 +166,6 @@ public class L2NpcInstance extends L2Npc
|
|
|
if (count == 0)
|
|
|
{
|
|
|
final FastMap<Integer, L2SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(classId);
|
|
|
-
|
|
|
final int minLevel = SkillTreesData.getInstance().getMinLevelForNewSkill(player, skillTree);
|
|
|
if (minLevel > 0)
|
|
|
{
|
|
@@ -182,7 +175,6 @@ public class L2NpcInstance extends L2Npc
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- //TODO: Is this SysMsg really used here?
|
|
|
if (player.getClassId().level() == 1)
|
|
|
{
|
|
|
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.NO_SKILLS_TO_LEARN_RETURN_AFTER_S1_CLASS_CHANGE);
|
|
@@ -191,7 +183,7 @@ public class L2NpcInstance extends L2Npc
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.NO_MORE_SKILLS_TO_LEARN));
|
|
|
+ player.sendPacket(SystemMessageId.NO_MORE_SKILLS_TO_LEARN);
|
|
|
}
|
|
|
}
|
|
|
}
|