Beispiel #1
0
        void StartServer()
        {
            if (!NetworkServer.active)
            {
                NetworkServer.RegisterHandler((short)PTEvent.Connect, Handler_OnConnected);
                NetworkServer.RegisterHandler(MsgType.Disconnect, Handler_OnDisconnect);
                NetworkServer.RegisterHandler((short)PTEvent.Data, Handler_OnData);
                NetworkServer.RegisterHandler((short)PTEvent.Ready, Handler_OnReadyReceived);
                NetworkServer.RegisterHandler((short)PTEvent.ConfirmReadyReceived, Handler_OnConfirmReady);
                NetworkServer.Listen(PTNetwork.DEFAULT_SERVER_PORT);
            }

            PTSession newSession = new PTSession();

            newSession.senderName = playerName;
            newSession.gameName   = gameName;
            newSession.port       = NetworkServer.listenPort;
            newSession.data       = Encoding.Unicode.GetBytes(PTNetwork.DEFAULT_BROADCAST_DATA);

            if (nd.running)
            {
                nd.StopBroadcast();
            }
            nd.broadcastData = newSession.ToString();
            nd.Initialize();
            nd.StartAsServer();
        }
    // When all the players ready up
    public override void OnLobbyServerPlayersReady()
    {
        if (networkDiscovery.running)
        {
            networkDiscovery.StopBroadcast();
        }

        base.OnLobbyServerPlayersReady(); // Comment this out when using custom UI as it will change the level
        print("all players ready");
    }
Beispiel #3
0
    /** Callback functions **/
    public void OnConnected(NetworkMessage netMsg)
    {
        Debug.Log("Connected :" + netMsg.conn.address);

        // if started as client
        if (!NetworkServer.active)
        {
            sendUid();
            discovery.StopBroadcast( );
        }
    }
    public IEnumerator joinOrCreate()
    {
        //waits for response from list matches
        yield return(new WaitForSeconds(refreshingRequestLength));

        if (GameSceneManager.JoinSuccess == false)
        {
            //StopClient ();
            discovery.StopBroadcast();
            StartHost();
            GameSceneManager.whichplayer = "Player1";
        }
    }
Beispiel #5
0
        IEnumerator Broadcast()
        {
            yield return(new WaitUntil(() => networkFinder));

            if (networkFinder.running)
            {
                networkFinder.StopBroadcast();
            }
            yield return(new WaitUntil(() => networkFinder.Initialize()));

            networkFinder.broadcastData = SystemInfo.deviceName;
            networkFinder.StartAsServer();
        }
Beispiel #6
0
    /// <summary>
    /// Called on the server whenever a new player has successfully connected.
    /// </summary>
    /// <param name="player">The NetworkPlayer which just connected.</param>
    void OnPlayerConnected(NetworkPlayer player)
    {
        Dev.log(Tag.Network, "Player is connected : " + player.externalIP);

        if (networkDisc.isClient || networkDisc.isClient)
        {
            networkDisc.StopBroadcast();
        }
        //TODO Change the Scene.
        NetworkView netView = GetComponent <NetworkView>();

        netView.RPC("openScene", RPCMode.All, null);
    }
Beispiel #7
0
    IEnumerator EstablishConnection()
    {
        Debug.Log("Establishing connection: Searching for host");
        discovery.StartAsClient();
        yield return(new WaitForSeconds(2));

        if (State.DISCONNECTED != state)
        {
            yield break;
        }
        Debug.Log("Establishing connection: No host found, will become host");
        discovery.StopBroadcast();
        StartHost();
        discovery.StartAsServer();
    }
        private void StopMatch()
        {
            switch (_matchingMode)
            {
            case MatchingMode.Host:
                _networkDiscovery.StopBroadcast();
                NetworkManager.singleton.StopHost();
                break;

            case MatchingMode.Client:
                _networkDiscovery.StopBroadcast();
                NetworkManager.singleton.StopClient();
                break;
            }
        }
Beispiel #9
0
 public void StartAsServer(int port)
 {
     PortNumber = port;
     if (!networkDiscovery.isServer)
     {
         if (networkDiscovery.running)
         {
             networkDiscovery.StopBroadcast();
         }
         networkDiscovery.Initialize();
         networkDiscovery.StartAsServer();
         MPLobbyManager.Instance.CreateServer();
         GameManager.playerType = GameManager.PlayerType.Master;
     }
 }
