Package net.sf.l2j.gameserver.model.actor.instance

Examples of net.sf.l2j.gameserver.model.actor.instance.L2PcInstance


    if (_mana > 0) _mana--;

    if (_storedInDb) _storedInDb = false;
    if (resetConsumingMana) _consumingMana = false;

    L2PcInstance player = ((L2PcInstance)L2World.getInstance().findObject(getOwnerId()));
    if (player != null)
    {
      SystemMessage sm;
      switch (_mana)
      {
        case 10:
          sm = new SystemMessage(SystemMessageId.S1S_REMAINING_MANA_IS_NOW_10);
          sm.addString(getItemName());
          player.sendPacket(sm);
          break;
        case 5:
          sm = new SystemMessage(SystemMessageId.S1S_REMAINING_MANA_IS_NOW_5);
          sm.addString(getItemName());
          player.sendPacket(sm);
          break;
        case 1:
          sm = new SystemMessage(SystemMessageId.S1S_REMAINING_MANA_IS_NOW_1);
          sm.addString(getItemName());
          player.sendPacket(sm);
          break;
      }

      if (_mana == 0) // The life time has expired
      {
        sm = new SystemMessage(SystemMessageId.S1S_REMAINING_MANA_IS_NOW_0);
        sm.addString(getItemName());
        player.sendPacket(sm);

        // unequip
        if (isEquipped())
        {
          L2ItemInstance[] unequiped = player.getInventory().unEquipItemInSlotAndRecord(getEquipSlot());
          InventoryUpdate iu = new InventoryUpdate();
          for (int i = 0; i < unequiped.length; i++)
          {
            player.checkSSMatch(null, unequiped[i]);
            iu.addModifiedItem(unequiped[i]);
          }
          player.sendPacket(iu);
        }

        if (getLocation() != ItemLocation.WAREHOUSE)
        {
          // destroy
          player.getInventory().destroyItem("L2ItemInstance", this, player, null);

          // send update
          InventoryUpdate iu = new InventoryUpdate();
          iu.addRemovedItem(this);
          player.sendPacket(iu);

          StatusUpdate su = new StatusUpdate(player.getObjectId());
          su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
          player.sendPacket(su);

        }
        else
        {
          player.getWarehouse().destroyItem("L2ItemInstance", this, player, null);
        }

        // delete from world
        L2World.getInstance().removeObject(this);
      }
      else
      {
        // Reschedule if still equipped
        if (!_consumingMana && isEquipped())
        {
          scheduleConsumeManaTask();
        }
        if (getLocation() != ItemLocation.WAREHOUSE)
        {
          InventoryUpdate iu = new InventoryUpdate();
          iu.addModifiedItem(this);
          player.sendPacket(iu);
        }
      }
    }
  }
