Package com.l2jfrozen.gameserver.model.actor.instance

Examples of com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance


  }
 
  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
    if (activeChar == null)
      return;
   
    if (_count <= 0)
    {
      if (_count < 0)
      {
        Util.handleIllegalPlayerAction(activeChar, "[RequestDestroyItem] count < 0! ban! oid: " + _objectId + " owner: " + activeChar.getName(), Config.DEFAULT_PUNISH);
      }
      return;
    }
   
    if (!getClient().getFloodProtectors().getTransaction().tryPerformAction("destroy"))
    {
      activeChar.sendMessage("You destroying items too fast.");
      return;
    }
   
    int count = _count;
   
    if (activeChar.getPrivateStoreType() != 0)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_TRADE_DISCARD_DROP_ITEM_WHILE_IN_SHOPMODE));
      return;
    }
   
    L2ItemInstance itemToRemove = activeChar.getInventory().getItemByObjectId(_objectId);
   
    // if we cant find requested item, its actualy a cheat!
    if (itemToRemove == null)
      return;
    if (itemToRemove.fireEvent("DESTROY", (Object[]) null) != null)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
      return;
    }
   
    // Cannot discard item that the skill is consumming
    if (activeChar.isCastingNow())
    {
      if (activeChar.getCurrentSkill() != null && activeChar.getCurrentSkill().getSkill().getItemConsumeId() == itemToRemove.getItemId())
      {
        activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
        return;
      }
    }
   
    int itemId = itemToRemove.getItemId();
   
    if (itemToRemove.isWear() || !itemToRemove.isDestroyable() || CursedWeaponsManager.getInstance().isCursed(itemId))
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
      return;
    }
   
    if (!itemToRemove.isStackable() && count > 1)
    {
      Util.handleIllegalPlayerAction(activeChar, "[RequestDestroyItem] count > 1 but item is not stackable! oid: " + _objectId + " owner: " + activeChar.getName(), Config.DEFAULT_PUNISH);
      return;
    }
   
    if (_count > itemToRemove.getCount())
    {
      count = itemToRemove.getCount();
    }
   
    if (itemToRemove.isEquipped())
    {
      if (itemToRemove.isAugmented())
      {
        itemToRemove.getAugmentation().removeBoni(activeChar);
      }
     
      L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(itemToRemove.getEquipSlot());
      InventoryUpdate iu = new InventoryUpdate();
      for (L2ItemInstance element : unequiped)
      {
        activeChar.checkSSMatch(null, element);
        iu.addModifiedItem(element);
      }
     
      activeChar.sendPacket(iu);
      activeChar.broadcastUserInfo();
    }
   
    if (L2PetDataTable.isPetItem(itemId))
    {
      Connection con = null;
      try
      {
        if (activeChar.getPet() != null && activeChar.getPet().getControlItemId() == _objectId)
        {
          activeChar.getPet().unSummon(activeChar);
        }
       
        // if it's a pet control item, delete the pet
        con = L2DatabaseFactory.getInstance().getConnection(false);
        PreparedStatement statement = con.prepareStatement("DELETE FROM pets WHERE item_obj_id=?");
        statement.setInt(1, _objectId);
        statement.execute();
        statement.close();
       
        statement = null;
      }
      catch (Exception e)
      {
        if (Config.ENABLE_ALL_EXCEPTIONS)
          e.printStackTrace();
       
        _log.log(Level.WARNING, "could not delete pet objectid: ", e);
      }
      finally
      {
        CloseUtil.close(con);
        con = null;
      }
    }
   
    L2ItemInstance removedItem = activeChar.getInventory().destroyItem("Destroy", _objectId, count, activeChar, null);
   
    if (removedItem == null)
      return;
   
    if (!Config.FORCE_INVENTORY_UPDATE)
    {
      InventoryUpdate iu = new InventoryUpdate();
      if (removedItem.getCount() == 0)
      {
        iu.addRemovedItem(removedItem);
      }
      else
      {
        iu.addModifiedItem(removedItem);
      }
     
      // client.getConnection().sendPacket(iu);
      activeChar.sendPacket(iu);
    }
    else
    {
      sendPacket(new ItemList(activeChar, true));
    }
   
    StatusUpdate su = new StatusUpdate(activeChar.getObjectId());
    su.addAttribute(StatusUpdate.CUR_LOAD, activeChar.getCurrentLoad());
    activeChar.sendPacket(su);
   
    // L2World world = L2World.getInstance();
    // world.removeObject(removedItem);
  }
