Exemple #1
0
    public void RequestDroppedItem(int Id, string Guid)
    {
        if (Self.GetTree().GetNetworkPeer() != null)
        {
            if (Self.GetTree().IsNetworkServer())
            {
                //On server
                DroppedItem Item = EntitiesRoot.GetNodeOrNull(Guid) as DroppedItem;
                if (Item != null)                //Only lookup node once instead of using HasNode
                {
                    if (Id == Net.Work.GetNetworkUniqueId())
                    {
                        Game.PossessedPlayer.PickupItem(Item.Type);
                    }
                    else
                    {
                        Net.Players[Id].RpcId(Id, nameof(Player.PickupItem), Item.Type);
                    }

                    Net.SteelRpc(this, nameof(RemoveDroppedItem), Item.GetName());
                    RemoveDroppedItem(Item.GetName());
                }
            }
            else
            {
                //Not on server, call on server
                Self.RpcId(Net.ServerId, nameof(RequestDroppedItem), Id, Guid);
            }
        }
    }