玩家封禁系统
通过玩家封禁功能可以对违反规则的某些玩家限制对游戏的访问。 将玩家禁令应用于玩家时,任何现有的玩家身份验证令牌都将失效,并且玩家将来进行的身份验证尝试将被拒绝。 玩家禁令在指定时间范围内可以是永久的或暂时的,并且可能应用于玩家 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 手动应用,或通过代码以编程方式应用。
从 Game Manager 创建禁令
你的社区管理代表可能想要使用 Game Manager 应用禁令。
- 导航到 玩家部分。
- 找到有问题的玩家。
- 导航到“ 禁 ”选项卡。
- 选择 添加禁用 以显示 添加禁用 表单。
- 键入 禁用的原因 以及所需的持续时间。 可以选择按 IP ADDRESS (4) 进行封禁。
- 最后,选择 添加禁用 按钮。
如果一切设置正确,表中会显示新的 Ban 。 通过在撤销禁用字段中选择手动删除禁用。
从服务器或服务创建禁令
或者,可以使用 服务 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 方法提供更多选项,如 IP 和 MAC 地址封禁。
应用的每个封禁都会获得分配的 ID。 考虑以下服务器 SDK API 方法以实现精确的封禁管理:
注意
可以在自动系统中使用可封禁玩家的 CloudScript 函数。 若要了解有关 CloudScript 的详细信息,请参阅我们的教程编写自定义 CloudScript。