コード例 #1
0
 public static double ReadDoubleField(NetworkObjectField class62_0)
 {
     if (class62_0.isNetworkObject)
     {
         throw new Exception("Attempted to access data in a struct field.");
     }
     return(BitConverter.ToDouble(class62_0.byte_0, 0));
 }
コード例 #2
0
 public static byte ReadByteField(NetworkObjectField class62_0)
 {
     if (class62_0.isNetworkObject)
     {
         throw new Exception("Attempted to access data in a struct field.");
     }
     return(class62_0.byte_0[0]);
 }
コード例 #3
0
 public static ushort ReadUShortField(NetworkObjectField class62_0)
 {
     if (class62_0.isNetworkObject)
     {
         throw new Exception("Attempted to access data in a struct field.");
     }
     return(BitConverter.ToUInt16(class62_0.byte_0, 0));
 }
コード例 #4
0
 public static bool smethod_10(NetworkObjectField class62_0)
 {
     if (class62_0.isNetworkObject)
     {
         throw new Exception("Attempted to access data in a struct field.");
     }
     return(class62_0.byte_0[0] != 0);
 }
コード例 #5
0
ファイル: NetworkSession.cs プロジェクト: tervus/Pegasus
        /// <summary>
        /// Enqueue <see cref="NetworkObject"/> to be sent to the client.
        /// </summary>
        public void EnqueueMessage(ObjectOpcode opcode, NetworkObject message)
        {
            var packet = new NetworkObject();

            packet.AddField(0, NetworkObjectField.CreateIntField((int)opcode));
            packet.AddField(1, NetworkObjectField.CreateObjectField(message));
            EnqueueMessage(packet);
        }
コード例 #6
0
 public override void FromNetworkObject(NetworkObject class63_0)
 {
     using (var stream = new MemoryStream(NetworkObjectField.smethod_1(class63_0.GetField(0))))
     {
         using (var reader = new BinaryReader(stream))
         {
             this.Read(reader);
         }
     }
 }
コード例 #7
0
        public static string ReadStringField(NetworkObjectField class62_0)
        {
            if (class62_0.isNetworkObject)
            {
                throw new Exception("Attempted to access data in a struct field.");
            }
            ASCIIEncoding encoding = new ASCIIEncoding();

            return(encoding.GetString(class62_0.byte_0));
        }
コード例 #8
0
ファイル: NetworkSession.cs プロジェクト: tervus/Pegasus
        /// <summary>
        /// Enqueue <see cref="NetworkObject"/> to be sent to the client.
        /// </summary>
        public void EnqueueMessage(NetworkObject message)
        {
            var packet = new ServerPacket(message);

            outgoingPackets.Enqueue(packet);

            ObjectOpcode opcode = (ObjectOpcode)NetworkObjectField.ReadIntField(message.GetField(0));

            log.Trace($"Sent object packet {opcode}(0x{opcode:X}).");
        }
コード例 #9
0
ファイル: NetworkObject.cs プロジェクト: TwE7k/Pegasus
 public void AddField(int int_0, NetworkObjectField class62_0)
 {
     if (this.dictionary_0.ContainsKey(int_0))
     {
         this.dictionary_0.Remove(int_0);
         this.dictionary_0.Add(int_0, class62_0);
     }
     else
     {
         this.dictionary_0.Add(int_0, class62_0);
     }
 }
コード例 #10
0
        public override NetworkObject ToNetworkObject()
        {
            using (var stream = new MemoryStream())
            {
                using (var writer = new BinaryWriter(stream))
                {
                    this.Write(writer);

                    NetworkObject class2 = new NetworkObject();
                    class2.AddField(0, NetworkObjectField.CreateByteArrayField(stream.ToArray()));
                    return(class2);
                }
            }
        }
コード例 #11
0
ファイル: NetworkSession.cs プロジェクト: tervus/Pegasus
        private void ProcessObjectPacket(byte[] payload)
        {
            NetworkObject networkObject = NetworkObject.UnPack(payload);

            ObjectOpcode opcode = (ObjectOpcode)NetworkObjectField.ReadIntField(networkObject.GetField(0));

            log.Trace($"Received object packet {opcode}(0x{opcode:X}).");

            if (opcode == ObjectOpcode.Authenticate)
            {
                PacketManager.InvokeObjectMessageHandler(this, opcode, networkObject);
            }
            else
            {
                PacketManager.InvokeObjectMessageHandler(this, opcode, networkObject.GetField(1).ReadObject());
            }
        }
コード例 #12
0
ファイル: NetworkSession.cs プロジェクト: TwE7k/Pegasus
        /// <summary>
        ///
        /// </summary>
        private void ProcessObjectPacket(byte[] payload)
        {
            try
            {
                NetworkObject networkObject = NetworkObject.UnPack(payload);

                ObjectOpcode opcode = (ObjectOpcode)NetworkObjectField.ReadIntField(networkObject.GetField(0));
                if (opcode == ObjectOpcode.Authenticate)
                {
                    PacketManager.InvokeObjectPacketHandler(this, opcode, networkObject);
                }
                else
                {
                    PacketManager.InvokeObjectPacketHandler(this, opcode, networkObject.GetField(1).ReadObject());
                }
            }
            catch (OutOfMemoryException exception)
            {
                log.Fatal(exception);
                log.Fatal($"Payload Length: {payload.Length}");
                throw;
            }
        }