玩家封禁系统
通过玩家封禁功能可以对违反规则的某些玩家限制对游戏的访问。
注意
封禁可以是临时或永久的。
以下教程介绍如何通过 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 应用禁用。
- 导航到 玩家部分。
- 找到有问题的玩家。
- 导航到“ 禁 ”选项卡。
- 选择 添加禁用 以显示 添加禁用 表单。
- 键入 禁用的原因 以及所需的持续时间。 可以选择按 IP ADDRESS (4) 进行封禁。
- 最后,选择 添加禁用 按钮。
如果所有内容都设置正确,则会在表中看到新禁用。 通过在撤销禁用字段中选择手动删除禁用。
在服务器上创建禁用
或者,可以使用服务器 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。