Advertisement
elasticpwnz

Untitled

Nov 29th, 2015
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.67 KB | None | 0 0
  1. /**
  2.  * Author: Elastic Heart
  3.  * Date: 28.11.2015
  4.  * Time: 15:02
  5.  */
  6. public class ExEnchantSkillInfo extends L2GameServerPacket
  7. {
  8.     private List<Integer> routes;
  9.     private int skill_id, level, can_add, is_enchanted;
  10.  
  11.     public ExEnchantSkillInfo(int skill_id, int level)
  12.     {
  13.         this.routes = new ArrayList<>();
  14.         this.skill_id = skill_id;
  15.         this.level = level;
  16.  
  17.         // скилл уже заточен?
  18.         if (EnchantSkillUtils.isEnchanted(this.level))
  19.         {
  20.             is_enchanted = 1;
  21.  
  22.             int sub_level = EnchantSkillUtils.getSubLevelFromMask(this.level); // получаем саб левел из битовой маски
  23.             int base_level = EnchantSkillUtils.getBaseLevelFromMask(this.level); //получем базовый левел без заточки из битовой маски
  24.  
  25.             EnchantSkillLearn esd = SkillTreeTable.getSkillEnchant(skill_id, sub_level + 1);
  26.  
  27.             // добавляем ветки если есть
  28.             if (esd != null)
  29.             {
  30.                 addRoute(EnchantSkillUtils.getMask(base_level, esd.getLevel()));
  31.                 can_add = 1;
  32.             }
  33.  
  34.             SkillTreeTable.getEnchantsForChange(skill_id, sub_level).forEach(e -> addRoute(EnchantSkillUtils.getMask(base_level, e.getLevel())));
  35.         }
  36.         else
  37.         {
  38.             // еще не заточен
  39.             SkillTreeTable.getFirstEnchantsForSkill(skill_id).forEach(esd ->
  40.             {
  41.                 addRoute(EnchantSkillUtils.getMask(this.level, esd.getLevel()));
  42.                 can_add = 1;
  43.             });
  44.         }
  45.     }
  46.  
  47.     public void addRoute(int level)
  48.     {
  49.         routes.add(level);
  50.     }
  51.  
  52.     @Override
  53.     protected void writeImpl()
  54.     {
  55.         writeEx(0x2A);
  56.         writeD(skill_id);
  57.         writeD(level);
  58.         writeD(can_add);
  59.         writeD(is_enchanted);
  60.         writeD(routes.size());
  61.         routes.forEach(this::writeD);
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement