使用playerToInvite的非朋友之间的游戏中心配对

时间:2013-04-11 02:38:36

标签: iphone ios objective-c game-center

这不可能吗?当我通过ID指定的两个玩家是朋友时,我尝试了一些成功进行匹配的测试代码,但是当它们没有时会失败并显示错误。

使用GKMatchmaker findmatchforrequest

打印错误说明:

  

错误域= GKErrorDomain代码= 8“请求的操作不能   因为播放器无效而完成。“UserInfo = 0x1dd62f40   {GKServerStatusCode = 5121,NSUnderlyingError = 0x1dd62ca0“操作   无法完成。没有的球员之间的邀请   最近上场时间:G:1752931323,G:1752935955“,   NSLocalizedDescription =无法完成请求的操作   因为玩家无效。}

2 个答案:

答案 0 :(得分:1)

我希望能够做到这一点,但我相信苹果公司指定邀请的文件必须仅来自朋友。

答案 1 :(得分:1)

它确实有效,是的 - 限制是玩家必须最近玩过。对于不是朋友的玩家,可能会出现这种情况:

  • 他们一起玩随机比赛
  • 玩家正在玩或以前通过wifi或蓝牙一起玩过
  • 他们曾经是朋友,但是从朋友名单中删除了对方。
  • 他们参加了3场以上的多人比赛,他们是其中一名球员的朋友,而不是另一名球员。
  • 他们正在使用以前一起玩过的2台设备上玩,即使这些设备的GameCenter登录最近发生了变化 - 因此它们在技术上并不是朋友(重置网络设置会删除此功能)。

这些案件很少见,因此是“几乎总是朋友”的条款。

我正在处理的方式是首先尝试进行邀请,无论他们是否是朋友。如果出现此错误,我会通知用户他们不是朋友,并提示他们使用好友请求视图控制器发送好友请求。