public void OnClickMatchmaking() { if (PhotonNetwork.connectedAndReady) { //Filter for Gamemodes //Room Player count will be ignored Hashtable expectedProperties = new Hashtable() { { RoomProperties.Gamemode, m_pickedMode } }; m_matchmakingInfo.text = "looking for match..."; //If the operation got queued and will be sent - returns true if (PhotonNetwork.GetRoomList().Length > 0) { PhotonNetwork.JoinRandomRoom(expectedProperties, 0); MapDatabase.LoadMap(m_waitingRoom); } else { m_matchmakingInfo.text = "No Open Room found."; } } else { m_matchmakingInfo.text = "Not Connected."; } }
void OnClickCreateRoom() { Mode parsedEnum = (Mode)System.Enum.Parse(typeof(Mode), gameMode.options[gameMode.value].text); int m_maxPlayer = 1; switch (parsedEnum) { case Mode.DeatchMatch: m_maxPlayer = System.Convert.ToInt32(playercount.options[playercount.value].text); break; case Mode.TeamDeathMatch: m_maxPlayer = System.Convert.ToInt32(playercount.options[playercount.value].text) * 2; break; } PhotonNetwork.automaticallySyncScene = true; //Create a new Hashtable and store room Properties Hashtable m_customRoomOption = new Hashtable() { { RoomProperties.Map, m_pickedMap.GetMapName }, { RoomProperties.Gamemode, parsedEnum }, }; //set Room Options and store the properties in it //To get/set properties in the Looby set CustomRoomPropertiesForLobby RoomOptions m_roomOptions = new RoomOptions() { IsVisible = true, IsOpen = true, MaxPlayers = (byte)m_maxPlayer, CustomRoomPropertiesForLobby = new string[] { RoomProperties.Map, RoomProperties.Gamemode, RoomProperties.Ping }, CustomRoomProperties = m_customRoomOption, }; List <RoomInfo> roomInfo = new List <RoomInfo>(); roomInfo.AddRange(PhotonNetwork.GetRoomList()); var doubleRoom = roomInfo.Find(x => x.Name == roomNameField.text); string newRoomName = roomNameField.text + "#" + Random.Range(0, 999); if (doubleRoom == null) { if (PhotonNetwork.CreateRoom(newRoomName, m_roomOptions, TypedLobby.Default)) { MapDatabase.LoadMap(waitingRoom); } } else { newRoomName = roomNameField.text + "#" + Random.Range(0, 999); if (PhotonNetwork.CreateRoom(newRoomName, m_roomOptions, TypedLobby.Default)) { MapDatabase.LoadMap(waitingRoom); } } }
void OnClickJoinRoom(string roomName, RoomInfo roomInfo) { if (PhotonNetwork.JoinRoom(roomName)) { MapDatabase.LoadMap(waitingRoom); } else { print("Join room failed"); } }
void LoadPickedMap() { if (m_mapLoaded) { return; } if (PhotonNetwork.player.IsLocal) { PhotonNetwork.DestroyPlayerObjects(PhotonNetwork.player); } PhotonNetwork.isMessageQueueRunning = false; MapDatabase.LoadMap(m_roomMap); m_mapLoaded = true; }
void LeaveCurrentRoom() { PhotonNetwork.LeaveRoom(); //only leave the Room no need to disconect MapDatabase.LoadMap(m_lobby); //go back to lobby Destroy(m_ddols); //destroy all ddols }