Beispiel #10
0
 public void OnStartGame(NetworkMessage netMsg)
 {
     NetworkServer.SendToAll(MsgType.Highest + 3, new EmptyMessage());
     SceneManager.LoadScene("Game");
     discovery.StopBroadcast();
     NetworkServer.dontListen = true;
 }
Beispiel #11
0
 public void RestartDiscovery()
 {
     if (discovery.running)
     {
         discovery.StopBroadcast();
     }
     discoveryInit = discovery.Initialize();
 }
Beispiel #12
0
    void Update()
    {
        if (netDiscovery.isClient)
        {
            if (netDiscovery.broadcastsReceived.Count == 0)
            {
                elapsedTime += Time.deltaTime;
                if (elapsedTime > waitSecondsForServer)
                {
                    netDiscovery.StopBroadcast();
                    netDiscovery.StartAsServer();
                    netManager.StartHost();
                    Debug.Log("No hosts were found, setting up as a host.");
                    if (connectingWindow != null)
                    {
                        connectingWindow.SetActive(false);
                    }
                }
            }
            else if (!isConnected)
            {
                var brdReceived = netDiscovery.broadcastsReceived;
                var brdKeys     = brdReceived.Keys.ToArray();
                NetworkBroadcastResult invitation = brdReceived[brdKeys[0]];
                string msg = NetworkDiscovery.BytesToString(invitation.broadcastData);
                Debug.Log("Broadcast from host at " + invitation.serverAddress + " was received: " + msg);
                Debug.Log("Port: " + msg.Split(':')[2]);
                netManager.networkPort    = int.Parse(msg.Split(':').Last()); //NetworkManager:address:port
                netManager.networkAddress = invitation.serverAddress;
                netManager.StartClient();
                isConnected = true;
                netDiscovery.StopBroadcast();
                if (connectingWindow != null)
                {
                    connectingWindow.SetActive(false);
                }
                NetworkManager.singleton.client.RegisterHandler(MsgType.Disconnect, OnNetworkDisconnect);
            }
        }

        if (isConnected && !NetworkManager.singleton.client.handlers.ContainsValue(OnNetworkDisconnect))
        {
            NetworkManager.singleton.client.RegisterHandler(MsgType.Disconnect, OnNetworkDisconnect);
        }
    }
Beispiel #13
0
 public override void OnStartServer()
 {
     discovery.StopBroadcast();
     Debug.Log("Start Server Broadcast....");
     discovery.broadcastData = networkPort.ToString();
     discovery.StartAsServer();
     base.OnStartServer();
     connected = true;
 }
    public void StopBroadcasting()
    {
        if (discovery.isClient || discovery.isServer)
        {
            return;
        }

        discovery.StopBroadcast();
    }
Beispiel #15
0
    IEnumerator CheckConnection()
    {
        Discovery.Initialize();
        DisableButtons();
        DebugText.text = "Searching... Please Wait.";
        yield return(new WaitForSeconds(.5f));

        Discovery.StartAsClient();
        yield return(new WaitForSeconds(4.5f));

        if (IsClientConnected())
        {
            isClient       = true;
            DebugText.text = "Connected!";
            yield return(new WaitForSeconds(1f));
        }
        else
        {
            DebugText.text = "Nothing found. Trying manual input...";
            if (IPInput.text != null)
            {
                StopClient();
                Discovery.StopBroadcast();
                yield return(new WaitForSeconds(.1f));

                networkAddress = IPInput.text;
                StartClient();
                yield return(new WaitForSeconds(3f));

                if (IsClientConnected())
                {
                    isClient       = true;
                    DebugText.text = "Connected!";
                }
                else
                {
                    DebugText.text = "Nothing found. Try again.";
                    StopClient();
                    EnableButtons();
                }
            }
        }
    }
        /// <summary>
        /// Es llamado cuando se pulsa el botón de salir del Server.
        /// Para el servidor, el broadcast y destruye la partida
        /// </summary>
        public void StopServer()
        {
            //Acaba el juego
            ServerGameManager.Instance.OnStopServer();

            //Para broadcast
            NetworkDiscovery.StopBroadcast();

            //Para el servidor
            NetworkManager.singleton.StopServer();
        }
