玩家封禁系统

通过玩家封禁功能可以对违反规则的某些玩家限制对游戏的访问。 将玩家禁令应用于玩家时,任何现有的玩家身份验证令牌都将失效,并且玩家将来进行的身份验证尝试将被拒绝。 玩家禁令在指定时间范围内可以是永久的或暂时的,并且可能应用于玩家 ID 或 IP 地址。 禁令的范围限定为游戏,不适用于 命名空间中的其他任何游戏。

以下教程介绍如何通过 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 调用生成:

  • 报表事件,可以通过分析工具 找到 (1)
  • 选择 player_reported_as_abusive 事件类型 (2)
  • 这将显示:
    • Event Name (3)
    • 被举报的玩家 ID (4)

Game Manager - Analytics - Event History

应用封禁

标识了有问题的玩家后,可以应用禁用。 有两种方法可以应用禁令:通过 Game Manager 手动应用,或通过代码以编程方式应用。

从 Game Manager 创建禁令

你的社区管理代表可能想要使用 Game Manager 应用禁令。

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

Game Manager - 玩家 - 添加禁用

如果一切设置正确,表中会显示新的 Ban 。 通过在撤销禁用字段中选择手动删除禁用

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

另请参阅

BanUsers