Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Author: Elastic Heart
- * Date: 28.11.2015
- * Time: 15:02
- */
- public class ExEnchantSkillInfo extends L2GameServerPacket
- {
- private List<Integer> routes;
- private int skill_id, level, can_add, is_enchanted;
- public ExEnchantSkillInfo(int skill_id, int level)
- {
- this.routes = new ArrayList<>();
- this.skill_id = skill_id;
- this.level = level;
- // скилл уже заточен?
- if (EnchantSkillUtils.isEnchanted(this.level))
- {
- is_enchanted = 1;
- int sub_level = EnchantSkillUtils.getSubLevelFromMask(this.level); // получаем саб левел из битовой маски
- int base_level = EnchantSkillUtils.getBaseLevelFromMask(this.level); //получем базовый левел без заточки из битовой маски
- EnchantSkillLearn esd = SkillTreeTable.getSkillEnchant(skill_id, sub_level + 1);
- // добавляем ветки если есть
- if (esd != null)
- {
- addRoute(EnchantSkillUtils.getMask(base_level, esd.getLevel()));
- can_add = 1;
- }
- SkillTreeTable.getEnchantsForChange(skill_id, sub_level).forEach(e -> addRoute(EnchantSkillUtils.getMask(base_level, e.getLevel())));
- }
- else
- {
- // еще не заточен
- SkillTreeTable.getFirstEnchantsForSkill(skill_id).forEach(esd ->
- {
- addRoute(EnchantSkillUtils.getMask(this.level, esd.getLevel()));
- can_add = 1;
- });
- }
- }
- public void addRoute(int level)
- {
- routes.add(level);
- }
- @Override
- protected void writeImpl()
- {
- writeEx(0x2A);
- writeD(skill_id);
- writeD(level);
- writeD(can_add);
- writeD(is_enchanted);
- writeD(routes.size());
- routes.forEach(this::writeD);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement