Using SQL Matchmaking in Unity
Hey!
I'm trying to use SQL Matchmating functionality to split my playerbase.
I set up my room like so -
And to join a random room I use this
My problem is it joins a room irrelative of what value I set in the customRoomPropertiesForLobby. I'm sure my understanding of the SQL code is what is wrong!
Thanks,
Myles
I'm trying to use SQL Matchmating functionality to split my playerbase.
I set up my room like so -
RoomOptions newRoomOptions = new RoomOptions(); newRoomOptions.isOpen = true; newRoomOptions.isVisible = true; newRoomOptions.maxPlayers = 4; newRoomOptions.customRoomPropertiesForLobby = new string[] { "1" }; // This changes between 0 and 1 PhotonNetwork.CreateRoom(ReachNetworking.ReachSteam.SteamID, newRoomOptions, null);
And to join a random room I use this
PhotonNetwork.JoinRandomRoom(null, 4, MatchmakingMode.SerialMatching, null, "C0 = 1");
My problem is it joins a room irrelative of what value I set in the customRoomPropertiesForLobby. I'm sure my understanding of the SQL code is what is wrong!
Thanks,
Myles
0
Comments
-
Note I've also tried using a string instead,
PhotonNetwork.JoinRandomRoom(null, 4, MatchmakingMode.SerialMatching, null, "C0 = \"public\"");
newRoomOptions.customRoomPropertiesForLobby = new string[] { "private" };
0 -
I think this is due to a minor misunderstanding.
The customRoomPropertiesForLobby string[] takes the KEYS of the properties you need in the lobby. Not some values. You are not setting a "C0" value, even though you use it in the matchmaking.
You need to create a Hashtable and set it as newRoomOptions.customRoomProperties and you have to set "C0" as a property of the lobby. Example:
[code2=csharp]RoomOptions newRoomOptions = new RoomOptions();
newRoomOptions.isOpen = true;
newRoomOptions.isVisible = true;
newRoomOptions.maxPlayers = 4;
newRoomOptions.customRoomProperties = new ExitGames.Client.Photon.Hashtable() { { "C0", 1 } }; // C0 might be 0 or 1
newRoomOptions.customRoomPropertiesForLobby = new string[] { "C0" }; // this makes "C0" available in the lobby
TypedLobby sqlLobby = new TypedLobby("myLobby", LobbyType.SqlLobby);
PhotonNetwork.CreateRoom(roomName, newRoomOptions, sqlLobby); // apply the lobby explicitly or PhotonNetwork.JoinLobby() before you create / join rooms[/code2]0 -
Ah! This makes much more sense!
Thanks for taking the time to explain this Tobias0