0

我正在为我们的游戏添加新功能。我想为玩家提供邀请他们的朋友加入房间的选项。

该功能的具体描述如下:玩家 A 创建房间并邀请玩家 B 加入,玩家 B 必须满足以下条件才能看到邀请:1. 是玩家 A 的 Facebook 好友。 2. 在线和大厅内。

我遵循的方法如下:我正在使用 PlayFab 来保存玩家数据和在线状态。用户第一次使用 Facebook 登录时,会为此玩家创建一条 PlayFab 记录,该条目包括 Facebook 好友列表和在线状态以及其他数据(每个玩家的在线状态使用 OnDisconnectedFromPhoton 和 OnJoinedLobby 回调更新)

当玩家 A 在房间内单击邀请按钮时,会显示他的在线好友列表(获取 Facebook 好友列表 --> 检查 PlayFab 记录以检索其在线状态 --> 显示在线的 Facebook 好友)。然后玩家选择他们想要邀请的朋友。

这是我遇到困难的部分。有没有办法向大厅中的这个玩家发送邀请消息,其中包括房间号和被邀请的用户 ID?例如,我正在考虑将消息发送给大厅中的所有玩家,然后仅将其显示给玩家 B(如果消息中包含的 userId == player B userId,则显示消息)。但我希望有一个更有效的解决方案,因为每次发送邀请时都向大厅中的所有玩家发送消息似乎有点过头了!

你能想出更好的方法来做到这一点吗?

4

2 回答 2

1

您无法在 Photon 大厅向玩家发送消息。您应该通过其他渠道(例如 fb api 消息)邀请玩家。受邀用户从消息中获取房间名称并可以加入房间。

于 2015-04-30T16:58:59.967 回答
1

在移动平台上,一种常见的方法是使用推送通知来启用此功能。另一种方法是使用共享组数据 ( https://api.playfab.com/Documentation/Client#Shared%20Group%20Data ) 向其他人发布邀请,并让客户端执行定期“心跳”以检查这些消息. 使用它,您可以使用接收邀请的用户的 PlayFab ID(以及可能的其他消息)创建共享组数据,并使用邀请他们的用户的 PlayFab ID 添加消息作为键/值对的键您正在写入共享组数据。

而不是处理将玩家添加到共享组数据的麻烦(允许客户端然后直接写入它),另一种简化是使用云脚本(https://playfab.com/docs/using-cloud -script/ ) 来控制写入的内容。

于 2015-08-27T20:50:33.427 回答