为什么PhotonNetwork GetCustomRoomList在多次连接后失败?

问题描述 投票:1回答:1

我正在尝试创建一个自定义大厅,并让玩家随机填充maxPlayers = 2的房间,前两个玩家连接并加入一个房间,但当第三个玩家连接并调用GetCustomRoomList时,我收到此错误:

GetGameList失败:OperationResponse 217:ReturnCode:-2(SQL逻辑错误或“LIMIT”附近缺少数据库:语法错误)。参数:{}

我正在做的是首先尝试加入该自定义大厅内的随机房间,如果失败,请创建一个新房间。

我开始像这样连接:

TypedLobby lobbyData = new TypedLobby ("Proto01Lobby", LobbyType.SqlLobby);

PhotonNetwork.GameVersion = GAME_VERSION;
PhotonNetwork.ConnectUsingSettings ();

然后我尝试加入随机房间:

public override void OnConnectedToMaster()
{
   Debug.Log ("Connetected!");
   PhotonNetwork.JoinRandomRoom (null, 2, MatchmakingMode.FillRoom, lobbyData, null, null);
}

如果失败,我会尝试获取房间列表,然后根据大厅的房间数量创建一个独特的房间名称:

public override void OnJoinRandomFailed(short returnCode, string message)
{
   Debug.Log ("Failed to connect to random room, Create a New Room");
   PhotonNetwork.GetCustomRoomList (lobbyData, null);
}

public override void OnRoomListUpdate (List<RoomInfo> roomList)
{
   Debug.Log ("Amount of rooms in lobbby: "+roomList.Count);
   string roomName = "CanvasProto" + roomList.Count;
   Debug.Log ("Create room: "+roomName);

   RoomOptions options = new RoomOptions ();
   options.MaxPlayers = 2;
   PhotonNetwork.CreateRoom(roomName, options, lobbyData, null);
}

但是当第三个玩家连接时,他/她从未到达OnRoomListUpdate,因为由于某种原因它失败了。

c# unity3d photon
1个回答
0
投票

GetCustomRoomList失败,因为它尝试使用null运行SQL查询。

您需要添加一个查询来过滤您尝试获取的房间。

如果您希望所有房间都使用GetRoomList()。

我应该警告你,如果有2个玩家在一个房间,2个新玩家尝试加入,他们都会看到他们需要创建一个新的房间,而你我必须同时尝试创建2个同名房间的客户。

对于已完成的游戏,您也不会重复使用房间名称。

© www.soinside.com 2019 - 2024. All rights reserved.