Package net.sf.l2j.gameserver.model

Examples of net.sf.l2j.gameserver.model.L2ItemInstance$ScheduleConsumeManaTask


    if (itemId == 57 && !(questId>=217 && questId<=233) && !(questId>=401 && questId<=418) )
      count=(int)(count*Config.RATE_QUESTS_REWARD);
    // Set quantity of item

    // Add items to player's inventory
    L2ItemInstance item = getPlayer().getInventory().addItem("Quest", itemId, count, getPlayer(), getPlayer().getTarget());

    if (item == null)
            return;
    if (enchantlevel > 0)
            item.setEnchantLevel(enchantlevel);

    // If item for reward is gold, send message of gold reward to client
    if (itemId == 57)
        {
      SystemMessage smsg = new SystemMessage(SystemMessageId.EARNED_ADENA);
      smsg.addNumber(count);
      getPlayer().sendPacket(smsg);
    }
    // Otherwise, send message of object reward to client
    else
        {
            if (count > 1)
            {
          SystemMessage smsg = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);
          smsg.addItemName(item.getItemId());
                smsg.addNumber(count);
          getPlayer().sendPacket(smsg);
            } else
            {
                SystemMessage smsg = new SystemMessage(SystemMessageId.EARNED_ITEM);
                smsg.addItemName(item.getItemId());
                getPlayer().sendPacket(smsg);
            }
    }
        getPlayer().sendPacket(new ItemList(getPlayer(), false));

