Example #1
0
    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);
            }
        }
    }