Okay ExAcquirableSkillListByClass now writeH(0xFA); and ExAcquireSkillInfo i dont understand look my ExAcquireSkillInfo
changed the class ExAcquirableSkillListByClass as indicated but still the same situation occurs in critical error, there is another package that has changed these packages?
Class:ExAcquireSkillInfo
Код:
public class ExAcquireSkillInfo extends L2GameServerPacket {
private Player player;
private SkillLearn skillLearn;
public ExAcquireSkillInfo(Player player, SkillLearn skillLearn) {
this.player = player;
this.skillLearn = skillLearn;
}
@Override
protected void writeImpl() {
writeEx(0xFC);
writeD(skillLearn.getId());//Skill ID
writeD(skillLearn.getLevel());//Skill Level
writeD(skillLearn.getCost());// sp_cost
writeH(skillLearn.getMinLevel());// Required Level
writeH(0); // Tauti
writeD(skillLearn.getRequiredItems().size());
for(int itemId : skillLearn.getRequiredItems().keySet()) {
writeD(itemId);
writeQ(skillLearn.getRequiredItems().get(itemId));
}
Skill skkill = SkillTable.getInstance().getInfo(skillLearn.getId(), skillLearn.getLevel());
if (skkill.isRelationSkill())
{
int[] _ss = skkill.getRelationSkills();
writeD(_ss.length);// deletedSkillsSize
for (int skillId : _ss)
{
writeD(skillId);// skillId
writeD(SkillTable.getInstance().getBaseLevel(skillId));// skillLvl
}
} else
writeD(0x00);
}
}
class ExAcquirableSkillListByClass
Код:
public class ExAcquirableSkillListByClass extends L2GameServerPacket {
private final Collection<SkillLearn> allskills;
public ExAcquirableSkillListByClass(Player player) {
allskills = SkillAcquireHolder.getInstance().getAvailableAllSkills(player);
}
@Override
protected final void writeImpl() {
writeEx(0xFA);
writeD(allskills.size());
for (SkillLearn sk : allskills) {
writeD(sk.getId());
writeD(sk.getLevel());
writeD(sk.getCost());
writeH(sk.getMinLevel());
writeH(0); // return in glory days ?
writeD(sk.getRequiredItems().size());
for(int itemId : sk.getRequiredItems().keySet()) {
writeD(itemId);
writeQ(sk.getRequiredItems().get(itemId));
}
Skill skkill = SkillTable.getInstance().getInfo(sk.getId(), sk.getLevel());
if (skkill != null && skkill.isRelationSkill())
{
int[] _ss = skkill.getRelationSkills();
writeD(_ss.length);// deletedSkillsSize
for (int skillId : _ss)
{
writeD(skillId);// skillId
writeD(SkillTable.getInstance().getBaseLevel(skillId));// skillLvl
}
} else
writeD(0x00);
}
}
}