View Full Code Here


   * @param count : Quantity of items to destroy
   */
  public void takeItems(int itemId, int count)
    {
    // Get object item from player's inventory list
    L2ItemInstance item = getPlayer().getInventory().getItemByItemId(itemId);

    if (item == null)
      return;

    // Tests on count value in order not to have negative value
    if (count < 0 || count > item.getCount())
      count = item.getCount();

    // Destroy the quantity of items wanted
        if (itemId == 57)
            getPlayer().reduceAdena("Quest", count, getPlayer(), true);
        else
View Full Code Here

                handler.useSkill(activeChar, skill, targets);
      }
        catch (Exception e) {}

        L2Character target = null;
    L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();

    L2PcInstance player = null;
    if (activeChar instanceof L2PcInstance)
      player = (L2PcInstance)activeChar;

        for (int index = 0; index < targets.length; index++)
        {
            target = (L2Character)targets[index];

            // We should not heal if char is dead
            if (target == null || target.isDead())
                continue;

            // We should not heal walls and door
            if(target instanceof L2DoorInstance)
              continue;

            // Player holding a cursed weapon can't be healed and can't heal
            if (target != activeChar)
            {
              if (target instanceof L2PcInstance && ((L2PcInstance)target).isCursedWeaponEquiped())
                continue;
              else if (player != null && player.isCursedWeaponEquiped())
                continue;
            }

      double hp = skill.getPower();

            if (skill.getSkillType() == SkillType.HEAL_PERCENT)
            {
                hp = target.getMaxHp() * hp / 100.0;
            }
            else
            {
                //Added effect of SpS and Bsps
                if (weaponInst != null)
                {
                    if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT)
                    {
                        hp *= 1.5;
                        weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_NONE);
                    }
                    else if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_SPIRITSHOT)
                    {
                        hp *= 1.3;
                        weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_NONE);
                    }
                }
                // If there is no weapon equipped, check for an active summon.
                else if (activeChar instanceof L2Summon)
                {
View Full Code Here

    {
      int objectId = i.id;
      int count = i.count;

      // Check validity of requested item
      L2ItemInstance item = player.checkItemManipulation(objectId, count, "deposit");
            if (item == null)
            {
              _log.warning("Error depositing a warehouse object for char "+player.getName()+" (validity check)");
              i.id = 0;
              i.count = 0;
              continue;
            }

            if (!item.isTradeable() || item.getItemType() == L2EtcItemType.QUEST) return;

      // Calculate needed adena and slots
      if (item.getItemId() == 57) currentAdena -= count;
            if (!item.isStackable()) slots += count;
            else if (warehouse.getItemByItemId(item.getItemId()) == null) slots++;
    }

        // Item Max Limit Check
        if (!warehouse.validateCapacity(slots))
        {
            sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED));
            return;
        }

        // Check if enough adena and charge the fee
        if (currentAdena < fee || !player.reduceAdena("Warehouse", fee, player.getLastFolkNPC(), false))
        {
            sendPacket(new SystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
            return;
        }

        // Proceed to the transfer
    InventoryUpdate playerIU = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate();
    for (Item i : _items)
    {
      int objectId = i.id;
      int count = i.count;

      // check for an invalid item
      if (objectId == 0 && count == 0) continue;

      L2ItemInstance oldItem = player.getInventory().getItemByObjectId(objectId);
            if (oldItem == null)
            {
                _log.warning("Error depositing a warehouse object for char "+player.getName()+" (olditem == null)");
                continue;
            }

            int itemId = oldItem.getItemId();

            if ((itemId >= 6611 && itemId <= 6621) || itemId == 6842)
                continue;

      L2ItemInstance newItem = player.getInventory().transferItem("Warehouse", objectId, count, warehouse, player, player.getLastFolkNPC());
            if (newItem == null)
            {
              _log.warning("Error depositing a warehouse object for char "+player.getName()+" (newitem == null)");
              continue;
            }
View Full Code Here

        boolean ss = false;
            boolean sps = false;
            boolean bss = false;
            if (player != null)
            {
              L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
              if (weaponInst != null)
              {
                if (skill.isMagic())
                {
                  if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT)
                      {
                          bss = true;
                          if (skill.getId() != 1020) // vitalize
                            weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_NONE);
                      }
                      else if (weaponInst.getChargedSpiritshot() == L2ItemInstance.CHARGED_SPIRITSHOT)
                      {
                          sps = true;
                          if (skill.getId() != 1020) // vitalize
                            weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_NONE);
                      }
                }
                    else
                      if (weaponInst.getChargedSoulshot() == L2ItemInstance.CHARGED_SOULSHOT)
                      {
                          ss = true;
                          if (skill.getId() != 1020) // vitalize
                            weaponInst.setChargedSoulshot(L2ItemInstance.CHARGED_NONE);
                      }
              }
            }
            else if (activeChar instanceof L2Summon)
            {
View Full Code Here

 
  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
    L2ItemInstance item = (L2ItemInstance)L2World.getInstance().findObject(_itemObjId);

    if (item == null) return;

    if (activeChar.getLevel() < 46)
    {
      activeChar.sendMessage("You have to be level 46 in order to augment an item");
      return;
    }

    // check if the item is augmentable
    int itemGrade = item.getItem().getItemGrade();
    int itemType = item.getItem().getType2();

    if (item.isAugmented())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.ONCE_AN_ITEM_IS_AUGMENTED_IT_CANNOT_BE_AUGMENTED_AGAIN));
      return;
    }
    //TODO: can do better? : currently: using isdestroyable() as a check for hero / cursed weapons
    else if (itemGrade < L2Item.CRYSTAL_C || itemType != L2Item.TYPE2_WEAPON || !item.isDestroyable() ||
        item.isShadowItem())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.THIS_IS_NOT_A_SUITABLE_ITEM));
      return;
    }
View Full Code Here

        CastleManager.getInstance().getCastleById(_manorId).updateSeed(
            seed.getId(), seed.getCanProduce(),
            CastleManorManager.PERIOD_CURRENT);

      // Add item to Inventory and adjust update packet
      L2ItemInstance item = player.getInventory().addItem("Buy", seedId,
          count, player, target);

      if (item.getCount() > count)
        playerIU.addModifiedItem(item);
      else
        playerIU.addNewItem(item);

      // Send Char Buy Messages
View Full Code Here

    L2PcInstance activeChar = getClient().getActiveChar();

    if (activeChar == null)
        return;

    L2ItemInstance item = activeChar.getInventory().getPaperdollItemByL2ItemId(_slot);
    if (item != null && item.isWear())
    {
      // Wear-items are not to be unequipped
      return;
    }
    // Prevent of unequiping a cursed weapon
    if (_slot == L2Item.SLOT_LR_HAND && activeChar.isCursedWeaponEquiped())
    {
      // Message ?
      return;
    }

    // Prevent player from unequipping items in special conditions
         if (activeChar.isStunned() || activeChar.isSleeping()
             || activeChar.isParalyzed() || activeChar.isAlikeDead())
        {
            activeChar.sendMessage("Your status does not allow you to do that.");
            return;
        }
        if (activeChar.isAttackingNow() || activeChar.isCastingNow())
          return;

        // Remove augmentation boni
        if (item != null && item.isAugmented())
        {
          item.getAugmentation().removeBoni(activeChar);
        }

    L2ItemInstance[] unequiped =
      activeChar.getInventory().unEquipItemInBodySlotAndRecord(_slot);