View Full Code Here


  @Override
  protected void runImpl()
  {
    // Get the current L2PcInstance of the player
    L2PcInstance activeChar = getClient().getActiveChar();
   
    if (activeChar == null)
      return;
   
    // Get the level of the used skill
    int level = activeChar.getSkillLevel(_magicId);
    if (level <= 0)
    {
      activeChar.sendPacket(ActionFailed.STATIC_PACKET);
      return;
    }

    if(activeChar.isOutOfControl())
    {
      activeChar.sendPacket(ActionFailed.STATIC_PACKET);
      return;
    }

    // Get the L2Skill template corresponding to the skillID received from the client
    L2Skill skill = SkillTable.getInstance().getInfo(_magicId, level);
   
    // Check the validity of the skill
    if (skill != null)
    {

      // _log.fine(" [FINE]   skill:"+skill.getName() + " level:"+skill.getLevel() + " passive:"+skill.isPassive());
      // _log.fine(" [FINE]   range:"+skill.getCastRange()+" targettype:"+skill.getTargetType()+" optype:"+skill.getOperateType()+" power:"+skill.getPower());
      // _log.fine(" [FINE]   reusedelay:"+skill.getReuseDelay()+" hittime:"+skill.getHitTime());
      // _log.fine(" [FINE]   currentState:"+activeChar.getCurrentState());  //for debug
     
      // If Alternate rule Karma punishment is set to true, forbid skill Return to player with Karma
      if (skill.getSkillType() == SkillType.RECALL && !Config.ALT_GAME_KARMA_PLAYER_CAN_TELEPORT && activeChar.getKarma() > 0)
        return;
     
      // players mounted on pets cannot use any toggle skills
      if (skill.isToggle() && activeChar.isMounted())
        return;
      // activeChar.stopMove();
     
      //final L2Object target = activeChar.getTarget();
      //if(target!=null && target instanceof L2Character)
      //  activeChar.sendPacket(new ValidateLocation((L2Character)target));
     
      activeChar.useMagic(skill, _ctrlPressed, _shiftPressed);
    }
    else
    {
      activeChar.sendPacket(ActionFailed.STATIC_PACKET);
      _log.severe(" [ERROR] [WARNING]No skill found with id " + _magicId + " and level " + level + " !!");
    }
  }
View Full Code Here

  }
 
  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
    if (activeChar == null)
      return;
   
    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 || targetItem.getOwnerId() != activeChar.getObjectId() || refinerItem.getOwnerId() != activeChar.getObjectId() || gemstoneItem.getOwnerId() != activeChar.getObjectId() || activeChar.getLevel() < 46) // must be lvl 46
    {
      activeChar.sendPacket(new ExVariationResult(0, 0, 0));
      activeChar.sendPacket(new SystemMessage(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS));
      return;
    }
   
    // unequip item
    if (targetItem.isEquipped())
    {
      activeChar.disarmWeapons();
    }
   
    if (TryAugmentItem(activeChar, targetItem, refinerItem, gemstoneItem))
    {
      int stat12 = 0x0000FFFF & targetItem.getAugmentation().getAugmentationId();
      int stat34 = targetItem.getAugmentation().getAugmentationId() >> 16;
      activeChar.sendPacket(new ExVariationResult(stat12, stat34, 1));
      activeChar.sendPacket(new SystemMessage(SystemMessageId.THE_ITEM_WAS_SUCCESSFULLY_AUGMENTED));
    }
    else
    {
      activeChar.sendPacket(new ExVariationResult(0, 0, 0));
      activeChar.sendPacket(new SystemMessage(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS));
    }
  }
View Full Code Here

  }
 
  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
    if (activeChar == null)
      return;
   
    switch (_type)
    {
      case 0x01: // item
      case 0x03: // action
      case 0x04: // macro
      case 0x05: // recipe
      {
        L2ShortCut sc = new L2ShortCut(_slot, _page, _type, _id, -1, _unk);
        sendPacket(new ShortCutRegister(sc));
        activeChar.registerShortCut(sc);
        break;
      }
      case 0x02: // skill
      {
        int level = activeChar.getSkillLevel(_id);
        if (level > 0)
        {
          L2ShortCut sc = new L2ShortCut(_slot, _page, _type, _id, level, _unk);
          sendPacket(new ShortCutRegister(sc));
          activeChar.registerShortCut(sc);
        }
        break;
      }
    } 
  }
