void MatchStarted(NetworkMessage netMsg) { respawnTimer.Stop(); //keyMenu.restart(); timeLeft = nm.getConfiguration().timeLimit; NetVect3PArray a = netMsg.ReadMessage <NetVect3PArray>(); player.GetComponent <PController>().setImmune(false); for (int i = 0; i < a.array.Length; i++) { if (a.array[i].id == id) { player.GetComponent <PController>().initialize(); player.transform.position = a.array[i].vect3; regenerateMaterie(); } else { try{ players[a.array[i].id].GetComponent <enemy>().setImmune(false); players[a.array[i].id].GetComponent <enemy>().setCorrection(Vector3.zero); players[a.array[i].id].transform.position = a.array[i].vect3; } catch { Debug.Log("User disconnected in the meantime!"); } } } }
// Update is called once per frame void Update() { if (ConnectedUsers.Count > 0) { if (timeLeft > 0 && !matchEnded) { timeLeft -= Time.deltaTime; } else if (!matchEnded) { matchEnded = true; time2newmatch = config.respawnTime; NetworkServer.SendToAll(100, new EmptyMessage()); } else if (matchEnded && time2newmatch > 0) { time2newmatch -= Time.deltaTime; } else { matchEnded = false; timeLeft = config.timeLimit; foreach (User u in ConnectedUsers) { u.kills = 0; } respawnAll(); NetVect3PArray netVect3PArray = new NetVect3PArray(); netVect3PArray.array = new PlayerVect3[ConnectedUsers.Count]; for (int i = 0; i < ConnectedUsers.Count; i++) { netVect3PArray.array[i] = new PlayerVect3(); netVect3PArray.array[i].id = ConnectedUsers[i].id; netVect3PArray.array[i].vect3 = ConnectedUsers[i].position; } NetworkServer.SendToAll(101, netVect3PArray); } } }