View Full Code Here

  protected void runImpl()
    {
        L2PcInstance activeChar = getClient().getActiveChar();
        if (activeChar == null || _objectId == 0) return;

        L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);
        L2ItemInstance scroll = activeChar.getActiveEnchantItem();
        activeChar.setActiveEnchantItem(null);
        if (item == null || scroll == null) return;

         // can't enchant rods, hero weapons and shadow items
        if(item.getItem().getItemType() == L2WeaponType.ROD
            || item.getItemId() >= 6611 && item.getItemId() <= 6621
            || item.isShadowItem())
        {
          activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
            return;
        }
        if(item.isWear())
        {
            Util.handleIllegalPlayerAction(activeChar,"Player "+activeChar.getName()+" tried to enchant a weared Item", IllegalPlayerAction.PUNISH_KICK);
            return;
        }
        int itemType2 = item.getItem().getType2();
        boolean enchantItem = false;
        boolean blessedScroll = false;
        int crystalId = 0;

        /** pretty code ;D */
        switch (item.getItem().getCrystalType())
        {
            case L2Item.CRYSTAL_A:
                crystalId = 1461;
                switch(scroll.getItemId())
                {
                    case 729: case 731: case 6569:
                        if(itemType2 == L2Item.TYPE2_WEAPON)
                            enchantItem = true;
                        break;
                    case 730: case 732: case 6570:
                        if((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY))
                            enchantItem = true;
                        break;
                }
                break;
            case L2Item.CRYSTAL_B:
                crystalId = 1460;
                switch(scroll.getItemId())
                {
                    case 947: case 949: case 6571:
                        if(itemType2 == L2Item.TYPE2_WEAPON)
                            enchantItem = true;
                        break;
                    case 948: case 950: case 6572:
                        if((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY))
                            enchantItem = true;
                        break;
                }
                break;
            case L2Item.CRYSTAL_C:
                crystalId = 1459;
                switch(scroll.getItemId())
                {
                    case 951: case 953: case 6573:
                        if(itemType2 == L2Item.TYPE2_WEAPON)
                            enchantItem = true;
                        break;
                    case 952: case 954: case 6574:
                        if((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY))
                            enchantItem = true;
                        break;
                }
                break;
            case L2Item.CRYSTAL_D:
                crystalId = 1458;
                switch(scroll.getItemId())
                {
                    case 955: case 957: case 6575:
                        if(itemType2 == L2Item.TYPE2_WEAPON)
                            enchantItem = true;
                        break;
                    case 956: case 958: case 6576:
                        if((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY))
                            enchantItem = true;
                        break;
                }
                break;
            case L2Item.CRYSTAL_S:
                crystalId = 1462;
                switch(scroll.getItemId())
                {
                    case 959: case 961: case 6577:
                        if(itemType2 == L2Item.TYPE2_WEAPON)
                            enchantItem = true;
                        break;
                    case 960: case 962: case 6578:
                        if((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY))
                            enchantItem = true;
                        break;
                }
                break;
        }

        if (!enchantItem)
        {
            activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
            return;
        }

        // Get the scroll type - Yesod
        if (scroll.getItemId() >= 6569 && scroll.getItemId() <= 6578)
            blessedScroll = true;
        else
            for (int crystalscroll : CRYSTAL_SCROLLS)
                if(scroll.getItemId() == crystalscroll)
                {
                    blessedScroll = true; break;
                }

        scroll = activeChar.getInventory().destroyItem("Enchant", scroll, activeChar, item);
        if(scroll == null)
        {
            activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
            Util.handleIllegalPlayerAction(activeChar,"Player "+activeChar.getName()+" tried to enchant with a scroll he doesnt have", Config.DEFAULT_PUNISH);
            return;
        }

        // SystemMessage sm = new SystemMessage(SystemMessageId.ENCHANT_SCROLL_CANCELLED);
        // activeChar.sendPacket(sm);

        SystemMessage sm;

        int chance = 0;
        int maxEnchantLevel = 0;

        if (item.getItem().getType2() == L2Item.TYPE2_WEAPON)
        {
          chance = Config.ENCHANT_CHANCE_WEAPON;
          maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
        }
        else if (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR)
        {
          chance = Config.ENCHANT_CHANCE_ARMOR;
          maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
        }
        else if (item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)
        {
          chance = Config.ENCHANT_CHANCE_JEWELRY;
          maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
        }

        if (item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX
                || (item.getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR
                        && item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX_FULL))
            chance = 100;

        if (Rnd.get(100) < chance)
        {
            synchronized(item)
            {
              if (item.getOwnerId() != activeChar.getObjectId() // has just lost the item
                  || (item.getEnchantLevel() >= maxEnchantLevel && maxEnchantLevel != 0))
              {
                activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
                return;
              }
              if (item.getLocation() != L2ItemInstance.ItemLocation.INVENTORY && item.getLocation() != L2ItemInstance.ItemLocation.PAPERDOLL)
              {
                activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
                return;
              }
              if (item.getEnchantLevel() == 0)
              {
                sm = new SystemMessage(SystemMessageId.S1_SUCCESSFULLY_ENCHANTED);
                sm.addItemName(item.getItemId());
                activeChar.sendPacket(sm);
              }
              else
              {
                sm = new SystemMessage(SystemMessageId.S1_S2_SUCCESSFULLY_ENCHANTED);
                sm.addNumber(item.getEnchantLevel());
                sm.addItemName(item.getItemId());
                activeChar.sendPacket(sm);
              }
              item.setEnchantLevel(item.getEnchantLevel()+1);
              item.updateDatabase();
            }
        }
        else
        {
            if (!blessedScroll)
            {
                if (item.getEnchantLevel() > 0)
                {
                    sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_S2_EVAPORATED);
                    sm.addNumber(item.getEnchantLevel());
                    sm.addItemName(item.getItemId());
                    activeChar.sendPacket(sm);
                }
                else
                {
                    sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_EVAPORATED);
                    sm.addItemName(item.getItemId());
                    activeChar.sendPacket(sm);
                }
            }
            else
            {
                sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAILED);
                activeChar.sendPacket(sm);
            }
           
            if (!blessedScroll)
            {
                if (item.getEnchantLevel() > 0)
                {
                    sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
                    sm.addNumber(item.getEnchantLevel());
                    sm.addItemName(item.getItemId());
                    activeChar.sendPacket(sm);
                }
                else
                {
                    sm = new SystemMessage(SystemMessageId.S1_DISARMED);
                    sm.addItemName(item.getItemId());
                    activeChar.sendPacket(sm);
                }

                L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot());
                if (item.isEquipped())
                {
                    InventoryUpdate iu = new InventoryUpdate();
                    for (int i = 0; i < unequiped.length; i++)
                    {
                        iu.addModifiedItem(unequiped[i]);
                    }
                    activeChar.sendPacket(iu);
               
                    activeChar.broadcastUserInfo();
                }
               
                int count = item.getCrystalCount() - (item.getItem().getCrystalCount() +1) / 2;
                if (count < 1) count = 1;
   
                L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null);
                if (destroyItem == null) return;
               
                L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, count, activeChar, destroyItem);
           
                sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);
                sm.addItemName(crystals.getItemId());
                sm.addNumber(count);
                activeChar.sendPacket(sm);
   
                if (!Config.FORCE_INVENTORY_UPDATE)
                {
View Full Code Here

  @Override
  protected
  void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
    L2ItemInstance targetItem = (L2ItemInstance)L2World.getInstance().findObject(_targetItemObjId);
    L2ItemInstance refinerItem = (L2ItemInstance)L2World.getInstance().findObject(_refinerItemObjId);
    L2ItemInstance gemstoneItem = (L2ItemInstance)L2World.getInstance().findObject(_gemstoneItemObjId);

    if (targetItem == null || refinerItem == null || gemstoneItem == null) return;

    // Make sure the item is a gemstone
    int gemstoneItemId = gemstoneItem.getItem().getItemId();
    if (gemstoneItemId != 2130 && gemstoneItemId != 2131)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.THIS_IS_NOT_A_SUITABLE_ITEM));
      return;
    }
View Full Code Here

TOP

Related Classes of net.sf.l2j.gameserver.model.L2ItemInstance$ScheduleConsumeManaTask

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.