private void OnRecvTakeItem(IChannel channel, Message message) { SPlayerTake msg = message as SPlayerTake; NetworkEntity item; if (msg.clone) { GameObject go = CloneGameObject(msg.name, msg.itemID); if (go == null) { return; } item = networkEntities[msg.itemID]; } else { item = networkEntities[msg.itemID]; } //thisPlayer.TakeItem(item); }
public void TakeItem(Item target) { SPlayerTake msgTake = new SPlayerTake(); if (target.forClone) { Entity clone = World.CreateEntityByName(target.name); clone.forClone = false; if (target == null) { return; } msgTake.clone = true; msgTake.itemID = clone.entityId; msgTake.name = clone.name; target = (Item)clone; } else { msgTake.clone = false; msgTake.itemID = target.entityId; msgTake.name = target.name; } if (!(target is Item)) { return; } //msgTake.itemId; AddEntity(target); connection.Send(msgTake); if (target is Weapon && m_weapon == null) { EquipWeapon((Weapon)target); } }