Examples of RewardList


Examples of lineage2.gameserver.model.reward.RewardList

        }
        else if (nodeName.equalsIgnoreCase("rewardlist"))
        {
          RewardType type = RewardType.valueOf(secondElement.attributeValue("type"));
          boolean autoLoot = (secondElement.attributeValue("auto_loot") != null) && Boolean.parseBoolean(secondElement.attributeValue("auto_loot"));
          RewardList list = new RewardList(type, autoLoot);
          for (Iterator<org.dom4j.Element> nextIterator = secondElement.elementIterator(); nextIterator.hasNext();)
          {
            final org.dom4j.Element nextElement = nextIterator.next();
            final String nextName = nextElement.getName();
            if (nextName.equalsIgnoreCase("group"))
            {
              double enterChance = nextElement.attributeValue("chance") == null ? RewardList.MAX_CHANCE : Double.parseDouble(nextElement.attributeValue("chance")) * 10000;
              RewardGroup group = (type == RewardType.SWEEP) || (type == RewardType.NOT_RATED_NOT_GROUPED) ? null : new RewardGroup(enterChance);
              for (Iterator<org.dom4j.Element> rewardIterator = nextElement.elementIterator(); rewardIterator.hasNext();)
              {
                org.dom4j.Element rewardElement = rewardIterator.next();
                RewardData data = parseReward(rewardElement);
                if ((type == RewardType.SWEEP) || (type == RewardType.NOT_RATED_NOT_GROUPED))
                {
                  warn("Can't load rewardlist from group: " + npcId + "; type: " + type);
                }
                else
                {
                  group.addData(data);
                }
              }
              if (group != null)
              {
                list.add(group);
              }
            }
            else if (nextName.equalsIgnoreCase("reward"))
            {
              if ((type != RewardType.SWEEP) && (type != RewardType.NOT_RATED_NOT_GROUPED))
              {
                warn("Reward can't be without group(and not grouped): " + npcId + "; type: " + type);
                continue;
              }
              RewardData data = parseReward(nextElement);
              RewardGroup g = new RewardGroup(RewardList.MAX_CHANCE);
              g.addData(data);
              list.add(g);
            }
          }
          if ((type == RewardType.RATED_GROUPED) || (type == RewardType.NOT_RATED_GROUPED))
          {
            if (!list.validate())
            {
              warn("Problems with rewardlist for npc: " + npcId + "; type: " + type);
            }
          }
          template.putRewardList(type, list);
        }
        else if (nodeName.equalsIgnoreCase("skills"))
        {
          for (Iterator<org.dom4j.Element> nextIterator = secondElement.elementIterator(); nextIterator.hasNext();)
          {
            org.dom4j.Element nextElement = nextIterator.next();
            int id = Integer.parseInt(nextElement.attributeValue("id"));
            int level = Integer.parseInt(nextElement.attributeValue("level"));
            if (id == 4416)
            {
              template.setRace(level);
            }
            Skill skill = SkillTable.getInstance().getInfo(id, level);
            if (skill == null)
            {
              continue;
            }
            template.addSkill(skill);
          }
        }
        else if (nodeName.equalsIgnoreCase("minions"))
        {
          for (Iterator<org.dom4j.Element> nextIterator = secondElement.elementIterator(); nextIterator.hasNext();)
          {
            org.dom4j.Element nextElement = nextIterator.next();
            int id = Integer.parseInt(nextElement.attributeValue("npc_id"));
            int count = Integer.parseInt(nextElement.attributeValue("count"));
            template.addMinion(new MinionData(id, count));
          }
        }
        else if (nodeName.equalsIgnoreCase("teach_classes"))
        {
          for (Iterator<org.dom4j.Element> nextIterator = secondElement.elementIterator(); nextIterator.hasNext();)
          {
            org.dom4j.Element nextElement = nextIterator.next();
            int id = Integer.parseInt(nextElement.attributeValue("id"));
            template.addTeachInfo(ClassId.VALUES[id]);
          }
        }
        else if (nodeName.equalsIgnoreCase("absorblist"))
        {
          for (Iterator<org.dom4j.Element> nextIterator = secondElement.elementIterator(); nextIterator.hasNext();)
          {
            org.dom4j.Element nextElement = nextIterator.next();
            int chance = Integer.parseInt(nextElement.attributeValue("chance"));
            int cursedChance = nextElement.attributeValue("cursed_chance") == null ? 0 : Integer.parseInt(nextElement.attributeValue("cursed_chance"));
            int minLevel = Integer.parseInt(nextElement.attributeValue("min_level"));
            int maxLevel = Integer.parseInt(nextElement.attributeValue("max_level"));
            boolean skill = (nextElement.attributeValue("skill") != null) && Boolean.parseBoolean(nextElement.attributeValue("skill"));
            AbsorbInfo.AbsorbType absorbType = AbsorbInfo.AbsorbType.valueOf(nextElement.attributeValue("type"));
            template.addAbsorbInfo(new AbsorbInfo(skill, absorbType, chance, cursedChance, minLevel, maxLevel));
          }
        }
        else if (nodeName.equalsIgnoreCase("teleportlist"))
        {
          for (Iterator<org.dom4j.Element> sublistIterator = secondElement.elementIterator(); sublistIterator.hasNext();)
          {
            org.dom4j.Element subListElement = sublistIterator.next();
            int id = Integer.parseInt(subListElement.attributeValue("id"));
            List<TeleportLocation> list = new ArrayList<>();
            for (Iterator<org.dom4j.Element> targetIterator = subListElement.elementIterator(); targetIterator.hasNext();)
            {
              org.dom4j.Element targetElement = targetIterator.next();
              int itemId = Integer.parseInt(targetElement.attributeValue("item_id", "57"));
              long price = Integer.parseInt(targetElement.attributeValue("price"));
              int npcStringId = Integer.parseInt(targetElement.attributeValue("name"));
              int castleId = Integer.parseInt(targetElement.attributeValue("castle_id", "0"));
              TeleportLocation loc = new TeleportLocation(itemId, price, npcStringId, castleId);
              loc.set(Location.parseLoc(targetElement.attributeValue("loc")));
              list.add(loc);
            }
            template.addTeleportList(id, list.toArray(new TeleportLocation[list.size()]));
          }
        }
        else if (nodeName.equalsIgnoreCase("walker_route"))
        {
          int id = Integer.parseInt(secondElement.attributeValue("id"));
View Full Code Here

Examples of lineage2.gameserver.model.reward.RewardList

   * @param lastAttacker Creature
   * @param topDamager Creature
   */
  public void rollRewards(Map.Entry<RewardType, RewardList> entry, final Creature lastAttacker, Creature topDamager)
  {
    RewardList list = entry.getValue();
    final Player activePlayer = topDamager.getPlayer();
    if (activePlayer == null)
    {
      return;
    }
    final int diff = calculateLevelDiffForDrop(topDamager.getLevel());
    double mod = calcStat(Stats.REWARD_MULTIPLIER, 1., topDamager, null);
    mod *= Experience.penaltyModifier(diff, 9);
    List<RewardItem> rewardItems = list.roll(activePlayer, mod, false, true);
    for (RewardItem drop : rewardItems)
    {
      dropItem(activePlayer, drop.itemId, drop.count);
    }
  }
View Full Code Here

Examples of lineage2.gameserver.model.reward.RewardList

        if (!"npc".equalsIgnoreCase(npcNode.getNodeName()))
        {
          continue;
        }
        NamedNodeMap attrs = npcNode.getAttributes();
        RewardList list = null;
        RewardType type = null;
        int npcId = parseInt(attrs, "id");
        NpcTemplate template = NpcHolder.getInstance().getTemplate(npcId);
        if (template == null)
        {
          _log.warn("Omitted NPC ID: " + npcId + " - NPC template does not exists!");
        }
        else
        {
          for (Node dropNode = npcNode.getFirstChild(); dropNode != null; dropNode = dropNode.getNextSibling())
          {
            if ("droplist".equalsIgnoreCase(dropNode.getNodeName()))
            {
              type = RewardType.RATED_GROUPED;
              list = new RewardList(type, false);
              for (Node catNode = dropNode.getFirstChild(); catNode != null; catNode = catNode.getNextSibling())
              {
                if (!"category".equalsIgnoreCase(catNode.getNodeName()))
                {
                  continue;
                }
                attrs = catNode.getAttributes();
                int chance = (int) (parseDouble(attrs, "chance") * 10000.0D);
                RewardGroup group = new RewardGroup(chance);
                for (Node itemNode = catNode.getFirstChild(); itemNode != null; itemNode = itemNode.getNextSibling())
                {
                  if (!"item".equalsIgnoreCase(itemNode.getNodeName()))
                  {
                    continue;
                  }
                  _dropsParsed += 1;
                  attrs = itemNode.getAttributes();
                  RewardData data = parseReward(attrs);
                  group.addData(data);
                }
                list.add(group);
              }
            }
            else
            {
              if (!"spoillist".equalsIgnoreCase(dropNode.getNodeName()))
              {
                continue;
              }
              RewardGroup g = new RewardGroup(RewardList.MAX_CHANCE);
              type = RewardType.SWEEP;
              list = new RewardList(type, false);
              for (Node itemNode = dropNode.getFirstChild(); itemNode != null; itemNode = itemNode.getNextSibling())
              {
                if (!"item".equalsIgnoreCase(itemNode.getNodeName()))
                {
                  continue;
                }
                _spoilsParsed += 1;
                attrs = itemNode.getAttributes();
                RewardData data = parseReward(attrs);
                g.addData(data);
              }
              list.add(g);
            }
            template.putRewardList(type, list);
          }
        }
      }
