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); } }
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); }
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); } } }
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); } } }