Noticias:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Menú Principal

NPC Maker - Venta de articulos

Iniciado por Swarlog, Jul 25, 2025, 11:46 PM

Tema anterior - Siguiente tema

Swarlog

No puedes ver este adjunto.

Npc en donde añadir los items que querrais vender al mundo!



He actualizado la imagen y adjunto el archivo de la descarga.

Aqui dejo el fix creado por No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.:

### Eclipse Workspace Patch 1.0
#P L2jFrozen_GameServer
Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreListSell.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreListSell.java    (revision 1004)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreListSell.java    (working copy)
@@ -19,7 +19,7 @@
 package com.l2jfrozen.gameserver.network.serverpackets;
 
 import com.l2jfrozen.Config;
-import com.l2jfrozen.gameserver.model.TradeList;
+import com.l2jfrozen.gameserver.model.TradeList.TradeItem;
 import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
 
 /**
@@ -28,44 +28,41 @@
  */
 public class PrivateStoreListSell extends L2GameServerPacket
 {
-    // private static final String _S__B4_PRIVATEBUYLISTSELL = "[S] 9b PrivateBuyListSell";
     private static final String _S__B4_PRIVATESTORELISTSELL = "[S] 9b PrivateStoreListSell";
-    private L2PcInstance _storePlayer;
-    private L2PcInstance _activeChar;
+    private int _objId;
     private int _playerAdena;
     private boolean _packageSale;
-    private TradeList.TradeItem[] _items;
+    private TradeItem[] _items;
     
     // player's private shop
     public PrivateStoreListSell(L2PcInstance player, L2PcInstance storePlayer)
     {
-        _activeChar = player;
-        _storePlayer = storePlayer;
-        
         if (Config.SELL_BY_ITEM)
         {
             CreatureSay cs11 = new CreatureSay(0, 15, "", "ATTENTION: Store System is not based on Adena, be careful!"); // 8D
-            _activeChar.sendPacket(cs11);
-            _playerAdena = _activeChar.getItemCount(Config.SELL_ITEM, -1);
+            player.sendPacket(cs11);
+            _playerAdena = player.getItemCount(Config.SELL_ITEM, -1);
         }
         else
-            _playerAdena = _activeChar.getAdena();
+        {
+            _playerAdena = player.getAdena();
+        }
         
-        _storePlayer.getSellList().updateItems();
-        _items = _storePlayer.getSellList().getItems();
-        _packageSale = _storePlayer.getSellList().isPackaged();
+        _objId = storePlayer.getObjectId();
+        storePlayer.getSellList().updateItems();
+        _items = storePlayer.getSellList().getItems();
+        _packageSale = storePlayer.getSellList().isPackaged();
     }
     
     @Override
     protected final void writeImpl()
     {
         writeC(0x9b);
-        writeD(_storePlayer.getObjectId());
+        writeD(_objId);
         writeD(_packageSale ? 1 : 0);
         writeD(_playerAdena);
-        
         writeD(_items.length);
-        for (TradeList.TradeItem item : _items)
+        for (TradeItem item : _items)
         {
             writeD(item.getItem().getType2());
             writeD(item.getObjectId());
@@ -80,10 +77,6 @@
         }
     }
     
-    /*
-     * (non-Javadoc)
-     * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType()
-     */
     @Override
     public String getType()
     {
Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java    (revision 1004)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreManageListSell.java    (working copy)
@@ -19,7 +19,6 @@
 package com.l2jfrozen.gameserver.network.serverpackets;
 
 import com.l2jfrozen.Config;
-import com.l2jfrozen.gameserver.model.TradeList;
 import com.l2jfrozen.gameserver.model.TradeList.TradeItem;
 import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
 
@@ -31,10 +30,11 @@
 {
     private static final String _S__B3_PRIVATESELLLISTSELL = "[S] 9a PrivateSellListSell";
     private L2PcInstance _activeChar;
+    private final int _objId;
     private int _playerAdena;
     private boolean _packageSale;
-    private TradeList.TradeItem[] _itemList;
-    private TradeList.TradeItem[] _sellList;
+    private TradeItem[] _itemList;
+    private TradeItem[] _sellList;
     
     public PrivateStoreManageListSell(L2PcInstance player)
     {
@@ -50,9 +50,11 @@
         }
         
         _activeChar.getSellList().updateItems();
-        _packageSale = _activeChar.getSellList().isPackaged();
-        _itemList = _activeChar.getInventory().getAvailableItems(_activeChar.getSellList());
-        _sellList = _activeChar.getSellList().getItems();
+        
+        _objId = player.getObjectId();
+        _packageSale = player.getSellList().isPackaged();
+        _itemList = player.getInventory().getAvailableItems(player.getSellList());
+        _sellList = player.getSellList().getItems();
     }
     
     /**
@@ -63,30 +65,27 @@
     {
         writeC(0x9a);
         // section 1
-        writeD(_activeChar.getObjectId());
+        writeD(_objId);
         writeD(_packageSale ? 1 : 0); // Package sell
         writeD(_playerAdena);
         
         // section2
-        writeD(_itemList.length - _sellList.length); // for potential sells
-        for (TradeList.TradeItem item : _itemList)
+        writeD(_itemList.length); // for potential sells
+        for (TradeItem item : _itemList)
         {
-            if (isItemInSelling(item) == false)
-            {
-                writeD(item.getItem().getType2());
-                writeD(item.getObjectId());
-                writeD(item.getItem().getItemId());
-                writeD(item.getCount());
-                writeH(0);
-                writeH(item.getEnchant());// enchant lvl
-                writeH(0);
-                writeD(item.getItem().getBodyPart());
-                writeD(item.getPrice()); // store price
-            }
+            writeD(item.getItem().getType2());
+            writeD(item.getObjectId());
+            writeD(item.getItem().getItemId());
+            writeD(item.getCount());
+            writeH(0);
+            writeH(item.getEnchant());// enchant lvl
+            writeH(0);
+            writeD(item.getItem().getBodyPart());
+            writeD(item.getPrice()); // store price
         }
         // section 3
         writeD(_sellList.length); // count for any items already added for sell
-        for (TradeList.TradeItem item : _sellList)
+        for (TradeItem item : _sellList)
         {
             writeD(item.getItem().getType2());
             writeD(item.getObjectId());
@@ -101,22 +100,6 @@
         }
     }
     
-    private boolean isItemInSelling(TradeItem item_)
-    {
-        for (TradeList.TradeItem itemSell : _sellList)
-        {
-            if (itemSell.getObjectId() == item_.getObjectId())
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-    
-    /*
-     * (non-Javadoc)
-     * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType()
-     */
     @Override
     public String getType()
     {
Index: head-src/com/l2jfrozen/gameserver/model/TradeList.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/TradeList.java    (revision 1004)
+++ head-src/com/l2jfrozen/gameserver/model/TradeList.java    (working copy)
@@ -224,17 +224,19 @@
      * 
      * @return L2ItemInstance : items in inventory
      */
-    public TradeList.TradeItem[] getAvailableItems(PcInventory inventory)
+    public TradeItem[] getAvailableItems(PcInventory inventory)
     {
-        List<TradeList.TradeItem> list = new FastList<TradeList.TradeItem>();
+        FastList<TradeItem> list = FastList.newInstance();
 
-        for(TradeList.TradeItem item : _items)
+        for(TradeItem item : _items)
         {
             item = new TradeItem(item, item.getCount(), item.getPrice());
             list.add(inventory.adjustAvailableItem(item,list));
         }
 
-        return list.toArray(new TradeList.TradeItem[list.size()]);
+        TradeItem[] result = list.toArray(new TradeItem[list.size()]);
+        FastList.recycle(list);
+        return result;
     }
 
     /**
@@ -257,12 +259,16 @@
         if(item.isStackable())
         {
             for(TradeItem exclItem : _items)
+            {
                 if(exclItem.getItem().getItemId() == item.getItemId()  && (exclItem.getEnchant() == item.getEnchantLevel()))
                 {
                     if(item.getCount() <= exclItem.getCount())
+                    {
                         return null;
+                    }
                     return new TradeItem(item, item.getCount() - exclItem.getCount(), item.getReferencePrice());
                 }
+            }
         }
 
         return new TradeItem(item, item.getCount(), item.getReferencePrice());
@@ -276,6 +282,7 @@
     public void adjustItemRequest(ItemRequest item)
     {
         for(TradeItem filtItem : _items)
+        {
             if(filtItem.getObjectId() == item.getObjectId() && (filtItem.getEnchant() == item.getEnchant()))
             {
                 if(filtItem.getCount() < item.getCount())
@@ -285,6 +292,7 @@
 
                 return;
             }
+        }
 
         item.setCount(0);
     }
@@ -297,6 +305,7 @@
     public void adjustItemRequestByItemId(ItemRequest item)
     {
         for(TradeItem filtItem : _items)
+        {
             if(filtItem.getItem().getItemId() == item.getItemId() && (filtItem.getEnchant() == item.getEnchant()))
             {
                 if(filtItem.getCount() < item.getCount())
@@ -306,6 +315,7 @@
 
                 return;
             }
+        }
 
         item.setCount(0);
     }
@@ -357,12 +367,15 @@
         
         L2ItemInstance item = (L2ItemInstance) o;
 
-        if(!item.isTradeable() || (getOwner().isGM() && Config.GM_TRADE_RESTRICTED_ITEMS)
-            || item.getItemType() == L2EtcItemType.QUEST)
+        if(!item.isTradeable() || (getOwner().isGM() && Config.GM_TRADE_RESTRICTED_ITEMS) || item.getItemType() == L2EtcItemType.QUEST)
+        {
             return null;
+        }
 
         if(count > item.getCount())
+        {
             return null;
+        }
 
         if(!item.isStackable() && count > 1)
         {
@@ -373,7 +386,9 @@
         for(TradeItem checkitem : _items)
         {
             if(checkitem.getObjectId() == objectId)
+            {
                 return null;
+            }
         }
 
         TradeItem titem = new TradeItem(item, count, price);
@@ -461,6 +476,7 @@
         }
 
         for(TradeItem titem : _items)
+        {
             if(titem.getObjectId() == objectId || titem.getItem().getItemId() == itemId)
             {
                 // If Partner has already confirmed this trade, invalidate the confirmation
@@ -488,7 +504,7 @@
 
                 return titem;
             }
-
+        }
         return null;
     }
 
@@ -539,7 +555,9 @@
     public boolean confirm()
     {
         if(_confirmed)
+        {
             return true; // Already confirmed
+        }
 
         // If Partner has already confirmed this trade, proceed exchange
         if(_partner != null)
@@ -658,11 +676,15 @@
         {
             L2ItemInstance oldItem = _owner.getInventory().getItemByObjectId(titem.getObjectId());
             if(oldItem == null)
+            {
                 return false;
+            }
 
             L2ItemInstance newItem = _owner.getInventory().transferItem("Trade", titem.getObjectId(), titem.getCount(), partner.getInventory(), _owner, _partner);
             if(newItem == null)
+            {
                 return false;
+            }
 
             // Add changes to inventory update packets
             if(ownerIU != null)
@@ -838,9 +860,12 @@
     public synchronized boolean PrivateStoreBuy(L2PcInstance player, ItemRequest[] items, int price)
     {
         if(_locked)
+        {
             return false;
+        }
 
-        if(items == null || items.length == 0){
+        if(items == null || items.length == 0)
+        {
             return false;
         }
         
@@ -867,19 +892,22 @@
             }
             
             boolean found = false;
-            for(TradeItem ti : _items){
-                if(ti.getObjectId() == item.getObjectId()){
-                    
+            for(TradeItem ti : _items)
+            {
+                if(ti.getObjectId() == item.getObjectId())
+                {
                     found = true;
                     
-                    if(ti.getPrice() != item.getPrice()){
+                    if(ti.getPrice() != item.getPrice())
+                    {
                         return false;
                     }
                 }
             }
             
             //store is not selling that item...
-            if(!found){
+            if(!found)
+            {
                 String msg = "Requested Item is not available to buy... You are perfoming illegal operation, it has been segnalated";
                 _log.warning("ATTENTION: Player "+player.getName()+" has performed buy illegal operation..");
                 player.sendMessage(msg);
@@ -920,7 +948,8 @@
         InventoryUpdate ownerIU = new InventoryUpdate();
         InventoryUpdate playerIU = new InventoryUpdate();
 
-        if(Config.SELL_BY_ITEM){
+        if(Config.SELL_BY_ITEM)
+        {
             // Transfer Item
             if(price > playerInventory.getInventoryItemCount(Config.SELL_ITEM, -1))
             {
@@ -931,7 +960,8 @@
             
             L2ItemInstance item = playerInventory.getItemByItemId(Config.SELL_ITEM);
             
-            if(item==null){
+            if(item==null)
+            {
                 System.out.println("Buyer Medals are null");
                 //no useful lock to seller
                 //lock();
@@ -950,7 +980,8 @@
 
             // Proceed with item transfer
             L2ItemInstance newItem = playerInventory.transferItem("PrivateStore", item.getObjectId(), price, ownerInventory, player, _owner);
-            if(newItem == null){
+            if(newItem == null)
+            {
                 System.out.println("Buyer new medals null");
                 return false;
             }
@@ -990,7 +1021,9 @@
             ownerIU.addItem(ownerInventory.getItemByItemId(Config.SELL_ITEM));
             */
             
-        }else{
+        }
+        else
+        {
             // Transfer adena
             if(price > playerInventory.getAdena())
             {
@@ -1112,16 +1145,19 @@
      */
     public synchronized boolean PrivateStoreSell(L2PcInstance player, ItemRequest[] items, int price)
     {
-        if(_locked){
-            
-            if(Config.DEBUG){
+        if(_locked)
+        {
+            if(Config.DEBUG)
+            {
                 _log.info("[PrivateStoreSell] Locked, return false");
             }
             return false;
         }
         
-        if(items==null || items.length == 0){
-            if(Config.DEBUG){
+        if(items==null || items.length == 0)
+        {
+            if(Config.DEBUG)
+            {
                 _log.info("[PrivateStoreSell] items==null || items.length == 0, return false");
             }
             return false;
@@ -1140,8 +1176,10 @@
         {
             // Check if requested item is available for manipulation
             L2ItemInstance oldItem = player.checkItemManipulation(item.getObjectId(), item.getCount(), "sell");
-            if(oldItem == null){
-                if(Config.DEBUG){
+            if(oldItem == null)
+            {
+                if(Config.DEBUG)
+                {
                     _log.info("[PrivateStoreSell] player.checkItemManipulation(item.getObjectId(), item.getCount(), 'sell') null, return false");
                 }
                 return false;
@@ -1152,7 +1190,6 @@
             {
                 if (ti.getItem().getItemId() == item.getItemId())
                 {
-                    
                     if (ti.getPrice() != item.getPrice())
                     {
                         if (Config.DEBUG)
@@ -1164,10 +1201,8 @@
                     
                     if (ti.getEnchant() != item.getEnchant())
                     {
-                        
                         player.sendMessage("Incorect enchant level.");
                         return false;
-                        
                     }
                     
                     L2Object obj = L2World.getInstance().findObject(item.getObjectId());
@@ -1193,7 +1228,8 @@
             }
             
             //store is not buying that item...
-            if(!found){
+            if(!found)
+            {
                 String msg = "Requested Item is not available to sell... You are perfoming illegal operation, it has been segnalated";
                 _log.warning("ATTENTION: Player "+player.getName()+" has performed sell illegal operation..");
                 player.sendMessage(msg);
@@ -1225,8 +1261,10 @@
         
             // Check if requested item is available for manipulation
             L2ItemInstance oldItem = player.checkItemManipulation(item.getObjectId(), item.getCount(), "sell");
-            if(oldItem == null){
-                if(Config.DEBUG){
+            if(oldItem == null)
+            {
+                if(Config.DEBUG)
+                {
                     _log.info("[PrivateStoreSell] oldItem == null, return false");
                 }
                 return false;
@@ -1241,8 +1279,10 @@
             
             // Proceed with item transfer
             L2ItemInstance newItem = playerInventory.transferItem("PrivateStore", item.getObjectId(), item.getCount(), ownerInventory, player, _owner);
-            if(newItem == null){
-                if(Config.DEBUG){
+            if(newItem == null)
+            {
+                if(Config.DEBUG)
+                {
                     _log.info("[PrivateStoreSell] newItem == null, return false");
                 }
                 
@@ -1306,12 +1346,14 @@
             oldItem = null;
         }
 
-        if(Config.SELL_BY_ITEM){
+        if(Config.SELL_BY_ITEM)
+        {
             // Transfer Item
             if(price > ownerInventory.getInventoryItemCount(Config.SELL_ITEM, -1))
             {
                 lock();
-                if(Config.DEBUG){
+                if(Config.DEBUG)
+                {
                     _log.info("[PrivateStoreSell] price > ownerInventory.getInventoryItemCount(Config.SELL_ITEM, -1), return false");
                 }
                 
@@ -1320,8 +1362,10 @@
             
             L2ItemInstance item = ownerInventory.getItemByItemId(Config.SELL_ITEM);
             
-            if(item==null){
-                if(Config.DEBUG){
+            if(item==null)
+            {
+                if(Config.DEBUG)
+                {
                     _log.info("[PrivateStoreSell] item==null, return false");
                 }
                 
@@ -1344,8 +1388,10 @@
 
             // Proceed with item transfer
             L2ItemInstance newItem = ownerInventory.transferItem("PrivateStore", item.getObjectId(), price, playerInventory,_owner, player);
-            if(newItem == null){
-                if(Config.DEBUG){
+            if(newItem == null)
+            {
+                if(Config.DEBUG)
+                {
                     _log.info("[PrivateStoreSell] newItem = ownerInventory.transferItem('PrivateStore', item.getObjectId(), price, playerInventory,_owner, player) == null, return false");
                 }
                 
@@ -1378,11 +1424,15 @@
             
             SystemMessage msg2 = SystemMessage.sendString("You spent "+price+" "+item.getItemName());
             _owner.sendPacket(msg2);
-        }else{
+        }
+        else
+        {
             
             // Transfer adena
-            if(price > ownerInventory.getAdena()){
-                if(Config.DEBUG){
+            if(price > ownerInventory.getAdena())
+            {
+                if(Config.DEBUG)
+                {
                     _log.info("[PrivateStoreSell] price > ownerInventory.getAdena(), return false");
                 }
                 
@@ -1394,7 +1444,6 @@
             ownerIU.addItem(adenaItem);
             playerInventory.addAdena("PrivateStore", price, player, _owner);
             playerIU.addItem(playerInventory.getAdenaInstance());
-
         }
         
 
@@ -1403,7 +1452,9 @@
         player.sendPacket(playerIU);
 
         if(_owner.isOffline())
+        {
             OfflineTradeTable.storeOffliner(_owner);
+        }
         
         ownerIU = null;
         playerIU = null;
@@ -1422,10 +1473,10 @@
         for(TradeItem item : _items)
         {
             if(item.getObjectId() == objectId)
+            {
                 return item;
+            }
         }
         return null;
     }
-    
-    
-}
+}
\ No newline at end of file
Index: head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreMsgSell.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreMsgSell.java    (revision 1004)
+++ head-src/com/l2jfrozen/gameserver/network/serverpackets/PrivateStoreMsgSell.java    (working copy)
@@ -28,14 +28,15 @@
 {
     private static final String _S__B5_PRIVATESTOREMSGSELL = "[S] 9c PrivateStoreMsgSell";
     private L2PcInstance _activeChar;
+    private int _objId;
     private String _storeMsg;
     
     public PrivateStoreMsgSell(L2PcInstance player)
     {
-        _activeChar = player;
+        _objId = player.getObjectId();
         if (_activeChar.getSellList() != null)
         {
-            _storeMsg = _activeChar.getSellList().getTitle();
+            _storeMsg = player.getSellList().getTitle();
         }
     }
     
@@ -43,14 +44,10 @@
     protected final void writeImpl()
     {
         writeC(0x9c);
-        writeD(_activeChar.getObjectId());
+        writeD(_objId);
         writeS(_storeMsg);
     }
     
-    /*
-     * (non-Javadoc)
-     * @see com.l2jfrozen.gameserver.serverpackets.ServerBasePacket#getType()
-     */
     @Override
     public String getType()
     {