4

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

使用 GKMatchmaker findmatchforrequest

打印错误说明:

Error Domain=GKErrorDomain Code=8 "由于播放器无效,请求的操作无法完成。" UserInfo=0x1dd62f40 {GKServerStatusCode=5121, NSUnderlyingError=0x1dd62ca0 "操作无法完成。最近没玩过的玩家之间的邀请:G:1752931323, G:1752935955", NSLocalizedDescription=请求的操作无法完成,因为玩家是无效的。}

4

2 回答 2

1

我也希望能够做到这一点,但我相信 Apple 的文档中指定邀请只能来自朋友。

于 2014-01-23T16:15:44.613 回答
1

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

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

这些情况很少见,因此有“几乎总是朋友”条款。

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

于 2014-03-09T08:03:29.907 回答