Autor Tema: Solicitud de Codigo para actualizar el inventario  (Leído 30 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado lordofcaos

  • No Grade
  • *
  • Topic Author
  • Mensajes: 16
  • mx
  • Agradecimientos: 0
    • l2 king of kings
  • Cronica: : H5
  • Revision: 20190616
  • S.O: Windows 10
  • Serverpack : l2jdevs
Solicitud de Codigo para actualizar el inventario
« en: Junio 15, 2019, 05:57:32 pm »
gracias
Este post tiene 0 agradecimientos
  • Añade a tus favoritos
  • Buenas tardes acabo de agregar un código para que una caja me pidiera un ítem para poderla abrir ahora por lo que estoy viendo me hace falta luego de mi linea decirle al sistema que se actualice el inventario una ves consumido el ítem.
    Alguien tendrá algún código para eso?
    dejo el java para que lo vean


    Código: [Seleccionar]
    /*
     * Copyright © 2004-2019 L2J DataPack
     *
     * This file is part of L2J DataPack.
     *
     * L2J DataPack is free software: you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation, either version 3 of the License, or
     * (at your option) any later version.
     *
     * L2J DataPack is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     * General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program. If not, see <http://www.gnu.org/licenses/>.
     */
    package handlers.itemhandlers;

    import java.util.List;

    import org.l2jdevs.Config;
    import org.l2jdevs.gameserver.handler.IItemHandler;
    import org.l2jdevs.gameserver.model.L2ExtractableProduct;
    import org.l2jdevs.gameserver.model.actor.L2Playable;
    import org.l2jdevs.gameserver.model.actor.instance.L2PcInstance;
    import org.l2jdevs.gameserver.model.items.L2EtcItem;
    import org.l2jdevs.gameserver.model.items.instance.L2ItemInstance;
    import org.l2jdevs.gameserver.network.SystemMessageId;
    import org.l2jdevs.util.Rnd;

    /**
     * Extractable Items handler.
     * @author HorridoJoho
     */
    public class ExtractableItems implements IItemHandler
    {
    @Override
    public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse)
    {
    if (!playable.isPlayer())
    {
    playable.sendPacket(SystemMessageId.ITEM_NOT_FOR_PETS);
    return false;
    }

    final L2PcInstance activeChar = playable.getActingPlayer();
    if(activeChar.getInventory().getInventoryItemCount(57, -10) < 10)
    {
    activeChar.sendMessage("Necesitas 10 de ADENA para abrir esta cofre");
    return false;
    }

    final L2EtcItem etcitem = (L2EtcItem) item.getItem();
    final List<L2ExtractableProduct> exitem = etcitem.getExtractableItems();
    if (exitem == null)
    {
    _log.info("No extractable data defined for " + etcitem);
    return false;
    }

    // destroy item
    if (!activeChar.destroyItem("Extract", item.getObjectId(), 1, activeChar, true))
    {
    return false;
    }

    boolean created = false;
    for (L2ExtractableProduct expi : exitem)
    {
    if (Rnd.get(100000) <= expi.getChance())
    {
    final int min = (int) (expi.getMin() * Config.RATE_EXTRACTABLE);
    final int max = (int) (expi.getMax() * Config.RATE_EXTRACTABLE);

    int createItemAmount = (max == min) ? min : (Rnd.get((max - min) + 1) + min);
    if (createItemAmount == 0)
    {
    continue;
    }

    if (item.isStackable() || (createItemAmount == 1))
    {
    activeChar.addItem("Extract", expi.getId(), createItemAmount, activeChar, true);
    }
    else
    {
    while (createItemAmount > 0)
    {
    activeChar.addItem("Extract", expi.getId(), 1, activeChar, true);
    createItemAmount--;
    }
    }
    created = true;

    activeChar.getInventory().destroyItemByItemId("Extractable used", 25000, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25001, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25002, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25003, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25004, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25005, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25006, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25007, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25008, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25009, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25010, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25011, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25012, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 25013, 1, activeChar, true);
    activeChar.getInventory().destroyItemByItemId("Extractable used", 57, 10, activeChar, true);

    }
    }

    if (!created)
    {
    activeChar.sendPacket(SystemMessageId.NOTHING_INSIDE_THAT);
    }
    return true;
    }
    }
    « Última modificación: Junio 15, 2019, 06:33:09 pm por lordofcaos »

    Conectado Fissban

    • AdminSite
    • *
    • Mensajes: 5656
    • ar
    • Agradecimientos: 1667
      • Mis Proyectos
    • Cronica: : Scions of Destiny
    • Revision: Last
    • S.O: Windows 10
    • Serverpack : L2jAdmins
    Re:Solicitud de Codigo para actualizar el inventario
    « Respuesta #1 en: Junio 15, 2019, 07:09:02 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos

  • Código: [Seleccionar]
    player.sendPacket(new InventoryUpdate((player.getObjectId()));

    Desconectado lordofcaos

    • No Grade
    • *
    • Topic Author
    • Mensajes: 16
    • mx
    • Agradecimientos: 0
      • l2 king of kings
    • Cronica: : H5
    • Revision: 20190616
    • S.O: Windows 10
    • Serverpack : l2jdevs
    Re:Solicitud de Codigo para actualizar el inventario
    « Respuesta #2 en: Junio 15, 2019, 08:07:13 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    tendre que ver como adaptarlo porque me salta error

    Conectado Dagger

    • Grado S84
    • *
    • Mensajes: 1665
    • ar
    • Agradecimientos: 460
    • Cronica: : Interlude
    • Revision: 374,1132,001
    • S.O: Windows 8
    • Serverpack : Acis,frozen,Ps
    Re:Solicitud de Codigo para actualizar el inventario
    « Respuesta #3 en: Junio 15, 2019, 10:54:17 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    Muestra imagen del error que te arroja por lo que deduzco a simple vista debes modificar la respuesta de fissban

    player.sendPacket(new InventoryUpdate((player.getObjectId()));

     por

    activeChar.sendPacket(new InventoryUpdate((activeChar.getObjectId()));