View Full Code Here

  }

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

    L2PcInstance requestor = activeChar.getActiveRequester();
    if(requestor == null)
      return;

    if(_answer == 1)
    {
      ClanTable.getInstance().storeclanswars(requestor.getClanId(), activeChar.getClanId());
    }
    else
    {
      requestor.sendPacket(new SystemMessage(SystemMessageId.WAR_PROCLAMATION_HAS_BEEN_REFUSED));
    }

    activeChar.setActiveRequester(null);
    requestor.onTransactionResponse();
  }
View Full Code Here

  @Override
  protected void runImpl()
  {
    //System.out.println("C5: RequestPledgeWarList d:"+_unk1);
    //System.out.println("C5: RequestPledgeWarList d:"+_tab);
    L2PcInstance activeChar = getClient().getActiveChar();
    if(activeChar == null)
      return;

    if(activeChar.getClan() == null)
      return;

    //do we need powers to do that??
    activeChar.sendPacket(new PledgeReceiveWarList(activeChar.getClan(), _tab));
  }
View Full Code Here

  }

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

    L2FolkInstance trainer = activeChar.getLastFolkNPC();
    if (trainer == null)
    {
      return;
    }
   
    if (!activeChar.isGM() && !activeChar.isInsideRadius(trainer, L2NpcInstance.INTERACTION_DISTANCE, false, false))
    {
      return;
    }
   
    boolean canteach = false;
    L2Skill skill = SkillTable.getInstance().getInfo(_id, _level);
    if(skill == null)
    {
      if(Config.DEBUG)
      {
        _log.warning("skill id " + _id + " level " + _level + " is undefined. aquireSkillInfo failed.");
      }
      return;
    }

    if(_skillType == 0)
    {
      if(!trainer.getTemplate().canTeach(activeChar.getSkillLearningClassId()))
        return; // cheater

      L2SkillLearn[] skills = SkillTreeTable.getInstance().getAvailableSkills(activeChar, activeChar.getSkillLearningClassId());

      for(L2SkillLearn s : skills)
      {
        if(s.getId() == _id && s.getLevel() == _level)
        {
View Full Code Here

  }

  @Override
  protected void runImpl()
  {
    L2PcInstance player = getClient().getActiveChar();

    if(player == null)
      return;

    QuestState qs = player.getQuestState("255_Tutorial");
    if(qs != null)
    {
      qs.getQuest().notifyEvent("QM" + _number + "", null, player);
    }
  }
View Full Code Here

  }

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

    if(activeChar.isGM() && activeChar.getAccessLevel().getLevel()>2){ //just head gm and admin can drop items on the ground
      sendPacket(SystemMessage.sendString("You have not right to discard anything from inventory"));
      return;
    }
   
    // Fix against safe enchant exploit
    if(activeChar.getActiveEnchantItem() != null)
    {
      sendPacket(SystemMessage.sendString("You can't discard items during enchant."));
      return;
    }
   
    // Flood protect drop to avoid packet lag
    if (!getClient().getFloodProtectors().getDropItem().tryPerformAction("drop item"))
      return;
   
    L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);
   
    if(item == null || _count == 0 || !activeChar.validateItemManipulation(_objectId, "drop") || !Config.ALLOW_DISCARDITEM && !activeChar.isGM() || (!item.isDropable() && !(activeChar.isGM() && Config.GM_TRADE_RESTRICTED_ITEMS)))
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
      return;
    }
   
    if (item.isAugmented())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.AUGMENTED_ITEM_CANNOT_BE_DISCARDED));
      return;
    }
   

    if(item.getItemType() == L2EtcItemType.QUEST && !(activeChar.isGM() && Config.GM_TRADE_RESTRICTED_ITEMS))
      return;

    int itemId = item.getItemId();

    // Cursed Weapons cannot be dropped
    if(CursedWeaponsManager.getInstance().isCursed(itemId))
      return;

    if(_count > item.getCount())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
      return;
    }

    if(Config.PLAYER_SPAWN_PROTECTION > 0 && activeChar.isInvul() && !activeChar.isGM())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
      return;
    }

    if(_count <= 0)
    {
      activeChar.setAccessLevel(-1); //ban
      Util.handleIllegalPlayerAction(activeChar, "[RequestDropItem] count <= 0! ban! oid: " + _objectId + " owner: " + activeChar.getName(), IllegalPlayerAction.PUNISH_KICK);
      return;
    }

    if(!item.isStackable() && _count > 1)
    {
      Util.handleIllegalPlayerAction(activeChar, "[RequestDropItem] count > 1 but item is not stackable! ban! oid: " + _objectId + " owner: " + activeChar.getName(), IllegalPlayerAction.PUNISH_KICK);
      return;
    }

    if(!activeChar.getAccessLevel().allowTransaction())
    {
      activeChar.sendMessage("Unsufficient privileges.");
      activeChar.sendPacket(ActionFailed.STATIC_PACKET);
      return;
    }

    if(activeChar.isProcessingTransaction() || activeChar.getPrivateStoreType() != 0)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_TRADE_DISCARD_DROP_ITEM_WHILE_IN_SHOPMODE));
      return;
    }

    if(activeChar.isFishing())
    {
      //You can't mount, dismount, break and drop items while fishing
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DO_WHILE_FISHING_2));
      return;
    }

    // Cannot discard item that the skill is consumming
    if(activeChar.isCastingNow())
    {
      if(activeChar.getCurrentSkill() != null && activeChar.getCurrentSkill().getSkill().getItemConsumeId() == item.getItemId())
      {
        activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_THIS_ITEM));
        return;
      }
    }

    if(L2Item.TYPE2_QUEST == item.getItem().getType2() && !activeChar.isGM())
    {
      if(Config.DEBUG)
      {
        _log.finest(activeChar.getObjectId() + ":player tried to drop quest item");
      }
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_EXCHANGE_ITEM));
      return;
    }

    if(!activeChar.isInsideRadius(_x, _y, 150, false) || Math.abs(_z - activeChar.getZ()) > 50)
    {
      if(Config.DEBUG)
      {
        _log.finest(activeChar.getObjectId() + ": trying to drop too far away");
      }
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_DISCARD_DISTANCE_TOO_FAR));
      return;
    }

    if(Config.DEBUG)
    {
      _log.fine("requested drop item " + _objectId + "(" + item.getCount() + ") at " + _x + "/" + _y + "/" + _z);
    }

    if(item.isEquipped())
    {
      // Remove augementation boni on unequip
      if(item.isAugmented())
      {
        item.getAugmentation().removeBoni(activeChar);
      }

      L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInBodySlotAndRecord(item.getItem().getBodyPart());
      InventoryUpdate iu = new InventoryUpdate();

      for(L2ItemInstance element : unequiped)
      {
        activeChar.checkSSMatch(null, element);

        iu.addModifiedItem(element);
      }
      activeChar.sendPacket(iu);
      activeChar.broadcastUserInfo();

      ItemList il = new ItemList(activeChar, true);
      activeChar.sendPacket(il);
    }
   
    L2ItemInstance dropedItem = activeChar.dropItem("Drop", _objectId, _count, _x, _y, _z, null, false, false);

    if(Config.DEBUG)
    {
      _log.fine("dropping " + _objectId + " item(" + _count + ") at: " + _x + " " + _y + " " + _z);
    }

    if(dropedItem != null && dropedItem.getItemId() == 57 && dropedItem.getCount() >= 1000000 && Config.RATE_DROP_ADENA<=200)
    {
      String msg = "Character (" + activeChar.getName() + ") has dropped (" + dropedItem.getCount() + ")adena at (" + _x + "," + _y + "," + _z + ")";
      _log.warning(msg);
      GmListTable.broadcastMessageToGMs(msg);
    }
   
  }
View Full Code Here

  }

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

    // Player shouldn't be able to set stores if he/she is alike dead (dead or fake death)
    if(player.isAlikeDead())
    {
      sendPacket(ActionFailed.STATIC_PACKET);
      return;
    }

    if(player.getPrivateStoreType() != 0)
    {
      player.setPrivateStoreType(L2PcInstance.STORE_PRIVATE_NONE);
      player.broadcastUserInfo();
      if(player.isSitting())
      {
        player.standUp();
      }
    }

    if(player.getCreateList() == null)
    {
      player.setCreateList(new L2ManufactureList());
    }

    player.sendPacket(new RecipeShopManageList(player, true));

    /*int privatetype=player.getPrivateStoreType();
    if (privatetype == 0)
    {
      if (player.getWaitType() !=1)
View Full Code Here

TOP

Related Classes of com.l2jfrozen.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.