private void LogSend(byte[] bytes)
    {
        P2PNetworkReader p2PNetworkReader = new P2PNetworkReader(bytes);
        ushort           num           = p2PNetworkReader.ReadUInt16();
        ushort           num2          = p2PNetworkReader.ReadUInt16();
        StringBuilder    stringBuilder = new StringBuilder();

        for (int i = 4; i < (int)(4 + num); i++)
        {
            stringBuilder.AppendFormat("{0:X2}", bytes[i]);
            if (i > 150)
            {
                break;
            }
        }
        Debug.Log(string.Concat(new object[]
        {
            "ConnectionSend con:",
            this.m_ConnectionId,
            " bytes:",
            num,
            " msgId:",
            num2,
            " ",
            stringBuilder
        }));
    }
 protected void HandleReader(P2PNetworkReader reader, int received_size, int channel_id)
 {
     while ((ulong)reader.Position < (ulong)((long)received_size))
     {
         ushort num      = reader.ReadUInt16();
         short  num2     = reader.ReadInt16();
         uint   position = reader.Position;
         reader.SetGuard(position + (uint)num);
         P2PConnection.s_Size = position + (uint)num;
         if (this.m_LogNetworkMessages)
         {
             Debug.Log(string.Concat(new object[]
             {
                 "ConnectionRecv con:",
                 this.m_ConnectionId,
                 " bytes:",
                 num,
                 " msgId:",
                 num2
             }));
         }
         List <P2PNetworkMessageDelegate> list = null;
         if (this.m_MessageHandlersDict.ContainsKey(num2))
         {
             list = this.m_MessageHandlersDict[num2];
         }
         if (list != null)
         {
             this.m_NetMsg.m_MsgType    = num2;
             this.m_NetMsg.m_Reader     = reader;
             this.m_NetMsg.m_Connection = this;
             this.m_NetMsg.m_ChannelId  = channel_id;
             for (int i = 0; i < list.Count; i++)
             {
                 list[i](this.m_NetMsg);
             }
             this.m_LastMessageTime = Time.time;
         }
         else if (P2PLogFilter.logError)
         {
             Debug.LogError(string.Format("Unknown message type {0} connection id: {1}", P2PMsgType.MsgTypeToString(num2), this.m_ConnectionId));
         }
         if (position + (uint)num != reader.Position)
         {
             int num3 = (int)(position + (uint)num - reader.Position);
             if (num3 > 0 && P2PLogFilter.logInfo)
             {
                 Debug.Log(string.Format("Message {0} conn_id: {1} was not fully read, performing seek by {2} bytes", P2PMsgType.MsgTypeToString(num2), this.m_ConnectionId, num3));
             }
             if (num3 < 0 && P2PLogFilter.logError)
             {
                 Debug.LogError(string.Format("Message {0} conn_id: {1} reading over the buffer limit (this is really bad), performing seek by {2} bytes", P2PMsgType.MsgTypeToString(num2), this.m_ConnectionId, num3));
             }
             reader.Seek(num3);
         }
         reader.RemoveGuard();
     }
 }
    public override void Deserialize(P2PNetworkReader reader)
    {
        int num = (int)reader.ReadUInt16();

        this.scripts = new P2PCRCMessageEntry[num];
        for (int i = 0; i < this.scripts.Length; i++)
        {
            P2PCRCMessageEntry p2PCRCMessageEntry = default(P2PCRCMessageEntry);
            p2PCRCMessageEntry.name    = reader.ReadString();
            p2PCRCMessageEntry.channel = reader.ReadByte();
            this.scripts[i]            = p2PCRCMessageEntry;
        }
    }
Exemple #4
0
 public override void OnReplicationDeserialize(P2PNetworkReader reader, bool initial_state)
 {
     if (initial_state)
     {
         foreach (GameObject obj in this.m_ReplacedMap.Values)
         {
             UnityEngine.Object.Destroy(obj);
         }
         this.m_ReplacedMap.Clear();
         this.m_ObjectsRemovedFromStatic.Clear();
         this.EnableObjectsInQuadTree();
         List <Vector3> allPoints = this.m_DestroyedObjects.GetAllPoints();
         for (int i = 0; i < allPoints.Count; i++)
         {
             StaticObjectClass objectsInPos = this.m_QuadTree.GetObjectsInPos(allPoints[i]);
             if (objectsInPos != null && objectsInPos.m_GameObject != null)
             {
                 objectsInPos.m_GameObject.SetActive(true);
                 if (objectsInPos.m_GameObject.transform.parent != null)
                 {
                     objectsInPos.m_GameObject.transform.parent.gameObject.SetActive(true);
                 }
                 objectsInPos.m_State = 0;
             }
         }
         this.m_DestroyedObjects.Clear();
         ushort num = reader.ReadUInt16();
         for (int j = 0; j < (int)num; j++)
         {
             Vector3           vector        = reader.ReadVector3();
             StaticObjectClass objectsInPos2 = this.m_QuadTree.GetObjectsInPos(vector);
             if (objectsInPos2 != null && objectsInPos2.m_GameObject != null)
             {
                 objectsInPos2.m_GameObject.SetActive(false);
                 if (objectsInPos2.m_GameObject.transform.parent != null)
                 {
                     objectsInPos2.m_GameObject.transform.parent.gameObject.SetActive(false);
                 }
             }
             this.m_DestroyedObjects.InsertPoint(vector, false);
         }
         ObjectWithTrunk.OnLoad();
         this.OnLoaded();
     }
 }
 public override void Deserialize(P2PNetworkReader reader)
 {
     this.errorCode = (int)reader.ReadUInt16();
 }