public void TargetReciveItem(NetworkConnection target, string itemid, int numtag, int num) { ItemData item = UnitZ.itemManager.GetItemDataByID(itemid); if (inventory != null && item != null) { if (inventory.AddItemTest(item, num)) { if (inventory.stickerTarget != null) { if (!inventory.DropItemBySticker(inventory.stickerTarget)) { //Debug.Log("stick is empty"); inventory.DropItemBySameEquipType(item); } ItemCollector lastItemPicked = inventory.AddItemByItemData(item, num, numtag, inventory.stickerTarget.Index); if (lastItemPicked != null) { //Debug.Log("Equip from ground " + lastItemPicked.Item.ItemName); inventory.EquipItemToStickerByCollector(lastItemPicked, inventory.stickerTarget); inventory.OnViewChanged(); } inventory.stickerTarget = null; } else { inventory.DropItemBySameEquipType(item); ItemCollector lastItemPicked = inventory.AddItemByItemData(item, num, numtag, -1); } if (item.SoundPickup) { AudioSource.PlayClipAtPoint(item.SoundPickup, this.transform.position); } } } }
public void Trade(int number) { if (loader == null || itemDrop == null) { return; } if (itemDrop != null && inventory != null && itemDrop.Item != null) { if (number <= 0) { number = 1; } if (inventory != itemDrop.currentInventory) { if (itemDrop.currentInventory.character && itemDrop.currentInventory.character.IsMine) { // ItemDrop from my inventory to another inventory. switch (Type) { case "Stock": // Move to stock. Debug.Log("Move to Stock " + inventory.name); if (number > itemDrop.Item.Num) { number = itemDrop.Item.Num; } if (inventory != null && inventory.PeerTrade != null) { inventory.PeerTrade.AddItemByCollectorSync(itemDrop.Item, number, -1); itemDrop.currentInventory.RemoveItemByCollector(itemDrop.Item, number); } break; } } else { // ItemDrop from another to my inventory. switch (itemDrop.Type) { case "Stock": // Move to my inventory. if (number > itemDrop.Item.Num) { number = itemDrop.Item.Num; } if (inventory != null && inventory.PeerTrade != null) { if (inventory.AddItemTest(itemDrop.Item, number)) { inventory.AddItemByCollector(itemDrop.Item, number, -1); inventory.RemoveItemByCollectorSync(itemDrop.Item, number); } else { Debug.Log("Inventory is full"); } } break; } } } } }