View Full Code Here

Examples of lineage2.gameserver.model.reward.RewardList

    }
    htmlMessage.setFile("actions/rewardlist_info.htm");
    final StringBuilder builder = new StringBuilder(100);
    for (Map.Entry<RewardType, RewardList> entry : npc.getTemplate().getRewards().entrySet())
    {
      RewardList rewardList = entry.getValue();
      switch (entry.getKey())
      {
        case RATED_GROUPED:
          ratedGroupedRewardList(builder, npc, rewardList, player, mod);
          break;
View Full Code Here

Examples of lineage2.gameserver.model.reward.RewardList

   * @param topDamager Creature
   */
  public void rollRewards(Map.Entry<RewardType, RewardList> entry, final Creature lastAttacker, Creature topDamager)
  {
    RewardType type = entry.getKey();
    RewardList list = entry.getValue();
    if ((type == RewardType.SWEEP) && !isSpoiled())
    {
      return;
    }
    final Creature activeChar = type == RewardType.SWEEP ? lastAttacker : topDamager;
    final Player activePlayer = activeChar.getPlayer();
    if (activePlayer == null)
    {
      return;
    }
    final int diff = calculateLevelDiffForDrop(topDamager.getLevel());
    double mod = calcStat(Stats.REWARD_MULTIPLIER, 1., activeChar, null);
    mod *= Experience.penaltyModifier(diff, 9);
    List<RewardItem> rewardItems = list.roll(activePlayer, mod, this instanceof RaidBossInstance);
    switch (type)
    {
      case SWEEP:
        _sweepItems = rewardItems;
        break;
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.