View Full Code Here


  @Override
  protected
  void runImpl()
  {

    L2PcInstance player = getClient().getActiveChar();
        if (player == null)
          return;

        L2FolkInstance trainer = player.getLastFolkNPC();
        if (trainer == null)
          return;

        int npcid = trainer.getNpcId();

        if (!player.isInsideRadius(trainer, L2NpcInstance.INTERACTION_DISTANCE, false, false) && !player.isGM())
            return;

        if (player.getSkillLevel(_skillId) >= _skillLvl)// already knows the skill with this level
            return;

        if (player.getClassId().getId() < 88) // requires to have 3rd class quest completed
        return;

        if (player.getLevel() < 76) return;

        L2Skill skill = SkillTable.getInstance().getInfo(_skillId, _skillLvl);

        int counts = 0;
        int _requiredSp = 10000000;
        int _requiredExp = 100000;
        byte _rate = 0;
        int _baseLvl = 1;

        L2EnchantSkillLearn[] skills = SkillTreeTable.getInstance().getAvailableEnchantSkills(player);

        for (L2EnchantSkillLearn s : skills)
        {
          L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel());
          if (sk == null || sk != skill || !sk.getCanLearn(player.getClassId())
              || !sk.canTeachBy(npcid)) continue;
          counts++;
          _requiredSp = s.getSpCost();
          _requiredExp = s.getExp();
          _rate = s.getRate(player);
          _baseLvl = s.getBaseLevel();
        }

        if (counts == 0 && !Config.ALT_GAME_SKILL_LEARN)
        {
          player.sendMessage("You are trying to learn skill that u can't..");
          Util.handleIllegalPlayerAction(player, "Player " + player.getName()
              + " tried to learn skill that he can't!!!", IllegalPlayerAction.PUNISH_KICK);
          return;
        }

        if (player.getSp() >= _requiredSp)
        {
          if (player.getExp() >= _requiredExp)
          {
            if (Config.ES_SP_BOOK_NEEDED && (_skillLvl == 101 || _skillLvl == 141)) // only first lvl requires book
              {
                int spbId = 6622;

                L2ItemInstance spb = player.getInventory().getItemByItemId(spbId);

                if (spb == null)// Haven't spellbook
                {
                  player.sendPacket(new SystemMessage(SystemMessageId.YOU_DONT_HAVE_ALL_OF_THE_ITEMS_NEEDED_TO_ENCHANT_THAT_SKILL));
                  return;
                }
                // ok
                player.destroyItem("Consume", spb, trainer, true);
              }
          }
          else
          {
            SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DONT_HAVE_ENOUGH_EXP_TO_ENCHANT_THAT_SKILL);
              player.sendPacket(sm);
            return;
          }
        }
        else
        {
          SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DONT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL);
          player.sendPacket(sm);
          return;
        }
        if (Rnd.get(100) <= _rate)
        {
          player.addSkill(skill, true);

          if (Config.DEBUG)
            _log.fine("Learned skill " + _skillId + " for " + _requiredSp + " SP.");

          player.getStat().removeExpAndSp(_requiredExp, _requiredSp);

          StatusUpdate su = new StatusUpdate(player.getObjectId());
          su.addAttribute(StatusUpdate.SP, player.getSp());
          player.sendPacket(su);

            SystemMessage ep = new SystemMessage(SystemMessageId.EXP_DECREASED_BY_S1);
            ep.addNumber(_requiredExp);
            sendPacket(ep);

            SystemMessage sp = new SystemMessage(SystemMessageId.SP_DECREASED_S1);
            sp.addNumber(_requiredSp);
            sendPacket(sp);

          SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_SUCCEEDED_IN_ENCHANTING_THE_SKILL_S1);
          sm.addSkillName(_skillId);
          player.sendPacket(sm);
        }
        else
        {
          if (skill.getLevel() > 100)
          {
            _skillLvl = _baseLvl;
            player.addSkill(SkillTable.getInstance().getInfo(_skillId, _skillLvl), true);
            player.sendSkillList();
          }
          SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_FAILED_TO_ENCHANT_THE_SKILL_S1);
          sm.addSkillName(_skillId);
          player.sendPacket(sm);
        }
        trainer.showEnchantSkillList(player, player.getClassId());

        // update all the shortcuts to this skill
        L2ShortCut[] allShortCuts = player.getAllShortCuts();

        for (L2ShortCut sc : allShortCuts)
        {
          if (sc.getId() == _skillId && sc.getType() == L2ShortCut.TYPE_SKILL)
          {
            L2ShortCut newsc = new L2ShortCut(sc.getSlot(), sc.getPage(), sc.getType(), sc.getId(), _skillLvl, 1);
            player.sendPacket(new ShortCutRegister(newsc));
            player.registerShortCut(newsc);
          }
        }
  }
View Full Code Here

  }

  private void addExpSp(L2PcInstance activeChar)
  {
    L2Object target = activeChar.getTarget();
    L2PcInstance player = null;
    if (target instanceof L2PcInstance)
      player = (L2PcInstance)target;
    else
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
      return;
    }
    NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
    adminReply.setFile("data/html/admin/expsp.htm");
    adminReply.replace("%name%", player.getName());
    adminReply.replace("%level%", String.valueOf(player.getLevel()));
    adminReply.replace("%xp%", String.valueOf(player.getExp()));
    adminReply.replace("%sp%", String.valueOf(player.getSp()));
    adminReply.replace("%class%", player.getTemplate().className);
    activeChar.sendPacket(adminReply);
  }