Beispiel #17
0
    public void GoMenu()
    {
        manager.StopHost();
        //manager.StopClient();
        if (netdis.running)
        {
            netdis.StopBroadcast();
        }

        SceneManager.LoadScene("MainMenu");
    }
Beispiel #18
0
 private void SetGameVisibility(bool visible)
 {
     if (visible)
     {
         networkDiscovery.Initialize();
         networkDiscovery.StartAsServer();
     }
     else
     {
         networkDiscovery.StopBroadcast();
     }
 }
Beispiel #19
0
    IEnumerator CheckConnection()
    {
        MyNetDiscovery.Initialize();
        waiting = true;
        StartCoroutine("animateLookingForGame");
        yield return(new WaitForSeconds(.5f));

        MyNetDiscovery.StartAsClient();
        yield return(new WaitForSeconds(4.5f));

        waiting = false;
        yield return(new WaitForSeconds(1f));

        if (IsClientConnected())
        {
            if (MyNetDiscovery.running)
            {
                MyNetDiscovery.StopBroadcast();
            }
            isClient = true;
            Connection.Instance.txtInfo.text = "Verbunden!";
            yield return(new WaitForSeconds(1.2f));
        }
        else
        {
            Connection.Instance.txtInfo.text = "Nichts gefunden. Versuche es manuell.";
            StopClient();
            if (MyNetDiscovery.running)
            {
                MyNetDiscovery.StopBroadcast();
            }
            yield return(new WaitForSeconds(.1f));

            Connection.Instance.ManualConnectLayout();
        }
    }
 void Disconnect()
 {
     if (NetworkServer.active)
     {
         manager.StopHost();
         NetworkClient.ShutdownAll();
     }
     if (NetworkClient.active)
     {
         manager.StopClient();
         discovery.StopBroadcast();
         NetworkClient.ShutdownAll();
         BackToMenu();
     }
     NetworkServer.Shutdown();
     Debug.Log("Disconnected");
 }
Beispiel #21
0
 public void OnStopClient()
 {
     nd.StopBroadcast();
     nd.showGUI = true;
 }
