GetRoomList() public static method

Gets an array of (currently) known rooms as RoomInfo. This list is automatically updated every few seconds while this client is in the lobby (on the Master Server). Not available while being in a room.
Creates a new instance of the list each time called. Copied from networkingPeer.mGameList.
public static GetRoomList ( ) : RoomInfo[]
return RoomInfo[]
Ejemplo n.º 1
0
    /*
     * Renders the lobby room and player create menu
     */
    void OnGUI()
    {
        // lobby
        if (gameState == GameState.InLobby)
        {
            GUILayout.BeginArea(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 150, 300, 300));

            playerName = GUILayout.TextField(playerName);
            roomName   = GUILayout.TextField(roomName);
            if (GUILayout.Button("Create"))
            {
                PhotonNetwork.JoinOrCreateRoom(roomName, null, null);
            }

            // Display a list of available rooms on the server
            foreach (RoomInfo game in PhotonNetwork.GetRoomList())
            {
                if (GUILayout.Button(game.name + " " + game.playerCount + "/" + game.maxPlayers))
                {
                    PhotonNetwork.JoinOrCreateRoom(game.name, null, null);
                }
            }

            GUILayout.EndArea();
        }

        // room
        if (gameState == GameState.InRoom)
        {
            GUILayout.BeginArea(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 150, 300, 300));
            GUILayout.Box("Your current score: " + PhotonNetwork.player.GetScore());

            // Class selection
            GUILayout.Label("Choose your class");
            if (GUILayout.Button("SWAT"))
            {
                spawnPlayer(SWAT);
            }
            if (GUILayout.Button("Assault"))
            {
                spawnPlayer(Assault);
            }

            GUILayout.Label("");
            if (GUILayout.Button("Quit room"))
            {
                PhotonNetwork.Disconnect();
                SceneManager.LoadScene(0);
            }

            GUILayout.EndArea();
        }

        if (gameState == GameState.Die)
        {
            GUILayout.BeginArea(new Rect(Screen.width / 2 - 150, Screen.height / 2 - 150, 300, 300));
            GUILayout.Box("You Died");

            if (GUILayout.Button("Back to room"))
            {
                PhotonNetwork.Destroy(ragDoll);
                OnJoinedRoom();
            }

            GUILayout.EndArea();
        }
    }
Ejemplo n.º 2
0
    private void OnGUI()
    {
        if (!PhotonNetwork.connected)
        {
            if (PhotonNetwork.connectionState == ConnectionState.Connecting)
            {
                GUILayout.Label("Connecting " + PhotonNetwork.PhotonServerSettings.ServerAddress);
                GUILayout.Label(Time.time.ToString());
            }
            else
            {
                GUILayout.Label("Not connected. Check console output.");
            }

            if (this.connectFailed)
            {
                GUILayout.Label("Connection failed. Check setup and use Setup Wizard to fix configuration.");
                GUILayout.Label(string.Format("Server: {0}:{1}", new object[] { PhotonNetwork.PhotonServerSettings.ServerAddress, PhotonNetwork.PhotonServerSettings.ServerPort }));
                GUILayout.Label("AppId: " + PhotonNetwork.PhotonServerSettings.AppID);

                if (GUILayout.Button("Try Again", GUILayout.Width(100)))
                {
                    this.connectFailed = false;
                    PhotonNetwork.ConnectUsingSettings("1.0");
                }
            }

            return;
        }


        GUI.skin.box.fontStyle = FontStyle.Bold;
        GUI.Box(new Rect((Screen.width - 400) / 2, (Screen.height - 350) / 2, 400, 300), "Join or Create a Room");
        GUILayout.BeginArea(new Rect((Screen.width - 400) / 2, (Screen.height - 350) / 2, 400, 300));

        GUILayout.Space(25);

        // Player name
        GUILayout.BeginHorizontal();
        GUILayout.Label("Player name:", GUILayout.Width(100));
        PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName);
        GUILayout.Space(105);
        if (GUI.changed)
        {
            // Save name
            PlayerPrefs.SetString("playerName", PhotonNetwork.playerName);
        }
        GUILayout.EndHorizontal();

        GUILayout.Space(15);

        // Join room by title
        GUILayout.BeginHorizontal();
        GUILayout.Label("Roomname:", GUILayout.Width(100));
        this.roomName = GUILayout.TextField(this.roomName);

        if (GUILayout.Button("Create Room", GUILayout.Width(100)))
        {
            PhotonNetwork.CreateRoom(this.roomName, true, true, 10);
        }

        GUILayout.EndHorizontal();

        // Create a room (fails if exist!)
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        //this.roomName = GUILayout.TextField(this.roomName);
        if (GUILayout.Button("Join Room", GUILayout.Width(100)))
        {
            PhotonNetwork.JoinRoom(this.roomName);
        }

        GUILayout.EndHorizontal();


        GUILayout.Space(15);

        // Join random room
        GUILayout.BeginHorizontal();

        GUILayout.Label(PhotonNetwork.countOfPlayers + " users are online in " + PhotonNetwork.countOfRooms + " rooms.");
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Join Random", GUILayout.Width(100)))
        {
            PhotonNetwork.JoinRandomRoom();
        }


        GUILayout.EndHorizontal();

        GUILayout.Space(15);
        if (PhotonNetwork.GetRoomList().Length == 0)
        {
            GUILayout.Label("Currently no games are available.");
            GUILayout.Label("Rooms will be listed here, when they become available.");
        }
        else
        {
            GUILayout.Label(PhotonNetwork.GetRoomList() + " currently available. Join either:");

            // Room listing: simply call GetRoomList: no need to fetch/poll whatever!
            this.scrollPos = GUILayout.BeginScrollView(this.scrollPos);
            foreach (RoomInfo roomInfo in PhotonNetwork.GetRoomList())
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(roomInfo.name + " " + roomInfo.playerCount + "/" + roomInfo.maxPlayers);
                if (GUILayout.Button("Join"))
                {
                    PhotonNetwork.JoinRoom(roomInfo.name);
                }

                GUILayout.EndHorizontal();
            }

            GUILayout.EndScrollView();
        }

        GUILayout.EndArea();
    }
