Package com.l2jfrozen.gameserver.network.serverpackets

Examples of com.l2jfrozen.gameserver.network.serverpackets.SystemMessage


      return;
   
   
    if(player.isCursedWeaponEquiped() || requestor.isCursedWeaponEquiped())
    {
      requestor.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
      return;
    }
   
    if (player.isInLMS() || requestor.isInLMS())
    {
      requestor.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
      return;
    }
   
    requestor.sendPacket(new JoinParty(_response));

    if (_response == 1)
    {
      if (requestor.isInParty())
      {
        if (requestor.getParty().getMemberCount() >= 9)
        {
          SystemMessage sm = new SystemMessage(SystemMessageId.PARTY_FULL);
          player.sendPacket(sm);
          requestor.sendPacket(sm);
          return;
        }
      }
View Full Code Here


      // Check count
      if(count > Integer.MAX_VALUE || !template.isStackable() && count > 1)
      {
        //Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " tried to purchase invalid quantity of items at the same time.", Config.DEFAULT_PUNISH);
        SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
        sendPacket(sm);
        sm = null;
        return;
      }

      if(_listId < 1000000)
      {
        //list = TradeController.getInstance().getBuyList(_listId);
        price = list.getPriceForItemId(itemId);

        if(itemId >= 3960 && itemId <= 4026)
        {
          price *= Config.RATE_SIEGE_GUARDS_PRICE;
        }

      }
      /* TODO: Disabled until Leaseholders are rewritten ;-)
            }
            else
            {
              L2ItemInstance li = merchant.findLeaseItem(itemId, 0);
              if (li == null || li.getCount() < cnt)
              {
                cnt = li.getCount();
                if (cnt <= 0)
                {
                  items.remove(i);
                  continue;
                }
                items.get(i).setCount((int)cnt);
              }
              price = li.getPriceToSell(); // lease holder sells the item
              weight = li.getItem().getWeight();
            }

      */
      if(price < 0)
      {
        _log.warning("ERROR, no price found .. wrong buylist ??");
        sendPacket(ActionFailed.STATIC_PACKET);
        return;
      }

      if(price == 0 && !player.isGM() && Config.ONLY_GM_ITEMS_FREE)
      {
        player.sendMessage("Ohh Cheat dont work? You have a problem now!");
        Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " tried buy item for 0 adena.", Config.DEFAULT_PUNISH);
        return;
      }

      subTotal += (long) count * price; // Before tax
      tax = (int) (subTotal * taxRate);

      // Check subTotal + tax
      if(subTotal + tax > Integer.MAX_VALUE)
      {
        //Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " tried to purchase over " + Integer.MAX_VALUE + " adena worth of goods.", Config.DEFAULT_PUNISH);
        SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
        sendPacket(sm);
        sm = null;
        return;
      }

      weight += (long) count * template.getWeight();
      if(!template.isStackable())
      {
        slots += count;
      }
      else if(player.getInventory().getItemByItemId(itemId) == null)
      {
        slots++;
      }
    }

    if(weight > Integer.MAX_VALUE || weight < 0 || !player.getInventory().validateWeight((int) weight))
    {
      sendPacket(new SystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
      return;
    }

    if(slots > Integer.MAX_VALUE || slots < 0 || !player.getInventory().validateCapacity((int) slots))
    {
      sendPacket(new SystemMessage(SystemMessageId.SLOTS_FULL));
      return;
    }

    // Charge buyer and add tax to castle treasury if not owned by npc clan
    if(subTotal < 0 || !player.reduceAdena("Buy", (int) (subTotal + tax), player.getLastFolkNPC(), false))
    {
      sendPacket(new SystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
      return;
    }

    if(merchant != null && merchant.getIsInTown() && merchant.getCastle().getOwnerId() > 0)
    {
      merchant.getCastle().addToTreasury(tax);
    }

    // Proceed the purchase
    for(int i = 0; i < _count; i++)
    {
      int itemId = _items[i * 2 + 0];
      int count = _items[i * 2 + 1];

      if(count < 0)
      {
        count = 0;
      }

      if(!list.containsItemId(itemId))
      {
        Util.handleIllegalPlayerAction(player, "Warning!! Character " + player.getName() + " of account " + player.getAccountName() + " sent a false BuyList list_id.", Config.DEFAULT_PUNISH);
        return;
      }

      if(list.countDecrease(itemId))
      {
        if(!list.decreaseCount(itemId, count)) {
          SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
          sendPacket(sm);
          sm = null;
          return;
        }
         
View Full Code Here

    if(item.isAugmented())
      return;

    if(!item.isDropable() || !item.isDestroyable() || !item.isTradeable())
    {
      sendPacket(new SystemMessage(SystemMessageId.ITEM_NOT_FOR_PETS));
      return;
    }

    L2PetInstance pet = (L2PetInstance) player.getPet();

    if(pet.isDead())
    {
      sendPacket(new SystemMessage(SystemMessageId.CANNOT_GIVE_ITEMS_TO_DEAD_PET));
      return;
    }

    if(_amount < 0)
      return;
View Full Code Here

    int itemId = item.getItemId();

    if(activeChar.isAlikeDead() || pet.isDead())
    {
      SystemMessage sm = new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED);
      sm.addItemName(item.getItemId());
      activeChar.sendPacket(sm);
      sm = null;
      return;
    }

    if(Config.DEBUG)
    {
      _log.finest(activeChar.getObjectId() + ": pet use item " + _objectId);
    }

    //check if the item matches the pet
    if(item.isEquipable())
    {
      if(L2PetDataTable.isWolf(pet.getNpcId()) && // wolf
      item.getItem().isForWolf())
      {
        useItem(pet, item, activeChar);
        return;
      }
      else if(L2PetDataTable.isHatchling(pet.getNpcId()) && // hatchlings
      item.getItem().isForHatchling())
      {
        useItem(pet, item, activeChar);
        return;
      }
      else if(L2PetDataTable.isStrider(pet.getNpcId()) && // striders
      item.getItem().isForStrider())
      {
        useItem(pet, item, activeChar);
        return;
      }
      else if(L2PetDataTable.isBaby(pet.getNpcId()) && // baby pets (buffalo, cougar, kookaboora)
      item.getItem().isForBabyPet())
      {
        useItem(pet, item, activeChar);
        return;
      }
      else
      {
        activeChar.sendPacket(new SystemMessage(SystemMessageId.ITEM_NOT_FOR_PETS));
        return;
      }
    }
    else if(L2PetDataTable.isPetFood(itemId))
    {
      if(L2PetDataTable.isWolf(pet.getNpcId()) && L2PetDataTable.isWolfFood(itemId))
      {
        feed(activeChar, pet, item);
        return;
      }

      if(L2PetDataTable.isSinEater(pet.getNpcId()) && L2PetDataTable.isSinEaterFood(itemId))
      {
        feed(activeChar, pet, item);
        return;
      }
      else if(L2PetDataTable.isHatchling(pet.getNpcId()) && L2PetDataTable.isHatchlingFood(itemId))
      {
        feed(activeChar, pet, item);
        return;
      }
      else if(L2PetDataTable.isStrider(pet.getNpcId()) && L2PetDataTable.isStriderFood(itemId))
      {
        feed(activeChar, pet, item);
        return;
      }
      else if(L2PetDataTable.isWyvern(pet.getNpcId()) && L2PetDataTable.isWyvernFood(itemId))
      {
        feed(activeChar, pet, item);
        return;
      }
      else if(L2PetDataTable.isBaby(pet.getNpcId()) && L2PetDataTable.isBabyFood(itemId))
      {
        feed(activeChar, pet, item);
      }
    }

    IItemHandler handler = ItemHandler.getInstance().getItemHandler(item.getItemId());

    if(handler != null)
    {
      useItem(pet, item, activeChar);
    }
    else
    {
      SystemMessage sm = new SystemMessage(SystemMessageId.ITEM_NOT_FOR_PETS);
      activeChar.sendPacket(sm);
    }

    return;
  }
View Full Code Here

    if(activeChar == null)
      return;

    if(targetChar == null)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.THERE_IS_NO_OPPONENT_TO_RECEIVE_YOUR_CHALLENGE_FOR_A_DUEL));
      return;
    }

    if(activeChar == targetChar)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.THERE_IS_NO_OPPONENT_TO_RECEIVE_YOUR_CHALLENGE_FOR_A_DUEL));
      return;
    }

    // Check if duel is possible
    if(!activeChar.canDuel())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_UNABLE_TO_REQUEST_A_DUEL_AT_THIS_TIME));
      return;
    }
    else if(!targetChar.canDuel())
    {
      activeChar.sendPacket(targetChar.getNoDuelReason());
      return;
    }
    // Players may not be too far apart
    else if(!activeChar.isInsideRadius(targetChar, 250, false, false))
    {
      SystemMessage msg = new SystemMessage(SystemMessageId.S1_CANNOT_RECEIVE_A_DUEL_CHALLENGE_BECAUSE_S1_IS_TOO_FAR_AWAY);
      msg.addString(targetChar.getName());
      activeChar.sendPacket(msg);
      return;
    }

    // Duel is a party duel
    if(_partyDuel == 1)
    {
      // Player must be in a party & the party leader
      if(!activeChar.isInParty() || !(activeChar.isInParty() && activeChar.getParty().isLeader(activeChar)))
      {
        activeChar.sendMessage("You have to be the leader of a party in order to request a party duel.");
        return;
      }
      // Target must be in a party
      else if(!targetChar.isInParty())
      {
        activeChar.sendPacket(new SystemMessage(SystemMessageId.SINCE_THE_PERSON_YOU_CHALLENGED_IS_NOT_CURRENTLY_IN_A_PARTY_THEY_CANNOT_DUEL_AGAINST_YOUR_PARTY));
        return;
      }
      // Target may not be of the same party
      else if(activeChar.getParty().getPartyMembers().contains(targetChar))
      {
        activeChar.sendMessage("This player is a member of your own party.");
        return;
      }

      // Check if every player is ready for a duel
      for(L2PcInstance temp : activeChar.getParty().getPartyMembers())
      {
        if(!temp.canDuel())
        {
          activeChar.sendMessage("Not all the members of your party are ready for a duel.");
          return;
        }
      }
     
      L2PcInstance partyLeader = null; // snatch party leader of targetChar's party
      for(L2PcInstance temp : targetChar.getParty().getPartyMembers())
      {
        if(partyLeader == null)
        {
          partyLeader = temp;
        }
        if(!temp.canDuel())
        {
          activeChar.sendPacket(new SystemMessage(SystemMessageId.THE_OPPOSING_PARTY_IS_CURRENTLY_UNABLE_TO_ACCEPT_A_CHALLENGE_TO_A_DUEL));
          return;
        }
      }
     
      if (partyLeader != null)
      {
        // Send request to targetChar's party leader
        if(!partyLeader.isProcessingRequest())
        {
          activeChar.onTransactionRequest(partyLeader);
          partyLeader.sendPacket(new ExDuelAskStart(activeChar.getName(), _partyDuel));
 
          if(Config.DEBUG)
          {
            _log.fine(activeChar.getName() + " requested a duel with " + partyLeader.getName());
          }
 
          SystemMessage msg = new SystemMessage(SystemMessageId.S1S_PARTY_HAS_BEEN_CHALLENGED_TO_A_DUEL);
          msg.addString(partyLeader.getName());
          activeChar.sendPacket(msg);
 
          msg = new SystemMessage(SystemMessageId.S1S_PARTY_HAS_CHALLENGED_YOUR_PARTY_TO_A_DUEL);
          msg.addString(activeChar.getName());
          targetChar.sendPacket(msg);
        }
        else
        {
          SystemMessage msg = new SystemMessage(SystemMessageId.S1_IS_BUSY_TRY_LATER);
          msg.addString(partyLeader.getName());
          activeChar.sendPacket(msg);
        }
      }
    }
    else
    // 1vs1 duel
    {
      if(!targetChar.isProcessingRequest())
      {
        activeChar.onTransactionRequest(targetChar);
        targetChar.sendPacket(new ExDuelAskStart(activeChar.getName(), _partyDuel));

        if(Config.DEBUG)
        {
          _log.fine(activeChar.getName() + " requested a duel with " + targetChar.getName());
        }

        SystemMessage msg = new SystemMessage(SystemMessageId.S1_HAS_BEEN_CHALLENGED_TO_A_DUEL);
        msg.addString(targetChar.getName());
        activeChar.sendPacket(msg);

        msg = new SystemMessage(SystemMessageId.S1_HAS_CHALLENGED_YOU_TO_A_DUEL);
        msg.addString(activeChar.getName());
        targetChar.sendPacket(msg);
      }
      else
      {
        SystemMessage msg = new SystemMessage(SystemMessageId.S1_IS_BUSY_TRY_LATER);
        msg.addString(targetChar.getName());
        activeChar.sendPacket(msg);
      }
    }
  }