View Full Code Here

  @Override
  public synchronized void useItem(L2PlayableInstance playable, L2ItemInstance item)
  {
    if (!(playable instanceof L2PcInstance)) return;

    L2PcInstance activeChar = (L2PcInstance)playable;
    L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance();
    L2Weapon weaponItem = activeChar.getActiveWeaponItem();
        int itemId = item.getItemId();

        // Check if Spiritshot can be used
        if (weaponInst == null || weaponItem.getSpiritShotCount() == 0)
        {
            if(!activeChar.getAutoSoulShot().containsKey(itemId))
                activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_USE_SPIRITSHOTS));
      return;
    }

        // Check if Spiritshot is already active
        if (weaponInst.getChargedSpiritshot() != L2ItemInstance.CHARGED_NONE) return;

        // Check for correct grade
        int weaponGrade = weaponItem.getCrystalType();
    if ((weaponGrade == L2Item.CRYSTAL_NONE && itemId != 5790 && itemId != 2509) ||
        (weaponGrade == L2Item.CRYSTAL_D && itemId != 2510) ||
        (weaponGrade == L2Item.CRYSTAL_C && itemId != 2511) ||
        (weaponGrade == L2Item.CRYSTAL_B && itemId != 2512) ||
        (weaponGrade == L2Item.CRYSTAL_A && itemId != 2513) ||
        (weaponGrade == L2Item.CRYSTAL_S && itemId != 2514))
    {
            if(!activeChar.getAutoSoulShot().containsKey(itemId))
                activeChar.sendPacket(new SystemMessage(SystemMessageId.SPIRITSHOTS_GRADE_MISMATCH));
      return;
    }

        // Consume Spiritshot if player has enough of them
        if (!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), weaponItem.getSpiritShotCount(), null, false))
    {
            if(activeChar.getAutoSoulShot().containsKey(itemId))
            {
                activeChar.removeAutoSoulShot(itemId);
                activeChar.sendPacket(new ExAutoSoulShot(itemId, 0));

                SystemMessage sm = new SystemMessage(SystemMessageId.AUTO_USE_OF_S1_CANCELLED);
                sm.addString(item.getItem().getName());
                activeChar.sendPacket(sm);
            }
            else activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_SPIRITSHOTS));
      return;
    }

        // Charge Spiritshot
    weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_SPIRITSHOT);

        // Send message to client
    activeChar.sendPacket(new SystemMessage(SystemMessageId.ENABLED_SPIRITSHOT));
        Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUser(activeChar, activeChar, SKILL_IDS[weaponGrade], 1, 0, 0), 360000/*600*/);
  }
 
View Full Code Here

  }

  private boolean adminAddExpSp(L2PcInstance activeChar, String ExpSp)
  {
    L2Object target = activeChar.getTarget();
    L2PcInstance player = null;
    if (target instanceof L2PcInstance)
    {
      player = (L2PcInstance)target;
    }
    else
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
      return false;
    }
    StringTokenizer st = new StringTokenizer(ExpSp);
    if (st.countTokens()!=2)
    {
      return false;
    }
   
    String exp = st.nextToken();
    String sp = st.nextToken();
    long expval = 0;
    int spval = 0;
    try
    {
      expval = Long.parseLong(exp);
      spval = Integer.parseInt(sp);
    }
    catch(Exception e)
    {
      return false;
    }
    if(expval != 0 || spval != 0)
    {
      //Common character information
      player.sendMessage("Admin is adding you "+expval+" xp and "+spval+" sp.");
      player.addExpAndSp(expval,spval);
      //Admin information
      activeChar.sendMessage("Added "+expval+" xp and "+spval+" sp to "+player.getName()+".");
      if (Config.DEBUG)
        _log.fine("GM: "+activeChar.getName()+"("+activeChar.getObjectId()+") added "+expval+
            " xp and "+spval+" sp to "+player.getObjectId()+".");
    }
    return true;
  }
View Full Code Here

  }

  private boolean adminRemoveExpSP(L2PcInstance activeChar, String ExpSp)
  {
    L2Object target = activeChar.getTarget();
    L2PcInstance player = null;
    if (target instanceof L2PcInstance)
    {
      player = (L2PcInstance)target;
    }
    else
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
      return false;
    }
    StringTokenizer st = new StringTokenizer(ExpSp);
    if (st.countTokens()!=2)
      return false;
   
    String exp = st.nextToken();
    String sp = st.nextToken();
    long expval = 0;
    int spval = 0;
    try
    {
      expval = Long.parseLong(exp);
      spval = Integer.parseInt(sp);
    }
    catch (Exception e)
    {
      return false;
    }
    if(expval != 0 || spval != 0)
    {
      //Common character information
      player.sendMessage("Admin is removing you "+expval+" xp and "+spval+" sp.");
      player.removeExpAndSp(expval,spval);
      //Admin information
      activeChar.sendMessage("Removed "+expval+" xp and "+spval+" sp from "+player.getName()+".");
      if (Config.DEBUG)
        _log.fine("GM: "+activeChar.getName()+"("+activeChar.getObjectId()+") removed "+expval+
            " xp and "+spval+" sp from "+player.getObjectId()+".");
    }
    return true;
  }