Beispiel #22
0
        void OnGUI()
        {
            if (!showGUI)
            {
                return;
            }

            int xpos    = 10 + offsetX;
            int ypos    = 40 + offsetY;
            int spacing = 72;

            if (!NetworkClient.active && !NetworkServer.active && manager.matchMaker == null)
            {
                if (GUI.Button(new Rect(xpos, ypos, 200, 60), "LAN Host(H)"))
                {
                    manager.StartHost();
                    netdis.Initialize();
                    netdis.StartAsServer();
                }
                ypos += spacing;

                if (GUI.Button(new Rect(xpos, ypos, 210, 60), "LAN Client(C)"))
                {
                    netdis.Initialize();
                    netdis.StartAsClient();
                    //manager.StartClient();
                }
                manager.networkAddress = GUI.TextField(new Rect(xpos + 200, ypos, 190, 60), manager.networkAddress);
                ypos += spacing;

                /*if (GUI.Button(new Rect(xpos, ypos, 200, 60), "LAN Server Only(S)"))
                 * {
                 * //Instantiate(manager.playerPrefab);
                 * //manager.StartClient();
                 *      manager.StartServer();
                 * //manager.StartClient();
                 * }*/
                ypos += spacing;
            }
            else
            {
                if (NetworkServer.active)
                {
                    GUI.Label(new Rect(xpos, ypos, 200, 20), "Server: port=" + manager.networkPort);
                    ypos += spacing;
                }
                if (NetworkClient.active)
                {
                    GUI.Label(new Rect(xpos, ypos, 100, 20), "Client: address=" + manager.networkAddress + " port=" + manager.networkPort);
                    ypos += spacing;
                }
            }

            if (NetworkClient.active && !ClientScene.ready)
            {
                if (GUI.Button(new Rect(xpos, ypos, 400, 60), "Client Ready"))
                {
                    ClientScene.Ready(manager.client.connection);

                    if (ClientScene.localPlayers.Count == 0)
                    {
                        ClientScene.AddPlayer(0);
                    }
                }
                ypos += spacing;
            }

            if (NetworkServer.active || NetworkClient.active)
            {
                if (GUI.Button(new Rect(xpos, ypos, 400, 40), "Stop (X)"))
                {
                    manager.StopHost();
                    if (netdis.running)
                    {
                        netdis.StopBroadcast();
                    }
                }
                ypos += spacing;
            }

            if (!NetworkServer.active && !NetworkClient.active)
            {
                ypos += 10;

                if (manager.matchMaker == null)
                {
                    /*if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Enable Match Maker (M)"))
                     * {
                     *      manager.StartMatchMaker();
                     * }*/
                    ypos += spacing;
                }
                else
                {
                    if (manager.matchInfo == null)
                    {
                        if (manager.matches == null)
                        {
                            if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Create Internet Match"))
                            {
                                manager.matchMaker.CreateMatch(manager.matchName, manager.matchSize, true, "", "", "", 0, 0, manager.OnMatchCreate);
                            }
                            ypos += spacing;

                            GUI.Label(new Rect(xpos, ypos, 100, 20), "Room Name:");
                            manager.matchName = GUI.TextField(new Rect(xpos + 100, ypos, 100, 20), manager.matchName);
                            ypos += spacing;

                            ypos += 10;

                            if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Find Internet Match"))
                            {
                                manager.matchMaker.ListMatches(0, 20, "", true, 0, 0, manager.OnMatchList);
                            }
                            ypos += spacing;
                        }
                        else
                        {
                            foreach (var match in manager.matches)
                            {
                                if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Join Match:" + match.name))
                                {
                                    manager.matchName = match.name;
                                    manager.matchSize = (uint)match.currentSize;
                                    manager.matchMaker.JoinMatch(match.networkId, "", "", "", 0, 0, manager.OnMatchJoined);
                                }
                                ypos += spacing;
                            }
                        }
                    }

                    if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Change MM server"))
                    {
                        showServer = !showServer;
                    }
                    if (showServer)
                    {
                        ypos += spacing;
                        if (GUI.Button(new Rect(xpos, ypos, 100, 20), "Local"))
                        {
                            manager.SetMatchHost("localhost", 1337, false);
                            showServer = false;
                        }
                        ypos += spacing;
                        if (GUI.Button(new Rect(xpos, ypos, 100, 20), "Internet"))
                        {
                            manager.SetMatchHost("mm.unet.unity3d.com", 443, true);
                            showServer = false;
                        }
                        ypos += spacing;
                        if (GUI.Button(new Rect(xpos, ypos, 100, 20), "Staging"))
                        {
                            manager.SetMatchHost("staging-mm.unet.unity3d.com", 443, true);
                            showServer = false;
                        }
                    }

                    ypos += spacing;

                    GUI.Label(new Rect(xpos, ypos, 300, 20), "MM Uri: " + manager.matchMaker.baseUri);
                    ypos += spacing;

                    if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Disable Match Maker"))
                    {
                        manager.StopMatchMaker();
                    }
                    ypos += spacing;
                }
            }
        }
Beispiel #23
0
 public override void OnStopClient()
 {
     discovery.StopBroadcast();
     discovery.showGUI = true;
 }
Beispiel #24
0
 public void stopLanBroadcast()
 {
     netDisc.StopBroadcast();
 }
Beispiel #25
0
 public void Stop()
 {
     _networkDiscovery.StopBroadcast();
 }
Beispiel #26
0
 public override void OnStartHost()
 {
     HostFinder.StopBroadcast();
     HostFinder.Initialize();
     HostFinder.StartAsServer();
 }
Beispiel #27
0
 /// <summary>
 /// Es llamado cuando se pulsa el botón de salir del Server.
 /// Para el servidor y el Broadcast
 /// TODO: Destruir la escena
 /// </summary>
 public void StopServer()
 {
     NetworkDiscovery.StopBroadcast();
     NetworkManager.singleton.StopServer();
 }
Beispiel #28
0
 public void StopServerBrowser()
 {
     StopCoroutine("PingServers");
     networkDiscovery.StopBroadcast();
 }