View Full Code Here

      return;
    }

    if(!player.getInventory().validateWeight(totalWeight))
    {
      sendPacket(new SystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
      return;
    }

    if(!player.getInventory().validateCapacity(slots))
    {
      sendPacket(new SystemMessage(SystemMessageId.SLOTS_FULL));
      return;
    }

    // Charge buyer
    if(totalPrice < 0 || !player.reduceAdena("Buy", (int) totalPrice, target, false))
    {
      sendPacket(new SystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
      return;
    }

    // Adding to treasury for Manor Castle
    castle.addToTreasuryNoTax((int) totalPrice);

    // Proceed the purchase
    InventoryUpdate playerIU = new InventoryUpdate();
    for(int i = 0; i < _count; i++)
    {
      int seedId = _items[i * 2 + 0];
      int count = _items[i * 2 + 1];

      if(count < 0)
      {
        count = 0;
      }

      // Update Castle Seeds Amount
      SeedProduction seed = castle.getSeed(seedId, CastleManorManager.PERIOD_CURRENT);
      seed.setCanProduce(seed.getCanProduce() - count);
      if(Config.ALT_MANOR_SAVE_ALL_ACTIONS)
      {
        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
      SystemMessage sm = null;
      sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);
      sm.addItemName(seedId);
      sm.addNumber(count);
      player.sendPacket(sm);
    }
    // Send update packets
    player.sendPacket(playerIU);

View Full Code Here

    // this can be 0 if the user pressed the right mouse button twice very fast
    if(unequiped.length > 0)
    {

      SystemMessage sm = null;
      if(unequiped[0].getEnchantLevel() > 0)
      {
        sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
        sm.addNumber(unequiped[0].getEnchantLevel());
        sm.addItemName(unequiped[0].getItemId());
      }
      else
      {
        sm = new SystemMessage(SystemMessageId.S1_DISARMED);
        sm.addItemName(unequiped[0].getItemId());
      }
      activeChar.sendPacket(sm);
      sm = null;
    }
  }
View Full Code Here

  }
 
  @Override
  protected void runImpl()
  {
    SystemMessage sm;
    L2PcInstance activeChar = getClient().getActiveChar();
   
    if (activeChar == null)
      return;
   
    L2PcInstance friend = L2World.getInstance().getPlayer(_name);
   
    // _name = Util.capitalizeFirst(_name); //FIXME: is it right to capitalize a nickname?
   
    if (friend == null)
    {
      // Target is not found in the game.
      sm = new SystemMessage(SystemMessageId.THE_USER_YOU_REQUESTED_IS_NOT_IN_GAME);
      activeChar.sendPacket(sm);
      sm = null;
      return;
    }
   
    if (friend == activeChar)
    {
      // You cannot add yourself to your own friend list.
      sm = new SystemMessage(SystemMessageId.YOU_CANNOT_ADD_YOURSELF_TO_OWN_FRIEND_LIST);
      activeChar.sendPacket(sm);
      sm = null;
      return;
    }
   
    if (activeChar.getBlockList().isInBlockList(_name))
    {
      sm = new SystemMessage(SystemMessageId.FAILED_TO_INVITE_A_FRIEND);
      activeChar.sendPacket(sm);
      return;
    }
   
    if (friend.getBlockList().isInBlockList(activeChar.getName()))
    {
      sm = new SystemMessage(SystemMessageId.S1_HAS_ADDED_YOU_TO_IGNORE_LIST);
      sm.addString(friend.getName());
      activeChar.sendPacket(sm);
      sm = new SystemMessage(SystemMessageId.FAILED_TO_INVITE_A_FRIEND);
      activeChar.sendPacket(sm);
      return;
    }
   
    if (activeChar.isInCombat() || friend.isInCombat())
    {
      sm = new SystemMessage(SystemMessageId.S1_IS_BUSY_TRY_LATER);
      activeChar.sendPacket(sm);
      sm = null;
      return;
    }
   
    if (activeChar.getFriendList().contains(friend.getName()))
    {
      // Player already is in your friendlist
      sm = new SystemMessage(SystemMessageId.S1_ALREADY_IN_FRIENDS_LIST);
      sm.addString(_name);
      activeChar.sendPacket(sm);
      return;
    }
   
    if (!friend.isProcessingRequest())
    {
      // requets to become friend
      activeChar.onTransactionRequest(friend);
      sm = new SystemMessage(SystemMessageId.S1_REQUESTED_TO_BECOME_FRIENDS);
      sm.addString(_name);
      AskJoinFriend ajf = new AskJoinFriend(activeChar.getName());
      friend.sendPacket(ajf);
    }
    else
    {
      sm = new SystemMessage(SystemMessageId.S1_IS_BUSY_TRY_LATER);
    }
   
    friend.sendPacket(sm);
   
  }
