首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么PhotonNetwork GetCustomRoomList在几次连接后失败?

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

Stack Overflow用户
提问于 2019-03-28 15:28:14
回答 1查看 1.3K关注 0票数 1

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

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

我要做的是首先尝试加入自定义大堂内的一个随机房间,如果失败,则创建一个新房间。

我开始像这样连接:

代码语言:javascript
运行
复制
TypedLobby lobbyData = new TypedLobby ("Proto01Lobby", LobbyType.SqlLobby);

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

然后我试着加入随机的房间:

代码语言:javascript
运行
复制
public override void OnConnectedToMaster()
{
   Debug.Log ("Connetected!");
   PhotonNetwork.JoinRandomRoom (null, 2, MatchmakingMode.FillRoom, lobbyData, null, null);
}

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

代码语言:javascript
运行
复制
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,因为由于某种原因,它失败了。

EN

回答 1

Stack Overflow用户

发布于 2019-03-28 16:05:46

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

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

如果您想要所有房间,请使用GetRoomList()。

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

您也不会在已完成的游戏中重用房间名称。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55392197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档