По поводу ядра.
L2PcInstance содержит массив экспертиз
SkillTreeTable.getInstance().getExpertiseLevel(0), // NONE
SkillTreeTable.getInstance().getExpertiseLevel(1), // D
SkillTreeTable.getInstance().getExpertiseLevel(2), // C
SkillTreeTable.getInstance().getExpertiseLevel(3), // B
SkillTreeTable.getInstance().getExpertiseLevel(4), // A
SkillTreeTable.getInstance().getExpertiseLevel(5), // S
SkillTreeTable.getInstance().getExpertiseLevel(6) - добавляем новый.
Используются они
getExpertiseLevel(int grade)
в SkillTreeTable
Скилы берутся у палладина (? )
Map<Integer, L2SkillLearn> learnMap = _skillTrees.get(ClassId.paladin);
int skillHashCode = SkillTable.getSkillHashCode(239, grade);
И если скилл не найден, то получаем:
_log.error("Expertise not found for grade " + grade);
<skill id="239" levels="6" name="Expertise M">
Ошибок ГС нет, но я не могу понять по каким лвлам они даются
P.S. кроме 239 есть ещё
<skill id="240" levels="1" name="Expertise C Deleted">
<set name="target" val="TARGET_SELF"/>
<set name="skillType" val="PASSIVE"/>
<set name="operateType" val="OP_PASSIVE"/>
</skill>
<skill id="241" levels="1" name="Expertise B Deleted">
<set name="target" val="TARGET_SELF"/>
<set name="skillType" val="PASSIVE"/>
<set name="operateType" val="OP_PASSIVE"/>
</skill>
<skill id="242" levels="1" name="Expertise A Deleted">
<set name="target" val="TARGET_SELF"/>
<set name="skillType" val="PASSIVE"/>
<set name="operateType" val="OP_PASSIVE"/>
</skill>
<skill id="243" levels="1" name="Expertise S Deleted">
<set name="target" val="TARGET_SELF"/>
<set name="skillType" val="PASSIVE"/>
<set name="operateType" val="OP_PASSIVE"/>
</skill>