View Full Code Here

    }

    // Fix enchant transactions
    if(activeChar.isProcessingTransaction())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
      activeChar.setActiveEnchantItem(null);
      return;
    }

    if(activeChar.isOnline() == 0)
    {
      activeChar.setActiveEnchantItem(null);
      return;
    }

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

    if(item == null || scroll == null)
    {
      activeChar.setActiveEnchantItem(null);
      return;
    }

    // can't enchant rods and shadow items
    if(item.getItem().getItemType() == L2WeaponType.ROD || item.isShadowItem())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
      activeChar.setActiveEnchantItem(null);
      return;
    }

    if(!Config.ENCHANT_HERO_WEAPON && item.getItemId() >= 6611 && item.getItemId() <= 6621)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
      activeChar.setActiveEnchantItem(null);
      return;
    }
   
    /*
    if(!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtector.PROTECTED_ENCHANT))
    {
      activeChar.setActiveEnchantItem(null);
      activeChar.sendMessage("Enchant failed");
      return;
    }*/

    if(item.isWear())
    {
      activeChar.setActiveEnchantItem(null);
      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;
    boolean crystalScroll = 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)
        {
          crystalScroll = true;
          break;
        }
    }

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

    SystemMessage sm;

    int chance = 0;
    int maxEnchantLevel = 0;
    int minEnchantLevel = 0;

    if(item.getItem().getType2() == L2Item.TYPE2_WEAPON)
    {
      if(blessedScroll){
       
        for(int blessedweaponscroll : BLESSED_WEAPON_SCROLLS)
        {
          if(scroll.getItemId() == blessedweaponscroll)
          {
            if(item.getEnchantLevel() >= Config.BLESS_WEAPON_ENCHANT_LEVEL.size()) //the hash has size equals to
                                                 //max enchant, so if the actual
                                                 //enchant level is equal or more then max
                                                 //then the enchant rate is equal to last
                                                 //enchant rate
            {
              chance = Config.BLESS_WEAPON_ENCHANT_LEVEL.get(Config.BLESS_WEAPON_ENCHANT_LEVEL.size());
            }
            else
            {
              chance = Config.BLESS_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
            }
            maxEnchantLevel = Config.ENCHANT_WEAPON_MAX;
           
            break;
          }
        }
       
      }else if(crystalScroll){
       
        for(int crystalweaponscroll : CRYSTAL_WEAPON_SCROLLS)
        {
          if(scroll.getItemId() == crystalweaponscroll)
          {
            if(item.getEnchantLevel() >= Config.CRYSTAL_WEAPON_ENCHANT_LEVEL.size())
            {
              chance = Config.CRYSTAL_WEAPON_ENCHANT_LEVEL.get(Config.CRYSTAL_WEAPON_ENCHANT_LEVEL.size());
            }
            else
            {
              chance = Config.CRYSTAL_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
            }
            minEnchantLevel = Config.CRYSTAL_ENCHANT_MIN;
            maxEnchantLevel = Config.CRYSTAL_ENCHANT_MAX;
           
            break;
           
          }
        }
       
      }else{ //normal scrolls
       
        for(int normalweaponscroll : NORMAL_WEAPON_SCROLLS)
        {
          if(scroll.getItemId() == normalweaponscroll)
          {
            if(item.getEnchantLevel() >= Config.NORMAL_WEAPON_ENCHANT_LEVEL.size())
            {
              chance = Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(Config.NORMAL_WEAPON_ENCHANT_LEVEL.size());
            }
            else
            {
              chance = Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
            }
            maxEnchantLevel = Config.ENCHANT_WEAPON_MAX;
           
            break;
          }
        }
       
      }
     
    }
    else if(item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR)
    {
      if(blessedScroll){
       
        for(int blessedarmorscroll : BLESSED_ARMOR_SCROLLS)
        {
          if(scroll.getItemId() == blessedarmorscroll)
          {
            if(item.getEnchantLevel() >= Config.BLESS_ARMOR_ENCHANT_LEVEL.size())
            {
              chance = Config.BLESS_ARMOR_ENCHANT_LEVEL.get(Config.BLESS_ARMOR_ENCHANT_LEVEL.size());
            }
            else
            {
              chance = Config.BLESS_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
            }
            maxEnchantLevel = Config.ENCHANT_ARMOR_MAX;
           
            break;
          }
        }
       
      }else if(crystalScroll){
       
        for(int crystalarmorscroll : CRYSTAL_ARMOR_SCROLLS)
        {
          if(scroll.getItemId() == crystalarmorscroll)
          {
            if(item.getEnchantLevel() >= Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.size())
            {
              chance = Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.get(Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.size());
            }
            else
            {
              chance = Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
            }
            minEnchantLevel = Config.CRYSTAL_ENCHANT_MIN;
            maxEnchantLevel = Config.CRYSTAL_ENCHANT_MAX;
           
            break;
          }
        }
       
      }else{ //normal scrolls
       
        for(int normalarmorscroll : NORMAL_ARMOR_SCROLLS)
        {
          if(scroll.getItemId() == normalarmorscroll)
          {
            if(item.getEnchantLevel()  >= Config.NORMAL_ARMOR_ENCHANT_LEVEL.size())
            {
              chance = Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(Config.NORMAL_ARMOR_ENCHANT_LEVEL.size());
            }
            else
            {
              chance = Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
            }
            maxEnchantLevel = Config.ENCHANT_ARMOR_MAX;
           
            break;
          }
        }
       
      }
     
    }
    else if(item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)
    {
      if(blessedScroll){
       
        for(int blessedjewelscroll : BLESSED_ARMOR_SCROLLS)
        {
          if(scroll.getItemId() == blessedjewelscroll)
          {
            if(item.getEnchantLevel() >= Config.BLESS_JEWELRY_ENCHANT_LEVEL.size())
            {
              chance = Config.BLESS_JEWELRY_ENCHANT_LEVEL.get(Config.BLESS_JEWELRY_ENCHANT_LEVEL.size());
            }
            else
            {
              chance = Config.BLESS_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
            }
            maxEnchantLevel = Config.ENCHANT_JEWELRY_MAX;
           
            break;
          }
        }
       
      }else if(crystalScroll){
       
        for(int crystaljewelscroll : CRYSTAL_ARMOR_SCROLLS)
        {
          if(scroll.getItemId() == crystaljewelscroll)
          {
            if(item.getEnchantLevel() >= Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.size())
            {
              chance = Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.get(Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.size());
            }
            else
            {
              chance = Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
            }
            minEnchantLevel = Config.CRYSTAL_ENCHANT_MIN;
            maxEnchantLevel = Config.CRYSTAL_ENCHANT_MAX;
           
            break;
          }
        }
       
      }else{
       
        for(int normaljewelscroll : NORMAL_ARMOR_SCROLLS)
        {
          if(scroll.getItemId() == normaljewelscroll)
          {
            if(item.getEnchantLevel() >= Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size())
            {
              chance = Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size());
            }
            else
            {
              chance = Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
            }
            maxEnchantLevel = Config.ENCHANT_JEWELRY_MAX;
           
            break;
          }
        }
       
      }
     
    }
   
    if((maxEnchantLevel != 0 && item.getEnchantLevel() >= maxEnchantLevel) || (item.getEnchantLevel()) < minEnchantLevel)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
      return;
    }
   
    if (Config.SCROLL_STACKABLE) {
      scroll = activeChar.getInventory().destroyItem("Enchant", scroll.getObjectId(), 1, activeChar, item);
    }
    else {
      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;
    }

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

    int rndValue = Rnd.get(100);

    if(Config.ENABLE_DWARF_ENCHANT_BONUS && activeChar.getRace() == Race.dwarf)
      if(activeChar.getLevel() >= Config.DWARF_ENCHANT_MIN_LEVEL)
      {
        rndValue -= Config.DWARF_ENCHANT_BONUS;
      }

    Object aChance = item.fireEvent("calcEnchantChance", new Object[chance]);
    if(aChance != null)
    {
      chance = (Integer) aChance;
    }
    synchronized (item)
    {
      if(rndValue < chance)
      {
        if(item.getOwnerId() != activeChar.getObjectId())
        {
          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() + Config.CUSTOM_ENCHANT_VALUE);
        item.updateDatabase();
      }
      else
      {
        if(crystalScroll)
        {
          sm = SystemMessage.sendString("Failed in Crystal Enchant.");
          activeChar.sendPacket(sm);
        }
        else if(blessedScroll){
          sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAILED);
          activeChar.sendPacket(sm);
        }else{
          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);
          }
        }
       
        if(!blessedScroll && !crystalScroll)
        {
          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);
          }

          if(item.isEquipped())
          {
            if(item.isAugmented())
            {
              item.getAugmentation().removeBoni(activeChar);
            }

            L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot());

            InventoryUpdate iu = new InventoryUpdate();
            for(L2ItemInstance element : unequiped)
            {
              iu.addModifiedItem(element);
            }
            activeChar.sendPacket(iu);

            activeChar.broadcastUserInfo();
          }

          int count = item.getCrystalCount() - (item.getItem().getCrystalCount() + 1) / 2;
          if(count < 1)
          {
            count = 1;
          }
         
          if(item.fireEvent("enchantFail", new Object[]
          {}) != null)
            return;
          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)
          {
            InventoryUpdate iu = new InventoryUpdate();
View Full Code Here

    if (requestor == null)
      return;
   
    if (_answer == 0)
    {
      SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DID_NOT_RESPOND_TO_S1_CLAN_INVITATION);
      sm.addString(requestor.getName());
      activeChar.sendPacket(sm);
      sm = new SystemMessage(SystemMessageId.S1_DID_NOT_RESPOND_TO_CLAN_INVITATION);
      sm.addString(activeChar.getName());
      requestor.sendPacket(sm);
    }
    else
    {
      if (!(requestor.getRequest().getRequestPacket() instanceof RequestJoinPledge))
        return; // hax
       
      RequestJoinPledge requestPacket = (RequestJoinPledge) requestor.getRequest().getRequestPacket();
      L2Clan clan = requestor.getClan();
      // we must double check this cause during response time conditions can be changed, i.e. another player could join clan
      if (clan != null && clan.checkClanJoinCondition(requestor, activeChar, requestPacket.getPledgeType()))
      {
        JoinPledge jp = new JoinPledge(requestor.getClanId());
        activeChar.sendPacket(jp);
       
        activeChar.setPledgeType(requestPacket.getPledgeType());
       
        if (requestPacket.getPledgeType() == L2Clan.SUBUNIT_ACADEMY)
        {
          activeChar.setPowerGrade(9); // adademy
          activeChar.setLvlJoinedAcademy(activeChar.getLevel());
        }
        else
        {
          activeChar.setPowerGrade(5); // new member starts at 5, not confirmed
        }
       
        clan.addClanMember(activeChar);
        activeChar.setClanPrivileges(activeChar.getClan().getRankPrivs(activeChar.getPowerGrade()));
       
        activeChar.sendPacket(new SystemMessage(SystemMessageId.ENTERED_THE_CLAN));
       
        SystemMessage sm = new SystemMessage(SystemMessageId.S1_HAS_JOINED_CLAN);
        sm.addString(activeChar.getName());
        clan.broadcastToOnlineMembers(sm);
       
        clan.broadcastToOtherOnlineMembers(new PledgeShowMemberListAdd(activeChar), activeChar);
        clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan));
       
View Full Code Here

TOP

Related Classes of com.l2jfrozen.gameserver.network.serverpackets.SystemMessage

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.