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);
            }
        }
Esempio n. 2
0
        private void OnPeerClientAuthority(NetworkMessage netMsg)
        {
            PeerAuthorityMessage peerAuthorityMessage = netMsg.ReadMessage <PeerAuthorityMessage>();

            if (LogFilter.logDebug)
            {
                Debug.Log("OnPeerClientAuthority for netId:" + peerAuthorityMessage.netId);
            }
            if (m_Peers == null)
            {
                return;
            }
            for (int i = 0; i < m_Peers.Length; i++)
            {
                PeerInfoMessage peerInfoMessage = m_Peers[i];
                if (peerInfoMessage.connectionId != peerAuthorityMessage.connectionId)
                {
                    continue;
                }
                if (peerInfoMessage.playerIds == null)
                {
                    peerInfoMessage.playerIds = new PeerInfoPlayer[0];
                }
                if (peerAuthorityMessage.authorityState)
                {
                    for (int j = 0; j < peerInfoMessage.playerIds.Length; j++)
                    {
                        if (peerInfoMessage.playerIds[j].netId == peerAuthorityMessage.netId)
                        {
                            return;
                        }
                    }
                    PeerInfoPlayer item = default(PeerInfoPlayer);
                    item.netId = peerAuthorityMessage.netId;
                    item.playerControllerId = -1;
                    List <PeerInfoPlayer> list = new List <PeerInfoPlayer>(peerInfoMessage.playerIds);
                    list.Add(item);
                    peerInfoMessage.playerIds = list.ToArray();
                    continue;
                }
                for (int k = 0; k < peerInfoMessage.playerIds.Length; k++)
                {
                    if (peerInfoMessage.playerIds[k].netId == peerAuthorityMessage.netId)
                    {
                        List <PeerInfoPlayer> list2 = new List <PeerInfoPlayer>(peerInfoMessage.playerIds);
                        list2.RemoveAt(k);
                        peerInfoMessage.playerIds = list2.ToArray();
                        break;
                    }
                }
            }
            GameObject go = ClientScene.FindLocalObject(peerAuthorityMessage.netId);

            OnAuthorityUpdated(go, peerAuthorityMessage.connectionId, peerAuthorityMessage.authorityState);
        }
        private void OnPeerClientAuthority(NetworkMessage netMsg)
        {
            PeerAuthorityMessage authorityMessage = netMsg.ReadMessage <PeerAuthorityMessage>();

            if (LogFilter.logDebug)
            {
                Debug.Log((object)("OnPeerClientAuthority for netId:" + (object)authorityMessage.netId));
            }
            if (this.m_Peers == null)
            {
                return;
            }
            foreach (PeerInfoMessage peer in this.m_Peers)
            {
                if (peer.connectionId == authorityMessage.connectionId)
                {
                    if (peer.playerIds == null)
                    {
                        peer.playerIds = new PeerInfoPlayer[0];
                    }
                    if (authorityMessage.authorityState)
                    {
                        foreach (PeerInfoPlayer playerId in peer.playerIds)
                        {
                            if (playerId.netId == authorityMessage.netId)
                            {
                                return;
                            }
                        }
                        peer.playerIds = new List <PeerInfoPlayer>((IEnumerable <PeerInfoPlayer>)peer.playerIds)
                        {
                            new PeerInfoPlayer()
                            {
                                netId = authorityMessage.netId,
                                playerControllerId = (short)-1
                            }
                        }.ToArray();
                    }
                    else
                    {
                        for (int index = 0; index < peer.playerIds.Length; ++index)
                        {
                            if (peer.playerIds[index].netId == authorityMessage.netId)
                            {
                                List <PeerInfoPlayer> peerInfoPlayerList = new List <PeerInfoPlayer>((IEnumerable <PeerInfoPlayer>)peer.playerIds);
                                peerInfoPlayerList.RemoveAt(index);
                                peer.playerIds = peerInfoPlayerList.ToArray();
                                break;
                            }
                        }
                    }
                }
            }
            this.OnAuthorityUpdated(ClientScene.FindLocalObject(authorityMessage.netId), authorityMessage.connectionId, authorityMessage.authorityState);
        }
Esempio n. 4
0
        internal void AssignAuthorityCallback(NetworkConnection conn, NetworkIdentity uv, bool authorityState)
        {
            PeerAuthorityMessage peerAuthorityMessage = new PeerAuthorityMessage();

            peerAuthorityMessage.connectionId   = conn.connectionId;
            peerAuthorityMessage.netId          = uv.netId;
            peerAuthorityMessage.authorityState = authorityState;
            if (LogFilter.logDebug)
            {
                Debug.Log("AssignAuthorityCallback send for netId" + uv.netId);
            }
            for (int i = 0; i < NetworkServer.connections.Count; i++)
            {
                NetworkServer.connections[i]?.Send(18, peerAuthorityMessage);
            }
        }
        internal void AssignAuthorityCallback(NetworkConnection conn, NetworkIdentity uv, bool authorityState)
        {
            PeerAuthorityMessage authorityMessage = new PeerAuthorityMessage();

            authorityMessage.connectionId   = conn.connectionId;
            authorityMessage.netId          = uv.netId;
            authorityMessage.authorityState = authorityState;
            if (LogFilter.logDebug)
            {
                Debug.Log((object)("AssignAuthorityCallback send for netId" + (object)uv.netId));
            }
            for (int index = 0; index < NetworkServer.connections.Count; ++index)
            {
                NetworkConnection connection = NetworkServer.connections[index];
                if (connection != null)
                {
                    connection.Send((short)17, (MessageBase)authorityMessage);
                }
            }
        }
        internal void AssignAuthorityCallback(NetworkConnection conn, NetworkIdentity uv, bool authorityState)
        {
            PeerAuthorityMessage msg = new PeerAuthorityMessage {
                connectionId   = conn.connectionId,
                netId          = uv.netId,
                authorityState = authorityState
            };

            if (LogFilter.logDebug)
            {
                Debug.Log("AssignAuthorityCallback send for netId" + uv.netId);
            }
            for (int i = 0; i < NetworkServer.connections.Count; i++)
            {
                NetworkConnection connection = NetworkServer.connections[i];
                if (connection != null)
                {
                    connection.Send(0x12, msg);
                }
            }
        }
Esempio n. 7
0
        internal void AssignAuthorityCallback(NetworkConnection conn, NetworkIdentity uv, bool authorityState)
        {
            var msg = new PeerAuthorityMessage();

            msg.connectionId   = conn.connectionId;
            msg.netId          = uv.netId;
            msg.authorityState = authorityState;

            if (LogFilter.logDebug)
            {
                Debug.Log("AssignAuthorityCallback send for netId" + uv.netId);
            }

            for (int i = 0; i < NetworkServer.connections.Count; i++)
            {
                var c = NetworkServer.connections[i];
                if (c != null)
                {
                    c.Send(MsgType.PeerClientAuthority, msg);
                }
            }
        }