Package lineage2.gameserver.templates

Examples of lineage2.gameserver.templates.StatsSet


      _selectorThreads[i].start();
    }
    LoginServerCommunication.getInstance().start();
    if (Config.SERVICES_OFFLINE_TRADE_RESTORE_AFTER_RESTART)
    {
      ThreadPoolManager.getInstance().schedule(new RestoreOfflineTraders(), 30000L);
    }
    getListeners().onStart();
    if (Config.IS_TELNET_ENABLED)
    {
      statusServer = new TelnetServer();
View Full Code Here


  {
    if (iz == null)
    {
      return null;
    }
    StatsSet params = iz.getAddParams();
    String rewards = null;
    for (int i = rank; i >= 0; i--)
    {
      rewards = params.getString("reward_lvl_" + i, null);
      if (rewards != null)
      {
        break;
      }
    }
View Full Code Here

  protected void readData(org.dom4j.Element rootElement) throws Exception
  {
    for (Iterator<org.dom4j.Element> itemIterator = rootElement.elementIterator(); itemIterator.hasNext();)
    {
      org.dom4j.Element itemElement = itemIterator.next();
      StatsSet set = new StatsSet();
      set.set("item_id", itemElement.attributeValue("id"));
      set.set("name", itemElement.attributeValue("name"));
      set.set("add_name", itemElement.attributeValue("add_name", StringUtils.EMPTY));
      int slot = 0;
      for (Iterator<org.dom4j.Element> subIterator = itemElement.elementIterator(); subIterator.hasNext();)
      {
        org.dom4j.Element subElement = subIterator.next();
        String subName = subElement.getName();
        if (subName.equalsIgnoreCase("set"))
        {
          set.set(subElement.attributeValue("name"), subElement.attributeValue("value"));
        }
        else if (subName.equalsIgnoreCase("equip"))
        {
          for (Iterator<org.dom4j.Element> slotIterator = subElement.elementIterator(); slotIterator.hasNext();)
          {
            org.dom4j.Element slotElement = slotIterator.next();
            Bodypart bodypart = Bodypart.valueOf(slotElement.attributeValue("id"));
            if (bodypart.getReal() != null)
            {
              slot = bodypart.mask();
            }
            else
            {
              slot |= bodypart.mask();
            }
          }
        }
      }
      set.set("bodypart", slot);
      ItemTemplate template = null;
      try
      {
        template = new EtcItemTemplate(set);
      }
      catch (Exception e)
      {
        warn("Fail create item: " + set.get("item_id"), e);
        continue;
      }
      for (Iterator<org.dom4j.Element> subIterator = itemElement.elementIterator(); subIterator.hasNext();)
      {
        org.dom4j.Element subElement = subIterator.next();
        String subName = subElement.getName();
        if (subName.equalsIgnoreCase("for"))
        {
          parseFor(subElement, template);
        }
        else if (subName.equalsIgnoreCase("triggers"))
        {
          parseTriggers(subElement, template);
        }
        else if (subName.equalsIgnoreCase("skills"))
        {
          for (Iterator<org.dom4j.Element> nextIterator = subElement.elementIterator(); nextIterator.hasNext();)
          {
            org.dom4j.Element nextElement = nextIterator.next();
            int id = Integer.parseInt(nextElement.attributeValue("id"));
            int level = Integer.parseInt(nextElement.attributeValue("level"));
            Skill skill = SkillTable.getInstance().getInfo(id, level);
            if (skill != null)
            {
              template.attachSkill(skill);
            }
            else
            {
              info("Skill not found(" + id + "," + level + ") for item:" + set.getObject("item_id") + "; file:" + getCurrentFileName());
            }
          }
        }
        else if (subName.equalsIgnoreCase("enchant4_skill"))
        {
          int id = Integer.parseInt(subElement.attributeValue("id"));
          int level = Integer.parseInt(subElement.attributeValue("level"));
          Skill skill = SkillTable.getInstance().getInfo(id, level);
          if (skill != null)
          {
            template.setEnchant4Skill(skill);
          }
        }
        else if (subName.equalsIgnoreCase("unequip_skill"))
        {
          int id = Integer.parseInt(subElement.attributeValue("id"));
          int level = Integer.parseInt(subElement.attributeValue("level"));
          Skill skill = SkillTable.getInstance().getInfo(id, level);
          if (skill != null)
          {
            template.setUnequipeSkill(skill);
          }
        }
        else if (subName.equalsIgnoreCase("cond"))
        {
          Condition condition = parseFirstCond(subElement);
          if (condition != null)
          {
            int msgId = parseNumber(subElement.attributeValue("msgId")).intValue();
            condition.setSystemMsg(msgId);
            template.setCondition(condition);
          }
        }
        else if (subName.equalsIgnoreCase("attributes"))
        {
          int[] attributes = new int[6];
          for (Iterator<org.dom4j.Element> nextIterator = subElement.elementIterator(); nextIterator.hasNext();)
          {
            org.dom4j.Element nextElement = nextIterator.next();
            Element element;
            if (nextElement.getName().equalsIgnoreCase("attribute"))
            {
              element = Element.getElementByName(nextElement.attributeValue("element"));
              attributes[element.getId()] = Integer.parseInt(nextElement.attributeValue("value"));
            }
          }
          template.setBaseAtributeElements(attributes);
        }
        else if (subName.equalsIgnoreCase("enchant_options"))
        {
          for (Iterator<org.dom4j.Element> nextIterator = subElement.elementIterator(); nextIterator.hasNext();)
          {
            org.dom4j.Element nextElement = nextIterator.next();
            if (nextElement.getName().equalsIgnoreCase("level"))
            {
              int val = Integer.parseInt(nextElement.attributeValue("val"));
              int i = 0;
              int[] options = new int[3];
              for (org.dom4j.Element optionElement : nextElement.elements())
              {
                OptionDataTemplate optionData = OptionDataHolder.getInstance().getTemplate(Integer.parseInt(optionElement.attributeValue("id")));
                if (optionData == null)
                {
                  error("Not found option_data for id: " + optionElement.attributeValue("id") + "; item_id: " + set.get("item_id"));
                  continue;
                }
                options[i++] = optionData.getId();
              }
              template.addEnchantOptions(val, options);
View Full Code Here

      SpawnInfo spawnDat = null;
      int removedItemId = 0, removedItemCount = 0, giveItemId = 0, givedItemCount = 0, requiredQuestId = 0;
      int maxChannels = 20;
      boolean removedItemNecessity = false;
      boolean setReuseUponEntry = true;
      StatsSet params = new StatsSet();
      List<InstantZone.SpawnInfo> spawns = new ArrayList<>();
      IntObjectMap<InstantZone.DoorInfo> doors = Containers.emptyIntObjectMap();
      Map<String, InstantZone.ZoneInfo> zones = Collections.emptyMap();
      Map<String, InstantZone.SpawnInfo2> spawns2 = Collections.emptyMap();
      instanceId = Integer.parseInt(element.attributeValue("id"));
      name = element.attributeValue("name");
      String n = element.attributeValue("timelimit");
      if (n != null)
      {
        timelimit = Integer.parseInt(n);
      }
      n = element.attributeValue("collapseIfEmpty");
      collapseIfEmpty = Integer.parseInt(n);
      n = element.attributeValue("maxChannels");
      maxChannels = Integer.parseInt(n);
      n = element.attributeValue("dispelBuffs");
      dispelBuffs = (n != null) && Boolean.parseBoolean(n);
      int minLevel = 0, maxLevel = 0, minParty = 1, maxParty = 7;
      List<Location> teleportLocs = Collections.emptyList();
      Location ret = null;
      for (Iterator<Element> subIterator = element.elementIterator(); subIterator.hasNext();)
      {
        Element subElement = subIterator.next();
        if ("level".equalsIgnoreCase(subElement.getName()))
        {
          minLevel = Integer.parseInt(subElement.attributeValue("min"));
          maxLevel = Integer.parseInt(subElement.attributeValue("max"));
        }
        else if ("collapse".equalsIgnoreCase(subElement.getName()))
        {
          onPartyDismiss = Boolean.parseBoolean(subElement.attributeValue("on-party-dismiss"));
          timer = Integer.parseInt(subElement.attributeValue("timer"));
        }
        else if ("party".equalsIgnoreCase(subElement.getName()))
        {
          minParty = Integer.parseInt(subElement.attributeValue("min"));
          maxParty = Integer.parseInt(subElement.attributeValue("max"));
        }
        else if ("return".equalsIgnoreCase(subElement.getName()))
        {
          ret = Location.parseLoc(subElement.attributeValue("loc"));
        }
        else if ("teleport".equalsIgnoreCase(subElement.getName()))
        {
          if (teleportLocs.isEmpty())
          {
            teleportLocs = new ArrayList<>(1);
          }
          teleportLocs.add(Location.parseLoc(subElement.attributeValue("loc")));
        }
        else if ("remove".equalsIgnoreCase(subElement.getName()))
        {
          removedItemId = Integer.parseInt(subElement.attributeValue("itemId"));
          removedItemCount = Integer.parseInt(subElement.attributeValue("count"));
          removedItemNecessity = Boolean.parseBoolean(subElement.attributeValue("necessary"));
        }
        else if ("give".equalsIgnoreCase(subElement.getName()))
        {
          giveItemId = Integer.parseInt(subElement.attributeValue("itemId"));
          givedItemCount = Integer.parseInt(subElement.attributeValue("count"));
        }
        else if ("quest".equalsIgnoreCase(subElement.getName()))
        {
          requiredQuestId = Integer.parseInt(subElement.attributeValue("id"));
        }
        else if ("reuse".equalsIgnoreCase(subElement.getName()))
        {
          resetReuse = new SchedulingPattern(subElement.attributeValue("resetReuse"));
          sharedReuseGroup = Integer.parseInt(subElement.attributeValue("sharedReuseGroup"));
          setReuseUponEntry = Boolean.parseBoolean(subElement.attributeValue("setUponEntry"));
        }
        else if ("geodata".equalsIgnoreCase(subElement.getName()))
        {
          String[] rxy = subElement.attributeValue("map").split("_");
          mapx = Integer.parseInt(rxy[0]);
          mapy = Integer.parseInt(rxy[1]);
        }
        else if ("doors".equalsIgnoreCase(subElement.getName()))
        {
          for (Element e : subElement.elements())
          {
            if (doors.isEmpty())
            {
              doors = new HashIntObjectMap<>();
            }
            boolean opened = (e.attributeValue("opened") != null) && Boolean.parseBoolean(e.attributeValue("opened"));
            boolean invul = (e.attributeValue("invul") == null) || Boolean.parseBoolean(e.attributeValue("invul"));
            DoorTemplate template = DoorHolder.getInstance().getTemplate(Integer.parseInt(e.attributeValue("id")));
            doors.put(template.getNpcId(), new InstantZone.DoorInfo(template, opened, invul));
          }
        }
        else if ("zones".equalsIgnoreCase(subElement.getName()))
        {
          for (Element e : subElement.elements())
          {
            if (zones.isEmpty())
            {
              zones = new HashMap<>();
            }
            boolean active = (e.attributeValue("active") != null) && Boolean.parseBoolean(e.attributeValue("active"));
            ZoneTemplate template = ZoneHolder.getInstance().getTemplate(e.attributeValue("name"));
            if (template == null)
            {
              error("Zone: " + e.attributeValue("name") + " not found; file: " + getCurrentFileName());
              continue;
            }
            zones.put(template.getName(), new InstantZone.ZoneInfo(template, active));
          }
        }
        else if ("add_parameters".equalsIgnoreCase(subElement.getName()))
        {
          for (Element e : subElement.elements())
          {
            if ("param".equalsIgnoreCase(e.getName()))
            {
              params.set(e.attributeValue("name"), e.attributeValue("value"));
            }
          }
        }
        else if ("spawns".equalsIgnoreCase(subElement.getName()))
        {
View Full Code Here

      statement = con.prepareStatement(SELECT_SQL_QUERY);
      rset = statement.executeQuery();
      while (rset.next())
      {
        int classId = rset.getInt(Olympiad.CLASS_ID);
        StatsSet statDat = new StatsSet();
        int charId = rset.getInt(Olympiad.CHAR_ID);
        statDat.set(Olympiad.CLASS_ID, classId);
        statDat.set(Olympiad.CHAR_NAME, rset.getString(Olympiad.CHAR_NAME));
        statDat.set(Olympiad.POINTS, rset.getInt(Olympiad.POINTS));
        statDat.set(Olympiad.POINTS_PAST, rset.getInt(Olympiad.POINTS_PAST));
        statDat.set(Olympiad.POINTS_PAST_STATIC, rset.getInt(Olympiad.POINTS_PAST_STATIC));
        statDat.set(Olympiad.COMP_DONE, rset.getInt(Olympiad.COMP_DONE));
        statDat.set(Olympiad.COMP_WIN, rset.getInt(Olympiad.COMP_WIN));
        statDat.set(Olympiad.COMP_LOOSE, rset.getInt(Olympiad.COMP_LOOSE));
        statDat.set(Olympiad.GAME_CLASSES_COUNT, rset.getInt(Olympiad.GAME_CLASSES_COUNT));
        statDat.set(Olympiad.GAME_NOCLASSES_COUNT, rset.getInt(Olympiad.GAME_NOCLASSES_COUNT));
        Olympiad._nobles.put(charId, statDat);
      }
    }
    catch (Exception e)
    {
View Full Code Here

    Connection con = null;
    PreparedStatement statement = null;
    try
    {
      con = DatabaseFactory.getInstance().getConnection();
      StatsSet nobleInfo = Olympiad._nobles.get(nobleId);
      statement = con.prepareStatement(REPLACE_SQL_QUERY);
      statement.setInt(1, nobleId);
      statement.setInt(2, nobleInfo.getInteger(Olympiad.CLASS_ID));
      statement.setInt(3, nobleInfo.getInteger(Olympiad.POINTS));
      statement.setInt(4, nobleInfo.getInteger(Olympiad.POINTS_PAST));
      statement.setInt(5, nobleInfo.getInteger(Olympiad.POINTS_PAST_STATIC));
      statement.setInt(6, nobleInfo.getInteger(Olympiad.COMP_DONE));
      statement.setInt(7, nobleInfo.getInteger(Olympiad.COMP_WIN));
      statement.setInt(8, nobleInfo.getInteger(Olympiad.COMP_LOOSE));
      statement.setInt(9, nobleInfo.getInteger(Olympiad.GAME_CLASSES_COUNT));
      statement.setInt(10, nobleInfo.getInteger(Olympiad.GAME_NOCLASSES_COUNT));
      statement.execute();
    }
    catch (Exception e)
    {
      _log.error("OlympiadNobleDAO: replace(int): " + nobleId, e);
View Full Code Here

    {
      player_name = player.getName();
    }
    else
    {
      StatsSet noble = Olympiad._nobles.get(obj_id);
      if (noble != null)
      {
        player_name = noble.getString(Olympiad.CHAR_NAME, "");
      }
    }
    _members.put(obj_id, new TeamMember(obj_id, player_name, player, _game, _side));
    _name = player_name;
  }
View Full Code Here

    if (noble.isCursedWeaponEquipped())
    {
      noble.sendPacket(SystemMsg.YOU_CANNOT_REGISTER_WHILE_IN_POSSESSION_OF_A_CURSED_WEAPON);
      return false;
    }
    StatsSet nobleInfo = _nobles.get(noble.getObjectId());
    if (!validPlayer(noble, noble, type))
    {
      return false;
    }
    if (getNoblePoints(noble.getObjectId()) < 3)
    {
      noble.sendMessage(new CustomMessage("lineage2.gameserver.model.entity.Olympiad.LessPoints", noble));
      return false;
    }
    if (noble.getOlympiadGame() != null)
    {
      return false;
    }
    int classId = nobleInfo.getInteger(CLASS_ID);
    switch (type)
    {
      case CLASSED:
      {
        _classBasedRegisters.put(classId, noble.getObjectId());
View Full Code Here

    {
      return;
    }
    for (Map.Entry<Integer, StatsSet> entry : _nobles.entrySet())
    {
      StatsSet set = entry.getValue();
      Player player = GameObjectsStorage.getPlayer(entry.getKey());
      if (_period != 1)
      {
        set.set(POINTS, set.getInteger(POINTS) + Config.OLYMPIAD_POINTS_WEEKLY);
      }
      set.set(GAME_CLASSES_COUNT, 0);
      set.set(GAME_NOCLASSES_COUNT, 0);
      if (player != null)
      {
        player.sendPacket(new SystemMessage2(SystemMsg.C1_HAS_EARNED_S2_POINTS_IN_THE_GRAND_OLYMPIAD_GAMES).addName(player).addInteger(Config.OLYMPIAD_POINTS_WEEKLY));
      }
    }
View Full Code Here

   * @return int
   */
  public static synchronized int getNoblessePasses(Player player)
  {
    int objId = player.getObjectId();
    StatsSet noble = _nobles.get(objId);
    if (noble == null)
    {
      return 0;
    }
    int points = noble.getInteger(POINTS_PAST);
    if (points == 0)
    {
      return 0;
    }
    int rank = _noblesRank.get(objId);
    switch (rank)
    {
      case 1:
        points = Config.ALT_OLY_RANK1_POINTS;
        break;
      case 2:
        points = Config.ALT_OLY_RANK2_POINTS;
        break;
      case 3:
        points = Config.ALT_OLY_RANK3_POINTS;
        break;
      case 4:
        points = Config.ALT_OLY_RANK4_POINTS;
        break;
      default:
        points = Config.ALT_OLY_RANK5_POINTS;
    }
    if (player.isHero() || Hero.getInstance().isInactiveHero(player.getObjectId()))
    {
      points += Config.ALT_OLY_HERO_POINTS;
    }
    noble.set(POINTS_PAST, 0);
    OlympiadDatabase.saveNobleData(objId);
    return points * Config.ALT_OLY_GP_PER_POINT;
  }
 
View Full Code Here

TOP

Related Classes of lineage2.gameserver.templates.StatsSet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.