Autor Tema: [Resuelto ] donator shop: no destruye el item que pide. ( l2jfrozen )  (Leído 56 veces)

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

Conectado Unstoppable

  • Grado A
  • *
  • Topic Author
  • Mensajes: 428
  • ar
  • Agradecimientos: 116
  • Cronica: : interlude
  • Revision: 1118 / 370
  • S.O: Windows 10
  • Serverpack : FROZEN / ACIS
gracias
Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    buenas gente , tengo un problema con este npc que sirve para cambio de sexo , nombre , clan full etc.... el problema esta en el cambio de SEXO y el cambio de NOMBRE te pide el item que son 10 coins pero no los elimina , osea con solo tenerlos en el inventario funciona igual y no te los cobra . las demas opciones funcionan correctamente , que estaria haciendo mal ?

    porque tiene la parte de destruir el item

    ( CAMBIO DE SEXO )


    Código: [Seleccionar]
    	public static void sex(L2PcInstance activeChar, int ammount)
    {
    if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    {
    if (activeChar.getClassId().getId() == activeChar.getBaseClass())
    {
    activeChar.getAppearance().setSex(activeChar.getAppearance().getSex() ? false : true);
    activeChar.broadcastUserInfo();
    L2PcInstance.setSexDB(activeChar, 1);
    activeChar.decayMe();
    activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
    activeChar.sendMessage("Exito , has cambiado de sexo y seras desconectado en 10 segundos!");
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated Change Sex", "Donate Coins:" + ammount);
    try
    {
    Thread.sleep(10000L);
    }
    catch (Exception e)
    {
    }
    activeChar.deleteMe();
    activeChar.sendPacket(LeaveWorld.STATIC_PACKET);

    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
    else
    {
    activeChar.sendMessage("para cambiar de sexo debes estar en la clase principal");
    return;
    }
    }
    else
    {
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    }
    }

    ( CAMBIO DE NOMBRE )


    Código: [Seleccionar]
    	private static void name(L2PcInstance activeChar, int ammount, String val[])
    {
    if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    {
    if (val.length != 2)
    {
    activeChar.sendMessage("ingrese un nuevo nombre o elimine el espacio.");
    return;
    }
    else if (val[1].length() < 1 || val[1].length() < 3)
    {
    activeChar.sendMessage("caracteres minimos: 3");
    return;
    }
    else if (val[1].length() < 1 || val[1].length() > 16)
    {
    activeChar.sendMessage("caracteres maximos: 16");
    return;
    }
    else if (!Util.isAlphaNumeric(val[1]))
    {
    activeChar.sendMessage("el nombre solo debe contener caracteres alfanumericos.");
    return;
    }
    else if (CharNameTable.doesCharNameExist(val[1]))
    {
    activeChar.sendMessage("el nombre elegido ya esta en uso. elige otro nombre.");
    return;
    }
    else if (activeChar.isClanLeader())
    {
    activeChar.sendMessage("no pueder cambiar de nombre siendo lider del clan.");
    return;
    }
    else if (activeChar.getClan() != null)
    {
    activeChar.sendMessage("no pueder cambiar de nombre estando en un clan.");
    return;
    }

    if (activeChar.isInParty())
    {
    activeChar.getParty().broadcastToPartyMembers(activeChar, new PartySmallWindowDeleteAll());
    for (L2PcInstance member : activeChar.getParty().getPartyMembers())
    {
    if (member != activeChar)
    member.sendPacket(new PartySmallWindowAll(member, activeChar.getParty()));
    }
    }
    if (activeChar.getClan() != null)
    activeChar.getClan().broadcastClanStatus();

    L2World.getInstance().removeFromAllPlayers(activeChar);
    activeChar.setName(val[1]);
    activeChar.store();
    L2World.getInstance().addToAllPlayers(activeChar);
    activeChar.broadcastUserInfo();
    activeChar.sendMessage("exito , has cambiado de nombre y seras desconectado en 10 segundos!");
    try
    {
    Thread.sleep(10000L);
    }
    catch (Exception e)
    {
    }
    activeChar.deleteMe();
    activeChar.sendPacket(LeaveWorld.STATIC_PACKET);

    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
    else
    {
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    }
    }


    CODIGO COMPLETO DEL NPC QUE USO.


    Código: [Seleccionar]
    /*
     * This program 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.
     *
     * This program 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 net.l2jpx.gameserver.model.actor.instance;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.StringTokenizer;

    import net.l2jpx.Config;
    import net.l2jpx.gameserver.ai.CtrlIntention;
    import net.l2jpx.gameserver.cache.HtmCache;
    import net.l2jpx.gameserver.custom.DonateAudit;
    import net.l2jpx.gameserver.datatables.sql.CharNameTable;
    import net.l2jpx.gameserver.datatables.SkillTable;
    import net.l2jpx.gameserver.model.Inventory;
    import net.l2jpx.gameserver.model.L2Augmentation;
    import net.l2jpx.gameserver.model.L2Skill;
    import net.l2jpx.gameserver.model.L2World;
    import net.l2jpx.gameserver.model.multisell.L2Multisell;
    import net.l2jpx.gameserver.network.SystemMessageId;
    import net.l2jpx.gameserver.network.serverpackets.ActionFailed;
    import net.l2jpx.gameserver.network.serverpackets.EtcStatusUpdate;
    import net.l2jpx.gameserver.network.serverpackets.InventoryUpdate;
    import net.l2jpx.gameserver.network.serverpackets.ItemList;
    import net.l2jpx.gameserver.network.serverpackets.LeaveWorld;
    import net.l2jpx.gameserver.network.serverpackets.MyTargetSelected;
    import net.l2jpx.gameserver.network.serverpackets.NpcHtmlMessage;
    import net.l2jpx.gameserver.network.serverpackets.PartySmallWindowAll;
    import net.l2jpx.gameserver.network.serverpackets.PartySmallWindowDeleteAll;
    import net.l2jpx.gameserver.network.serverpackets.SocialAction;
    import net.l2jpx.gameserver.network.serverpackets.SystemMessage;
    import net.l2jpx.gameserver.network.serverpackets.ValidateLocation;
    import net.l2jpx.gameserver.templates.L2EtcItemType;
    import net.l2jpx.gameserver.templates.L2NpcTemplate;
    import net.l2jpx.gameserver.util.Util;
    import net.l2jpx.util.database.L2DatabaseFactory;

    /**
     * @author gevorakoC
     */
    @SuppressWarnings("unused")
    public class L2DonateShopInstance extends L2FolkInstance
    {
    public L2DonateShopInstance(int objectId, L2NpcTemplate template)
    {
    super(objectId, template);
    }

    // Config Donate Shop
    private static int itemid = 9899;
    private static int[] clanSkills =
    {
    370,
    371,
    372,
    373,
    374,
    375,
    376,
    377,
    378,
    379,
    380,
    381,
    382,
    383,
    384,
    385,
    386,
    387,
    388,
    389,
    390,
    391
    };
    @Override
    public void onBypassFeedback(L2PcInstance player, String command)
    {
    StringTokenizer st = new StringTokenizer(command, " ");
    String actualCommand = st.nextToken(); // Get actual command

    switch (command)
    {
    case "clan":
    clanReward(player, 20);
    break;
    case "windows":
    winds(player, 7);
    break;
    case "augments":
    winds(player, 8);
    break;
    case "augmentpanel":
    winds(player, 13);
    break;
    case "passive":
    winds(player, 14);
    break;
    case "passive2":
    winds(player, 15);
    break;
    case "page2":
    winds(player, 9);
    break;
    case "page3":
    winds(player, 10);
    break;
    case "page4":
    winds(player, 11);
    break;
    case "page5":
    winds(player, 12);
    break;
    case "chars":
    winds(player, 5);
    break;
    case "donatewin":
    winds(player, 2);
    break;
    case "sexwin":
    winds(player, 4);
    break;
    case "clanwin":
    winds(player, 3);
    break;
    case "herowin":
    winds(player, 6);
    break;
    case "sex":
    sex(player, 10);
    break;
    case "sethero":
    hero(player, 50, 0);
    break;
    case "sethero1":
    hero(player, 5, 1);
    break;
    case "sethero7":
    hero(player, 25, 30);
    break;
    case "weapon":
    enchantw(player);
    break;
    case "armor":
    enchanta(player);
    break;
    case "jewel":
    enchantj(player);
    break;
    case "rhand":
    Enchant(player, 16, 8, Inventory.PAPERDOLL_RHAND);
    break;
    case "lhand":
    Enchant(player, 16, 8, Inventory.PAPERDOLL_LHAND);
    break;
    case "rear":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_REAR);
    break;
    case "lear":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_LEAR);
    break;
    case "rf":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_RFINGER);
    break;
    case "lf":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_LFINGER);
    break;
    case "neck":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_NECK);
    break;
    case "head":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_HEAD);
    break;
    case "feet":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_FEET);
    break;
    case "gloves":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_GLOVES);
    break;
    case "chest":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_CHEST);
    break;
    case "legs":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_LEGS);
    break;
    case "tattoo":
    Enchant(player, 16, 3, Inventory.PAPERDOLL_UNDER);
    break;
    }
    if (command.startsWith("addaugment"))
    {
    StringTokenizer sts = new StringTokenizer(command);
    sts.nextToken();
    try
    {
    String type = sts.nextToken();
    switch (type)
    {
    case "DuelMight":
    augments(player, 10, 1062406807, 3134, 10);
    break;
    case "Might":
    augments(player, 10, 1062079106, 3132, 10);
    break;
    case "Shield":
    augments(player, 10, 968884225, 3135, 10);
    break;
    case "MagicBarrier":
    augments(player, 10, 956760065, 3136, 10);
    break;
    case "Empower":
    augments(player, 10, 1061423766, 3133, 10);
    break;
    case "BattleRoar":
    augments(player, 10, 968228865, 3125, 10);
    break;
    case "DuelMightp":
    augments(player, 10, 1067260101, 3243, 10);
    break;
    case "Mightp":
    augments(player, 10, 1067125363, 3240, 10);
    break;
    case "Shieldp":
    augments(player, 10, 1067194549, 3244, 10);
    break;
    case "MagicBarrierp":
    augments(player, 10, 962068481, 3245, 10);
    break;
    case "Empowerp":
    augments(player, 10, 1066994296, 3241, 10);
    break;
    }
    }
    catch (Exception e)
    {
    player.sendMessage("Usage : Bar>");
    }
    }
    else if (command.startsWith("name"))
    {
    try
    {
    String commands[] = command.split(" ");
    name(player, 10, commands);
    }
    catch (StringIndexOutOfBoundsException e)
    {
    // Case of empty character name
    player.sendMessage("Usage: enter box your name");
    }
    }
    if (actualCommand.equalsIgnoreCase("Multisell"))
    {
    if (st.countTokens() < 1)
    return;
    L2Multisell.getInstance().SeparateAndSend(Integer.parseInt(st.nextToken()), player, false, getCastle().getTaxRate());
    }
    }

    @Override
    public void onAction(L2PcInstance player)
    {
    player.setLastFolkNPC(this);
    if (this != player.getTarget())
    {
    player.setTarget(this);

    player.sendPacket(new MyTargetSelected(getObjectId(), 0));

    player.sendPacket(new ValidateLocation(this));
    }
    else if (!canInteract(player))
    {
    player.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE, this);
    }
    else
    {
    showClanWindow(player);
    }
    player.sendPacket(ActionFailed.STATIC_PACKET);
    }

    public void showClanWindow(L2PcInstance activeChar)
    {
    NpcHtmlMessage nhm = new NpcHtmlMessage(5);
    StringBuilder tb = new StringBuilder("");

    tb.append("<html><body>");
    tb.append("<center>");
    tb.append("<img src=\"L2UI.SquareGray\" width=\"300\" height=\"1\">");
    tb.append("<img src=\"l2infection.logo\" width=\"300\" height=\"80\">");
    tb.append("<img src=\"L2UI.SquareGray\" width=\"300\" height=\"1\">");
    tb.append("<table border=0 bgcolor=000000 width=300 height=12>");
    tb.append("<tr>");
    tb.append("<td width=300 align=center><font color=\"80FF00\">{ Master Infection NPC }</font></td>");
    tb.append("</tr>");
    tb.append("<tr>");
    tb.append("<td width=300 align=center><font color=\"ae9977\">necesitas algunos cambios? , puedo ayudarte en eso.</font></td>");
    tb.append("</tr>");
    tb.append("</table>");
    tb.append("<img src=\"L2UI.SquareGray\" width=\"300\" height=\"1\">");
    tb.append("<br><img src=\"l2ui_ch3.herotower_deco\" width=\"256\" height=\"32\"><br>");
    tb.append("<table width=290>");
    tb.append("<tr>");
    tb.append("<td align=center><img src=\"icon.action019\" width=32 height=32></td>");
    tb.append("<td align=center><img src=\"icon.skill3080\" width=32 height=32></td>");
    tb.append("<td align=center><img src=\"icon.skill1105\" width=32 height=32></td>");
    tb.append("</tr>");
    tb.append("<tr><td></td></tr>");
    tb.append("<tr>");
    tb.append("<td width=100 align=center><button value=\"Cambiar Sexo\" action=\"bypass -h npc_" + getObjectId() + "_sexwin\" width=\"80\" height=\"21\" back=\"l2mafia.btn_clean_small_over\" fore=\"l2mafia.btn_clean_small\"></td>");
    tb.append("<td width=100 align=center><button value=\"Augment Skills\" action=\"bypass -h npc_" + getObjectId() + "_augmentpanel\" width=\"80\" height=\"21\" back=\"l2mafia.btn_clean_small_over\" fore=\"l2mafia.btn_clean_small\"></td>");
    tb.append("<td width=100 align=center><button value=\"Cambiar Nombre\" action=\"bypass -h npc_" + getObjectId() + "_chars\" width=\"80\" height=\"21\" back=\"l2mafia.btn_clean_small_over\" fore=\"l2mafia.btn_clean_small\"></td>");
    tb.append("</tr>");
    tb.append("</table>");
    tb.append("<br>");
    tb.append("<table width=290>");
    tb.append("<tr>");
    tb.append("<td align=center><img src=\"icon.skill1375\" width=32 height=32></td>");
    tb.append("<td align=center><img src=\"icon.skill0391\" width=32 height=32></td>");
    tb.append("</tr>");
    tb.append("<tr><td></td></tr>");
    tb.append("<tr>");
    tb.append("<td width=150 align=center><button value=\"Clan Full\" action=\"bypass -h npc_" + getObjectId() + "_clanwin\" width=\"80\" height=\"21\" back=\"l2mafia.btn_clean_small_over\" fore=\"l2mafia.btn_clean_small\"></td>");
    tb.append("<td width=150 align=center><button value=\"Enchant Items\" action=\"bypass -h npc_" + getObjectId() + "_windows\" width=\"80\" height=\"21\" back=\"l2mafia.btn_clean_small_over\" fore=\"l2mafia.btn_clean_small\"></td>");
    tb.append("</tr>");
    tb.append("</table>");
    tb.append("<br><img src=\"l2ui_ch3.herotower_deco\" width=\"256\" height=\"32\"><br>");
    tb.append("</center>");
    tb.append("</body></html>");

    nhm.setHtml(tb.toString());
    activeChar.sendPacket(nhm);
    }

    public static void augments(L2PcInstance activeChar, int ammount, int attributes, int idaugment, int levelaugment)
    {
    L2ItemInstance rhand = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
    if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    {
    if (rhand == null)
    {
    activeChar.sendMessage(activeChar.getName() + " tienes que equipar un arma.");
    return;
    }
    else if (rhand.getItem().getCrystalType() == 0 || rhand.getItem().getCrystalType() == 1 || rhand.getItem().getCrystalType() == 2)
    {
    activeChar.sendMessage("no puedes argumentar items grado " + rhand.getItem().getCrystalType() + " !");
    return;
    }
    else if (rhand.isHeroItem())
    {
    activeChar.sendMessage("no se puede agregar argument " + rhand.getItemName() + " !");
    return;
    }

    if (!rhand.isAugmented())
    {
    activeChar.sendMessage("agregado con exito " + SkillTable.getInstance().getInfo(idaugment, levelaugment).getName() + ".");
    augmentweapondatabase(activeChar, attributes, idaugment, levelaugment);

    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated " + SkillTable.getInstance().getInfo(idaugment, levelaugment).getName() + " Stuck " + rhand.getItemName() + ".", "Donate Coins:" + ammount);
    }
    else
    {
    activeChar.sendMessage("esta arma ya posee augment!");
    return;
    }

    if (!activeChar.destroyItemByItemId("Master Coin", itemid, ammount, activeChar, false))
    return;

    }
    else
    {
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    }
    }

    public static void augmentweapondatabase(L2PcInstance player, int attributes, int id, int level)
    {
    L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
    L2Augmentation augmentation = new L2Augmentation(item, attributes, id, level, true);
    augmentation.applyBoni(player);
    item.setAugmentation(augmentation);

    try (
    Connection con = L2DatabaseFactory.getInstance().getConnection())
    {
    PreparedStatement statement = con.prepareStatement("REPLACE INTO augmentations VALUES(?,?,?,?)");
    statement.setInt(1, item.getObjectId());
    statement.setInt(2, attributes);
    statement.setInt(3, id);
    statement.setInt(4, level);
    InventoryUpdate iu = new InventoryUpdate();
    player.sendPacket(iu);
    statement.execute();
    statement.close();
    }
    catch (SQLException e)
    {
    System.out.println(e);
    }
    }

    public static void clanReward(L2PcInstance activeChar, int ammount)
    {
    if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    {
    if (activeChar.isClanLeader() && activeChar.getClan().getLevel() == 8)
    {
    activeChar.sendMessage("tu eres el lider y ya tienes el clan lvl 8.");
    return;
    }

    if (!activeChar.isClanLeader())
    {
    activeChar.sendMessage("tu no eres el lider del clan!.");
    return;
    }

    if (activeChar.isClanLeader() && activeChar.getClan().getLevel() < 8)
    {
    activeChar.getClan().changeLevel(8);
    activeChar.getClan().setReputationScore(50000, true);
    activeChar.getSkills();
    for (int id  : clanSkills) {
        L2Skill skill = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id,0));
    activeChar.getClan().addNewSkill(skill);
    }
    activeChar.sendPacket(new EtcStatusUpdate(activeChar));
    activeChar.getClan().broadcastClanStatus();
    activeChar.sendMessage("exito , tu clan ahora es nivel 8 , full skills y obtienes 50000 de reputacion.");
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated Clan level 8 and full clan skills", "Donate Coins:" + ammount);
    }
    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
    else
    {
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    }
    }

    @SuppressWarnings({
    "null"
    })
    public static void hero(final L2PcInstance activeChar, int ammount,int heroTime )
     
      {
            if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    {
      if(activeChar.isHero())
      {
    activeChar.sendMessage("usted ya es heroe!");
    return;
      }
    activeChar.setHero(true);
    activeChar.sendMessage("exito , ganaste heroe status con sus skills y su aura hasta un restart.");
    activeChar.broadcastUserInfo();

    String days = null;

    String INSERT_DATA = "REPLACE INTO characters_custom_data (obj_Id, char_name, hero, noble, donator, hero_end_date) VALUES (?,?,?,?,?,?)";


     
    Connection con = null;
    try
    {
    if (activeChar == null)
    return;

    con = L2DatabaseFactory.getInstance().getConnection(false);
    PreparedStatement stmt = con.prepareStatement(INSERT_DATA);

    stmt.setInt(1, activeChar.getObjectId());
    stmt.setString(2, activeChar.getName());
    stmt.setInt(3, 1);
    stmt.setInt(4, activeChar.isNoble() ? 1 : 0);
    stmt.setInt(5, activeChar.isDonator() ? 1 : 0);
    stmt.setLong(6, heroTime == 0 ? 0 : System.currentTimeMillis() + heroTime);
    stmt.execute();
    stmt.close();
    stmt = null;
    }
    catch (final Exception e)
    {
    if (Config.ENABLE_ALL_EXCEPTIONS)
    e.printStackTrace();

    LOGGER.error("Error: could not update database: ", e);
    }

    switch(heroTime)
    {
      case 0:
       days = " 4ever";
       break;
      case 1:
      days = " Days";
      break;
      case 30:
      days = " Days";
      break;
    }
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated Hero for " + heroTime + days + " Status", "Donate Coins:" + ammount);

    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
    else
    {
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    }
    }

    /*
    * public static void donatestatus(L2PcInstance activeChar,int ammount) { if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount) { if(activeChar.isdonator()) { activeChar.sendMessage("You Are Already A Donate Status!."); return; } if(!activeChar.isdonator()) {
    * activeChar.setdonator(true); activeChar.updateNameTitleColor(); try (Connection connection = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?");
    * statement.setString(1,activeChar.getName()); ResultSet rset = statement.executeQuery(); int objId = 0; if (rset.next()) { objId = rset.getInt(1); } rset.close(); statement.close(); if (objId == 0) { connection.close(); return; } statement = connection.prepareStatement(
    * "UPDATE characters SET donator=1 WHERE obj_id=?"); statement.setInt(1, objId); statement.execute(); statement.close(); connection.close(); } catch (Exception e) { System.out.println("could not set donator stats of char:"+ e); } activeChar.sendMessage("You Are Now a Have Donate Status.");
    * activeChar.broadcastUserInfo(); DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]","Donated Donate Status","Donate Coins:"+ammount); } if (!activeChar.destroyItemByItemId("Donate Coin",itemid, ammount, activeChar, false)) return; } else {
    * activeChar.sendMessage("You do not have enough Donate Coin."); } }
    */

    public void enchantj(L2PcInstance activeChar)
    {
    // jewels
    L2ItemInstance rear = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_REAR);
    L2ItemInstance lear = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEAR);
    L2ItemInstance rfinger = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RFINGER);
    L2ItemInstance lfinger = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LFINGER);
    L2ItemInstance neck = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_NECK);

    NpcHtmlMessage nhm = new NpcHtmlMessage(5);
    StringBuilder tb = new StringBuilder("");

    tb.append("<html><body>");
    tb.append("<center>");
    tb.append("<img src=\"L2UI.SquareGray\" width=\"300\" height=\"1\">");
    tb.append("<table border=0 bgcolor=000000 width=300 height=12>");
    tb.append("<tr>");
    tb.append("<td width=300 align=center><font color=\"80FF00\">{ Master Infection NPC }</font></td>");
    tb.append("</tr>");
    tb.append("<tr>");
    tb.append("<td width=300 align=center><font color=\"ae9977\">aumenta tus Joyas + 16</font></td>");
    tb.append("</tr>");
    tb.append("</table>");
    tb.append("<img src=\"L2UI.SquareGray\" width=\"300\" height=\"1\">");
    tb.append("<br>cantidad necesaria:<font color=\"FFFF00\"> 00 Master Coins</font><br>");
    tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=\"256\" height=\"32\"><br>");
    if (rear != null)
    {
    tb.append("<button value=\"" + rear.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_rear\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (lear != null)
    {
    tb.append("<button value=\"" + lear.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_lear\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (rfinger != null)
    {
    tb.append("<button value=\"" + rfinger.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_rf\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (lfinger != null)
    {
    tb.append("<button value=\"" + lfinger.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_lf\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (neck != null)
    {
    tb.append("<button value=\"" + neck.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_neck\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\">");
    }
    tb.append("<br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32>");
    tb.append("</center>");
    tb.append("</body></html>");

    nhm.setHtml(tb.toString());
    activeChar.sendPacket(nhm);
    }

    public void enchanta(L2PcInstance activeChar)
    {
    // armors
    L2ItemInstance head = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_HEAD);
    L2ItemInstance chest = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST);
    L2ItemInstance legs = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS);
    L2ItemInstance feet = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET);
    L2ItemInstance gloves = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES);
    L2ItemInstance tattoo = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_UNDER);
    NpcHtmlMessage nhm = new NpcHtmlMessage(5);
    StringBuilder tb = new StringBuilder("");

    tb.append("<html><body>");
    tb.append("<center>");
    tb.append("<img src=\"L2UI.SquareGray\" width=\"300\" height=\"1\">");
    tb.append("<table border=0 bgcolor=000000 width=300 height=12>");
    tb.append("<tr>");
    tb.append("<td width=300 align=center><font color=\"80FF00\">{ Master Infection NPC }</font></td>");
    tb.append("</tr>");
    tb.append("<tr>");
    tb.append("<td width=300 align=center><font color=\"ae9977\">aumenta tus Armaduras + 16</font></td>");
    tb.append("</tr>");
    tb.append("</table>");
    tb.append("<img src=\"L2UI.SquareGray\" width=\"300\" height=\"1\">");
    tb.append("<br>cantidad necesaria:<font color=\"FFFF00\"> 00 Master Coins</font><br>");
    tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=\"256\" height=\"32\"><br>");
    if (head != null)
    {
    tb.append("<button value=\"" + head.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_head\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (chest != null)
    {
    tb.append("<button value=\"" + chest.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_chest\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (legs != null)
    {
    tb.append("<button value=\"" + legs.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_legs\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (feet != null)
    {
    tb.append("<button value=\"" + feet.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_feet\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (gloves != null)
    {
    tb.append("<button value=\"" + gloves.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_gloves\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (tattoo != null)
    {
    tb.append("<button value=\"" + tattoo.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_tattoo\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\">");
    }
    tb.append("<br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32>");
    tb.append("</center>");
    tb.append("</body></html>");

    nhm.setHtml(tb.toString());
    activeChar.sendPacket(nhm);
    }

    public void enchantw(L2PcInstance activeChar)
    {
    L2ItemInstance rhand = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
    L2ItemInstance lhand = activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);

    NpcHtmlMessage nhm = new NpcHtmlMessage(5);
    StringBuilder tb = new StringBuilder("");

    tb.append("<html><body>");
    tb.append("<center>");
    tb.append("<img src=\"L2UI.SquareGray\" width=\"300\" height=\"1\">");
    tb.append("<table border=0 bgcolor=000000 width=300 height=12>");
    tb.append("<tr>");
    tb.append("<td width=300 align=center><font color=\"80FF00\">{ Master Infection NPC }</font></td>");
    tb.append("</tr>");
    tb.append("<tr>");
    tb.append("<td width=300 align=center><font color=\"ae9977\">aumenta tus Armas + 16 // +20 solo con crystal scrolls</font></td>");
    tb.append("</tr>");
    tb.append("</table>");
    tb.append("<img src=\"L2UI.SquareGray\" width=\"300\" height=\"1\">");
    tb.append("<br>cantidad necesaria:<font color=\"FFFF00\"> 00 Master Coins</font><br>");
    tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=\"256\" height=\"32\"><br>");
    if (rhand != null)
    {
    tb.append("<button value=\"" + rhand.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_rhand\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\"><br>");
    }
    if (lhand != null && lhand.getItem().getItemType() != L2EtcItemType.ARROW)
    {
    tb.append("<button value=\"" + lhand.getItemName() + "\" action=\"bypass -h npc_" + getObjectId() + "_lhand\" width=172 height=21 back=\"l2mafia.btn_clean_over\" fore=\"l2mafia.btn_clean\">");
    }

    tb.append("<br><img src=\"L2UI_CH3.herotower_deco\" width=256 height=32>");
    tb.append("</center>");
    tb.append("</body></html>");

    nhm.setHtml(tb.toString());
    activeChar.sendPacket(nhm);
    }

    public static void sex(L2PcInstance activeChar, int ammount)
    {
    if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    {
    if (activeChar.getClassId().getId() == activeChar.getBaseClass())
    {
    activeChar.getAppearance().setSex(activeChar.getAppearance().getSex() ? false : true);
    activeChar.broadcastUserInfo();
    L2PcInstance.setSexDB(activeChar, 1);
    activeChar.decayMe();
    activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
    activeChar.sendMessage("Exito , has cambiado de sexo y seras desconectado en 10 segundos!");
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated Change Sex", "Donate Coins:" + ammount);
    try
    {
    Thread.sleep(10000L);
    }
    catch (Exception e)
    {
    }
    activeChar.deleteMe();
    activeChar.sendPacket(LeaveWorld.STATIC_PACKET);

    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
    else
    {
    activeChar.sendMessage("para cambiar de sexo debes estar en la clase principal");
    return;
    }
    }
    else
    {
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    }
    }

    private void winds(L2PcInstance player, int count)
    {
    L2ItemInstance rhand = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
    NpcHtmlMessage html = new NpcHtmlMessage(1);
    switch (count)
    {
    case 1:
    String htmContent = HtmCache.getInstance().getHtm("data/html/mods/donate/noblesse.htm");
    html.setHtml(htmContent);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    player.sendPacket(html);
    break;
    case 2:
    String htmContent1 = HtmCache.getInstance().getHtm("data/html/mods/donate/donate.htm");
    html.setHtml(htmContent1);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    player.sendPacket(html);
    break;
    case 3:
    String htmContent2 = HtmCache.getInstance().getHtm("data/html/mods/donate/clan.htm");
    html.setHtml(htmContent2);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    player.sendPacket(html);
    break;
    case 4:
    String htmContent3 = HtmCache.getInstance().getHtm("data/html/mods/donate/sex.htm");
    html.setHtml(htmContent3);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    player.sendPacket(html);
    break;
    case 5:
    String htmContent4 = HtmCache.getInstance().getHtm("data/html/mods/donate/name.htm");
    html.setHtml(htmContent4);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    player.sendPacket(html);
    break;
    case 6:
    String htmContent5 = HtmCache.getInstance().getHtm("data/html/mods/donate/hero.htm");
    html.setHtml(htmContent5);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    player.sendPacket(html);
    break;
    case 7:
    String htmContent6 = HtmCache.getInstance().getHtm("data/html/mods/donate/enchant.htm");
    html.setHtml(htmContent6);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    player.sendPacket(html);
    break;
    case 8:
    String htmContent8 = HtmCache.getInstance().getHtm("data/html/mods/donate/augment/active/page1.htm");
    html.setHtml(htmContent8);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    if (rhand != null && rhand.isAugmented() && rhand.getAugmentation() != null && rhand.getAugmentation().getSkill() != null && rhand.getAugmentation().getSkill().getLevel() >= 1)
    {
    html.replace("%level%", rhand.getAugmentation().getSkill().getLevel());
    }
    html.replace("%level%", "None");
    player.sendPacket(html);
    break;
    case 9:
    String htmContent9 = HtmCache.getInstance().getHtm("data/html/mods/donate/augment/active/page2.htm");
    html.setHtml(htmContent9);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    if (rhand != null && rhand.isAugmented() && rhand.getAugmentation() != null && rhand.getAugmentation().getSkill() != null && rhand.getAugmentation().getSkill().getLevel() >= 1)
    {
    html.replace("%level%", rhand.getAugmentation().getSkill().getLevel());
    }
    html.replace("%level%", "None");
    player.sendPacket(html);
    break;
    case 10:
    String htmContent10 = HtmCache.getInstance().getHtm("data/html/mods/donate/augment/active/page3.htm");
    html.setHtml(htmContent10);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    if (rhand != null && rhand.isAugmented() && rhand.getAugmentation() != null && rhand.getAugmentation().getSkill() != null && rhand.getAugmentation().getSkill().getLevel() >= 1)
    {
    html.replace("%level%", rhand.getAugmentation().getSkill().getLevel());
    }
    html.replace("%level%", "None");
    player.sendPacket(html);
    break;
    case 11:
    String htmContent11 = HtmCache.getInstance().getHtm("data/html/mods/donate/augment/active/page4.htm");
    html.setHtml(htmContent11);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    if (rhand != null && rhand.isAugmented() && rhand.getAugmentation() != null && rhand.getAugmentation().getSkill() != null && rhand.getAugmentation().getSkill().getLevel() >= 1)
    {
    html.replace("%level%", rhand.getAugmentation().getSkill().getLevel());
    }
    html.replace("%level%", "None");
    player.sendPacket(html);
    break;
    case 12:
    String htmContent12 = HtmCache.getInstance().getHtm("data/html/mods/donate/augment/active/page5.htm");
    html.setHtml(htmContent12);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    if (rhand != null && rhand.isAugmented() && rhand.getAugmentation() != null && rhand.getAugmentation().getSkill() != null && rhand.getAugmentation().getSkill().getLevel() >= 1)
    {
    html.replace("%level%", rhand.getAugmentation().getSkill().getLevel());
    }
    html.replace("%level%", "None");
    player.sendPacket(html);
    break;
    case 13:
    String htmContent13 = HtmCache.getInstance().getHtm("data/html/mods/donate/augment.htm");
    html.setHtml(htmContent13);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    player.sendPacket(html);
    break;
    case 14:
    String htmContent14 = HtmCache.getInstance().getHtm("data/html/mods/donate/augment/passive/page1.htm");
    html.setHtml(htmContent14);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    if (rhand != null && rhand.isAugmented() && rhand.getAugmentation() != null && rhand.getAugmentation().getSkill() != null && rhand.getAugmentation().getSkill().getLevel() >= 1)
    {
    html.replace("%level%", rhand.getAugmentation().getSkill().getLevel());
    }
    html.replace("%level%", "None");
    player.sendPacket(html);
    break;
    case 15:
    String htmContent15 = HtmCache.getInstance().getHtm("data/html/mods/donate/augment/passive/page2.htm");
    html.setHtml(htmContent15);
    html.replace("%objectId%", String.valueOf(this.getObjectId()));
    html.replace("%charname%", player.getName());
    if (rhand != null && rhand.isAugmented() && rhand.getAugmentation() != null && rhand.getAugmentation().getSkill() != null && rhand.getAugmentation().getSkill().getLevel() >= 1)
    {
    html.replace("%level%", rhand.getAugmentation().getSkill().getLevel());
    }
    html.replace("%level%", "None");
    player.sendPacket(html);
    break;
    }
    }

    private static void name(L2PcInstance activeChar, int ammount, String val[])
    {
    if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    {
    if (val.length != 2)
    {
    activeChar.sendMessage("ingrese un nuevo nombre o elimine el espacio.");
    return;
    }
    else if (val[1].length() < 1 || val[1].length() < 3)
    {
    activeChar.sendMessage("caracteres minimos: 3");
    return;
    }
    else if (val[1].length() < 1 || val[1].length() > 16)
    {
    activeChar.sendMessage("caracteres maximos: 16");
    return;
    }
    else if (!Util.isAlphaNumeric(val[1]))
    {
    activeChar.sendMessage("el nombre solo debe contener caracteres alfanumericos.");
    return;
    }
    else if (CharNameTable.doesCharNameExist(val[1]))
    {
    activeChar.sendMessage("el nombre elegido ya esta en uso. elige otro nombre.");
    return;
    }
    else if (activeChar.isClanLeader())
    {
    activeChar.sendMessage("no pueder cambiar de nombre siendo lider del clan.");
    return;
    }
    else if (activeChar.getClan() != null)
    {
    activeChar.sendMessage("no pueder cambiar de nombre estando en un clan.");
    return;
    }

    if (activeChar.isInParty())
    {
    activeChar.getParty().broadcastToPartyMembers(activeChar, new PartySmallWindowDeleteAll());
    for (L2PcInstance member : activeChar.getParty().getPartyMembers())
    {
    if (member != activeChar)
    member.sendPacket(new PartySmallWindowAll(member, activeChar.getParty()));
    }
    }
    if (activeChar.getClan() != null)
    activeChar.getClan().broadcastClanStatus();

    L2World.getInstance().removeFromAllPlayers(activeChar);
    activeChar.setName(val[1]);
    activeChar.store();
    L2World.getInstance().addToAllPlayers(activeChar);
    activeChar.broadcastUserInfo();
    activeChar.sendMessage("exito , has cambiado de nombre y seras desconectado en 10 segundos!");
    try
    {
    Thread.sleep(10000L);
    }
    catch (Exception e)
    {
    }
    activeChar.deleteMe();
    activeChar.sendPacket(LeaveWorld.STATIC_PACKET);

    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
    else
    {
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    }
    }

    public static void Enchant(L2PcInstance activeChar, int enchant, int ammount, int type)
    {
    L2ItemInstance item = activeChar.getInventory().getPaperdollItem(type);

    if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    {
    if (item == null)
    {
    activeChar.sendMessage("ese articulo no existe en su inventario.");
    return;
    }
    else if (item.getEnchantLevel() == 16)
    {
    activeChar.sendMessage("su " + item.getItemName() + " ya esta en el maximo enchant!");
    return;
    }
    else if (item.getItem().getCrystalType() == 0 || item.getItem().getCrystalType() == 1 || item.getItem().getCrystalType() == 2)
    {
    activeChar.sendMessage("no puedes aumentar items grado " + item.getItem().getCrystalType() + " !");
    return;
    }
    else if (item.isHeroItem())
    {
    activeChar.sendMessage("este item no puede ser aumentado " + item.getItemName() + " !");
    return;
    }

    if (item.isEquipped())
    {
    item.setEnchantLevel(enchant);
    item.updateDatabase();
    activeChar.sendPacket(new ItemList(activeChar, false));
    activeChar.broadcastUserInfo();
    activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_S2_SUCCESSFULLY_ENCHANTED).addNumber(item.getEnchantLevel()).addItemName(item.getItemId()));
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated: " + item.getItemName() + " +" + item.getEnchantLevel(), "Donate Coins:" + ammount);
    }
    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
    else
    {
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    }
    }
    }
    « Última modificación: Julio 14, 2018, 08:27:44 pm por Unstoppable »

    Desconectado GoldenDarkness

    • Vip
    • *
    • Mensajes: 242
    • ar
    • Agradecimientos: 79
    • Lineage por religión, no por hobbye o moda \^.^/
    • Cronica: : C6/H5
    • Revision: 370,1118,010
    • S.O: Windows 7
    • Serverpack : aCis,Frozen,Master
    A Homer Simpson le gusta este post.

    Re:donator shop: no destruye el item que pide. ( l2jfrozen )
    « Respuesta #1 en: Julio 14, 2018, 05:42:31 pm »
    gracias
    Este post tiene 1 agradecimientos
    Ayudó a la solución.
  • Añade a tus favoritos
    No logro entender como eso puede consumir

    Código: [Seleccionar]
    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    Por lo q hace es "Si, !(No) consume el item del personaje hace return", pero hace return alfinal de que se hizo todas las acciones.

    Proba

    Código: [Seleccionar]
    public static void sex(L2PcInstance activeChar, int ammount)
    {
    - if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    + if (!(activeChar.getInventory().getItemByItemId(itemid) == null) || activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    - {
    if (activeChar.getClassId().getId() == activeChar.getBaseClass())
    {
    + activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, true);
    activeChar.getAppearance().setSex(activeChar.getAppearance().getSex() ? false : true);
    activeChar.broadcastUserInfo();
    L2PcInstance.setSexDB(activeChar, 1);
    activeChar.decayMe();
    activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
    activeChar.sendMessage("Exito , has cambiado de sexo y seras desconectado en 10 segundos!");
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated Change Sex", "Donate Coins:" + ammount);
    try
    {
    Thread.sleep(10000L);
    }
    catch (Exception e)
    {
    }
    activeChar.deleteMe();
    activeChar.sendPacket(LeaveWorld.STATIC_PACKET);
    -
    - if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    - return;
    }
    else
    {
    - activeChar.sendMessage("para cambiar de sexo debes estar en la clase principal");
    + activeChar.sendMessage("Para cambiar de sexo debes estar en la Clase Base");
    return;
    }
    - }
    else
    - {
    - activeChar.sendMessage("no tienes suficientes Master Coins.");
    + activeChar.sendMessage("No tienes suficientes Master Coins.");
    - }
    }

    La primera si es sencillo y no sos pesado es gratis :D

    Conectado Unstoppable

    • Grado A
    • *
    • Topic Author
    • Mensajes: 428
    • ar
    • Agradecimientos: 116
    • Cronica: : interlude
    • Revision: 1118 / 370
    • S.O: Windows 10
    • Serverpack : FROZEN / ACIS
    Re:donator shop: no destruye el item que pide. ( l2jfrozen )
    « Respuesta #2 en: Julio 14, 2018, 06:34:46 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    No logro entender como eso puede consumir

    Código: [Seleccionar]
    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    Por lo q hace es "Si, !(No) consume el item del personaje hace return", pero hace return alfinal de que se hizo todas las acciones.

    Proba

    Código: [Seleccionar]
    public static void sex(L2PcInstance activeChar, int ammount)
    {
    - if (activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    + if (!(activeChar.getInventory().getItemByItemId(itemid) == null) || activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)
    - {
    if (activeChar.getClassId().getId() == activeChar.getBaseClass())
    {
    + activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, true);
    activeChar.getAppearance().setSex(activeChar.getAppearance().getSex() ? false : true);
    activeChar.broadcastUserInfo();
    L2PcInstance.setSexDB(activeChar, 1);
    activeChar.decayMe();
    activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
    activeChar.sendMessage("Exito , has cambiado de sexo y seras desconectado en 10 segundos!");
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated Change Sex", "Donate Coins:" + ammount);
    try
    {
    Thread.sleep(10000L);
    }
    catch (Exception e)
    {
    }
    activeChar.deleteMe();
    activeChar.sendPacket(LeaveWorld.STATIC_PACKET);
    -
    - if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    - return;
    }
    else
    {
    - activeChar.sendMessage("para cambiar de sexo debes estar en la clase principal");
    + activeChar.sendMessage("Para cambiar de sexo debes estar en la Clase Base");
    return;
    }
    - }
    else
    - {
    - activeChar.sendMessage("no tienes suficientes Master Coins.");
    + activeChar.sendMessage("No tienes suficientes Master Coins.");
    - }
    }

    es algo raro el codigo , es el unico npc que encontre para frozen , los demas son por scrips y funcionan 100 veces peor , este tambien esta es muy largo y algunas funciones  no las agrege al npc porque no funcionan bien como deben , pero eso no es problema xD. lo demas testie todo , trate de "bugearlo" de alguna manera y parece que funciona bien xD , hasta deja un una carpeta log con cada accion que hace cada personaje en este npc.

    enfin agrege todo como dijiste pero te explico , si tengo 10 items en el inventario te los cobra y desaparecen . eso bien , pero si yo tengo menos cantidad de la necesaria por ejemplo de 9 a 1 item no te consume el item.

    tambien ahora no sale la opcion que decia "usted no tiene master coins" , si no tenes coins no dice nada , claro que no te lo deja usar pero no te lo advierte.

    asi deje la parte del cambio de sexo


    Código: [Seleccionar]
    	public static void sex(L2PcInstance activeChar, int ammount)
    {
    if (!(activeChar.getInventory().getItemByItemId(itemid) == null) || activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)

    if (activeChar.getClassId().getId() == activeChar.getBaseClass())
    {
    activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, true);
    activeChar.getAppearance().setSex(activeChar.getAppearance().getSex() ? false : true);
    activeChar.broadcastUserInfo();
    L2PcInstance.setSexDB(activeChar, 1);
    activeChar.decayMe();
    activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
    activeChar.sendMessage("Exito , has cambiado de sexo y seras desconectado en 10 segundos!");
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated Change Sex", "Donate Coins:" + ammount);
    try
    {
    Thread.sleep(10000L);
    }
    catch (Exception e)
    {
    }
    activeChar.deleteMe();
    activeChar.sendPacket(LeaveWorld.STATIC_PACKET);

    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
        else
    activeChar.sendMessage("no tienes suficientes Master Coins.");
            }


    Desconectado GoldenDarkness

    • Vip
    • *
    • Mensajes: 242
    • ar
    • Agradecimientos: 79
    • Lineage por religión, no por hobbye o moda \^.^/
    • Cronica: : C6/H5
    • Revision: 370,1118,010
    • S.O: Windows 7
    • Serverpack : aCis,Frozen,Master
    A Homer Simpson le gusta este post.

    Re:donator shop: no destruye el item que pide. ( l2jfrozen )
    « Respuesta #3 en: Julio 14, 2018, 06:48:45 pm »
    gracias
    Este post tiene 1 agradecimientos
    Ayudó a la solución.
  • Añade a tus favoritos
    asi deje la parte del cambio de sexo


    Código: [Seleccionar]
    public static void sex(L2PcInstance activeChar, int ammount)
    {
    if (!(activeChar.getInventory().getItemByItemId(itemid) == null) || activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)

    if (activeChar.getClassId().getId() == activeChar.getBaseClass())
    {
    activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, true);
    activeChar.getAppearance().setSex(activeChar.getAppearance().getSex() ? false : true);
    activeChar.broadcastUserInfo();
    L2PcInstance.setSexDB(activeChar, 1);
    activeChar.decayMe();
    activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
    activeChar.sendMessage("Exito , has cambiado de sexo y seras desconectado en 10 segundos!");
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated Change Sex", "Donate Coins:" + ammount);
    try
    {
    Thread.sleep(10000L);
    }
    catch (Exception e)
    {
    }
    activeChar.deleteMe();
    activeChar.sendPacket(LeaveWorld.STATIC_PACKET);

    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
        else
    activeChar.sendMessage("no tienes suficientes Master Coins.");
            }

    La macana te la mandaste vos, borraste cosas de mas.

    Borraste

    Código: [Seleccionar]
    else
    {
    activeChar.sendMessage("para cambiar de sexo debes estar en la clase principal");
    return;
    }
    Y dejaste

    Código: [Seleccionar]
    else
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    Como respuesta a "para cambiar de sexo debes estar en la clase principal"

    Presta atencion al cierre de llaves

    Código: [Seleccionar]
    If(CONDICIÓN)
    {
    //SI cumplo la condición, laburo esto
    }
    else
    {
    //SI NO cumplo la condición, laburo esto
    }
    « Última modificación: Julio 14, 2018, 06:57:17 pm por GoldenDarkness »

    La primera si es sencillo y no sos pesado es gratis :D

    Conectado Unstoppable

    • Grado A
    • *
    • Topic Author
    • Mensajes: 428
    • ar
    • Agradecimientos: 116
    • Cronica: : interlude
    • Revision: 1118 / 370
    • S.O: Windows 10
    • Serverpack : FROZEN / ACIS
    Re:donator shop: no destruye el item que pide. ( l2jfrozen )
    « Respuesta #4 en: Julio 14, 2018, 06:55:09 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    asi deje la parte del cambio de sexo


    Código: [Seleccionar]
    public static void sex(L2PcInstance activeChar, int ammount)
    {
    if (!(activeChar.getInventory().getItemByItemId(itemid) == null) || activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)

    if (activeChar.getClassId().getId() == activeChar.getBaseClass())
    {
    activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, true);
    activeChar.getAppearance().setSex(activeChar.getAppearance().getSex() ? false : true);
    activeChar.broadcastUserInfo();
    L2PcInstance.setSexDB(activeChar, 1);
    activeChar.decayMe();
    activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
    activeChar.sendMessage("Exito , has cambiado de sexo y seras desconectado en 10 segundos!");
    DonateAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "Donated Change Sex", "Donate Coins:" + ammount);
    try
    {
    Thread.sleep(10000L);
    }
    catch (Exception e)
    {
    }
    activeChar.deleteMe();
    activeChar.sendPacket(LeaveWorld.STATIC_PACKET);

    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    }
        else
    activeChar.sendMessage("no tienes suficientes Master Coins.");
            }

    La macana te la mandaste vos, borraste cosas de mas.

    Borraste

    Código: [Seleccionar]
    else
    {
    activeChar.sendMessage("para cambiar de sexo debes estar en la clase principal");
    return;
    }
    Y dejaste

    Código: [Seleccionar]
    else
    activeChar.sendMessage("no tienes suficientes Master Coins.");
    Como respuesta a "para cambiar de sexo debes estar en la clase principal"

    mala mia perdon xD ahora quedo bien las "advertencias" , pero no leiste lo otro que te puse xD

    agrege todo como dijiste pero te explico , si tengo 10 items en el inventario te los cobra y desaparecen . eso bien , pero si yo tengo menos cantidad de la necesaria por ejemplo de 9 a 1 item no te consume el item.

    Desconectado GoldenDarkness

    • Vip
    • *
    • Mensajes: 242
    • ar
    • Agradecimientos: 79
    • Lineage por religión, no por hobbye o moda \^.^/
    • Cronica: : C6/H5
    • Revision: 370,1118,010
    • S.O: Windows 7
    • Serverpack : aCis,Frozen,Master
    A Homer Simpson le gusta este post.

    Re:donator shop: no destruye el item que pide. ( l2jfrozen )
    « Respuesta #5 en: Julio 14, 2018, 06:59:59 pm »
    gracias
    Este post tiene 1 agradecimientos
  • Añade a tus favoritos
    agrege todo como dijiste pero te explico , si tengo 10 items en el inventario te los cobra y desaparecen . eso bien , pero si yo tengo menos cantidad de la necesaria por ejemplo de 9 a 1 item no te consume el item.
    No consume el item listo, pero realiza la accion?

    Te habia marcado q borraras esto

    Código: [Seleccionar]
    if (!activeChar.destroyItemByItemId("Master Coins", itemid, ammount, activeChar, false))
    return;
    « Última modificación: Julio 14, 2018, 07:01:31 pm por GoldenDarkness »

    La primera si es sencillo y no sos pesado es gratis :D

    Conectado Unstoppable

    • Grado A
    • *
    • Topic Author
    • Mensajes: 428
    • ar
    • Agradecimientos: 116
    • Cronica: : interlude
    • Revision: 1118 / 370
    • S.O: Windows 10
    • Serverpack : FROZEN / ACIS
    Re:donator shop: no destruye el item que pide. ( l2jfrozen )
    « Respuesta #6 en: Julio 14, 2018, 07:04:17 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos
    agrege todo como dijiste pero te explico , si tengo 10 items en el inventario te los cobra y desaparecen . eso bien , pero si yo tengo menos cantidad de la necesaria por ejemplo de 9 a 1 item no te consume el item.
    No consume el item listo, pero realiza la accion?

    aver , si no tenes ningun item te dice que no tienes suficientes coins , eso bien , pero si yo tengo  una cantidad menor a la necesaria en este caso serian 10 coins , si tengo menos de esos 10 coins no te los consume y te deja usar la opcion del cambio de sexo sin cobrarte nada , se entiende ?

    Desconectado GoldenDarkness

    • Vip
    • *
    • Mensajes: 242
    • ar
    • Agradecimientos: 79
    • Lineage por religión, no por hobbye o moda \^.^/
    • Cronica: : C6/H5
    • Revision: 370,1118,010
    • S.O: Windows 7
    • Serverpack : aCis,Frozen,Master
    A Homer Simpson le gusta este post.

    Re:donator shop: no destruye el item que pide. ( l2jfrozen )
    « Respuesta #7 en: Julio 14, 2018, 07:11:18 pm »
    gracias
    Este post tiene 1 agradecimientos
    Ayudó a la solución.
  • Añade a tus favoritos

    Código: [Seleccionar]
    -	if (!(activeChar.getInventory().getItemByItemId(itemid) == null) || activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)	
    + if (!(activeChar.getInventory().getItemByItemId(itemid) == null) && activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)

    La primera si es sencillo y no sos pesado es gratis :D

    Conectado Unstoppable

    • Grado A
    • *
    • Topic Author
    • Mensajes: 428
    • ar
    • Agradecimientos: 116
    • Cronica: : interlude
    • Revision: 1118 / 370
    • S.O: Windows 10
    • Serverpack : FROZEN / ACIS
    Re:donator shop: no destruye el item que pide. ( l2jfrozen )
    « Respuesta #8 en: Julio 14, 2018, 08:27:24 pm »
    gracias
    Este post tiene 0 agradecimientos
  • Añade a tus favoritos

    Código: [Seleccionar]
    -	if (!(activeChar.getInventory().getItemByItemId(itemid) == null) || activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)	
    + if (!(activeChar.getInventory().getItemByItemId(itemid) == null) && activeChar.getInventory().getInventoryItemCount(itemid, 0) >= ammount)

    GRACIAS FUNCIONO PERFECTO !!!!!!

    Solucionado !!  :02: :02: :02: :02: