玩家封禁系统

通过玩家封禁功能可以对违反规则的某些玩家限制对游戏的访问。

注意

封禁可以是临时或永久的。

以下教程介绍如何通过 PlayFab API 和 Game Manager 来利用封禁系统。

标识

尽管游戏可能具有自定义系统来标识作弊者和违规者,PlayFab 还是提供了一种玩家对玩家举报机制。 本质上,您依赖于玩家来举报其他有问题的玩家。

在客户端代码中使用以下片段可让客户端举报特定玩家。

public void ReportPlayer(string problematicPlayerId, string reason) {
    PlayFabClientAPI.ReportPlayer(new ReportPlayerClientRequest() {
        ReporteeId = problematicPlayerId,
        Comment = reason
    }, result => {
        //... Handle success
    }, error => {
        Debug.Log(error.GenerateErrorReport());
    });
}

此 API 调用会生成:

  • 一个报告事件,可通过 Analytics 工具 (1) 找到。
  • 选择 player_reported_as_abusive 事件类型 (2)
  • 这会显示:
    • Event Name (3)
    • 被举报的玩家 ID (4)

Game Manager - Analytics - Event History

应用封禁

标识了有问题的玩家后,可以应用禁用。 社区管理代表也可以使用 Game Manager 应用禁用。

  1. 导航到 玩家部分。
  2. 找到有问题的玩家。
  3. 导航到“ ”选项卡。
  4. 选择 添加禁用 以显示 添加禁用 表单。
  5. 键入 禁用的原因 以及所需的持续时间。 可以选择按 IP ADDRESS (4) 进行封禁
  6. 最后,选择 添加禁用 按钮。

Game Manager - 玩家 - 添加禁用

如果所有内容都设置正确,则会在表中看到新禁用。 通过在撤销禁用字段中选择手动删除禁用

Game Manager - 玩家 - 禁用 - 撤销禁用

在服务器上创建禁用

或者,可以使用服务器 SDK,借助下面提供的代码片段通过代码应用禁用。

public void AddBan(string playerId, uint hours) {
    PlayFabServerAPI.BanUsers(new BanUsersRequest() {
        Bans = new List<BanRequest>() {
            new BanRequest() {
                DurationInHours = hours,
                PlayFabId = playerId,
                Reason = "Automatic ban for WH",
            }
        }
    }, result => {
        //... Handle success
    }, error => {
        Debug.Log(error.GenerateErrorReport());
    });
}

通过代码应用的封禁也会在 Game Manager 中显示在针对目标玩家的封禁表中。

注意

PlayFab 服务器 SDK 方法提供更多选项,如 IPMAC 地址封禁。

应用的每个封禁都会获得分配的 ID。 考虑以下服务器 SDK API 方法以实现精确的封禁管理:

注意

可以在自动系统中使用可封禁玩家的 CloudScript 函数。 若要了解有关 CloudScript 的详细信息,请参阅我们的教程编写自定义 CloudScript