public override void run()
        {
            L2Player player = getClient().CurrentPlayer;

            L2Citizen npc = player.FolkNpc;

            if (npc == null)
            {
                player.sendActionFailed();
                return;
            }

            long fee           = _count * 30;
            int  slots         = 0;
            long adenatransfer = 0;

            for (int i = 0; i < _count; i++)
            {
                int  objectId = (int)_items[i * 2];
                long count    = _items[i * 2 + 1];

                L2Item item = player.getItemByObjId(objectId);

                if (item == null)
                {
                    Console.WriteLine("cant find item " + objectId + " in inventory " + player.Name);
                    player.sendActionFailed();
                    return;
                }

                if (item.Template.isStackable())
                {
                    slots += 1;
                }
                else
                {
                    slots += (int)count;
                }

                if (item.Template.ItemID == 57)
                {
                    adenatransfer += count;
                }
            }

            if ((player.getAdena() - adenatransfer) < fee)
            {
                player.sendSystemMessage(281);//You do not have enough adena to pay the fee.
                player.sendActionFailed();
                return;
            }

            InvPrivateWarehouse pw = player._warehouse;
            int itsize             = 0;

            if (pw == null)
            {
                pw = new InvPrivateWarehouse(player);
            }
            else
            {
                itsize = pw.Items.Count;
            }

            if (player.ItemLimit_Warehouse < (itsize + slots))
            {
                player.sendSystemMessage(130);//Your warehouse is full.
                player.sendActionFailed();
                return;
            }

            player.reduceAdena(fee, true, false);

            List <long[]> transfer = new List <long[]>();

            for (int i = 0; i < _count; i++)
            {
                int  objectId = (int)_items[i * 2];
                long count    = _items[i * 2 + 1];

                transfer.Add(new long[] { objectId, count });
            }

            pw.transferHere(player, transfer, false);

            //if(npc.Template.fnBye != null)
            //{
            //    player.sendPacket(new NpcHtmlMessage(player, npc.Template.fnBye, npc.ObjID, 0));
            //}

            player.sendItemList(true);
        }
        public override void run()
        {
            L2Player  player = getClient().CurrentPlayer;
            L2Citizen npc    = player.FolkNpc;

            if (npc == null)
            {
                player.sendActionFailed();
                return;
            }

            int slots = 0;

            for (int i = 0; i < _count; i++)
            {
                int objectId = _items[i * 2];
                int count    = _items[i * 2 + 1];

                L2Item item = (L2Item)player._warehouse.Items[objectId];

                if (item == null)
                {
                    Console.WriteLine("cant find item " + objectId + " in warehouse " + player.Name);
                    player.sendActionFailed();
                    return;
                }

                if (item.Template.isStackable())
                {
                    slots += 1;
                }
                else
                {
                    slots += count;
                }
            }

            InvPrivateWarehouse pw = player._warehouse;
            int itsize             = 0;

            if (pw == null)
            {
                pw = new InvPrivateWarehouse(player);
            }
            else
            {
                itsize = pw.Items.Count;
            }

            if (player.ItemLimit_Inventory < (player.getAllItems().Length + slots))
            {
                player.sendSystemMessage(129);//Your inventory is full.
                player.sendActionFailed();
                return;
            }

            List <int[]> transfer = new List <int[]>();

            for (int i = 0; i < _count; i++)
            {
                int objectId = _items[i * 2];
                int count    = _items[i * 2 + 1];

                transfer.Add(new int[] { objectId, count });
            }

            pw.transferFrom(player, transfer, false);

            //if(npc.Template.fnBye != null)
            //{
            //    player.sendPacket(new NpcHtmlMessage(player, npc.Template.fnBye, npc.ObjID, 0));
            //}

            player.sendItemList(true);
        }