bool IPacketHandler.OnPacket(byte packetId, Context context, Network.ByteInStream stream)
        {
            Actor  actor = stream.ReadActor();
            ushort size  = stream.ReadUShort();

            if (actor != null)
            {
                if (context.IsServer)
                {
                    if (stream.Player.OwnedActors.Contains(actor))
                    {
                        return(actor.Synchronizable.UnpackSyncData(stream));
                    }
                    else
                    {
                        log.Warn("Got synchronized data from {0} for {1}, but that player does not own that actor", stream.Player, actor);
                    }
                }
                else
                {
                    return(actor.Synchronizable.UnpackSyncData(stream));
                }
            }

            stream.Skip(4);
            stream.Skip(size);
            return(true);
        }
示例#2
0
 protected override Actor UnpackValue(Network.ByteInStream stream)
 {
     return(stream.ReadActor());
 }