Ejemplo n.º 3
0
 void OnReceivedRoomListUpdate()
 {
     roomsList = PhotonNetwork.GetRoomList();
 }
Ejemplo n.º 4
0
        public void FriendList()
        {
            GUI.enabled = true;

            var defaultColor = GUI.color;

            GUILayout.Label("Friends");

            using (new GUILayout.HorizontalScope())
            {
                GUILayout.Label("Enter Friend Name: ");
                friendName = GUILayout.TextField(friendName);
                if (GUILayout.Button("Add", GUILayout.Width(mainWindowRect.width * 0.2f)))
                {
                    NetworkManager.main.friends.Add(friendName);
                    friendName = "";

                    PhotonNetwork.FindFriends(NetworkManager.main.friends.ToArray());
                }
            }

            using (var scroll = new GUILayout.ScrollViewScope(scrollPos))
            {
                scrollPos = scroll.scrollPosition;

                showSteam = GUILayout.Toggle(showSteam, "Steam Friends", "Button");

                if (showSteam)
                {
                    foreach (FriendInfo friend in NetworkManager.main.steamFriends)
                    {
                        using (new GUILayout.HorizontalScope("Box"))
                        {
                            GUILayout.Label(friend.UserId, GUILayout.Width(mainWindowRect.width * 0.3f));

                            GUI.color = friend.IsOnline ? Color.green : Color.red;
                            string labelText = "OFFLINE";

                            if (friend.IsInRoom)
                            {
                                labelText = "IN ROOM";
                            }
                            else if (friend.IsOnline)
                            {
                                labelText = "ONLINE";
                            }

                            GUILayout.Label(labelText, GUILayout.Width(mainWindowRect.width * 0.3f));
                            GUI.color = defaultColor;

                            GUI.enabled = friend.IsInRoom;
                            if (GUILayout.Button("Join", GUILayout.Width(mainWindowRect.width * 0.3f)))
                            {
                                NetworkManager.main.JoinGame(friend.Room);
                            }
                            GUI.enabled = true;
                        }
                    }
                }
                showNonSteam = GUILayout.Toggle(showNonSteam, "Non Steam Friends", "Button");

                if (showNonSteam)
                {
                    foreach (FriendInfo friend in NetworkManager.main.nonSteamFriends)
                    {
                        using (new GUILayout.HorizontalScope("Box"))
                        {
                            GUILayout.Label(friend.UserId, GUILayout.Width(mainWindowRect.width * 0.3f));

                            GUI.color = friend.IsOnline ? Color.green : Color.red;
                            string labelText = "OFFLINE";

                            if (friend.IsInRoom)
                            {
                                labelText = "IN ROOM";
                            }
                            else if (friend.IsOnline)
                            {
                                labelText = "ONLINE";
                            }

                            GUILayout.Label(labelText, GUILayout.Width(mainWindowRect.width * 0.3f));
                            GUI.color = defaultColor;

                            bool roomHasSlots = false;
                            if (friend.IsInRoom)
                            {
                                foreach (RoomInfo room in PhotonNetwork.GetRoomList())
                                {
                                    if (room.Name == friend.Room)
                                    {
                                        roomHasSlots = room.IsOpen;
                                    }
                                }
                            }

                            GUI.enabled = friend.IsInRoom && roomHasSlots;
                            if (GUILayout.Button("Join", GUILayout.Width(mainWindowRect.width * 0.15f)))
                            {
                                NetworkManager.main.JoinGame(friend.Room);
                            }
                            GUI.enabled = true;
                            if (GUILayout.Button("Unfriend", GUILayout.Width(mainWindowRect.width * 0.15f)))
                            {
                                NetworkManager.main.friends.Remove(friend.UserId);
                                PhotonNetwork.FindFriends(NetworkManager.main.friends.ToArray());
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
 private void showServerList()
 {
     if (PhotonNetwork.GetRoomList().Length != 0)
     {
         int index = 0;
         if (this.filter == string.Empty)
         {
             for (index = 0; index < 10; index++)
             {
                 int num2 = (10 * (this.currentPage - 1)) + index;
                 if (num2 < PhotonNetwork.GetRoomList().Length)
                 {
                     this.items[index].SetActive(true);
                     this.items[index].GetComponentInChildren <UILabel>().text = this.getServerDataString(PhotonNetwork.GetRoomList()[num2]);
                     this.items[index].GetComponentInChildren <BTN_Connect_To_Server_On_List>().roomName = PhotonNetwork.GetRoomList()[num2].name;
                 }
                 else
                 {
                     this.items[index].SetActive(false);
                 }
             }
         }
         else
         {
             for (index = 0; index < 10; index++)
             {
                 int num3 = (10 * (this.currentPage - 1)) + index;
                 if (num3 < this.filterRoom.Count)
                 {
                     RoomInfo room = (RoomInfo)this.filterRoom[num3];
                     this.items[index].SetActive(true);
                     this.items[index].GetComponentInChildren <UILabel>().text = this.getServerDataString(room);
                     this.items[index].GetComponentInChildren <BTN_Connect_To_Server_On_List>().roomName = room.name;
                 }
                 else
                 {
                     this.items[index].SetActive(false);
                 }
             }
         }
         GameObject.Find("LabelServerListPage").GetComponent <UILabel>().text = this.currentPage + "/" + this.totalPage;
     }
     else
     {
         for (int i = 0; i < this.items.Length; i++)
         {
             this.items[i].SetActive(false);
         }
         GameObject.Find("LabelServerListPage").GetComponent <UILabel>().text = this.currentPage + "/" + this.totalPage;
     }
 }
Ejemplo n.º 6
0
 void OnReceivedRoomListUpdate()
 {
     Debug.Log("Room was created");
     roomsList = PhotonNetwork.GetRoomList();
 }
Ejemplo n.º 7
0
    public void OnGUI()
    {
        if (this.Skin != null)
        {
            GUI.skin = this.Skin;
        }

        if (!PhotonNetwork.connected)
        {
            if (PhotonNetwork.connecting)
            {
                GUILayout.Label("Connecting to: " + PhotonNetwork.ServerAddress);
            }
            else
            {
                GUILayout.Label("Not connected. Check console output. Detailed connection state: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.ServerAddress);
            }

            if (this.connectFailed)
            {
                GUILayout.Label("Connection failed. Check setup and use Setup Wizard to fix configuration.");
                GUILayout.Label(String.Format("Server: {0}", new object[] { PhotonNetwork.ServerAddress }));
                GUILayout.Label("AppId: " + PhotonNetwork.PhotonServerSettings.AppID.Substring(0, 8) + "****"); // only show/log first 8 characters. never log the full AppId.

                if (GUILayout.Button("Try Again", GUILayout.Width(100)))
                {
                    this.connectFailed = false;
                    PhotonNetwork.ConnectUsingSettings("0.9");
                }
            }

            return;
        }

        Rect content = new Rect((Screen.width - this.WidthAndHeight.x) / 2, (Screen.height - this.WidthAndHeight.y) / 2, this.WidthAndHeight.x, this.WidthAndHeight.y);

        GUI.Box(content, "Join or Create Room");
        GUILayout.BeginArea(content);

        GUILayout.Space(40);

        // Player name
        GUILayout.BeginHorizontal();
        GUILayout.Label("Player name:", GUILayout.Width(150));
        PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName);
        GUILayout.Space(158);
        if (GUI.changed)
        {
            // Save name
            PlayerPrefs.SetString("playerName", PhotonNetwork.playerName);
        }
        GUILayout.EndHorizontal();

        GUILayout.Space(15);

        // Join room by title
        GUILayout.BeginHorizontal();
        GUILayout.Label("Roomname:", GUILayout.Width(150));
        this.roomName = GUILayout.TextField(this.roomName);

        if (GUILayout.Button("Create Room", GUILayout.Width(150)))
        {
            PhotonNetwork.CreateRoom(this.roomName, new RoomOptions()
            {
                maxPlayers = 10
            }, null);
        }

        GUILayout.EndHorizontal();

        // Create a room (fails if exist!)
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        //this.roomName = GUILayout.TextField(this.roomName);
        if (GUILayout.Button("Join Room", GUILayout.Width(150)))
        {
            PhotonNetwork.JoinRoom(this.roomName);
        }

        GUILayout.EndHorizontal();


        if (!string.IsNullOrEmpty(ErrorDialog))
        {
            GUILayout.Label(ErrorDialog);

            if (this.timeToClearDialog < Time.time)
            {
                this.timeToClearDialog = 0;
                ErrorDialog            = "";
            }
        }

        GUILayout.Space(15);

        // Join random room
        GUILayout.BeginHorizontal();

        GUILayout.Label(PhotonNetwork.countOfPlayers + " users are online in " + PhotonNetwork.countOfRooms + " rooms.");
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Join Random", GUILayout.Width(150)))
        {
            PhotonNetwork.JoinRandomRoom();
        }


        GUILayout.EndHorizontal();

        GUILayout.Space(15);
        if (PhotonNetwork.GetRoomList().Length == 0)
        {
            GUILayout.Label("Currently no games are available.");
            GUILayout.Label("Rooms will be listed here, when they become available.");
        }
        else
        {
            GUILayout.Label(PhotonNetwork.GetRoomList().Length + " rooms available:");

            // Room listing: simply call GetRoomList: no need to fetch/poll whatever!
            this.scrollPos = GUILayout.BeginScrollView(this.scrollPos);
            foreach (RoomInfo roomInfo in PhotonNetwork.GetRoomList())
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(roomInfo.name + " " + roomInfo.playerCount + "/" + roomInfo.maxPlayers);
                if (GUILayout.Button("Join", GUILayout.Width(150)))
                {
                    PhotonNetwork.JoinRoom(roomInfo.name);
                }

                GUILayout.EndHorizontal();
            }

            GUILayout.EndScrollView();
        }

        GUILayout.EndArea();
    }
Ejemplo n.º 8
0
 void OnReceivedRoomListUpdate()
 {
     Debug.Log("We received a room list update, total rooms now: " + PhotonNetwork.GetRoomList().Length);
 }
Ejemplo n.º 9
0
    void GUI_Connected_Lobby()
    {
        GUILayout.BeginArea(new Rect((Screen.width - 400) / 2, (Screen.height - 300) / 2, 400, 300));

        GUILayout.Label("Main Menu");

        // Player name
        GUILayout.BeginHorizontal();
        GUILayout.Label("Player name:", GUILayout.Width(150));
        PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName);
        if (GUI.changed)
        {
            PlayerPrefs.SetString("playerName" + Application.platform, PhotonNetwork.playerName);
        }

        GUILayout.EndHorizontal();
        GUILayout.Space(15);


        // Join room by title
        GUILayout.BeginHorizontal();
        GUILayout.Label("JOIN ROOM:", GUILayout.Width(150));
        this.roomName = GUILayout.TextField(this.roomName);
        if (GUILayout.Button("GO"))
        {
            PhotonNetwork.JoinRoom(this.roomName);
        }
        GUILayout.EndHorizontal();


        // Create a room (fails if already exists!)
        GUILayout.BeginHorizontal();
        GUILayout.Label("CREATE ROOM:", GUILayout.Width(150));
        this.roomName = GUILayout.TextField(this.roomName);
        if (GUILayout.Button("GO"))
        {
            PhotonNetwork.CreateRoom(this.roomName, true, true, 10);
        }

        GUILayout.EndHorizontal();


        // Join random room (there must be at least 1 room)
        GUILayout.BeginHorizontal();
        GUILayout.Label("JOIN RANDOM ROOM:", GUILayout.Width(150));
        if (PhotonNetwork.GetRoomList().Length == 0)
        {
            GUILayout.Label("..no games available...");
        }
        else
        {
            if (GUILayout.Button("GO"))
            {
                PhotonNetwork.JoinRandomRoom();
            }
        }
        GUILayout.EndHorizontal();
        GUILayout.Space(30);

        //Show a list of all current rooms
        GUILayout.Label("ROOM LISTING:");
        if (PhotonNetwork.GetRoomList().Length == 0)
        {
            GUILayout.Label("..no games available..");
        }
        else
        {
            // Room listing: simply call GetRoomList: no need to fetch/poll whatever!
            this.scrollPos = GUILayout.BeginScrollView(this.scrollPos);
            foreach (RoomInfo game in PhotonNetwork.GetRoomList())
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(game.name + " " + game.playerCount + "/" + game.maxPlayers);
                if (GUILayout.Button("JOIN"))
                {
                    PhotonNetwork.JoinRoom(game.name);
                }

                GUILayout.EndHorizontal();
            }

            GUILayout.EndScrollView();
        }

        GUILayout.EndArea();
    }
 void getRoomsNumber()
 {
     roomsNumber.Value = PhotonNetwork.GetRoomList().Length;
 }
Ejemplo n.º 11
0
    // ROOMLIST

    void OnReceivedRoomList()
    {
        Debug.Log("We received a new room list, total rooms: " + PhotonNetwork.GetRoomList().Length);
    }
Ejemplo n.º 12
0
    void RefreshRoomList()
    {
        if (roomPrefabs.Count > 0)
        {
            for (int i = 0; i < roomPrefabs.Count; i++)
            {
                Destroy(roomPrefabs[i]);
            }

            roomPrefabs.Clear();
        }
        for (int i = 0; i < PhotonNetwork.GetRoomList().Length; i++)
        {
            GameObject g = Instantiate(roomPrefab);
            g.transform.SetParent(roomPrefab.transform.parent);

            g.GetComponent <RectTransform>().localScale              = roomPrefab.GetComponent <RectTransform>().localScale;
            g.GetComponent <RectTransform>().localPosition           = new Vector3(roomPrefab.GetComponent <RectTransform>().localPosition.x, roomPrefab.GetComponent <RectTransform>().localPosition.y - (i * 50), roomPrefab.GetComponent <RectTransform>().localPosition.z);
            g.transform.Find("roomName").GetComponent <Text>().text  = PhotonNetwork.GetRoomList()[i].Name;
            g.transform.Find("roomCount").GetComponent <Text>().text = PhotonNetwork.GetRoomList()[i].PlayerCount + "/" + PhotonNetwork.GetRoomList()[i].MaxPlayers;

            g.transform.Find("JoinButton").GetComponent <Button>().onClick.AddListener(() => { JoinRoom(g.transform.Find("roomName").GetComponent <Text>().text); });
            g.SetActive(true);
            roomPrefabs.Add(g);
        }
    }
Ejemplo n.º 13
0
 void OnReceivedRoomListUpdate()      //this function is automatically called when you get new rooms (e.g. when a room is created or removed
 {
     all_rooms = PhotonNetwork.GetRoomList();
 }
Ejemplo n.º 14
0
 // Update is called once per frame
 void Update()
 {
     var _roomlist = PhotonNetwork.GetRoomList();
     // Debug.Log(_roomlist.Length);
     // lab.text = PhotonNetwork.connectionStateDetailed.ToString();
 }
Ejemplo n.º 15
0
 //Updating the room
 void UpdateRoom()
 {
     roomsList = PhotonNetwork.GetRoomList();
 }
Ejemplo n.º 16
0
    void OnGUI()
    {
        if (!PhotonNetwork.connected)
        {
            ShowConnectingGUI();
            return;   //Wait for a connection
        }


        if (PhotonNetwork.room != null)
        {
            return; //Only when we're not in a Room
        }
        GUILayout.BeginArea(new Rect((Screen.width - 400) / 2, (Screen.height - 300) / 2, 400, 300));

        GUILayout.Label("Main Menu");

        //Player name
        GUILayout.BeginHorizontal();
        GUILayout.Label("Player name:", GUILayout.Width(150));
        PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName);
        if (GUI.changed)//Save name
        {
            PlayerPrefs.SetString("playerName", PhotonNetwork.playerName);
        }
        GUILayout.EndHorizontal();

        GUILayout.Space(15);


        //Join room by title
        GUILayout.BeginHorizontal();
        GUILayout.Label("JOIN ROOM:", GUILayout.Width(150));
        roomName = GUILayout.TextField(roomName);
        if (GUILayout.Button("GO"))
        {
            PhotonNetwork.JoinRoom(roomName);
        }
        GUILayout.EndHorizontal();

        //Create a room (fails if exist!)
        GUILayout.BeginHorizontal();
        GUILayout.Label("CREATE ROOM:", GUILayout.Width(150));
        roomName = GUILayout.TextField(roomName);
        if (GUILayout.Button("GO"))
        {
            // using null as TypedLobby parameter will also use the default lobby
            PhotonNetwork.CreateRoom(roomName, new RoomOptions()
            {
                maxPlayers = 10
            }, TypedLobby.Default);
        }
        GUILayout.EndHorizontal();

        //Join random room
        GUILayout.BeginHorizontal();
        GUILayout.Label("JOIN RANDOM ROOM:", GUILayout.Width(150));
        if (PhotonNetwork.GetRoomList().Length == 0)
        {
            GUILayout.Label("..no games available...");
        }
        else
        {
            if (GUILayout.Button("GO"))
            {
                PhotonNetwork.JoinRandomRoom();
            }
        }
        GUILayout.EndHorizontal();

        GUILayout.Space(30);
        GUILayout.Label("ROOM LISTING:");
        if (PhotonNetwork.GetRoomList().Length == 0)
        {
            GUILayout.Label("..no games available..");
        }
        else
        {
            //Room listing: simply call GetRoomList: no need to fetch/poll whatever!
            scrollPos = GUILayout.BeginScrollView(scrollPos);
            foreach (RoomInfo game in PhotonNetwork.GetRoomList())
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(game.name + " " + game.playerCount + "/" + game.maxPlayers);
                if (GUILayout.Button("JOIN"))
                {
                    PhotonNetwork.JoinRoom(game.name);
                }
                GUILayout.EndHorizontal();
            }
            GUILayout.EndScrollView();
        }

        GUILayout.EndArea();
    }
Ejemplo n.º 17
0
    /// <summary>
    /// Score board window
    /// </summary>
    /// <param name="id">Identifier.</param>
    private void DrawWindow(int id)
    {
        GUILayout.Space(1);
        // Show connection state
        if (!PhotonNetwork.connected)
        {
            if (PhotonNetwork.connectionState == ConnectionState.Connecting)
            {
                GUILayout.Label("Connecting...");
            }
            else if (PhotonNetwork.connectionState == ConnectionState.Disconnected || this.connectFailed)
            {
                GUILayout.Label("Not connected. Check console output.");
                if (GUILayout.Button("Re-connect"))
                {
                    this.connectFailed = false;
                    PhotonNetwork.ConnectUsingSettings("1.0");
                }
            }
            return;
        }

        // Main Window
        switch (_State)
        {
            #region Top
        case MenuState.Top:

            GUILayout.Label("You can play game from \"room list\" or \"host game!\"");

            GUILayout.Space(5);

            GUILayout.Label("Player Name");
            PhotonNetwork.playerName = GUILayout.TextField(PhotonNetwork.playerName, 25);

            GUILayout.Space(5);

            if (GUILayout.Button("Room List"))
            {
                _State = MenuState.RoomList;
            }

            GUILayout.Space(5);

            if (GUILayout.Button("Host Game"))
            {
                _State = MenuState.HostGame;
            }

            GUILayout.Space(5);

            if (GUILayout.Button(" Settings "))
            {
                _State = MenuState.Settings;
            }
            break;
            #endregion


            #region RoomList
        case MenuState.RoomList:

            GUILayout.Label("Room List");

            GUILayout.Space(5);

            if (PhotonNetwork.GetRoomList().Length == 0)
            {
                GUILayout.BeginHorizontal("box");
                GUILayout.Label("There is no room available...");
                GUILayout.EndHorizontal();
            }

            foreach (RoomInfo r in PhotonNetwork.GetRoomList())
            {
                string[] s = _manager.GetRoomInfo(r);
                GUILayout.BeginHorizontal("box");
                {
                    GUILayout.Label("RoomName: " + s[0]);
                    GUILayout.Label("Players: " + s[1] + "/" + s[2]);
                    GUILayout.Label("Map: " + Maps[int.Parse(s[3])].LevelName);
                    if (GUILayout.Button("Join"))
                    {
                        if (String.IsNullOrEmpty(PhotonNetwork.playerName))
                        {
                            PhotonNetwork.playerName = PhotonNetwork.playerName = "Guest" + Random.Range(1, 9999);
                        }

                        PhotonNetwork.JoinRoom(s[0]);
                    }
                }
                GUILayout.EndHorizontal();
            }

            GUILayout.Space(10);

            if (GUILayout.Button("Return to menu"))
            {
                _State = MenuState.Top;
            }
            break;
            #endregion


            #region HostGame
        case MenuState.HostGame:

            GUILayout.Label("Host Game");

            GUILayout.Space(5);

            GUILayout.BeginVertical("box");

            // Name input
            GUILayout.Label("Room Name");
            roomInput = GUILayout.TextField(roomInput, 25);

            GUILayout.Space(5);

            // Map selection
            GUILayout.Label("Current Map: " + selected.LevelName);
            GUILayout.BeginScrollView(scrollPos);
            {
                GUILayout.BeginVertical("box");
                foreach (Map m in Maps)
                {
                    if (GUILayout.Button(m.LevelName))
                    {
                        selected = m;
                    }
                }
                GUILayout.EndVertical();
            }
            GUILayout.EndScrollView();

            GUILayout.EndVertical();

            if (GUILayout.Button("Create a New Game"))
            {
                if (String.IsNullOrEmpty(roomInput))
                {
                    roomInput = "Room" + Random.Range(1, 9999);
                }

                if (String.IsNullOrEmpty(PhotonNetwork.playerName))
                {
                    PhotonNetwork.playerName = PhotonNetwork.playerName = "Guest" + Random.Range(1, 9999);
                }

                _manager.CreateRoom(roomInput, selected._Index, selected.Capacity);
            }

            GUILayout.Space(10);

            if (GUILayout.Button("Return to menu"))
            {
                _State = MenuState.Top;
            }
            break;
            #endregion


            #region Settings
        case MenuState.Settings:

            GUILayout.Label("Settings");

            GUILayout.Space(5);

            GUILayout.Label("Quality");
            string[] names = QualitySettings.names;
            GUILayout.BeginHorizontal("box");
            int i = 0;
            while (i < names.Length)
            {
                if (GUILayout.Button(names[i]))
                {
                    QualitySettings.SetQualityLevel(i, true);
                }
                i++;
            }
            GUILayout.EndHorizontal();

            GUILayout.Space(10);

            if (GUILayout.Button("Return to menu"))
            {
                _State = MenuState.Top;
            }
            break;
            #endregion
        }
    }
Ejemplo n.º 18
0
 // De list met Rooms uit de lobby wordt opgehaald
 private void getRoomList()
 {
     rooms = PhotonNetwork.GetRoomList();
 }
Ejemplo n.º 19
0
 private void UpdateRoomList()
 {
     RoomInfo[] roomInfoAry = PhotonNetwork.GetRoomList();
     UiRoomList.SetRoomListInfo(roomInfoAry);
 }
Ejemplo n.º 20
0
 void OnReceivedRoomListUpdate()
 {
     rooms = PhotonNetwork.GetRoomList();
     ChangeRoomScroll();
     randButton.GetComponent <Button>().interactable = openRoom;
 }
Ejemplo n.º 21
0
        public void MainMenu()
        {
            showButton = GUILayout.Toggle(showButton, "Show Corner Button");

            Color defaultColor = GUI.color;

            GUILayout.Label(connectionMessage);

            string nameTextLabel   = $"Player Name: {PhotonNetwork.playerName}";
            bool   playerNameValid = !string.IsNullOrEmpty(PhotonNetwork.playerName);

            if (!playerNameValid)
            {
                GUI.color     = Color.red;
                nameTextLabel = "Please set a player name!";
            }

            GUILayout.Label(nameTextLabel);
            GUI.color   = defaultColor;
            GUI.enabled = !PhotonNetwork.inRoom;
            using (new GUILayout.HorizontalScope())
            {
                playerName = GUILayout.TextField(playerName);
                if (GUILayout.Button("Apply", GUILayout.Width(mainWindowRect.width / 5)))
                {
                    if (PhotonNetwork.connected)
                    {
                        PhotonNetwork.Disconnect();
                    }
                    PhotonNetwork.playerName        = playerName;
                    PhotonNetwork.AuthValues.UserId = playerName;
                    StartCoroutine(NetworkManager.main.ReconnectOnceDisconnected());
                }
            }

            GUI.enabled = playerNameValid;

            if (!PhotonNetwork.inRoom)
            {
                if (GameManager.instance.IsGameplayScene() && PhotonNetwork.connected)
                {
                    GUI.color = Color.green;
                    if (GUILayout.Button("Create Room"))
                    {
                        NetworkManager.main.CreateGame();
                    }
                }
                else
                {
                    GUI.color   = Color.red;
                    GUI.enabled = false;
                    string text = "You must be in-game to create a room!";
                    if (!PhotonNetwork.connected)
                    {
                        text = "You must be connected to the lobby to create a room!";
                    }
                    GUILayout.Button(text);
                    GUI.enabled = true;
                }
            }
            else
            {
                GUI.color = Color.red;
                if (GUILayout.Button("Leave Room"))
                {
                    PhotonNetwork.LeaveRoom();
                }
            }
            GUI.color = defaultColor;

            if (PhotonNetwork.inRoom)
            {
                if (PhotonNetwork.isMasterClient)
                {
                    GUILayout.Label("You are the host");
                    bool val = (bool)PhotonNetwork.room.CustomProperties["IsPublic"];
                    if (GUILayout.Button(val ? "Make Room Private" : "Make Room Public"))
                    {
                        var hash = new ExitGames.Client.Photon.Hashtable()
                        {
                            { "IsPublic", !val }
                        };

                        PhotonNetwork.room.SetCustomProperties(hash);
                    }
                }
                else
                {
                    GUILayout.Label($"{PhotonNetwork.masterClient.NickName} is the host");
                }

                if (NetworkManager.main.localPlayer)
                {
                    if (NetworkManager.main.localPlayer.isSceneHost)
                    {
                        GUILayout.Label("You are the scene host");
                    }
                    else
                    {
                        GUILayout.Label("Someone else is the scene host");
                    }
                }
            }

            GUILayout.Label("Room List");
            using (var scroll = new GUILayout.ScrollViewScope(scrollPos))
            {
                scrollPos = scroll.scrollPosition;

                foreach (RoomInfo info in PhotonNetwork.GetRoomList())
                {
                    if (!(bool)info.CustomProperties["IsPublic"])
                    {
                        continue;
                    }

                    using (new GUILayout.HorizontalScope("Box", GUILayout.Width(mainWindowRect.width * 0.9f)))
                    {
                        GUILayout.Label((string)info.CustomProperties["Name"], GUILayout.Width(mainWindowRect.width * 0.7f));
                        if (GameManager.instance.IsMenuScene())
                        {
                            if (GUILayout.Button("Join", GUILayout.Width(mainWindowRect.width * 0.2f)))
                            {
                                NetworkManager.main.JoinGame(info.Name);
                            }
                        }
                        else
                        {
                            GUI.enabled = false;
                            GUILayout.Button("Join", GUILayout.Width(mainWindowRect.width * 0.2f));
                        }
                    }
                    GUILayout.Space(mainWindowRect.height * 0.04f);
                }
            }
            GUI.enabled = true;
        }
Ejemplo n.º 22
0
        public void ReceiveData()
        {
            var roomList = PhotonNetwork.GetRoomList();

            _roomList.OnNext(roomList.Select(room => new RoomData(room)));
        }
Ejemplo n.º 23
0
    //
    //	void Start ()
    //	{
    //		InvokeRepeating ("updateRooms", 0f, 1.25f);
    //	}

    void updateRooms()
    {
        //clear everything in the room list before
//		foreach (Transform child in RoomsParent) {
//			Destroy (child.gameObject);
//		}

        //update room button size from grid layout so it fits to dynamic parent size
        GridLayoutGroup glg = RoomsParent.GetComponent <GridLayoutGroup> ();

        glg.cellSize = new Vector2(_rectTransform.rect.width - 60f, glg.cellSize.y);

        //get room list, instantiate & fill the list
        if (PhotonNetwork.connected)
        {
            List <RoomInfo>          rooms        = PhotonNetwork.GetRoomList().ToList();
            List <UIRoomListElement> currentRooms = RoomsParent.GetComponentsInChildren <UIRoomListElement> ().ToList();

            bool deleted = false;
            //delete all rooms with empty roominfo
            foreach (var r in currentRooms.Where(x => x.RoomInfo == null))
            {
                Destroy(r.gameObject);
                deleted = true;
            }
            if (deleted)
            {
                return;
            }

            //delete all rooms that doesn't exist
            foreach (var n in currentRooms.Select(x => x.RoomInfo.Name).Except(rooms.Select(x => x.Name)))
            {
                Destroy(currentRooms.First(x => x.RoomInfo.Name == n).gameObject);
                deleted = true;
            }
            if (deleted)
            {
                return;
            }

            foreach (var room in rooms)
            {
                //check room type
                ROOM_TYPE rt = (ROOM_TYPE)room.customProperties [RoomLevelHelper.CUSTOM_ROOM_PROPERTY_ROOM_TYPE];
                if (rt != _roomType)
                {
                    continue;
                }

                GameObject instance;

                if (currentRooms.Select(x => x.RoomInfo.Name).Contains(room.Name))
                {
                    //if already exsists, don't instantiate
                    instance = currentRooms.First(x => x.RoomInfo.Name == room.Name).gameObject;
                }
                else
                {
                    instance = Instantiate(_roomPrefab);
                }

//				GameObject instance = Instantiate (_roomPrefab);
                instance.transform.SetParent(RoomsParent);

                UIRoomListElement roomElement = instance.GetComponent <UIRoomListElement> ();
                roomElement.ButtonText.text = "(" + room.playerCount + "/" + room.maxPlayers + ") " + room.name;
                roomElement.SetRoomInfo(room);
                roomElement.UIRL = this;

                Button btn = instance.GetComponent <Button> ();
                //disable button is room is full
                if (room.playerCount >= room.maxPlayers)
                {
                    btn.interactable = false;
                }
            }
            _logText.text = "Room list updated";
        }
        else
        {
            Debug.Log("Not connected to Photon Server");
        }
    }
Ejemplo n.º 24
0
    void Window(int id)
    {
        if (menu == Menu.Options)
        {
            if (gui.Button("<<Back"))
            {
                menu = Menu.MainMenu;
            }


            _Loader.EnableHighQuality = gui.Toggle(_Loader.EnableHighQuality, "High Quality");
            _Loader.EnableBlood       = gui.Toggle(_Loader.EnableBlood, "Enable Blood");
            gui.BeginHorizontal();
            gui.Label("MaxPlayers:" + (int)maxPlayers, gui.ExpandWidth(false));
            maxPlayers = gui.HorizontalSlider(maxPlayers, 1, 8);
            gui.EndHorizontal();

            gui.BeginHorizontal();
            gui.Label("SensivityX", gui.ExpandWidth(false));
            _Loader.SensivityX = gui.HorizontalSlider(_Loader.SensivityX, .1f, 2);
            gui.EndHorizontal();
            gui.BeginHorizontal();
            gui.Label("SensivityY", gui.ExpandWidth(false));
            _Loader.SensivityY = gui.HorizontalSlider(_Loader.SensivityY, .1f, 2);
            gui.EndHorizontal();
            gui.BeginHorizontal();
            gui.Label("Sound Vol", gui.ExpandWidth(false));
            _Loader.SoundVolume = gui.HorizontalSlider(_Loader.SoundVolume, 0, 1);
            gui.EndHorizontal();
            if (gui.Button("Reset Settings"))
            {
                PlayerPrefs.DeleteAll();
            }

            AudioListener.volume = _Loader.SoundVolume;
        }
        else if (menu == Menu.SelectMap)
        {
            if (gui.Button("<<Back"))
            {
                menu = Menu.MainMenu;
            }
            scrollPosition = gui.BeginScrollView(scrollPosition);
            foreach (var map in _Loader.maps)
            {
                int p = GetLevelLoad(map);
                if (gui.Button(map + (p < 100 ? (" " + p + "%") : "")))
                {
                    if (p == 100)
                    {
                        Host(map);
                    }
                    else
                    {
                        print("Map Not Loaded yet");
                    }
                }
            }
            gui.EndScrollView();
        }
        else
        {
            if (lockCursor)
            {
                return;
            }
            gui.Label(PhotonNetwork.connectionState + " " + PhotonNetwork.GetRoomList().Length);
            gui.Label("Name:");
            _Loader.playerName = gui.TextField(_Loader.playerName, 25);
            //gui.Label("GameName:");
            //gameName = gui.TextField(gameName);
            gui.BeginHorizontal();
            //if (gui.Button("Connect"))
            //{
            //    ShowLoading(true);
            //    PhotonNetwork.JoinRoom(gameName == "" ? "test" : gameName);
            //    _Loader.timer.AddMethod(6000, delegate { ShowLoading(false); });
            //}
            if (gui.Button("Host"))
            {
                menu = Menu.SelectMap;
            }
            if (gui.Button("Options"))
            {
                menu = Menu.Options;
            }

            gui.EndHorizontal();
            scrollPosition = gui.BeginScrollView(scrollPosition);
            //bug implement masterserver
            if (PhotonNetwork.GetRoomList().Length == 0)
            {
                GUILayout.Label("..no games available..");
            }
            else
            {
                foreach (Room host in PhotonNetwork.GetRoomList())
                {
                    var sets = host.name.Split("/");
                    if (!isEditor)
                    {
                        if (sets.Length != 3)
                        {
                            continue;
                        }
                        if (sets[1] != version)
                        {
                            continue;
                        }
                    }
                    string mapName = sets[0];
                    int    p       = GetLevelLoad(mapName);

                    if (gui.Button(host.name +
                                   (" " + host.playerCount + "/" + host.maxPlayers) +
                                   (p < 100 ? (" " + p + "%") : "")))
                    {
                        if (p == 100)
                        {
                            Print("Trying Connect to " + host.name);
                            ShowLoading(true);
                            _Loader.timer.AddMethod(6000, delegate { ShowLoading(false); });
                            this.mapName = mapName;
                            PhotonNetwork.JoinRoom(host.name);
                        }
                        else
                        {
                            print("Map Not Loaded yet");
                        }
                    }
                }
            }
            gui.EndScrollView();
        }
    }
Ejemplo n.º 25
0
 private void Start()
 {
     PhotonNetwork.ConnectUsingSettings("0.1");
     Room = PhotonNetwork.GetRoomList();
 }
        public override void OnEnter()
        {
            //check if we are in a room or not
            //if (PhotonNetwoek.is)
            if (!PhotonNetwork.insideLobby)
            {
                Fsm.Event(notInLobbyEvent);
                Finish();
                return;
            }

            if (nextRoomIndex == 0)
            {
                rooms = PhotonNetwork.GetRoomList();
            }

            if (rooms.Length == 0)
            {
                nextRoomIndex = 0;
                Fsm.Event(noRoomsEvent);
                Fsm.Event(finishedEvent);
                Finish();
                return;
            }

            if (nextRoomIndex >= rooms.Length)
            {
                nextRoomIndex = 0;
                Fsm.Event(finishedEvent);
                Finish();
                return;
            }

            _room = rooms[nextRoomIndex];

            // we get the room properties
            RoomName.Value    = _room.name;
            maxPlayers.Value  = _room.maxPlayers;
            open.Value        = _room.open;
            visible.Value     = _room.visible;
            playerCount.Value = _room.playerCount;


            // get the custom properties
            int i = 0;

            foreach (FsmString key in customPropertyKeys)
            {
                if (_room.customProperties.ContainsKey(key.Value))
                {
                    PlayMakerPhotonProxy.ApplyValueToFsmVar(this.Fsm, customPropertiesValues[i], _room.customProperties[key.Value]);
                }
                i++;
            }


            nextRoomIndex++;

            Fsm.Event(loopEvent);

            Finish();
        }
 private void CreateRoom()
 {
     PhotonNetwork.CreateRoom("Room " + (PhotonNetwork.GetRoomList().Length + 1 + Random.Range(1, 99)), true, true, 2);
 }
Ejemplo n.º 28
0
    public void CoopButton()
    {
        roomopt.customRoomProperties = new PhotonHashTable()
        {
            { "Round", 1 }, { "State", 0 }, { "FlagOwner", -9999 }, { "Map", "City" }, { "Mode", "C" }, { "Friend", "N" }
        };
        roomsList = PhotonNetwork.GetRoomList();
        PhotonNetwork.offlineMode = false;
        //Joinning Lobby
        if (!ready)
        {
            PhotonNetwork.JoinLobby();
            debugText.GetComponent <Text> ().color = Color.red;
            debugText.GetComponent <Text> ().text  = "You're not connected yet";
        }
        else
        if (!PhotonNetwork.connected)
        {
            debugText.GetComponent <Text> ().color = Color.red;
            debugText.GetComponent <Text> ().text  = "You're not connected yet";
            if (PlayerPrefs.GetInt("IsOnRoom", 0) == 1)
            {
                PhotonNetwork.Reconnect();
                debugText2.GetComponent <Text> ().color = Color.yellow;
                debugText2.GetComponent <Text> ().text  = "Connecting...";
            }
            else
            {
                PhotonNetwork.ConnectUsingSettings("0.1");
                debugText2.GetComponent <Text> ().color = Color.yellow;
                debugText2.GetComponent <Text> ().text  = "Connecting...";
            }

            //Or reconnect if player Disconnect from a room before
        }
        else if (PlayerPrefs.GetInt("IsOnRoom", 0) == 1)
        {
            bool found = searchRoom();
            if (!found)
            {
                PlayerPrefs.SetInt("IsOnRoom", 0);
                PlayerPrefs.SetInt("Score", 0);
                PlayerPrefs.SetInt("Round", 1);
                debugText.GetComponent <Text> ().color = Color.red;
                debugText.GetComponent <Text> ().text  = "Can't Reconnect. Click again to start new game";
            }
            else
            {
                PhotonNetwork.JoinRoom(PlayerPrefs.GetString("RoomIsIn"));
            }
        }
        //If no room, create room
        else if (roomsList.Length == 0)
        {
            // Create Room
            roomName = PhotonNetwork.player.name + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString() + Random.Range(0, 10).ToString();
            PhotonNetwork.JoinOrCreateRoom(roomName, roomopt, TypedLobby.Default);
            debugText.GetComponent <Text> ().color = Color.green;
            debugText.GetComponent <Text> ().text  = "Creating room...";
        }
        // Join Room
        else
        {
            PhotonNetwork.JoinRandomRoom();
            debugText.GetComponent <Text> ().color = Color.green;
            debugText.GetComponent <Text> ().text  = "Entering room...";
        }
    }
Ejemplo n.º 29
0
 public int getPages()
 {
     return((int)Math.Max(Math.Ceiling(PhotonNetwork.GetRoomList().Length * 1.0 / gamePanels.Length), 1));
 }
Ejemplo n.º 30
0
        void CreateNewRoom(string aName, RoomOptions aOptions)
        {
            RoomInfo[] rooms      = PhotonNetwork.GetRoomList();
            bool       roomExists = false;

            if (aName == "")
            {
                aName = PhotonNetwork.player.NickName + "'s Room";
            }

            for (int i = 0; i < rooms.Length; i++)
            {
                if (rooms[i].Name == aName)
                {
                    roomExists = true;
                }
            }

            if (roomExists)
            {
                m_dialogDisplay.DisplayDialog("There's already a room named " + aName + "!");
                m_roomName = "";
                return;
            }

            int playerLevel = BrainCloudStats.Instance.GetStats()[0].m_statValue;

            if (m_roomLevelRangeMin < 0)
            {
                m_roomLevelRangeMin = 0;
            }
            else if (m_roomLevelRangeMin > playerLevel)
            {
                m_roomLevelRangeMin = playerLevel;
            }

            if (m_roomLevelRangeMax > 50)
            {
                m_roomLevelRangeMax = 50;
            }

            if (m_roomLevelRangeMax < m_roomLevelRangeMin)
            {
                m_roomLevelRangeMax = m_roomLevelRangeMin;
            }

            if (aOptions.MaxPlayers > 8)
            {
                aOptions.MaxPlayers = 8;
            }
            else if (aOptions.MaxPlayers < 1)
            {
                aOptions.MaxPlayers = 1;
            }

            ExitGames.Client.Photon.Hashtable customProperties = new ExitGames.Client.Photon.Hashtable();
            customProperties["roomMinLevel"]      = m_roomLevelRangeMin;
            customProperties["roomMaxLevel"]      = m_roomLevelRangeMax;
            customProperties["StartGameTime"]     = 10 * 60;
            customProperties["Team1Score"]        = 0;
            customProperties["Team2Score"]        = 0;
            customProperties["IsPlaying"]         = 0;
            customProperties["MapLayout"]         = m_presetListSelection;
            customProperties["MapSize"]           = m_sizeListSelection;
            aOptions.CustomRoomProperties         = customProperties;
            aOptions.CustomRoomPropertiesForLobby = new string[] { "roomMinLevel", "roomMaxLevel", "IsPlaying" };
            _bc.Client.EntityService.UpdateSingleton("gameName", "{\"gameName\": \"" + aName + "\"}", null, -1, null, null, null);
            BrainCloudStats.Instance.ReadStatistics();
            m_state = eMatchmakingState.GAME_STATE_CREATE_NEW_ROOM;
            PhotonNetwork.CreateRoom(aName, aOptions, TypedLobby.Default);
        }