View Full Code Here

  }

  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
        if (activeChar == null)
            return;

    if (PetitionManager.getInstance().isPlayerInConsultation(activeChar))
    {
      if (activeChar.isGM())
        PetitionManager.getInstance().endActivePetition(activeChar);
      else
        activeChar.sendPacket(new SystemMessage(SystemMessageId.PETITION_UNDER_PROCESS));
    }
    else
    {
      if (PetitionManager.getInstance().isPlayerPetitionPending(activeChar))
      {
        if (PetitionManager.getInstance().cancelActivePetition(activeChar))
        {
          int numRemaining = Config.MAX_PETITIONS_PER_PLAYER - PetitionManager.getInstance().getPlayerTotalPetitionCount(activeChar);

          SystemMessage sm = new SystemMessage(SystemMessageId.PETITION_CANCELED_SUBMIT_S1_MORE_TODAY);
          sm.addString(String.valueOf(numRemaining));
          activeChar.sendPacket(sm);
          sm = null;

                    // Notify all GMs that the player's pending petition has been cancelled.
                    String msgContent = activeChar.getName() + " has canceled a pending petition.";
                    GmListTable.broadcastToGMs(new CreatureSay(activeChar.getObjectId(), 17, "Petition System", msgContent));
        }
        else
        {
          activeChar.sendPacket(new SystemMessage(SystemMessageId.FAILED_CANCEL_PETITION_TRY_LATER));
        }
      }
      else
      {
        activeChar.sendPacket(new SystemMessage(SystemMessageId.PETITION_NOT_SUBMITTED));
      }
    }
  }
View Full Code Here

  @Override
  public void useItem(L2PlayableInstance playable, L2ItemInstance item)
  {
    if (!(playable instanceof L2PcInstance))
      return;
    L2PcInstance activeChar = (L2PcInstance)playable;

      int itemId = item.getItemId();
      int itemToCreateId;
      int amount;

      if (itemId < 5200){ // Normal Compressed Package of SpiritShots
        itemToCreateId = itemId - 2631; // Gives id of matching item for this pack
        amount = 300;
      }else// Greater Compressed Package of Spirithots
         itemToCreateId = itemId - 2747; // Gives id of matching item for this pack
        amount = 1000;
      }

    activeChar.getInventory().destroyItem("Extract", item, activeChar, null);
      activeChar.getInventory().addItem("Extract", itemToCreateId, amount, activeChar, item);

      SystemMessage sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);
      sm.addItemName(itemToCreateId);
        sm.addNumber(amount);
      activeChar.sendPacket(sm);

        ItemList playerUI = new ItemList(activeChar, false);
    activeChar.sendPacket(playerUI);
  }
View Full Code Here

   * @param target
   * @return
   */
  private L2PcInstance getActualLooter(L2PcInstance player, int ItemId, boolean spoil, L2Character target)
  {
    L2PcInstance looter = player;

        switch (_itemDistribution)
        {
            case ITEM_RANDOM:
                if (!spoil) looter = getCheckedRandomMember(ItemId, target);
View Full Code Here

   * @param name
   */

  public void changePartyLeader(String name)
  {
    L2PcInstance player = getPlayerByName(name);

    if (player != null && !player.isInDuel())
    {
      if (getPartyMembers().contains(player))
      {
        if (isLeader(player))
        {
          player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_TRANSFER_RIGHTS_TO_YOURSELF));
        }
        else
        {
          //Swap party members
          L2PcInstance temp;
          int p1 = getPartyMembers().indexOf(player);
          temp = getLeader();
          getPartyMembers().set(0,getPartyMembers().get(p1));
          getPartyMembers().set(p1,temp);

View Full Code Here

TOP

Related Classes of net.sf.l2j.gameserver.model.actor.instance.L2PcInstance

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.