Esempio n. 1
0
        public override void Deserialize(NetworkReader reader)
        {
            connectionId = (int)reader.ReadPackedUInt32();
            address      = reader.ReadString();
            port         = (int)reader.ReadPackedUInt32();
            isHost       = reader.ReadBoolean();
            isYou        = reader.ReadBoolean();
            uint num = reader.ReadPackedUInt32();

            if (num != 0)
            {
                List <PeerInfoPlayer> list = new List <PeerInfoPlayer>();
                PeerInfoPlayer        item = default(PeerInfoPlayer);
                for (uint num2 = 0u; num2 < num; num2++)
                {
                    item.netId = reader.ReadNetworkId();
                    item.playerControllerId = (short)reader.ReadPackedUInt32();
                    list.Add(item);
                }
                playerIds = list.ToArray();
            }
        }
 private void OnPeerClientAuthority(NetworkMessage netMsg)
 {
     PeerAuthorityMessage message = netMsg.ReadMessage<PeerAuthorityMessage>();
     if (LogFilter.logDebug)
     {
         Debug.Log("OnPeerClientAuthority for netId:" + message.netId);
     }
     if (this.m_Peers != null)
     {
         for (int i = 0; i < this.m_Peers.Length; i++)
         {
             PeerInfoMessage message2 = this.m_Peers[i];
             if (message2.connectionId == message.connectionId)
             {
                 if (message2.playerIds == null)
                 {
                     message2.playerIds = new PeerInfoPlayer[0];
                 }
                 if (message.authorityState)
                 {
                     for (int j = 0; j < message2.playerIds.Length; j++)
                     {
                         if (message2.playerIds[j].netId == message.netId)
                         {
                             return;
                         }
                     }
                     PeerInfoPlayer player = new PeerInfoPlayer {
                         netId = message.netId,
                         playerControllerId = -1
                     };
                     message2.playerIds = new List<PeerInfoPlayer>(message2.playerIds) { player }.ToArray();
                 }
                 else
                 {
                     for (int k = 0; k < message2.playerIds.Length; k++)
                     {
                         if (message2.playerIds[k].netId == message.netId)
                         {
                             List<PeerInfoPlayer> list2 = new List<PeerInfoPlayer>(message2.playerIds);
                             list2.RemoveAt(k);
                             message2.playerIds = list2.ToArray();
                             break;
                         }
                     }
                 }
             }
         }
         GameObject go = ClientScene.FindLocalObject(message.netId);
         this.OnAuthorityUpdated(go, message.connectionId, message.authorityState);
     }
 }