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); }