Package l2p.gameserver.serverpackets

Examples of l2p.gameserver.serverpackets.RecipeItemMakeInfo


  }

  @Override
  public void runImpl()
  {
    sendPacket(new RecipeItemMakeInfo(_id, getClient().getActiveChar(), 0xffffffff));
  }
View Full Code Here


    }
    synchronized(player)
    {
      if(player.getCurrentMp() < recipeList.getMpCost())
      {
        player.sendPacket(Msg.NOT_ENOUGH_MP, new RecipeItemMakeInfo(recipeList.getId(), player, 0));
        return;
      }
      if(!player.findRecipe(recipeListId))
      {
        player.sendPacket(Msg.PLEASE_REGISTER_A_RECIPE, Msg.ActionFail);
        return;
      }
    }
    synchronized(player.getInventory())
    {
      L2RecipeComponent[] recipes = recipeList.getRecipes();
      Inventory inventory = player.getInventory();
      for(L2RecipeComponent recipe : recipes)
      {
        if(recipe.getQuantity() == 0)
        {
          continue;
        }
        if(Config.ALT_GAME_UNREGISTER_RECIPE && ItemTable.getInstance().getTemplate(recipe.getItemId()).getItemType() == EtcItemType.RECIPE)
        {
          L2Recipe rp = RecipeController.getInstance().getRecipeByRecipeItem(recipe.getItemId());
          if(player.hasRecipe(rp))
          {
            continue;
          }
          player.sendPacket(Msg.NOT_ENOUGH_MATERIALS, new RecipeItemMakeInfo(recipeList.getId(), player, 0));
          return;
        }
        L2ItemInstance invItem = inventory.getItemByItemId(recipe.getItemId());
        if(invItem == null || recipe.getQuantity() > invItem.getCount())
        {
          player.sendPacket(Msg.NOT_ENOUGH_MATERIALS, new RecipeItemMakeInfo(recipeList.getId(), player, 0));
          return;
        }
      }
      player.reduceCurrentMp(recipeList.getMpCost(), null);
      for(L2RecipeComponent recipe : recipes)
      {
        if(recipe.getQuantity() != 0)
        {
          L2ItemInstance invItem = inventory.getItemByItemId(recipe.getItemId());
          if(Config.ALT_GAME_UNREGISTER_RECIPE && ItemTable.getInstance().getTemplate(recipe.getItemId()).getItemType() == EtcItemType.RECIPE)
          {
            player.unregisterRecipe(RecipeController.getInstance().getRecipeByRecipeItem(recipe.getItemId()).getId());
          }
          else
          {
            inventory.destroyItem(invItem, recipe.getQuantity(), false);
            player.sendPacket(SystemMessage.removeItems(invItem.getItemId(), recipe.getQuantity()));
          }
        }
      }
    }
    int count = 1;
    if(rollMW(player, recipeList))
    {
      count++;
    }
    int success = 0;
    for(int i = 0; i < count; i++)
    {
      if(Rnd.chance(recipeList.getSuccessRate()))
      {
        L2ItemInstance createdItem = ItemTable.getInstance().createItem(rollMW(player, recipeList) ? recipeList.getFoundation() : recipeList.getItemId());
        createdItem.setCount(recipeList.getCount());
        if(Config.CRAFT_COUNTER)
        {
          player.incrementCraftCounter(createdItem.getItemId(), recipeList.getCount());
        }
        player.sendPacket(SystemMessage.obtainItems(createdItem));
        player.getInventory().addItem(createdItem);
        success = 1;
      }
    }
    if(success == 0)
    {
      player.sendPacket(new SystemMessage(SystemMessage.S1_MANUFACTURING_FAILURE).addItemName(recipeList.getItemId()));
    }
    if(Config.ALT_GAME_EXP_FOR_CRAFT)
    {
      player.addExpAndSp((long) (recipeList.getExp() * Config.RATE_XP), (long) (recipeList.getSp() * Config.RATE_SP), true, false);
    }
    player.sendStatusUpdate(false, StatusUpdate.CUR_LOAD, StatusUpdate.CUR_MP);
    player.sendPacket(new RecipeItemMakeInfo(recipeList.getId(), player, success));
  }
View Full Code Here

TOP

Related Classes of l2p.gameserver.serverpackets.RecipeItemMakeInfo

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.